Remove some server calls for core devices

These were missed in the first porting.

https://bugzilla.gnome.org/show_bug.cgi?id=691363
This commit is contained in:
Jasper St. Pierre 2012-12-16 21:47:11 -05:00
parent f57d64337b
commit 3a3be74e37
4 changed files with 82 additions and 58 deletions

View File

@ -1648,9 +1648,11 @@ window_focus_on_pointer_rest_callback (gpointer data) {
MetaScreen *screen;
MetaWindow *window;
Window root, child;
int root_x, root_y, x, y;
double root_x, root_y, x, y;
guint32 timestamp;
guint mask;
XIButtonState buttons;
XIModifierState mods;
XIGroupState group;
focus_data = data;
display = focus_data->display;
@ -1660,10 +1662,12 @@ window_focus_on_pointer_rest_callback (gpointer data) {
goto out;
meta_error_trap_push (display);
XQueryPointer (display->xdisplay,
screen->xroot,
&root, &child,
&root_x, &root_y, &x, &y, &mask);
XIQueryPointer (display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
screen->xroot,
&root, &child,
&root_x, &root_y, &x, &y,
&buttons, &mods, &group);
meta_error_trap_pop (display);
if (root_x != focus_data->pointer_x ||

View File

@ -1350,9 +1350,11 @@ primary_modifier_still_pressed (MetaDisplay *display,
unsigned int entire_binding_mask)
{
unsigned int primary_modifier;
int x, y, root_x, root_y;
double x, y, root_x, root_y;
Window root, child;
guint mask;
XIButtonState buttons;
XIModifierState mods;
XIGroupState group;
MetaScreen *random_screen;
Window random_xwindow;
@ -1360,18 +1362,19 @@ primary_modifier_still_pressed (MetaDisplay *display,
random_screen = display->screens->data;
random_xwindow = random_screen->no_focus_window;
XQueryPointer (display->xdisplay,
random_xwindow, /* some random window */
&root, &child,
&root_x, &root_y,
&x, &y,
&mask);
XIQueryPointer (display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
random_xwindow, /* some random window */
&root, &child,
&root_x, &root_y,
&x, &y,
&buttons, &mods, &group);
meta_topic (META_DEBUG_KEYBINDINGS,
"Primary modifier 0x%x full grab mask 0x%x current state 0x%x\n",
primary_modifier, entire_binding_mask, mask);
primary_modifier, entire_binding_mask, mods.effective);
if ((mask & primary_modifier) == 0)
if ((mods.effective & primary_modifier) == 0)
return FALSE;
else
return TRUE;

View File

@ -1963,24 +1963,29 @@ meta_screen_get_mouse_window (MetaScreen *screen,
{
MetaWindow *window;
Window root_return, child_return;
int root_x_return, root_y_return;
int win_x_return, win_y_return;
unsigned int mask_return;
double root_x_return, root_y_return;
double win_x_return, win_y_return;
XIButtonState buttons;
XIModifierState mods;
XIGroupState group;
if (not_this_one)
meta_topic (META_DEBUG_FOCUS,
"Focusing mouse window excluding %s\n", not_this_one->desc);
meta_error_trap_push (screen->display);
XQueryPointer (screen->display->xdisplay,
screen->xroot,
&root_return,
&child_return,
&root_x_return,
&root_y_return,
&win_x_return,
&win_y_return,
&mask_return);
XIQueryPointer (screen->display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
screen->xroot,
&root_return,
&child_return,
&root_x_return,
&root_y_return,
&win_x_return,
&win_y_return,
&buttons,
&mods,
&group);
meta_error_trap_pop (screen->display);
window = meta_stack_get_default_focus_window_at_point (screen->stack,
@ -2191,23 +2196,32 @@ meta_screen_get_current_monitor (MetaScreen *screen)
if (screen->display->monitor_cache_invalidated)
{
Window root_return, child_return;
int win_x_return, win_y_return;
unsigned int mask_return;
double win_x_return, win_y_return;
double root_x_return, root_y_return;
XIButtonState buttons;
XIModifierState mods;
XIGroupState group;
int i;
MetaRectangle pointer_position;
screen->display->monitor_cache_invalidated = FALSE;
XIQueryPointer (screen->display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
screen->xroot,
&root_return,
&child_return,
&root_x_return,
&root_y_return,
&win_x_return,
&win_y_return,
&buttons,
&mods,
&group);
pointer_position.x = root_x_return;
pointer_position.y = root_y_return;
pointer_position.width = pointer_position.height = 1;
XQueryPointer (screen->display->xdisplay,
screen->xroot,
&root_return,
&child_return,
&pointer_position.x,
&pointer_position.y,
&win_x_return,
&win_y_return,
&mask_return);
screen->last_monitor_index = 0;
for (i = 0; i < screen->n_monitor_infos; i++)

View File

@ -6670,28 +6670,30 @@ meta_window_client_message (MetaWindow *window,
*/
if (button == 0)
{
int x, y, query_root_x, query_root_y;
double x, y, query_root_x, query_root_y;
Window root, child;
guint mask;
XIButtonState buttons;
XIModifierState mods;
XIGroupState group;
/* The race conditions in this _NET_WM_MOVERESIZE thing
* are mind-boggling
*/
mask = 0;
meta_error_trap_push (window->display);
XQueryPointer (window->display->xdisplay,
window->xwindow,
&root, &child,
&query_root_x, &query_root_y,
&x, &y,
&mask);
XIQueryPointer (window->display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
window->xwindow,
&root, &child,
&query_root_x, &query_root_y,
&x, &y,
&buttons, &mods, &group);
meta_error_trap_pop (window->display);
if (mask & Button1Mask)
if (mods.effective & Button1Mask)
button = 1;
else if (mask & Button2Mask)
else if (mods.effective & Button2Mask)
button = 2;
else if (mask & Button3Mask)
else if (mods.effective & Button3Mask)
button = 3;
else
button = 0;
@ -9850,11 +9852,12 @@ warp_grab_pointer (MetaWindow *window,
meta_window_get_client_root_coords (window,
&display->grab_anchor_window_pos);
XWarpPointer (display->xdisplay,
None,
window->screen->xroot,
0, 0, 0, 0,
*x, *y);
XIWarpPointer (display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
None,
window->screen->xroot,
0, 0, 0, 0,
*x, *y);
if (meta_error_trap_pop_with_return (display) != Success)
{