[gtk+] Win32: fold the gdkinput.c file in gdkdisplay-win32.c



commit 7047099fd82a428e913b7a8eae08132ee8db8ea0
Author: Paolo Borelli <pborelli gnome org>
Date:   Mon Feb 22 21:01:24 2016 +0100

    Win32: fold the gdkinput.c file in gdkdisplay-win32.c
    
    This is similar to what is done in the X11 and wayland backends.
    It also gets rid of the _gdk_input_devices global variable

 gdk/Makefile.am              |    1 -
 gdk/win32/Makefile.am        |    1 -
 gdk/win32/gdkdisplay-win32.c |   36 ++++++++++++++++++++-
 gdk/win32/gdkdisplay-win32.h |    2 +
 gdk/win32/gdkevents-win32.c  |    2 +-
 gdk/win32/gdkglobals-win32.c |    2 +
 gdk/win32/gdkinput.c         |   74 ------------------------------------------
 gdk/win32/gdkprivate-win32.h |    3 +-
 8 files changed, 42 insertions(+), 79 deletions(-)
---
diff --git a/gdk/Makefile.am b/gdk/Makefile.am
index 84942ce..7d5feec 100644
--- a/gdk/Makefile.am
+++ b/gdk/Makefile.am
@@ -312,7 +312,6 @@ w32_introspection_files =           \
        win32/gdkevents-win32.c         \
        win32/gdkgeometry-win32.c       \
        win32/gdkglobals-win32.c        \
-       win32/gdkinput.c                \
        win32/gdkkeys-win32.c           \
        win32/gdkmain-win32.c           \
        win32/gdkproperty-win32.c       \
diff --git a/gdk/win32/Makefile.am b/gdk/win32/Makefile.am
index e5fea77..7ad92ff 100644
--- a/gdk/win32/Makefile.am
+++ b/gdk/win32/Makefile.am
@@ -45,7 +45,6 @@ libgdk_win32_la_SOURCES = \
        gdkglcontext-win32.c \
        gdkglcontext-win32.h \
        gdkglobals-win32.c \
-       gdkinput.c \
        gdkkeys-win32.c \
        gdkmain-win32.c \
        gdkprivate-win32.h \
diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c
index 413a88e..1ef8c9e 100644
--- a/gdk/win32/gdkdisplay-win32.c
+++ b/gdk/win32/gdkdisplay-win32.c
@@ -20,6 +20,7 @@
 #include "gdk.h"
 #include "gdkprivate-win32.h"
 #include "gdkdisplay-win32.h"
+#include "gdkdevicemanager-win32.h"
 #include "gdkglcontext-win32.h"
 #include "gdkwin32display.h"
 #include "gdkwin32screen.h"
@@ -28,6 +29,37 @@
 
 static int debug_indent = 0;
 
