[mutter] frames: Don't make a round trip to the X server for every MotionNotify



commit 799de4f0f48fc4d3f67df9f4ad2b31baf5296d91
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Sun Jul 13 17:34:08 2014 -0400

    frames: Don't make a round trip to the X server for every MotionNotify
    
    Instead, simply use the coordinates that were passed to us from the
    MotionNotify event.

 src/ui/frames.c |    5 +----
 src/ui/ui.c     |    2 ++
 2 files changed, 3 insertions(+), 4 deletions(-)
---
diff --git a/src/ui/frames.c b/src/ui/frames.c
index 743e90c..1b0bc21 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -1579,7 +1579,6 @@ meta_frames_motion_notify_event     (GtkWidget           *widget,
   MetaUIFrame *frame;
   MetaFrames *frames;
   MetaFrameControl control;
-  int x, y;
 
   frames = META_FRAMES (widget);
   frame = meta_frames_lookup_window (frames, GDK_WINDOW_XID (event->window));
@@ -1588,9 +1587,7 @@ meta_frames_motion_notify_event     (GtkWidget           *widget,
 
   frames->last_motion_frame = frame;
 
-  gdk_window_get_device_position (frame->window, event->device,
-                                  &x, &y, NULL);
-  control = get_control (frames, frame, x, y);
+  control = get_control (frames, frame, event->x, event->y);
 
   if (frame->button_state == META_BUTTON_STATE_PRESSED)
     {
diff --git a/src/ui/ui.c b/src/ui/ui.c
index dc2f4a2..f018fd8 100644
--- a/src/ui/ui.c
+++ b/src/ui/ui.c
@@ -226,6 +226,8 @@ maybe_redirect_mouse_event (XEvent *xevent)
       gevent = gdk_event_new (GDK_MOTION_NOTIFY);
       gevent->motion.window = g_object_ref (gdk_window);
       gevent->motion.time = xev_d->time;
+      gevent->motion.x = xev_d->event_x;
+      gevent->motion.y = xev_d->event_y;
       gevent->motion.x_root = xev_d->root_x;
       gevent->motion.y_root = xev_d->root_y;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]