#include "config.h"
#include "framerender.h"
#include "mainloop.h"
+#include "focus.h"
#include "moveresize.h"
#include "render/theme.h"
static void set_theme_statics(ObFrame *self);
static void free_theme_statics(ObFrame *self);
-static Window createWindow(Window parent, unsigned long mask,
+static Window createWindow(Window parent, gulong mask,
XSetWindowAttributes *attrib)
{
return XCreateWindow(ob_display, parent, 0, 0, 1, 1, 0,
ObFrame *frame_new()
{
XSetWindowAttributes attrib;
- unsigned long mask;
+ gulong mask;
ObFrame *self;
self = g_new0(ObFrame, 1);
static void set_theme_statics(ObFrame *self)
{
/* set colors/appearance/sizes for stuff that doesn't change */
- XSetWindowBorder(ob_display, self->window, ob_rr_theme->b_color->pixel);
- XSetWindowBorder(ob_display, self->title, ob_rr_theme->b_color->pixel);
- XSetWindowBorder(ob_display, self->handle, ob_rr_theme->b_color->pixel);
- XSetWindowBorder(ob_display, self->rgrip, ob_rr_theme->b_color->pixel);
- XSetWindowBorder(ob_display, self->lgrip, ob_rr_theme->b_color->pixel);
+ XSetWindowBorder(ob_display, self->window,
+ RrColorPixel(ob_rr_theme->b_color));
+ XSetWindowBorder(ob_display, self->title,
+ RrColorPixel(ob_rr_theme->b_color));
+ XSetWindowBorder(ob_display, self->handle,
+ RrColorPixel(ob_rr_theme->b_color));
+ XSetWindowBorder(ob_display, self->rgrip,
+ RrColorPixel(ob_rr_theme->b_color));
+ XSetWindowBorder(ob_display, self->lgrip,
+ RrColorPixel(ob_rr_theme->b_color));
XResizeWindow(ob_display, self->max,
ob_rr_theme->button_size, ob_rr_theme->button_size);
{
if (!self->visible) {
self->visible = TRUE;
+ XMapWindow(ob_display, self->client->window);
XMapWindow(ob_display, self->window);
}
}
{
if (self->visible) {
self->visible = FALSE;
- self->client->ignore_unmaps++;
+ self->client->ignore_unmaps += 2;
+ /* we unmap the client itself so that we can get MapRequest
+ events, and because the ICCCM tells us to! */
XUnmapWindow(ob_display, self->window);
+ XUnmapWindow(ob_display, self->client->window);
}
}
void frame_adjust_shape(ObFrame *self)
{
#ifdef SHAPE
- int num;
+ gint num;
XRectangle xrect[2];
if (!self->client->shaped) {
PROP_SETA32(self->client->window, kde_net_wm_frame_strut,
cardinal, vals, 4);
}
+
+ /* if this occurs while we are focus cycling, the indicator needs to
+ match the changes */
+ if (focus_cycle_target == self->client)
+ focus_cycle_draw_indicator();
}
}
static void layout_title(ObFrame *self)
{
- char *lc;
- int x;
+ gchar *lc;
+ gint x;
gboolean n, d, i, l, m, c, s;
n = d = i = l = m = c = s = FALSE;
return OB_FRAME_CONTEXT_NONE;
}
-void frame_client_gravity(ObFrame *self, int *x, int *y)
+void frame_client_gravity(ObFrame *self, gint *x, gint *y)
{
/* horizontal */
switch (self->client->gravity) {
}
}
-void frame_frame_gravity(ObFrame *self, int *x, int *y)
+void frame_frame_gravity(ObFrame *self, gint *x, gint *y)
{
/* horizontal */
switch (self->client->gravity) {