(mostly) proper xshape event support

ok oga@
This commit is contained in:
okan
2008-06-14 22:04:11 +00:00
parent 160228210b
commit 96d7310b4a
4 changed files with 18 additions and 7 deletions

View File

@@ -260,7 +260,6 @@ xev_handle_buttonrelease(struct xevent *xev, XEvent *ee)
group_sticky_toggle_exit(cc);
xev_register(xev);
}
void
@@ -354,6 +353,16 @@ out:
xev_register(xev);
}
void
xev_handle_shape(struct xevent *xev, XEvent *ee)
{
XShapeEvent *sev = (XShapeEvent *) ee;
struct client_ctx *cc;
if ((cc = client_find(sev->window)) != NULL)
client_do_shape(cc);
}
/*
* X Event handling
*/
@@ -411,8 +420,10 @@ xev_handle_expose(struct xevent *xev, XEvent *ee)
XExposeEvent *e = &ee->xexpose;
struct client_ctx *cc;
if ((cc = client_find(e->window)) != NULL && e->count == 0)
if ((cc = client_find(e->window)) != NULL && e->count == 0) {
client_draw_border(cc);
client_do_shape(cc);
}
xev_register(xev);
}
@@ -478,7 +489,9 @@ xev_loop(void)
case ClientMessage:
ASSIGN1(xclient);
break;
default: /* XXX - still need shape event support. */
default:
if (e.type == Shape_ev)
xev_handle_shape(xev, &e);
break;
}