diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-07-10 22:53:49 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-07-10 22:53:49 +0000 |
| commit | d755060a098513247e8132f2b9f69cc087be7174 (patch) | |
| tree | b77fa230bb6388887cee485991c234fa9d7fb9f5 /openbox | |
| parent | 9577bb9a65c4c94815422f20d24b6093419b04da (diff) | |
only wait 1/2 a second for sync reply
Diffstat (limited to 'openbox')
| -rw-r--r-- | openbox/moveresize.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/openbox/moveresize.c b/openbox/moveresize.c index da4d92f9..9ccfbd6a 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) { |
