summaryrefslogtreecommitdiff
path: root/openbox/frame.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/frame.c')
-rw-r--r--openbox/frame.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/openbox/frame.c b/openbox/frame.c
index 4ecc7b61..0d5ddb2e 100644
--- a/openbox/frame.c
+++ b/openbox/frame.c
@@ -640,11 +640,24 @@ ObFrameContext frame_context(ObClient *client, Window win)
if (win == RootWindow(ob_display, ob_screen)) return OB_FRAME_CONTEXT_ROOT;
if (client == NULL) return OB_FRAME_CONTEXT_NONE;
- if (win == client->window) return OB_FRAME_CONTEXT_CLIENT;
+ if (win == client->window) {
+ /* conceptually, this is the root window, as far as users are
+ concerned */
+ if (client->type == OB_CLIENT_TYPE_DESKTOP)
+ return OB_FRAME_CONTEXT_ROOT;
+ return OB_FRAME_CONTEXT_CLIENT;
+ }
self = client->frame;
+ if (win == self->plate) {
+ /* conceptually, this is the root window, as far as users are
+ concerned */
+ if (client->type == OB_CLIENT_TYPE_DESKTOP)
+ return OB_FRAME_CONTEXT_ROOT;
+ return OB_FRAME_CONTEXT_CLIENT;
+ }
+
if (win == self->window) return OB_FRAME_CONTEXT_FRAME;
- if (win == self->plate) return OB_FRAME_CONTEXT_CLIENT;
if (win == self->title) return OB_FRAME_CONTEXT_TITLEBAR;
if (win == self->label) return OB_FRAME_CONTEXT_TITLEBAR;
if (win == self->handle) return OB_FRAME_CONTEXT_HANDLE;