all repos — openbox @ bf259be653b9c37c79f9cd8ababffe225857ce9f

openbox fork - make it a bit more like ryudo

fixes from commit 0ce14a727968736e57fb3fabba3794b46903875f
the xsync was needed to get the right serial for the end of the ignore range
Dana Jansens danakj@orodu.net
commit

bf259be653b9c37c79f9cd8ababffe225857ce9f

parent

2b80e4e8ef56bb4fba614139601e750344418e5b

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

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

@@ -74,6 +74,7 @@ typedef struct

{ ObClient *client; Time time; + gulong serial; } ObFocusDelayData; typedef struct

@@ -246,7 +247,6 @@ if (t && event_last_user_time && event_time_after(event_last_user_time, t))

event_last_user_time = CurrentTime; event_curtime = t; - event_curserial = 0; } static void event_hack_mods(XEvent *e)

@@ -742,6 +742,7 @@

/* if something happens and it's not from an XEvent, then we don't know the time */ event_curtime = CurrentTime; + event_curserial = 0; } static void event_handle_root(XEvent *e)

@@ -816,6 +817,7 @@

data = g_new(ObFocusDelayData, 1); data->client = client; data->time = event_curtime; + data->serial = event_curserial; ob_main_loop_timeout_add(ob_main_loop, config_focus_delay * 1000,

@@ -825,6 +827,7 @@ } else {

ObFocusDelayData data; data.client = client; data.time = event_curtime; + data.serial = event_curserial; focus_delay_func(&data); } }

@@ -1912,6 +1915,7 @@ /* don't move focus and kill the menu or the move/resize */

if (menu_frame_visible || moveresize_in_progress) return FALSE; event_curtime = d->time; + event_curserial = d->serial; if (client_focus(d->client) && config_focus_raise) stacking_raise(CLIENT_AS_WINDOW(d->client)); event_curtime = old;

@@ -1924,7 +1928,7 @@ ob_main_loop_timeout_remove_data(ob_main_loop, focus_delay_func,

client, FALSE); } -void event_halt_focus_delay(gulong serial) +void event_halt_focus_delay() { /* ignore all enter events up till the event which caused this to occur */ if (event_curserial) event_ignore_enter_range(1, event_curserial);

@@ -1933,7 +1937,6 @@ }

gulong event_start_ignore_all_enters(void) { - /* increment the serial so we don't ignore events we weren't meant to */ XSync(ob_display, FALSE); return LastKnownRequestProcessed(ob_display); }

@@ -1959,6 +1962,7 @@ }

void event_end_ignore_all_enters(gulong start) { + XSync(ob_display, FALSE); event_ignore_enter_range(start, LastKnownRequestProcessed(ob_display)); }