+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+ frame.c for the Openbox window manager
+ Copyright (c) 2003 Ben Jansens
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ See the COPYING file for a copy of the GNU General Public License.
+*/
+
#include "frame.h"
#include "client.h"
#include "openbox.h"
#include "config.h"
#include "framerender.h"
#include "mainloop.h"
+#include "moveresize.h"
#include "render/theme.h"
#define PLATE_EVENTMASK (SubstructureRedirectMask | ButtonPressMask)
{
free_theme_statics(self);
set_theme_statics(self);
- frame_adjust_area(self, TRUE, TRUE, FALSE);
}
void frame_adjust_shape(ObFrame *self)
if (self->decorations & OB_FRAME_DECOR_TITLEBAR)
self->innersize.top += ob_rr_theme->title_height + self->rbwidth +
(self->rbwidth - self->bwidth);
- if (self->decorations & OB_FRAME_DECOR_HANDLE)
+ if (self->decorations & OB_FRAME_DECOR_HANDLE &&
+ ob_rr_theme->show_handle)
self->innersize.bottom += ob_rr_theme->handle_height +
self->rbwidth + (self->rbwidth - self->bwidth);
layout_title(self);
if (!fake) {
- if (self->decorations & OB_FRAME_DECOR_HANDLE) {
+ if (self->decorations & OB_FRAME_DECOR_HANDLE &&
+ ob_rr_theme->show_handle)
+ {
XMoveResizeWindow(ob_display, self->handle,
-self->bwidth, FRAME_HANDLE_Y(self),
self->width, ob_rr_theme->handle_height);
}
}
-ObFrameContext frame_context_from_string(char *name)
+ObFrameContext frame_context_from_string(const gchar *name)
{
- if (!g_ascii_strcasecmp("desktop", name))
+ if (!g_ascii_strcasecmp("Desktop", name))
return OB_FRAME_CONTEXT_DESKTOP;
- else if (!g_ascii_strcasecmp("client", name))
+ else if (!g_ascii_strcasecmp("Client", name))
return OB_FRAME_CONTEXT_CLIENT;
- else if (!g_ascii_strcasecmp("titlebar", name))
+ else if (!g_ascii_strcasecmp("Titlebar", name))
return OB_FRAME_CONTEXT_TITLEBAR;
- else if (!g_ascii_strcasecmp("handle", name))
+ else if (!g_ascii_strcasecmp("Handle", name))
return OB_FRAME_CONTEXT_HANDLE;
- else if (!g_ascii_strcasecmp("frame", name))
+ else if (!g_ascii_strcasecmp("Frame", name))
return OB_FRAME_CONTEXT_FRAME;
- else if (!g_ascii_strcasecmp("tlcorner", name))
+ else if (!g_ascii_strcasecmp("TLCorner", name))
return OB_FRAME_CONTEXT_TLCORNER;
- else if (!g_ascii_strcasecmp("trcorner", name))
+ else if (!g_ascii_strcasecmp("TRCorner", name))
return OB_FRAME_CONTEXT_TRCORNER;
- else if (!g_ascii_strcasecmp("blcorner", name))
+ else if (!g_ascii_strcasecmp("BLCorner", name))
return OB_FRAME_CONTEXT_BLCORNER;
- else if (!g_ascii_strcasecmp("brcorner", name))
+ else if (!g_ascii_strcasecmp("BRCorner", name))
return OB_FRAME_CONTEXT_BRCORNER;
- else if (!g_ascii_strcasecmp("maximize", name))
+ else if (!g_ascii_strcasecmp("Maximize", name))
return OB_FRAME_CONTEXT_MAXIMIZE;
- else if (!g_ascii_strcasecmp("alldesktops", name))
+ else if (!g_ascii_strcasecmp("AllDesktops", name))
return OB_FRAME_CONTEXT_ALLDESKTOPS;
- else if (!g_ascii_strcasecmp("shade", name))
+ else if (!g_ascii_strcasecmp("Shade", name))
return OB_FRAME_CONTEXT_SHADE;
- else if (!g_ascii_strcasecmp("iconify", name))
+ else if (!g_ascii_strcasecmp("Iconify", name))
return OB_FRAME_CONTEXT_ICONIFY;
- else if (!g_ascii_strcasecmp("icon", name))
+ else if (!g_ascii_strcasecmp("Icon", name))
return OB_FRAME_CONTEXT_ICON;
- else if (!g_ascii_strcasecmp("close", name))
+ else if (!g_ascii_strcasecmp("Close", name))
return OB_FRAME_CONTEXT_CLOSE;
+ else if (!g_ascii_strcasecmp("MoveResize", name))
+ return OB_FRAME_CONTEXT_MOVE_RESIZE;
return OB_FRAME_CONTEXT_NONE;
}
{
ObFrame *self;
+ if (moveresize_in_progress)
+ return OB_FRAME_CONTEXT_MOVE_RESIZE;
+
if (win == RootWindow(ob_display, ob_screen))
return OB_FRAME_CONTEXT_DESKTOP;
if (client == NULL) return OB_FRAME_CONTEXT_NONE;