X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=c3fab03e19819ecb56273a60bdf848e56bb9b7f4;hb=d3ca984e93e4830c4237c44323d13d53dfb9c707;hp=759c2e22695412926f9b5eeffa45f0acb9ec585b;hpb=5316bc6c3e3329dc620cfd15d472ed5d376100f8;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 759c2e22..c3fab03e 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -211,6 +211,13 @@ static Window event_get_window(XEvent *e) window = None; } } else +#endif +#ifdef SYNC + if (extensions_sync && + e->type == extensions_sync_event_basep + XSyncAlarmNotify) + { + window = None; + } else #endif window = e->xany.window; } @@ -244,6 +251,13 @@ static void event_set_curtime(XEvent *e) t = e->xcrossing.time; break; default: +#ifdef SYNC + if (extensions_sync && + e->type == extensions_sync_event_basep + XSyncAlarmNotify) + { + t = ((XSyncAlarmNotifyEvent*)e)->time; + } +#endif /* if more event types are anticipated, get their timestamp explicitly */ break; @@ -537,6 +551,15 @@ static void event_process(const XEvent *ec, gpointer data) e->xconfigurerequest.value_mask, &xwc); xerror_set_ignore(FALSE); } +#ifdef SYNC + else if (extensions_sync && + e->type == extensions_sync_event_basep + XSyncAlarmNotify) + { + XSyncAlarmNotifyEvent *se = (XSyncAlarmNotifyEvent*)e; + if (se->alarm == moveresize_alarm && moveresize_in_progress) + moveresize_event(e); + } +#endif /* user input (action-bound) events */ if (e->type == ButtonPress || e->type == ButtonRelease || @@ -738,9 +761,9 @@ static void event_handle_client(ObClient *client, XEvent *e) if (keyboard_interactively_grabbed()) break; if (config_focus_follow && config_focus_delay && - /* leaveinferior events can happen when the mouse goes onto the - window's border and then into the window before the delay - is up */ + /* leave inferior events can happen when the mouse goes onto + the window's border and then into the window before the + delay is up */ e->xcrossing.detail != NotifyInferior) { ob_main_loop_timeout_remove_data(ob_main_loop, @@ -787,7 +810,9 @@ static void event_handle_client(ObClient *client, XEvent *e) if (keyboard_interactively_grabbed()) break; if (e->xcrossing.mode == NotifyGrab || - e->xcrossing.mode == NotifyUngrab) + e->xcrossing.mode == NotifyUngrab || + /*ignore enters when we're already in the window */ + e->xcrossing.detail == NotifyInferior) { ob_debug_type(OB_DEBUG_FOCUS, "%sNotify mode %d detail %d on %lx IGNORED\n", @@ -1172,9 +1197,17 @@ static void event_handle_client(ObClient *client, XEvent *e) else if (msgtype == prop_atoms.net_wm_user_time) { client_update_user_time(client); } +#ifdef SYNC + else if (msgtype == prop_atoms.net_wm_sync_request_counter) { + client_update_sync_request_counter(client); + } +#endif else if (msgtype == prop_atoms.sm_client_id) { client_update_sm_client_id(client); } + case ColormapNotify: + client_update_colormap(client, e->xcolormap.colormap); + break; default: ; #ifdef SHAPE