diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-09-03 21:18:19 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-09-03 21:18:19 +0000 |
| commit | f78b849af2667b19bdda4dd53dbe938d85312820 (patch) | |
| tree | 20890b0c622279146a88471fab8bf0ef7d8df6a6 /openbox | |
| parent | 792d3e7a70ec5f0502d748dc96dc9b13b7c3971f (diff) | |
use the ob_main_loop_timeout_remove_data to only remove one timer
Diffstat (limited to 'openbox')
| -rw-r--r-- | openbox/event.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/openbox/event.c b/openbox/event.c index e3efb289..d7c80949 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -645,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; @@ -695,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); @@ -1176,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); } } |
