all repos — openbox @ f78b849af2667b19bdda4dd53dbe938d85312820

openbox fork - make it a bit more like ryudo

use the ob_main_loop_timeout_remove_data to only remove one timer
Dana Jansens danakj@orodu.net
commit

f78b849af2667b19bdda4dd53dbe938d85312820

parent

792d3e7a70ec5f0502d748dc96dc9b13b7c3971f

1 files changed, 7 insertions(+), 4 deletions(-)

jump to
M openbox/event.copenbox/event.c

@@ -645,9 +645,11 @@ break;

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 @@ if (config_focus_delay) {

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); } }