+static GList *
+gdk_win32_display_list_devices (GdkDisplay *display)
+{
+  g_return_val_if_fail (display == gdk_display_get_default (), NULL);
+
+  return GDK_WIN32_DISPLAY (display)->input_devices;
+}
+
+static void
+_gdk_input_init (GdkDisplay *display)
+{
+  GdkDeviceManagerWin32 *device_manager;
+  GList *devices;
+
+  _gdk_input_ignore_core = FALSE;
+
+  device_manager = g_object_new (GDK_TYPE_DEVICE_MANAGER_WIN32,
+                                 "display", display,
+                                 NULL);
+  display->device_manager = GDK_DEVICE_MANAGER (device_manager);
+
+  display->core_pointer = device_manager->core_pointer;
+
+  devices = g_list_append (NULL, display->core_pointer);
+  devices = g_list_concat (devices, g_list_copy (device_manager->wintab_devices));
+
+  GDK_WIN32_DISPLAY (display)->input_devices = devices;
+
+  _gdk_input_wintab_init_check (GDK_DEVICE_MANAGER (device_manager));
+}
+
 /**
  * gdk_win32_display_set_cursor_theme:
  * @display: (type GdkWin32Display): a #GdkDisplay
@@ -624,6 +656,8 @@ gdk_win32_display_finalize (GObject *object)
 {
   GdkWin32Display *display_win32 = GDK_WIN32_DISPLAY (object);
 
+  g_list_free (display_win32->input_devices);
+
   _gdk_win32_display_finalize_cursors (display_win32);
   _gdk_win32_dnd_exit ();
 
@@ -691,7 +725,7 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass)
   display_class->supports_input_shapes = gdk_win32_display_supports_input_shapes;
   display_class->supports_composite = gdk_win32_display_supports_composite;
 
-  display_class->list_devices = _gdk_win32_display_list_devices;
+  display_class->list_devices = gdk_win32_display_list_devices;
   //? display_class->get_app_launch_context = _gdk_win32_display_get_app_launch_context;
   display_class->get_cursor_for_type = _gdk_win32_display_get_cursor_for_type;
   display_class->get_cursor_for_name = _gdk_win32_display_get_cursor_for_name;
diff --git a/gdk/win32/gdkdisplay-win32.h b/gdk/win32/gdkdisplay-win32.h
index cbd4b5d..8f3b48e 100644
--- a/gdk/win32/gdkdisplay-win32.h
+++ b/gdk/win32/gdkdisplay-win32.h
@@ -28,6 +28,8 @@ struct _GdkWin32Display
 
   GdkScreen *screen;
 
+  GList *input_devices;
+
   Win32CursorTheme *cursor_theme;
   gchar *cursor_theme_name;
   int cursor_theme_size;
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 7f0a138..591219d 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -3376,7 +3376,7 @@ gdk_event_translate (MSG  *msg,
                                      GET_Y_LPARAM (msg->lParam), ret_valp);
       break;
 
-      /* Handle WINTAB events here, as we know that gdkinput.c will
+      /* Handle WINTAB events here, as we know that the device manager will
        * use the fixed WT_DEFBASE as lcMsgBase, and we thus can use the
        * constants as case labels.
        */
diff --git a/gdk/win32/gdkglobals-win32.c b/gdk/win32/gdkglobals-win32.c
index 39b23e2..2398ca1 100644
--- a/gdk/win32/gdkglobals-win32.c
+++ b/gdk/win32/gdkglobals-win32.c
@@ -35,6 +35,8 @@ HDC             _gdk_display_hdc;
 HINSTANCE        _gdk_dll_hinstance;
 HINSTANCE        _gdk_app_hmodule;
 
+gboolean         _gdk_input_ignore_core;
+
 HKL              _gdk_input_locale;
 gboolean         _gdk_input_locale_is_ime;
 UINT             _gdk_input_codepage;
diff --git a/gdk/win32/gdkprivate-win32.h b/gdk/win32/gdkprivate-win32.h
index e577093..292ea5f 100644
--- a/gdk/win32/gdkprivate-win32.h
+++ b/gdk/win32/gdkprivate-win32.h
@@ -268,6 +268,8 @@ extern HDC           _gdk_display_hdc;
 extern HINSTANCE        _gdk_dll_hinstance;
 extern HINSTANCE        _gdk_app_hmodule;
 
+extern gboolean                 _gdk_input_ignore_core;
+
 /* These are thread specific, but GDK/win32 works OK only when invoked
  * from a single thread anyway.
  */
@@ -539,7 +541,6 @@ void _gdk_monitor_init(GdkWin32Screen *screen);
 void _gdk_visual_init (GdkScreen *screen);
 void _gdk_dnd_init    (void);
 void _gdk_events_init (void);
-void _gdk_input_init  (GdkDisplay *display);
 void _gdk_input_wintab_init_check (GdkDeviceManager *device_manager);
 
 #endif /* __GDK_PRIVATE_WIN32_H__ */


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