[mutter] Remove some server calls for core devices
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] Remove some server calls for core devices
- Date: Tue, 8 Jan 2013 21:15:34 +0000 (UTC)
commit 3a3be74e37048a33fb29b355aff99a5cc7f75419
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Sun Dec 16 21:47:11 2012 -0500
Remove some server calls for core devices
These were missed in the first porting.
https://bugzilla.gnome.org/show_bug.cgi?id=691363
src/core/display.c | 16 +++++++----
src/core/keybindings.c | 23 +++++++++-------
src/core/screen.c | 64 +++++++++++++++++++++++++++++------------------
src/core/window.c | 37 +++++++++++++++------------
4 files changed, 82 insertions(+), 58 deletions(-)
---
diff --git a/src/core/display.c b/src/core/display.c
index 8356201..a236658 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -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 ||
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 223d670..cd980d9 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -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;
diff --git a/src/core/screen.c b/src/core/screen.c
index f808243..7a39496 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -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++)
diff --git a/src/core/window.c b/src/core/window.c
index 829e12d..b2db85e 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -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)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]