window: Pass the grab timestamp when updating the resize grab

Since XChangeActivePointerGrab doesn't have a direct equivalent
in XI2, we need to make sure we don't re-grab with a newer
tiemstamp.
This commit is contained in:
Jasper St. Pierre 2012-12-13 17:06:00 -05:00
parent 8931b8026e
commit c90765370d
3 changed files with 4 additions and 4 deletions

View File

@ -211,6 +211,7 @@ struct _MetaDisplay
GList* grab_old_window_stacking; GList* grab_old_window_stacking;
MetaEdgeResistanceData *grab_edge_resistance_data; MetaEdgeResistanceData *grab_edge_resistance_data;
unsigned int grab_last_user_action_was_snap; unsigned int grab_last_user_action_was_snap;
guint32 grab_timestamp;
/* we use property updates as sentinels for certain window focus events /* we use property updates as sentinels for certain window focus events
* to avoid some race conditions on EnterNotify events * to avoid some race conditions on EnterNotify events

View File

@ -3873,6 +3873,7 @@ meta_display_begin_grab_op (MetaDisplay *display,
#endif #endif
display->grab_frame_action = frame_action; display->grab_frame_action = frame_action;
display->grab_resize_unmaximize = 0; display->grab_resize_unmaximize = 0;
display->grab_timestamp = timestamp;
if (display->grab_resize_timeout_id) if (display->grab_resize_timeout_id)
{ {
@ -4058,6 +4059,7 @@ meta_display_end_grab_op (MetaDisplay *display,
} }
#endif /* HAVE_XSYNC */ #endif /* HAVE_XSYNC */
display->grab_timestamp = 0;
display->grab_window = NULL; display->grab_window = NULL;
display->grab_screen = NULL; display->grab_screen = NULL;
display->grab_xwindow = None; display->grab_xwindow = None;

View File

@ -9866,15 +9866,12 @@ meta_window_update_keyboard_resize (MetaWindow *window,
if (update_cursor) if (update_cursor)
{ {
guint32 timestamp;
/* FIXME: Using CurrentTime is really bad mojo */
timestamp = CurrentTime;
meta_display_set_grab_op_cursor (window->display, meta_display_set_grab_op_cursor (window->display,
NULL, NULL,
window->display->grab_op, window->display->grab_op,
TRUE, TRUE,
window->display->grab_xwindow, window->display->grab_xwindow,
timestamp); window->display->grab_timestamp);
} }
} }