add a root context that only applies to the root window. it fallsback to the desktop...
authorDana Jansens <danakj@orodu.net>
Sat, 19 May 2007 22:07:15 +0000 (22:07 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 19 May 2007 22:07:15 +0000 (22:07 +0000)
data/rc.xml
openbox/frame.c
openbox/frame.h
openbox/mouse.c

index d963936..42d629f 100644 (file)
     <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>
index c9c1543..df5e601 100644 (file)
@@ -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 @@ ObFrameContext frame_context(ObClient *client, Window win, gint x, gint y)
         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
index 28ad275..13e4956 100644 (file)
@@ -32,6 +32,7 @@ typedef void (*ObFrameIconifyAnimateFunc)(gpointer data);
 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,
index a96b02b..850fb33 100644 (file)
@@ -71,6 +71,9 @@ ObFrameContext mouse_button_frame_context(ObFrameContext context,
     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: