X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=d7c80949c87d7944a5d5250fb99ca4988335b398;hb=4cbfe3eac0570679ae3a8e5c4df20e06d5418573;hp=88294cc7b3550cfa5178b94a3d4a69c910a8a31f;hpb=3f372aaebfb4d40947a25a6727559aac7e18e113;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 88294cc7..d7c80949 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -24,10 +24,6 @@ #include #include -#ifdef USE_LIBSN -# include -#endif - #ifdef HAVE_SYS_SELECT_H # include #endif @@ -96,18 +92,10 @@ static void ice_watch(IceConn conn, IcePointer data, Bool opening, } #endif -#ifdef USE_LIBSN -static void sn_handler(const XEvent *e, gpointer display) +void event_startup(gboolean reconfig) { - XEvent ec; - ec = *e; - sn_display_process_event(display, &ec); -} -#endif - + if (reconfig) return; -void event_startup() -{ mask_table_size = sizeof(mask_table) / sizeof(mask_table[0]); /* get lock masks that are defined by the display (not constant) */ @@ -139,15 +127,13 @@ void event_startup() IceAddConnectionWatch(ice_watch, NULL); #endif -#ifdef USE_LIBSN - ob_main_loop_x_add(ob_main_loop, sn_handler, ob_sn_display, NULL); -#endif - client_add_destructor(focus_delay_client_dest); } -void event_shutdown() +void event_shutdown(gboolean reconfig) { + if (reconfig) return; + client_remove_destructor(focus_delay_client_dest); XFreeModifiermap(modmap); } @@ -659,9 +645,11 @@ static void event_handle_client(ObClient *client, XEvent *e) case OB_FRAME_CONTEXT_FRAME: /* XXX if doing a 'reconfigure' make sure you kill this timer, maybe all timers.. */ - if (config_focus_delay) { + if (config_focus_delay && client == focus_delay_client) { + ob_main_loop_timeout_remove_data(ob_main_loop, + focus_delay_func, + focus_delay_client); focus_delay_client = NULL; - ob_main_loop_timeout_remove(ob_main_loop, focus_delay_func); } default: break; @@ -709,7 +697,7 @@ static void event_handle_client(ObClient *client, XEvent *e) ob_main_loop_timeout_add(ob_main_loop, config_focus_delay, focus_delay_func, - NULL, NULL); + client, NULL); focus_delay_client = client; } else client_focus(client); @@ -1190,7 +1178,8 @@ static void focus_delay_client_dest(gpointer data) { ObClient *c = data; if (c == focus_delay_client) { + ob_main_loop_timeout_remove_data(ob_main_loop, focus_delay_func, + focus_delay_client); focus_delay_client = NULL; - ob_main_loop_timeout_remove(ob_main_loop, focus_delay_func); } }