From 84452debaffc9f854c131662f9b99cbd2cdfe3d9 Mon Sep 17 00:00:00 2001 From: Tobias Bengfort Date: Thu, 18 Apr 2024 10:38:50 +0200 Subject: [PATCH] decorations: implement Decoration/Undecorate actions --- docs/labwc-actions.5.scd | 6 ++++++ include/view.h | 1 - src/action.c | 16 +++++++++++++++- src/view.c | 8 -------- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/docs/labwc-actions.5.scd b/docs/labwc-actions.5.scd index 4966d404..b9dd5659 100644 --- a/docs/labwc-actions.5.scd +++ b/docs/labwc-actions.5.scd @@ -120,6 +120,12 @@ Actions are used in menus and keyboard/mouse bindings. ** Toggle decorations of focused window. +** + Enable decorations of focused window. + +** + Disable decorations of focused window. + ** Toggle fullscreen state of focused window. diff --git a/include/view.h b/include/view.h index 18efe9f3..11e4b5f5 100644 --- a/include/view.h +++ b/include/view.h @@ -440,7 +440,6 @@ void view_maximize(struct view *view, enum view_axis axis, bool store_natural_geometry); void view_set_fullscreen(struct view *view, bool fullscreen); void view_toggle_maximize(struct view *view, enum view_axis axis); -void view_toggle_decorations(struct view *view); bool view_is_always_on_top(struct view *view); bool view_is_always_on_bottom(struct view *view); diff --git a/src/action.c b/src/action.c index 7cc4bc56..4fd21d6a 100644 --- a/src/action.c +++ b/src/action.c @@ -79,6 +79,8 @@ enum action_type { ACTION_TYPE_MAXIMIZE, ACTION_TYPE_TOGGLE_FULLSCREEN, ACTION_TYPE_TOGGLE_DECORATIONS, + ACTION_TYPE_DECORATE, + ACTION_TYPE_UNDECORATE, ACTION_TYPE_TOGGLE_ALWAYS_ON_TOP, ACTION_TYPE_TOGGLE_ALWAYS_ON_BOTTOM, ACTION_TYPE_TOGGLE_OMNIPRESENT, @@ -132,6 +134,8 @@ const char *action_names[] = { "Maximize", "ToggleFullscreen", "ToggleDecorations", + "Decorate", + "Undecorate", "ToggleAlwaysOnTop", "ToggleAlwaysOnBottom", "ToggleOmnipresent", @@ -787,7 +791,17 @@ actions_run(struct view *activator, struct server *server, break; case ACTION_TYPE_TOGGLE_DECORATIONS: if (view) { - view_toggle_decorations(view); + view_set_decorations(view, !view->ssd_enabled); + } + break; + case ACTION_TYPE_DECORATE: + if (view) { + view_set_decorations(view, true); + } + break; + case ACTION_TYPE_UNDECORATE: + if (view) { + view_set_decorations(view, false); } break; case ACTION_TYPE_TOGGLE_ALWAYS_ON_TOP: diff --git a/src/view.c b/src/view.c index 244a0a73..a00ef89a 100644 --- a/src/view.c +++ b/src/view.c @@ -1193,14 +1193,6 @@ view_toggle_maximize(struct view *view, enum view_axis axis) } } -void -view_toggle_decorations(struct view *view) -{ - assert(view); - - view_set_decorations(view, !view->ssd_enabled); -} - bool view_is_always_on_top(struct view *view) {