diff --git a/data/rc.xml b/data/rc.xml
index d963936f..42d629ff 100644
--- a/data/rc.xml
+++ b/data/rc.xml
@@ -462,7 +462,9 @@
+
+
diff --git a/openbox/frame.c b/openbox/frame.c
index c9c1543d..df5e6016 100644
--- a/openbox/frame.c
+++ b/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 @@ 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
diff --git a/openbox/frame.h b/openbox/frame.h
index 28ad2755..13e49564 100644
--- a/openbox/frame.h
+++ b/openbox/frame.h
@@ -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,
diff --git a/openbox/mouse.c b/openbox/mouse.c
index a96b02b9..850fb337 100644
--- a/openbox/mouse.c
+++ b/openbox/mouse.c
@@ -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: