add a root context that only applies to the root window. it fallsback to the desktop context, so desktop stuff applies to it too.
Dana Jansens danakj@orodu.net
4 files changed,
9 insertions(+),
1 deletions(-)
M
data/rc.xml
→
data/rc.xml
@@ -462,7 +462,9 @@
<mousebind button="Left" action="Press"> <action name="Activate"/> </mousebind> + </context> + <context name="Root"> <!-- Menus --> <mousebind button="Middle" action="Press"> <action name="ShowMenu"><menu>client-list-combined-menu</menu></action>
M
openbox/frame.c
→
openbox/frame.c
@@ -861,6 +861,8 @@ ObFrameContext frame_context_from_string(const gchar *name)
{ if (!g_ascii_strcasecmp("Desktop", name)) return OB_FRAME_CONTEXT_DESKTOP; + else if (!g_ascii_strcasecmp("Root", name)) + return OB_FRAME_CONTEXT_ROOT; else if (!g_ascii_strcasecmp("Client", name)) return OB_FRAME_CONTEXT_CLIENT; else if (!g_ascii_strcasecmp("Titlebar", name))@@ -908,7 +910,7 @@ if (moveresize_in_progress)
return OB_FRAME_CONTEXT_MOVE_RESIZE; if (win == RootWindow(ob_display, ob_screen)) - return OB_FRAME_CONTEXT_DESKTOP; + return OB_FRAME_CONTEXT_ROOT ; if (client == NULL) return OB_FRAME_CONTEXT_NONE; if (win == client->window) { /* conceptually, this is the desktop, as far as users are
M
openbox/frame.h
→
openbox/frame.h
@@ -32,6 +32,7 @@
typedef enum { OB_FRAME_CONTEXT_NONE, OB_FRAME_CONTEXT_DESKTOP, + OB_FRAME_CONTEXT_ROOT, OB_FRAME_CONTEXT_CLIENT, OB_FRAME_CONTEXT_TITLEBAR, OB_FRAME_CONTEXT_FRAME,
M
openbox/mouse.c
→
openbox/mouse.c
@@ -71,6 +71,9 @@ case OB_FRAME_CONTEXT_MOVE_RESIZE:
case OB_FRAME_CONTEXT_LEFT: case OB_FRAME_CONTEXT_RIGHT: break; + case OB_FRAME_CONTEXT_ROOT: + x = OB_FRAME_CONTEXT_DESKTOP; + break; case OB_FRAME_CONTEXT_BOTTOM: case OB_FRAME_CONTEXT_BLCORNER: case OB_FRAME_CONTEXT_BRCORNER: