From d755060a098513247e8132f2b9f69cc087be7174 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 10 Jul 2007 22:53:49 +0000 Subject: [PATCH] only wait 1/2 a second for sync reply --- openbox/moveresize.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/openbox/moveresize.c b/openbox/moveresize.c index da4d92f..9ccfbd6 100644 --- a/openbox/moveresize.c +++ b/openbox/moveresize.c @@ -65,6 +65,9 @@ static ObPopup *popup = NULL; static void do_edge_warp(gint x, gint y); static void cancel_edge_warp(); +#ifdef SYNC +static gboolean sync_timeout_func(gpointer data); +#endif static void client_dest(ObClient *client, gpointer data) { @@ -251,6 +254,8 @@ void moveresize_end(gboolean cancel) XSyncDestroyAlarm(ob_display, moveresize_alarm); moveresize_alarm = None; } + + ob_main_loop_timeout_remove(ob_main_loop, sync_timeout_func); #endif client_configure(moveresize_client, @@ -286,6 +291,7 @@ static void do_move(gboolean keyboard, gint keydist) moveresize_client->frame->area.y); } + static void do_resize() { gint x, y, w, h, lw, lh; @@ -333,6 +339,11 @@ static void do_resize() NoEventMask, &ce); waiting_for_sync = TRUE; + + ob_main_loop_timeout_remove(ob_main_loop, sync_timeout_func); + ob_main_loop_timeout_add(ob_main_loop, G_USEC_PER_SEC / 2, + sync_timeout_func, + NULL, NULL, NULL); } #endif @@ -350,6 +361,16 @@ static void do_resize() moveresize_client->logical_size.height); } +#ifdef SYNC +static gboolean sync_timeout_func(gpointer data) +{ + waiting_for_sync = FALSE; /* we timed out waiting for our sync... */ + do_resize(); /* ...so let any pending resizes through */ + + return FALSE; /* don't repeat */ +} +#endif + static void calc_resize(gboolean keyboard, gint keydist, gint *dw, gint *dh, ObCorner cor) { -- 1.9.1