]> Pileus Git - ~andy/gtk/commitdiff
Enable XI2 by default
authorCarlos Garnacho <carlosg@gnome.org>
Sun, 12 Dec 2010 23:55:19 +0000 (00:55 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 15 Dec 2010 02:17:58 +0000 (03:17 +0100)
gdk_enable_multidevice() has been replaced with gdk_disable_multidevice(),
so applications may call that function if they want to go back at the
previous behavior.

There would be usually little reasons to call that function, unless the
application is doing X calls itself that count on old fashioned core
devices.

gdk/gdk.c
gdk/gdk.symbols
gdk/gdkdevicemanager.c
gdk/gdkglobals.c
gdk/gdkinternals.h
gdk/x11/gdkdevicemanager-x11.c

index 003ad3484757731b635fcc59942a935de3ac3662..1b75f7f2a5acdcdcbd6e51fb00123a8c8d730e9d 100644 (file)
--- a/gdk/gdk.c
+++ b/gdk/gdk.c
@@ -1063,24 +1063,24 @@ gdk_set_program_class (const char *program_class)
 }
 
 /**
- * gdk_enable_multidevice:
+ * gdk_disable_multidevice:
  *
- * Enables multidevice support in GDK. This call must happen prior
+ * Disables multidevice support in GDK. This call must happen prior
  * to gdk_display_open(), gtk_init(), gtk_init_with_args() or
  * gtk_init_check() in order to take effect.
  *
- * Note that individual #GdkWindow<!-- -->s still need to explicitly
- * enable multidevice awareness through gdk_window_set_support_multidevice().
- *
- * This function must be called before initializing GDK.
+ * Most common GTK+ applications won't ever need to call this. Only
+ * applications that do mixed GDK/Xlib calls could want to disable
+ * multidevice support if such Xlib code deals with input devices in
+ * any way and doesn't observe the presence of XInput 2.
  *
  * Since: 3.0
  **/
 void
-gdk_enable_multidevice (void)
+gdk_disable_multidevice (void)
 {
   if (gdk_initialized)
     return;
 
-  _gdk_enable_multidevice = TRUE;
+  _gdk_disable_multidevice = TRUE;
 }
index df8cff676e7150d6528c2d13122150877e231839..13d234930654806b6669fb16443ec3b69e641f3a 100644 (file)
@@ -80,6 +80,7 @@ gdk_device_set_source
 gdk_devices_list
 gdk_device_type_get_type G_GNUC_CONST
 gdk_device_ungrab
+gdk_disable_multidevice
 gdk_display_add_client_message_filter
 gdk_display_beep
 gdk_display_close
@@ -157,7 +158,6 @@ gdk_drag_protocol_get_type G_GNUC_CONST
 gdk_drag_status
 gdk_drop_finish
 gdk_drop_reply
-gdk_enable_multidevice
 gdk_error_trap_pop
 gdk_error_trap_pop_ignored
 gdk_error_trap_push
index 56499bcb64a3db8cc8a504af9ec6bbdb4fb8ce57..fced01ff491d20722cdaa6a0dac5cffbbaa55ab4 100644 (file)
  *                    additional features such as sub-pixel positioning information and additional
  *                    device-dependent information.
  * @Title: GdkDeviceManager
- * @See_also: #GdkDevice, #GdkEvent, gdk_enable_multidevice()
+ * @See_also: #GdkDevice, #GdkEvent, gdk_disable_multidevice()
  *
- * By default, GDK supports the traditional single keyboard/pointer input scheme (Plus additional
- * special input devices such as tablets. In short, backwards compatible with 2.X). Since version 3.0,
- * if gdk_enable_multidevice() is called before gdk_display_open() and the platform supports it, GDK
- * will be aware of multiple keyboard/pointer pairs interacting simultaneously with the user interface.
+ * By default, and if the platform supports it, GDK is aware of multiple keyboard/pointer pairs
+ * and multitouch devices, this behavior can be changed by calling gdk_disable_multidevice()
+ * before gdk_display_open(), although there would be rarely a reason to do that. For a widget
+ * or window to be dealt as multipointer aware, gdk_window_set_support_multidevice() or
+ * gtk_widget_set_support_multidevice() must have been called on it.
  *
  * Conceptually, in multidevice mode there are 2 device types, virtual devices (or master devices)
  * are represented by the pointer cursors and keyboard foci that are seen on the screen. physical
index 5413886694bfa1eda9320ab5532e17f313bb9e81..2a572981dc7bdb676232fc5764f8b68babf47c98 100644 (file)
@@ -38,6 +38,6 @@ gchar              *_gdk_display_name = NULL;
 gint                _gdk_screen_number = -1;
 gchar              *_gdk_display_arg_name = NULL;
 gboolean            _gdk_native_windows = FALSE;
-gboolean            _gdk_enable_multidevice = FALSE;
+gboolean            _gdk_disable_multidevice = FALSE;
 
 GSList             *_gdk_displays = NULL;
index b5f5a57fa3fcbbeea3ebe913abfdebe83724296f..8ade0c13a30a064358b4656b0b159bfb094bf243 100644 (file)
@@ -272,7 +272,7 @@ extern GSList    *_gdk_displays;
 extern gchar     *_gdk_display_name;
 extern gint       _gdk_screen_number;
 extern gchar     *_gdk_display_arg_name;
-extern gboolean   _gdk_enable_multidevice;
+extern gboolean   _gdk_disable_multidevice;
 
 void      _gdk_events_queue  (GdkDisplay *display);
 GdkEvent* _gdk_event_unqueue (GdkDisplay *display);
index a6bb50b7c35bb339912a756ae18e17b76f97dc86..4a6953d3befce1a0176c163ccd4119e431abf88f 100644 (file)
@@ -48,7 +48,7 @@ _gdk_device_manager_new (GdkDisplay *display)
           major = 2;
           minor = 0;
 
-          if (_gdk_enable_multidevice &&
+          if (!_gdk_disable_multidevice &&
               XIQueryVersion (xdisplay, &major, &minor) != BadRequest)
             {
               GdkDeviceManagerXI2 *device_manager_xi2;