implement ToggleDecorations and ToggleFullscreen actions

This commit is contained in:
bi4k8 2021-09-19 22:16:56 +00:00 committed by Johan Malm
parent 3d15444b3a
commit b7cce58f56
3 changed files with 25 additions and 0 deletions

View file

@ -317,6 +317,8 @@ void view_maximize(struct view *view, bool maximize);
void view_set_fullscreen(struct view *view, bool fullscreen,
struct wlr_output *wlr_output);
void view_toggle_maximize(struct view *view);
void view_toggle_decorations(struct view *view);
void view_toggle_fullscreen(struct view *view);
void view_for_each_surface(struct view *view,
wlr_surface_iterator_func_t iterator, void *user_data);
void view_for_each_popup_surface(struct view *view,

View file

@ -54,6 +54,16 @@ action(struct server *server, const char *action, const char *command)
if (view) {
view_toggle_maximize(view);
}
} else if (!strcasecmp(action, "ToggleFullscreen")) {
struct view *view = topmost_mapped_view(server);
if (view) {
view_toggle_fullscreen(view);
}
} else if (!strcasecmp(action, "ToggleDecorations")) {
struct view *view = topmost_mapped_view(server);
if (view) {
view_toggle_decorations(view);
}
} else {
wlr_log(WLR_ERROR, "action (%s) not supported", action);
}

View file

@ -107,6 +107,19 @@ view_toggle_maximize(struct view *view)
view_maximize(view, !view->maximized);
}
void
view_toggle_decorations(struct view *view)
{
view->ssd.enabled = !view->ssd.enabled;
ssd_update_geometry(view, true);
}
void
view_toggle_fullscreen(struct view *view)
{
view_set_fullscreen(view, !view->fullscreen, NULL);
}
void
view_set_fullscreen(struct view *view, bool fullscreen,
struct wlr_output *wlr_output)