Enable XI2 by default

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.
This commit is contained in:
Carlos Garnacho
2010-12-13 00:55:19 +01:00
parent 66800aa212
commit c4a5c2ed4b
6 changed files with 18 additions and 17 deletions

View File

@ -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 * to gdk_display_open(), gtk_init(), gtk_init_with_args() or
* gtk_init_check() in order to take effect. * gtk_init_check() in order to take effect.
* *
* Note that individual #GdkWindow<!-- -->s still need to explicitly * Most common GTK+ applications won't ever need to call this. Only
* enable multidevice awareness through gdk_window_set_support_multidevice(). * applications that do mixed GDK/Xlib calls could want to disable
* * multidevice support if such Xlib code deals with input devices in
* This function must be called before initializing GDK. * any way and doesn't observe the presence of XInput 2.
* *
* Since: 3.0 * Since: 3.0
**/ **/
void void
gdk_enable_multidevice (void) gdk_disable_multidevice (void)
{ {
if (gdk_initialized) if (gdk_initialized)
return; return;
_gdk_enable_multidevice = TRUE; _gdk_disable_multidevice = TRUE;
} }

View File

@ -80,6 +80,7 @@ gdk_device_set_source
gdk_devices_list gdk_devices_list
gdk_device_type_get_type G_GNUC_CONST gdk_device_type_get_type G_GNUC_CONST
gdk_device_ungrab gdk_device_ungrab
gdk_disable_multidevice
gdk_display_add_client_message_filter gdk_display_add_client_message_filter
gdk_display_beep gdk_display_beep
gdk_display_close gdk_display_close
@ -157,7 +158,6 @@ gdk_drag_protocol_get_type G_GNUC_CONST
gdk_drag_status gdk_drag_status
gdk_drop_finish gdk_drop_finish
gdk_drop_reply gdk_drop_reply
gdk_enable_multidevice
gdk_error_trap_pop gdk_error_trap_pop
gdk_error_trap_pop_ignored gdk_error_trap_pop_ignored
gdk_error_trap_push gdk_error_trap_push

View File

@ -36,12 +36,13 @@
* additional features such as sub-pixel positioning information and additional * additional features such as sub-pixel positioning information and additional
* device-dependent information. * device-dependent information.
* @Title: GdkDeviceManager * @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 * By default, and if the platform supports it, GDK is aware of multiple keyboard/pointer pairs
* special input devices such as tablets. In short, backwards compatible with 2.X). Since version 3.0, * and multitouch devices, this behavior can be changed by calling gdk_disable_multidevice()
* if gdk_enable_multidevice() is called before gdk_display_open() and the platform supports it, GDK * before gdk_display_open(), although there would be rarely a reason to do that. For a widget
* will be aware of multiple keyboard/pointer pairs interacting simultaneously with the user interface. * 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) * 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 * are represented by the pointer cursors and keyboard foci that are seen on the screen. physical

View File

@ -38,6 +38,6 @@ gchar *_gdk_display_name = NULL;
gint _gdk_screen_number = -1; gint _gdk_screen_number = -1;
gchar *_gdk_display_arg_name = NULL; gchar *_gdk_display_arg_name = NULL;
gboolean _gdk_native_windows = FALSE; gboolean _gdk_native_windows = FALSE;
gboolean _gdk_enable_multidevice = FALSE; gboolean _gdk_disable_multidevice = FALSE;
GSList *_gdk_displays = NULL; GSList *_gdk_displays = NULL;

View File

@ -272,7 +272,7 @@ extern GSList *_gdk_displays;
extern gchar *_gdk_display_name; extern gchar *_gdk_display_name;
extern gint _gdk_screen_number; extern gint _gdk_screen_number;
extern gchar *_gdk_display_arg_name; extern gchar *_gdk_display_arg_name;
extern gboolean _gdk_enable_multidevice; extern gboolean _gdk_disable_multidevice;
void _gdk_events_queue (GdkDisplay *display); void _gdk_events_queue (GdkDisplay *display);
GdkEvent* _gdk_event_unqueue (GdkDisplay *display); GdkEvent* _gdk_event_unqueue (GdkDisplay *display);

View File

@ -48,7 +48,7 @@ _gdk_device_manager_new (GdkDisplay *display)
major = 2; major = 2;
minor = 0; minor = 0;
if (_gdk_enable_multidevice && if (!_gdk_disable_multidevice &&
XIQueryVersion (xdisplay, &major, &minor) != BadRequest) XIQueryVersion (xdisplay, &major, &minor) != BadRequest)
{ {
GdkDeviceManagerXI2 *device_manager_xi2; GdkDeviceManagerXI2 *device_manager_xi2;