[gtk+] Pass group state to _gdk_x11_device_xi2_translate_state



commit d4c1dbe3d72df9a6a9cd10ed61987ac25dd6dc57
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Feb 4 21:01:52 2011 -0500

    Pass group state to _gdk_x11_device_xi2_translate_state
    
    This will be necessary to make groups work with XI2.

 gdk/x11/gdkdevice-xi2.c        |    7 ++++---
 gdk/x11/gdkdevicemanager-xi2.c |   10 +++++-----
 gdk/x11/gdkprivate-x11.h       |    3 ++-
 3 files changed, 11 insertions(+), 9 deletions(-)
---
diff --git a/gdk/x11/gdkdevice-xi2.c b/gdk/x11/gdkdevice-xi2.c
index b49cbaa..a3700de 100644
--- a/gdk/x11/gdkdevice-xi2.c
+++ b/gdk/x11/gdkdevice-xi2.c
@@ -361,7 +361,7 @@ gdk_x11_device_xi2_query_state (GdkDevice        *device,
     *win_y = (gint) xwin_y;
 
   if (mask)
-    *mask = _gdk_x11_device_xi2_translate_state (&mod_state, &button_state);
+    *mask = _gdk_x11_device_xi2_translate_state (&mod_state, &button_state, &group_state);
 
   free (button_state.mask);
 
@@ -602,7 +602,7 @@ gdk_x11_device_xi2_window_at_position (GdkDevice       *device,
     *win_y = (window) ? (gint) xwin_y : -1;
 
   if (mask)
-    *mask = _gdk_x11_device_xi2_translate_state (&mod_state, &button_state);
+    *mask = _gdk_x11_device_xi2_translate_state (&mod_state, &button_state, &group_state);
 
   free (button_state.mask);
 
@@ -685,7 +685,8 @@ _gdk_x11_device_xi2_translate_event_mask (GdkEventMask  event_mask,
 
 guint
 _gdk_x11_device_xi2_translate_state (XIModifierState *mods_state,
-                                     XIButtonState   *buttons_state)
+                                     XIButtonState   *buttons_state,
+                                     XIGroupState    *group_state)
 {
   guint state = 0;
 
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index 33cd1ae..16de055 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -1017,7 +1017,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
         event->key.window = window;
 
         event->key.time = xev->time;
-        event->key.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons);
+        event->key.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);
         event->key.group = _gdk_x11_get_group_for_state (display, event->key.state);
 
         event->key.hardware_keycode = xev->detail;
@@ -1095,7 +1095,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
                                                      GUINT_TO_POINTER (xev->sourceid));
                 gdk_event_set_source_device (event, source_device);
 
-                event->scroll.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons);
+                event->scroll.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);
                 break;
               }
             /* else (XI_ButtonRelease) fall thru */
@@ -1131,7 +1131,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
                 gdk_device_get_axis (device, event->button.axes, GDK_AXIS_Y, &event->button.y);
               }
 
-            event->button.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons);
+            event->button.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);
             event->button.button = xev->detail;
           }
 
@@ -1167,7 +1167,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
                                              GUINT_TO_POINTER (xev->sourceid));
         gdk_event_set_source_device (event, source_device);
 
-        event->motion.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons);
+        event->motion.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);
 
         /* There doesn't seem to be motion hints in XI */
         event->motion.is_hint = FALSE;
@@ -1216,7 +1216,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
 
         event->crossing.mode = translate_crossing_mode (xev->mode);
         event->crossing.detail = translate_notify_type (xev->detail);
-        event->crossing.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons);
+        event->crossing.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);
       }
       break;
     case XI_FocusIn:
diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h
index f3b8a8c..e708464 100644
--- a/gdk/x11/gdkprivate-x11.h
+++ b/gdk/x11/gdkprivate-x11.h
@@ -241,7 +241,8 @@ void _gdk_x11_device_xi_translate_axes     (GdkDevice *device,
 guchar * _gdk_x11_device_xi2_translate_event_mask (GdkEventMask     event_mask,
                                                    gint            *len);
 guint    _gdk_x11_device_xi2_translate_state      (XIModifierState *mods_state,
-                                                   XIButtonState   *buttons_state);
+                                                   XIButtonState   *buttons_state,
+                                                   XIGroupState    *group_state);
 
 void     _gdk_x11_event_translate_keyboard_string (GdkEventKey *event);
 



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