mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 19:00:08 +00:00
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:
parent
66800aa212
commit
c4a5c2ed4b
16
gdk/gdk.c
16
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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -36,12 +36,13 @@
|
||||
* 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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user