bindings: add minimize/maximize/fullscreen actions

These actions are by default not bound to anything.
This commit is contained in:
Daniel Eklöf 2020-03-12 09:34:09 +01:00
parent 1f904fc257
commit 65ff582358
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 39 additions and 0 deletions

View file

@ -58,8 +58,14 @@ static const char *binding_action_map[] = {
[BIND_ACTION_FONT_SIZE_DOWN] = "font-decrease",
[BIND_ACTION_FONT_SIZE_RESET] = "font-reset",
[BIND_ACTION_SPAWN_TERMINAL] = "spawn-terminal",
[BIND_ACTION_MINIMIZE] = "minimize",
[BIND_ACTION_MAXIMIZE] = "maximize",
[BIND_ACTION_FULLSCREEN] = "fullscreen",
};
static_assert(ALEN(binding_action_map) == BIND_ACTION_COUNT,
"binding action map size mismatch");
static char *
get_shell(void)
{

View file

@ -194,6 +194,15 @@ Note that _Alt_ is usually called *Mod1*.
*spawn-terminal*
Spawns a new terminal. Default: _Control+Shift+Return_.
*minimize*
Minimizes the window. Default: _not bound_.
*maximize*
Toggle the maximized state. Default: _not bound_.
*fullscreen*
Toggles the fullscreen state. Default: _not bound_.
# FONT FORMAT
The font is specified in FontConfig syntax. That is, a colon-separated

3
footrc
View file

@ -53,3 +53,6 @@
# font-decrease=Control+minus Control+KP_Subtract
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+Return
# # minimize=<not bound>
# # maximize=<not bound>
# # fullscreen=<not bound>

18
input.c
View file

@ -78,6 +78,24 @@ input_execute_binding(struct terminal *term, enum binding_action action,
term_spawn_new(term);
break;
case BIND_ACTION_MINIMIZE:
xdg_toplevel_set_minimized(term->window->xdg_toplevel);
break;
case BIND_ACTION_MAXIMIZE:
if (term->window->is_maximized)
xdg_toplevel_unset_maximized(term->window->xdg_toplevel);
else
xdg_toplevel_set_maximized(term->window->xdg_toplevel);
break;
case BIND_ACTION_FULLSCREEN:
if (term->window->is_fullscreen)
xdg_toplevel_unset_fullscreen(term->window->xdg_toplevel);
else
xdg_toplevel_set_fullscreen(term->window->xdg_toplevel, NULL);
break;
case BIND_ACTION_COUNT:
assert(false);
break;

View file

@ -52,6 +52,9 @@ enum binding_action {
BIND_ACTION_FONT_SIZE_DOWN,
BIND_ACTION_FONT_SIZE_RESET,
BIND_ACTION_SPAWN_TERMINAL,
BIND_ACTION_MINIMIZE,
BIND_ACTION_MAXIMIZE,
BIND_ACTION_FULLSCREEN,
BIND_ACTION_COUNT,
};