xwc.border_width = e->xconfigurerequest.border_width;
xwc.sibling = e->xconfigurerequest.above;
xwc.stack_mode = e->xconfigurerequest.detail;
-
+
/* we are not to be held responsible if someone sends us an
invalid request! */
xerror_set_ignore(TRUE);
static void event_handle_root(XEvent *e)
{
Atom msgtype;
-
+
switch(e->type) {
case SelectionClear:
ob_debug("Another WM has requested to replace us. Exiting.\n");
ObFrameContext con;
static gint px = -1, py = -1;
static guint pb = 0;
-
+
switch (e->type) {
case ButtonPress:
/* save where the press occured for the first button pressed */
case OB_FRAME_CONTEXT_ALLDESKTOPS:
client->frame->desk_press = (e->type == ButtonPress);
frame_adjust_state(client->frame);
- break;
+ break;
case OB_FRAME_CONTEXT_SHADE:
client->frame->shade_press = (e->type == ButtonPress);
frame_adjust_state(client->frame);
/* we don't want the reparent event, put it back on the stack for the
X server to deal with after we unmanage the window */
XPutBackEvent(ob_display, e);
-
+
ob_debug("ReparentNotify for window 0x%x\n", client->window);
client_unmanage(client);
break;
it can happen now when the window is on
another desktop, but we still don't
want it! */
- client_activate(client, FALSE, TRUE);
+ client_activate(client, FALSE, TRUE, TRUE, TRUE);
break;
case ClientMessage:
/* validate cuz we query stuff off the client here */
ob_debug_type(OB_DEBUG_APP_BUGS,
"_NET_ACTIVE_WINDOW message for window %s is "
"missing source indication\n");
- client_activate(client, FALSE,
+ client_activate(client, FALSE, TRUE, TRUE,
(e->xclient.data.l[0] == 0 ||
e->xclient.data.l[0] == 2));
} else if (msgtype == prop_atoms.net_wm_moveresize) {
case PropertyNotify:
/* validate cuz we query stuff off the client here */
if (!client_validate(client)) break;
-
+
/* compress changes to a single property into a single change */
while (XCheckTypedWindowEvent(ob_display, client->window,
e->type, &ce)) {
#ifdef SHAPE
if (extensions_shape && e->type == extensions_shape_event_basep) {
client->shaped = ((XShapeEvent*)e)->shaped;
- frame_adjust_area(client->frame, FALSE, TRUE, FALSE);
+ frame_adjust_shape(client->frame);
}
#endif
}
menu_frame_select(e->frame, NULL, FALSE);
}
break;
- case MotionNotify:
- if ((e = menu_entry_frame_under(ev->xmotion.x_root,
+ case MotionNotify:
+ if ((e = menu_entry_frame_under(ev->xmotion.x_root,
ev->xmotion.y_root)))
if (!(f = find_active_menu()) ||
f == e->frame ||