XWindowAttributes wattrib;
Status ret;
+ /* we're already running at 32 bit depth, yay. we don't need to use their
+ visual */
+ if (RrDepth(ob_rr_inst) == 32)
+ return NULL;
+
ret = XGetWindowAttributes(ob_display, c->window, &wattrib);
g_assert(ret != BadDrawable);
g_assert(ret != BadWindow);
XMoveWindow(ob_display, self->trrresize,
self->width - ob_rr_theme->paddingx - 1, 0);
- XMoveResizeWindow(ob_display, self->leftresize,
- -(ob_rr_theme->fbwidth * 2) - 1,
- 0,
- 1,
- self->client->area.height +
- self->cbwidth_y * 2);
- XMoveResizeWindow(ob_display, self->rightresize,
- self->client->area.width +
- self->cbwidth_x * 2,
- 0,
- 1,
- self->client->area.height +
- self->cbwidth_y * 2);
-
XMapWindow(ob_display, self->topresize);
XMapWindow(ob_display, self->tltresize);
XMapWindow(ob_display, self->tllresize);
XMapWindow(ob_display, self->trtresize);
XMapWindow(ob_display, self->trrresize);
- XMapWindow(ob_display, self->leftresize);
- XMapWindow(ob_display, self->rightresize);
} else {
XUnmapWindow(ob_display, self->topresize);
XUnmapWindow(ob_display, self->tltresize);
XUnmapWindow(ob_display, self->tllresize);
XUnmapWindow(ob_display, self->trtresize);
XUnmapWindow(ob_display, self->trrresize);
- XUnmapWindow(ob_display, self->leftresize);
- XUnmapWindow(ob_display, self->rightresize);
}
} else
XUnmapWindow(ob_display, self->title);
} else
XUnmapWindow(ob_display, self->handle);
+ if (self->decorations & OB_FRAME_DECOR_GRIPS) {
+ XMoveResizeWindow(ob_display, self->leftresize,
+ -(ob_rr_theme->fbwidth * 2) - 1,
+ 0,
+ 1,
+ self->client->area.height +
+ self->cbwidth_y * 2);
+ XMoveResizeWindow(ob_display, self->rightresize,
+ self->client->area.width +
+ self->cbwidth_x * 2,
+ 0,
+ 1,
+ self->client->area.height +
+ self->cbwidth_y * 2);
+
+ XMapWindow(ob_display, self->leftresize);
+ XMapWindow(ob_display, self->rightresize);
+ } else {
+ XUnmapWindow(ob_display, self->leftresize);
+ XUnmapWindow(ob_display, self->rightresize);
+ }
+
/* move and resize the inner border window which contains the plate
*/
XMoveResizeWindow(ob_display, self->inner,
{
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))
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