From 68ba45bcb2f758b65892abc6870d17b62f8440bf Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Thu, 12 Mar 2015 18:41:57 +0100 Subject: [PATCH] Revert "x11: Cut some slack to clients doing slow draws/resizes" As per https://bugzilla.gnome.org/show_bug.cgi?id=740424#c12 This reverts commit 94c3c8f412ce997f1ff5fadb6f9a78f7ba5891c3. --- src/x11/window-x11.c | 70 +++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 43 deletions(-) diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c index 993f99d3e..ec3656ec0 100644 --- a/src/x11/window-x11.c +++ b/src/x11/window-x11.c @@ -949,23 +949,6 @@ sync_request_timeout (gpointer data) return FALSE; } -static void -reset_sync_request_timeout (MetaWindow *window) -{ - if (window->sync_request_timeout_id != 0) - g_source_remove (window->sync_request_timeout_id); - - /* We give the window 1 sec to respond to _NET_WM_SYNC_REQUEST; - * if this time expires, we consider the window unresponsive - * and resize it unsynchonized. - */ - window->sync_request_timeout_id = g_timeout_add (1000, - sync_request_timeout, - window); - g_source_set_name_by_id (window->sync_request_timeout_id, - "[mutter] sync_request_timeout"); -} - static void send_sync_request (MetaWindow *window) { @@ -1004,7 +987,15 @@ send_sync_request (MetaWindow *window) XSendEvent (window->display->xdisplay, window->xwindow, False, 0, (XEvent*) &ev); - reset_sync_request_timeout (window); + /* We give the window 1 sec to respond to _NET_WM_SYNC_REQUEST; + * if this time expires, we consider the window unresponsive + * and resize it unsynchonized. + */ + window->sync_request_timeout_id = g_timeout_add (1000, + sync_request_timeout, + window); + g_source_set_name_by_id (window->sync_request_timeout_id, + "[mutter] sync_request_timeout"); meta_compositor_sync_updates_frozen (window->display->compositor, window); } @@ -3347,34 +3338,27 @@ meta_window_x11_update_sync_request_counter (MetaWindow *window, window->sync_request_serial = new_counter_value; meta_compositor_sync_updates_frozen (window->display->compositor, window); - if (window->sync_request_timeout_id) + if (window == window->display->grab_window && + meta_grab_op_is_resizing (window->display->grab_op) && + new_counter_value >= window->sync_request_wait_serial && + (!window->extended_sync_request_counter || new_counter_value % 2 == 0) && + window->sync_request_timeout_id) { - if (new_counter_value < window->sync_request_wait_serial) - { - reset_sync_request_timeout (window); - } - else if (!window->extended_sync_request_counter || new_counter_value % 2 == 0) - { - g_source_remove (window->sync_request_timeout_id); - window->sync_request_timeout_id = 0; + meta_topic (META_DEBUG_RESIZING, + "Alarm event received last motion x = %d y = %d\n", + window->display->grab_latest_motion_x, + window->display->grab_latest_motion_y); - if (window == window->display->grab_window && - meta_grab_op_is_resizing (window->display->grab_op)) - { - meta_topic (META_DEBUG_RESIZING, - "Alarm event received last motion x = %d y = %d\n", - window->display->grab_latest_motion_x, - window->display->grab_latest_motion_y); + g_source_remove (window->sync_request_timeout_id); + window->sync_request_timeout_id = 0; - /* This means we are ready for another configure; - * no pointer round trip here, to keep in sync */ - meta_window_update_resize (window, - window->display->grab_last_user_action_was_snap, - window->display->grab_latest_motion_x, - window->display->grab_latest_motion_y, - TRUE); - } - } + /* This means we are ready for another configure; + * no pointer round trip here, to keep in sync */ + meta_window_update_resize (window, + window->display->grab_last_user_action_was_snap, + window->display->grab_latest_motion_x, + window->display->grab_latest_motion_y, + TRUE); } /* If sync was previously disabled, turn it back on and hope