mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 09:30:45 -05:00
Handle spontaneous frames during a resize
During a resize, if we don't have a configure pending, then a counter change shouldn't trigger anything other than the normal drawing: it's just a spontaneous frame from the application. So don't try to update the position or remove our timeout ID. https://bugzilla.gnome.org/show_bug.cgi?id=696091
This commit is contained in:
parent
af01ddaf5d
commit
7a8c45dda8
@ -9638,19 +9638,14 @@ meta_window_update_sync_request_counter (MetaWindow *window,
|
|||||||
if (window == window->display->grab_window &&
|
if (window == window->display->grab_window &&
|
||||||
meta_grab_op_is_resizing (window->display->grab_op) &&
|
meta_grab_op_is_resizing (window->display->grab_op) &&
|
||||||
new_counter_value >= window->sync_request_wait_serial &&
|
new_counter_value >= window->sync_request_wait_serial &&
|
||||||
(!window->extended_sync_request_counter || new_counter_value % 2 == 0))
|
(!window->extended_sync_request_counter || new_counter_value % 2 == 0) &&
|
||||||
|
window->sync_request_timeout_id)
|
||||||
{
|
{
|
||||||
meta_topic (META_DEBUG_RESIZING,
|
meta_topic (META_DEBUG_RESIZING,
|
||||||
"Alarm event received last motion x = %d y = %d\n",
|
"Alarm event received last motion x = %d y = %d\n",
|
||||||
window->display->grab_latest_motion_x,
|
window->display->grab_latest_motion_x,
|
||||||
window->display->grab_latest_motion_y);
|
window->display->grab_latest_motion_y);
|
||||||
|
|
||||||
/* If sync was previously disabled, turn it back on and hope
|
|
||||||
* the application has come to its senses (maybe it was just
|
|
||||||
* busy with a pagefault or a long computation).
|
|
||||||
*/
|
|
||||||
window->disable_sync = FALSE;
|
|
||||||
|
|
||||||
g_source_remove (window->sync_request_timeout_id);
|
g_source_remove (window->sync_request_timeout_id);
|
||||||
window->sync_request_timeout_id = 0;
|
window->sync_request_timeout_id = 0;
|
||||||
|
|
||||||
@ -9663,6 +9658,12 @@ meta_window_update_sync_request_counter (MetaWindow *window,
|
|||||||
TRUE);
|
TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If sync was previously disabled, turn it back on and hope
|
||||||
|
* the application has come to its senses (maybe it was just
|
||||||
|
* busy with a pagefault or a long computation).
|
||||||
|
*/
|
||||||
|
window->disable_sync = FALSE;
|
||||||
|
|
||||||
if (needs_frame_drawn)
|
if (needs_frame_drawn)
|
||||||
meta_compositor_queue_frame_drawn (window->display->compositor, window,
|
meta_compositor_queue_frame_drawn (window->display->compositor, window,
|
||||||
no_delay_frame);
|
no_delay_frame);
|
||||||
|
Loading…
Reference in New Issue
Block a user