From aa3685d16af4a565eecdc39047ee8d140ef5cd99 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 14 Jun 2010 13:52:21 -0400 Subject: [PATCH] add XFlush to g_timeout callbacks GMainLoop doesn't cause an flush to occur after handling a timeout. --- openbox/dock.c | 2 ++ openbox/event.c | 2 ++ openbox/frame.c | 3 ++- openbox/keyboard.c | 1 + openbox/menuframe.c | 2 ++ openbox/moveresize.c | 3 +++ openbox/ping.c | 1 + openbox/popup.c | 1 + openbox/screen.c | 1 + openbox/startupnotify.c | 2 ++ 10 files changed, 17 insertions(+), 1 deletion(-) diff --git a/openbox/dock.c b/openbox/dock.c index fa088c6b..64406d9e 100644 --- a/openbox/dock.c +++ b/openbox/dock.c @@ -632,6 +632,7 @@ static gboolean hide_timeout(gpointer data) hide_timeout_id = 0; + XFlush(obt_display); return FALSE; /* don't repeat */ } @@ -643,6 +644,7 @@ static gboolean show_timeout(gpointer data) show_timeout_id = 0; + XFlush(obt_display); return FALSE; /* don't repeat */ } diff --git a/openbox/event.c b/openbox/event.c index 9701ad62..46baa6dd 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -2079,6 +2079,7 @@ static gboolean focus_delay_func(gpointer data) if (client_focus(d->client) && config_focus_raise) stacking_raise(CLIENT_AS_WINDOW(d->client)); event_curtime = old; + XFlush(obt_display); return FALSE; /* no repeat */ } @@ -2091,6 +2092,7 @@ static gboolean unfocus_delay_func(gpointer data) event_curserial = d->serial; focus_nothing(); event_curtime = old; + XFlush(obt_display); return FALSE; /* no repeat */ } diff --git a/openbox/frame.c b/openbox/frame.c index 1623a834..9c065c7d 100644 --- a/openbox/frame.c +++ b/openbox/frame.c @@ -1663,6 +1663,7 @@ static gboolean flash_timeout(gpointer data) self->focused = FALSE; } + XFlush(obt_display); return TRUE; /* go again */ } @@ -1760,11 +1761,11 @@ static gboolean frame_animate_iconify(gpointer p) } XMoveResizeWindow(obt_display, self->window, x, y, w, h); - XFlush(obt_display); if (time == 0) frame_end_iconify_animation(self); + XFlush(obt_display); return time > 0; /* repeat until we're out of time */ } diff --git a/openbox/keyboard.c b/openbox/keyboard.c index 5b8016dd..95433acc 100644 --- a/openbox/keyboard.c +++ b/openbox/keyboard.c @@ -66,6 +66,7 @@ static void grab_keys(gboolean grab) static gboolean chain_timeout(gpointer data) { keyboard_reset_chains(0); + XFlush(obt_display); return FALSE; /* don't repeat */ } diff --git a/openbox/menuframe.c b/openbox/menuframe.c index 5708cdf8..fafc0f79 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -1158,6 +1158,7 @@ static gboolean submenu_show_timeout(gpointer data) { g_assert(menu_frame_visible); menu_entry_frame_show_submenu((ObMenuEntryFrame*)data); + XFlush(obt_display); return FALSE; } @@ -1165,6 +1166,7 @@ static gboolean submenu_hide_timeout(gpointer data) { g_assert(menu_frame_visible); menu_frame_hide((ObMenuFrame*)data); + XFlush(obt_display); return FALSE; } diff --git a/openbox/moveresize.c b/openbox/moveresize.c index 2f68395a..13f39df2 100644 --- a/openbox/moveresize.c +++ b/openbox/moveresize.c @@ -462,6 +462,8 @@ static gboolean sync_timeout_func(gpointer data) ++waiting_for_sync; /* we timed out waiting for our sync... */ do_resize(); /* ...so let any pending resizes through */ + XFlush(obt_display); + if (waiting_for_sync > SYNC_TIMEOUTS) { sync_timer = 0; return FALSE; /* don't repeat */ @@ -616,6 +618,7 @@ static gboolean edge_warp_delay_func(gpointer data) } edge_warp_odd = !edge_warp_odd; + XFlush(obt_display); return TRUE; /* do repeat ! */ } diff --git a/openbox/ping.c b/openbox/ping.c index 7cb47669..90c41829 100644 --- a/openbox/ping.c +++ b/openbox/ping.c @@ -148,6 +148,7 @@ static gboolean ping_timeout(gpointer data) ++t->waiting; + XFlush(obt_display); return TRUE; /* repeat */ } diff --git a/openbox/popup.c b/openbox/popup.c index e6e1ec5a..8ff8c533 100644 --- a/openbox/popup.c +++ b/openbox/popup.c @@ -148,6 +148,7 @@ static gboolean popup_show_timeout(gpointer data) self->delay_mapped = FALSE; self->delay_timer = 0; + XFlush(obt_display); return FALSE; /* don't repeat */ } diff --git a/openbox/screen.c b/openbox/screen.c index 353d2de0..e3ad8612 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -940,6 +940,7 @@ static gboolean hide_desktop_popup_func(gpointer data) { pager_popup_hide(desktop_popup); desktop_popup_timer = 0; + XFlush(obt_display); return FALSE; /* don't repeat */ } diff --git a/openbox/startupnotify.c b/openbox/startupnotify.c index 16654cfd..06fbb6c8 100644 --- a/openbox/startupnotify.c +++ b/openbox/startupnotify.c @@ -116,6 +116,7 @@ static gboolean sn_wait_timeout(gpointer data) SnStartupSequence *seq = data; sn_waits = g_slist_remove(sn_waits, seq); screen_set_root_cursor(); + XFlush(obt_display); return FALSE; /* don't repeat */ } @@ -228,6 +229,7 @@ static gboolean sn_launch_wait_timeout(gpointer data) { SnLauncherContext *sn = data; sn_launcher_context_complete(sn); + XFlush(obt_display); return FALSE; /* don't repeat */ } -- 2.45.2