all repos — openbox @ 813d5c2ec963b3a108b2cbe8efcb9572934d8f59

openbox fork - make it a bit more like ryudo

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
commit

813d5c2ec963b3a108b2cbe8efcb9572934d8f59

parent

198aab2b713b9a916079b0fd6cf88555d7f3c9b8

4 files changed, 9 insertions(+), 1 deletions(-)

jump to
M data/rc.xmldata/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.copenbox/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.hopenbox/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.copenbox/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: