diff --git a/docs/labwc-actions.5.scd b/docs/labwc-actions.5.scd index 6b9dfe8d..32a95312 100644 --- a/docs/labwc-actions.5.scd +++ b/docs/labwc-actions.5.scd @@ -134,6 +134,18 @@ Actions are used in menus and keyboard/mouse bindings. windows that have client side decorations if it would increase the amount of decoration. Default is no. +** + Similar to ToggleDecorations below but a single state + - Titlebar and borders + +** + Similar to ToggleDecorations below but a single state + - No titlebar or borders + +** + Similar to ToggleDecorations below but a single state + - Borders only + ** Toggle decorations of focused window. diff --git a/src/action.c b/src/action.c index 79008566..7aad9016 100644 --- a/src/action.c +++ b/src/action.c @@ -118,7 +118,10 @@ enum action_type { ACTION_TYPE_TOGGLE_TABLET_MOUSE_EMULATION, ACTION_TYPE_TOGGLE_MAGNIFY, ACTION_TYPE_ZOOM_IN, - ACTION_TYPE_ZOOM_OUT + ACTION_TYPE_ZOOM_OUT, + ACTION_TYPE_DECORATE, + ACTION_TYPE_UNDECORATE, + ACTION_TYPE_BORDER }; const char *action_names[] = { @@ -180,6 +183,9 @@ const char *action_names[] = { "ToggleMagnify", "ZoomIn", "ZoomOut", + "Decorate", + "Undecorate", + "Border", NULL }; @@ -1167,6 +1173,21 @@ actions_run(struct view *activator, struct server *server, case ACTION_TYPE_ZOOM_OUT: magnify_set_scale(server, MAGNIFY_DECREASE); break; + case ACTION_TYPE_DECORATE: + if (view) { + view_set_ssd_mode(view, LAB_SSD_MODE_FULL); + } + break; + case ACTION_TYPE_UNDECORATE: + if (view) { + view_set_ssd_mode(view, LAB_SSD_MODE_NONE); + } + break; + case ACTION_TYPE_BORDER: + if (view) { + view_set_ssd_mode(view, LAB_SSD_MODE_BORDER); + } + break; case ACTION_TYPE_INVALID: wlr_log(WLR_ERROR, "Not executing unknown action"); break;