[gtk+] Initialize missing methods on Windows



commit 341b8a47529ad5f1bddee19cb6e32fac6c7b8856
Author: Tor Lillqvist <tml iki fi>
Date:   Thu Aug 13 22:49:35 2009 +0300

    Initialize missing methods on Windows
    
    Set the input_window_destroy and input_window_crossing methods of the
    GdkWindowImplIface on Windows. Add implementation of
    _gdk_input_crossing_event that is mostly dummy, though.

 gdk/win32/gdkinput-win32.h  |    8 ++++++--
 gdk/win32/gdkinput.c        |   28 ++++++++++++++++++++++++++++
 gdk/win32/gdkwindow-win32.c |    2 ++
 3 files changed, 36 insertions(+), 2 deletions(-)
---
diff --git a/gdk/win32/gdkinput-win32.h b/gdk/win32/gdkinput-win32.h
index 3d168e1..608d8f9 100644
--- a/gdk/win32/gdkinput-win32.h
+++ b/gdk/win32/gdkinput-win32.h
@@ -108,12 +108,16 @@ GdkTimeCoord ** _gdk_device_allocate_history (GdkDevice *device,
 /* The following functions are provided by each implementation
  * (just wintab for now)
  */
-void             _gdk_input_configure_event  (GdkWindow         *window);
-void             _gdk_input_enter_event      (GdkWindow         *window);
+void             _gdk_input_configure_event  (GdkWindow        *window);
+void             _gdk_input_enter_event      (GdkWindow        *window);
 gboolean         _gdk_input_other_event      (GdkEvent         *event,
 					      MSG              *msg,
 					      GdkWindow        *window);
 
+void             _gdk_input_crossing_event   (GdkWindow        *window,
+					      gboolean          enter);
+
+
 /* These should be in gdkinternals.h */
 
 GdkInputWindow  *_gdk_input_window_find      (GdkWindow        *window);
diff --git a/gdk/win32/gdkinput.c b/gdk/win32/gdkinput.c
index 477f4e3..ddf1d91 100644
--- a/gdk/win32/gdkinput.c
+++ b/gdk/win32/gdkinput.c
@@ -311,6 +311,34 @@ _gdk_input_window_destroy (GdkWindow *window)
 }
 
 void
+_gdk_input_crossing_event (GdkWindow *window,
+			   gboolean enter)
+{
+  GdkWindowObject *priv = (GdkWindowObject *)window;
+  GdkInputWindow *input_window;
+  gint root_x, root_y;
+
+  if (enter)
+    {
+#if 0
+      /* No idea what to do... */
+#if 0
+      gdk_input_check_proximity(display);
+#endif
+      input_window = priv->input_window;
+      if (input_window != NULL)
+	{
+	  _gdk_input_get_root_relative_geometry (window, &root_x, &root_y);
+	  input_window->root_x = root_x;
+	  input_window->root_y = root_y;
+	}
+#endif
+    }
+  else
+    _gdk_input_ignore_core = FALSE;
+}
+
+void
 _gdk_input_exit (void)
 {
   GList *tmp_list;
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index 1380f0b..b70be3c 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -3657,4 +3657,6 @@ gdk_window_impl_iface_init (GdkWindowImplIface *iface)
   iface->queue_antiexpose = _gdk_win32_window_queue_antiexpose;
   iface->queue_translation = _gdk_win32_window_queue_translation;
   iface->destroy = _gdk_win32_window_destroy;
+  iface->input_window_destroy = _gdk_input_window_destroy;
+  iface->input_window_crossing = _gdk_input_crossing_event;
 }



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