From 6e4311a53c460339c2ef58632a88b8f0d117035d Mon Sep 17 00:00:00 2001 From: Marcel Partap Date: Sat, 7 Nov 2015 02:58:17 +0100 Subject: [PATCH] Add menu action to turn off/on window border. --- src/client.c | 15 +++++++++++++++ src/client.h | 1 + src/events.c | 7 +++++++ src/menu.c | 2 ++ src/menu.h | 6 ++++-- src/settings.c | 1 + src/settings.h | 1 + 7 files changed, 31 insertions(+), 2 deletions(-) diff --git src/client.c src/client.c index 0808e5a93..4b2f92232 100644 --- src/client.c +++ src/client.c @@ -3105,6 +3105,21 @@ void clientSetFullscreenMonitor (Client *c, gint top, gint bottom, gint left, gi } } +void clientToggleBorder (Client *c) +{ + g_return_if_fail (c != NULL); + TRACE ("entering clientToggleBorder"); + + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)) + { + FLAG_UNSET (c->xfwm_flags, XFWM_FLAG_HAS_BORDER); + } + else + { + FLAG_SET (c->xfwm_flags, XFWM_FLAG_HAS_BORDER); + } +} + void clientToggleLayerAbove (Client *c) { g_return_if_fail (c != NULL); diff --git src/client.h src/client.h index 89d2d82f3..89cc1c6a9 100644 --- src/client.h +++ src/client.h @@ -460,6 +460,7 @@ void clientSetFullscreenMonitor (Client *, gint, gint, gint); +void clientToggleBorder (Client *); void clientToggleLayerAbove (Client *); void clientToggleLayerBelow (Client *); void clientSetLayerNormal (Client *); diff --git src/events.c src/events.c index 7699ee614..bcb7d82de 100644 --- src/events.c +++ src/events.c @@ -382,6 +382,9 @@ handleKeyPress (DisplayInfo *display_info, XfwmEventKey *event) case KEY_TOGGLE_FULLSCREEN: clientToggleFullscreen (c); break; + case KEY_TOGGLE_BORDER: + clientToggleBorder (c); + break; case KEY_MOVE_NEXT_WORKSPACE: workspaceSwitch (screen_info, screen_info->current_ws + 1, c, TRUE, event->time); break; @@ -2427,6 +2430,10 @@ menu_callback (Menu * menu, MenuOp op, Window xid, gpointer menu_data, gpointer case MENU_OP_UNFULLSCREEN: clientToggleFullscreen (c); break; + case MENU_OP_BORDER_OFF: + case MENU_OP_BORDER_ON: + clientToggleBorder (c); + break; default: frameQueueDraw (c, FALSE); break; diff --git src/menu.c src/menu.c index a2d1c0803..4d45cdaef 100644 --- src/menu.c +++ src/menu.c @@ -63,6 +63,8 @@ static MenuItem menuitems[] = { {MENU_OP_UNSHADE, N_("Roll Window Down")}, {MENU_OP_FULLSCREEN, N_("_Fullscreen")}, {MENU_OP_UNFULLSCREEN, N_("Leave _Fullscreen")}, + {MENU_OP_BORDER_OFF, N_("No _Border")}, + {MENU_OP_BORDER_ON, N_("_Border")}, {MENU_OP_CONTEXT_HELP, N_("Context _Help")}, {0, NULL}, /* -------------------------------------------------------- */ {MENU_OP_STICK, N_("Always on _Visible Workspace")}, diff --git src/menu.h src/menu.h index 8e1aa161a..aec2c226b 100644 --- src/menu.h +++ src/menu.h @@ -58,8 +58,10 @@ typedef enum MENU_OP_NORMAL = 1 << 18, MENU_OP_FULLSCREEN = 1 << 19, MENU_OP_UNFULLSCREEN = 1 << 20, - MENU_OP_CONTEXT_HELP = 1 << 21, - MENU_OP_OTHER = 1 << 22 + MENU_OP_BORDER_OFF = 1 << 21, + MENU_OP_BORDER_ON = 1 << 22, + MENU_OP_CONTEXT_HELP = 1 << 23, + MENU_OP_OTHER = 1 << 24 } MenuOp; diff --git src/settings.c src/settings.c index 5567618ca..856bfa831 100644 --- src/settings.c +++ src/settings.c @@ -614,6 +614,7 @@ loadKeyBindings (ScreenInfo *screen_info) parseShortcut (screen_info, KEY_TILE_UP_RIGHT, "tile_up_right_key", shortcuts); parseShortcut (screen_info, KEY_TOGGLE_ABOVE, "above_key", shortcuts); parseShortcut (screen_info, KEY_TOGGLE_FULLSCREEN, "fullscreen_key", shortcuts); + parseShortcut (screen_info, KEY_TOGGLE_BORDER, "border_key", shortcuts); parseShortcut (screen_info, KEY_UP_WORKSPACE, "up_workspace_key", shortcuts); for (i = 0; i < 12; i++) diff --git src/settings.h src/settings.h index f20c6db46..44731459a 100644 --- src/settings.h +++ src/settings.h @@ -118,6 +118,7 @@ enum KEY_TILE_UP_RIGHT, KEY_TOGGLE_ABOVE, KEY_TOGGLE_FULLSCREEN, + KEY_TOGGLE_BORDER, KEY_UP_WORKSPACE, KEY_WORKSPACE_1, KEY_WORKSPACE_2, -- 2.26.2