[gtk+] GDK-Win32: Ensure sources use UNIX line endings



commit 901127243a2ff415d7b32a9929af4a0e590e01f6
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Wed Dec 4 08:57:43 2013 +0800

    GDK-Win32: Ensure sources use UNIX line endings
    
    This makes things more consistent with the other sources and makes patches
    easier to apply cleanly.

 gdk/win32/gdkdevice-virtual.c |  846 ++++++++++++++++++++--------------------
 gdk/win32/gdkdevice-virtual.h |  108 +++---
 2 files changed, 477 insertions(+), 477 deletions(-)
---
diff --git a/gdk/win32/gdkdevice-virtual.c b/gdk/win32/gdkdevice-virtual.c
index f93c28a..a48024f 100644
--- a/gdk/win32/gdkdevice-virtual.c
+++ b/gdk/win32/gdkdevice-virtual.c
@@ -1,429 +1,429 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 2009 Carlos Garnacho <carlosg gnome org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "config.h"
-
-#include <gdk/gdkwindow.h>
-
-#include <windowsx.h>
-#include <objbase.h>
-
-#include "gdkdisplayprivate.h"
-#include "gdkdevice-virtual.h"
-#include "gdkwin32.h"
-
-static gboolean gdk_device_virtual_get_history (GdkDevice      *device,
-                                               GdkWindow      *window,
-                                               guint32         start,
-                                               guint32         stop,
-                                               GdkTimeCoord ***events,
-                                               gint           *n_events);
-static void gdk_device_virtual_get_state (GdkDevice       *device,
-                                         GdkWindow       *window,
-                                         gdouble         *axes,
-                                         GdkModifierType *mask);
-static void gdk_device_virtual_set_window_cursor (GdkDevice *device,
-                                                 GdkWindow *window,
-                                                 GdkCursor *cursor);
-static void gdk_device_virtual_warp (GdkDevice *device,
-                                    GdkScreen *screen,
+/* GDK - The GIMP Drawing Kit
+ * Copyright (C) 2009 Carlos Garnacho <carlosg gnome org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <gdk/gdkwindow.h>
+
+#include <windowsx.h>
+#include <objbase.h>
+
+#include "gdkdisplayprivate.h"
+#include "gdkdevice-virtual.h"
+#include "gdkwin32.h"
+
+static gboolean gdk_device_virtual_get_history (GdkDevice      *device,
+                                               GdkWindow      *window,
+                                               guint32         start,
+                                               guint32         stop,
+                                               GdkTimeCoord ***events,
+                                               gint           *n_events);
+static void gdk_device_virtual_get_state (GdkDevice       *device,
+                                         GdkWindow       *window,
+                                         gdouble         *axes,
+                                         GdkModifierType *mask);
+static void gdk_device_virtual_set_window_cursor (GdkDevice *device,
+                                                 GdkWindow *window,
+                                                 GdkCursor *cursor);
+static void gdk_device_virtual_warp (GdkDevice *device,
+                                    GdkScreen *screen,
                                     gdouble   x,
                                     gdouble   y);
-static void gdk_device_virtual_query_state (GdkDevice        *device,
-                                           GdkWindow        *window,
-                                           GdkWindow       **root_window,
-                                           GdkWindow       **child_window,
-                                           gdouble          *root_x,
-                                           gdouble          *root_y,
-                                           gdouble          *win_x,
-                                           gdouble          *win_y,
-                                           GdkModifierType  *mask);
-static GdkGrabStatus gdk_device_virtual_grab   (GdkDevice     *device,
-                                               GdkWindow     *window,
-                                               gboolean       owner_events,
-                                               GdkEventMask   event_mask,
-                                               GdkWindow     *confine_to,
-                                               GdkCursor     *cursor,
-                                               guint32        time_);
-static void          gdk_device_virtual_ungrab (GdkDevice     *device,
-                                               guint32        time_);
-static GdkWindow * gdk_device_virtual_window_at_position (GdkDevice       *device,
-                                                         gdouble         *win_x,
-                                                         gdouble         *win_y,
-                                                         GdkModifierType *mask,
-                                                         gboolean         get_toplevel);
-static void      gdk_device_virtual_select_window_events (GdkDevice       *device,
-                                                         GdkWindow       *window,
-                                                         GdkEventMask     event_mask);
-
-
-G_DEFINE_TYPE (GdkDeviceVirtual, gdk_device_virtual, GDK_TYPE_DEVICE)
-
-static void
-gdk_device_virtual_class_init (GdkDeviceVirtualClass *klass)
-{
-  GdkDeviceClass *device_class = GDK_DEVICE_CLASS (klass);
-
-  device_class->get_history = gdk_device_virtual_get_history;
-  device_class->get_state = gdk_device_virtual_get_state;
-  device_class->set_window_cursor = gdk_device_virtual_set_window_cursor;
-  device_class->warp = gdk_device_virtual_warp;
-  device_class->query_state = gdk_device_virtual_query_state;
-  device_class->grab = gdk_device_virtual_grab;
-  device_class->ungrab = gdk_device_virtual_ungrab;
-  device_class->window_at_position = gdk_device_virtual_window_at_position;
-  device_class->select_window_events = gdk_device_virtual_select_window_events;
-}
-
-static void
-gdk_device_virtual_init (GdkDeviceVirtual *device_virtual)
-{
-  GdkDevice *device;
-
-  device = GDK_DEVICE (device_virtual);
-
-}
-
-void
-_gdk_device_virtual_set_active (GdkDevice *device,
-                               GdkDevice *new_active)
-{
-  GdkDeviceVirtual *virtual = GDK_DEVICE_VIRTUAL (device);
-  int n_axes, i;
-  GdkAtom label_atom;
-  GdkAxisUse use;
-  gdouble min_value, max_value, resolution;
-
-  if (virtual->active_device == new_active)
-    return;
-
-  virtual->active_device = new_active;
-  
-  if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
-    {
-      _gdk_device_reset_axes (device);
-      n_axes = gdk_device_get_n_axes (new_active);
-      for (i = 0; i < n_axes; i++)
-       {
-         _gdk_device_get_axis_info (new_active, i,
-                                    &label_atom, &use, 
-                                    &min_value, &max_value, &resolution);
-         _gdk_device_add_axis (device,
-                               label_atom, use, 
-                               min_value, max_value, resolution);
-       }
-    }
-
-  g_signal_emit_by_name (G_OBJECT (device), "changed");
-}
-
-static gboolean
-gdk_device_virtual_get_history (GdkDevice      *device,
-                               GdkWindow      *window,
-                               guint32         start,
-                               guint32         stop,
-                               GdkTimeCoord ***events,
-                               gint           *n_events)
-{
-  /* History is only per slave device */
-  return FALSE;
-}
-
-static void
-gdk_device_virtual_get_state (GdkDevice       *device,
-                             GdkWindow       *window,
-                             gdouble         *axes,
-                             GdkModifierType *mask)
-{
-  GdkDeviceVirtual *virtual = GDK_DEVICE_VIRTUAL (device);
-  GdkDevice *active = virtual->active_device;
-
-  GDK_DEVICE_GET_CLASS (active)->get_state (active,
-                                           window, axes, mask);
-}
-
-static void
-gdk_device_virtual_set_window_cursor (GdkDevice *device,
-                                     GdkWindow *window,
-                                     GdkCursor *cursor)
-{
-  GdkWin32Cursor *cursor_private;
-  GdkWindow *parent_window;
-  GdkWindowImplWin32 *impl;
-  HCURSOR hcursor;
-  HCURSOR hprevcursor;
-
-  impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
-  cursor_private = (GdkWin32Cursor*) cursor;
-
-  hprevcursor = impl->hcursor;
-
-  if (!cursor)
-    hcursor = NULL;
-  else
-    hcursor = cursor_private->hcursor;
-
-  if (hcursor != NULL)
-    {
-      /* If the pointer is over our window, set new cursor */
+static void gdk_device_virtual_query_state (GdkDevice        *device,
+                                           GdkWindow        *window,
+                                           GdkWindow       **root_window,
+                                           GdkWindow       **child_window,
+                                           gdouble          *root_x,
+                                           gdouble          *root_y,
+                                           gdouble          *win_x,
+                                           gdouble          *win_y,
+                                           GdkModifierType  *mask);
+static GdkGrabStatus gdk_device_virtual_grab   (GdkDevice     *device,
+                                               GdkWindow     *window,
+                                               gboolean       owner_events,
+                                               GdkEventMask   event_mask,
+                                               GdkWindow     *confine_to,
+                                               GdkCursor     *cursor,
+                                               guint32        time_);
+static void          gdk_device_virtual_ungrab (GdkDevice     *device,
+                                               guint32        time_);
+static GdkWindow * gdk_device_virtual_window_at_position (GdkDevice       *device,
+                                                         gdouble         *win_x,
+                                                         gdouble         *win_y,
+                                                         GdkModifierType *mask,
+                                                         gboolean         get_toplevel);
+static void      gdk_device_virtual_select_window_events (GdkDevice       *device,
+                                                         GdkWindow       *window,
+                                                         GdkEventMask     event_mask);
+
+
+G_DEFINE_TYPE (GdkDeviceVirtual, gdk_device_virtual, GDK_TYPE_DEVICE)
+
+static void
+gdk_device_virtual_class_init (GdkDeviceVirtualClass *klass)
+{
+  GdkDeviceClass *device_class = GDK_DEVICE_CLASS (klass);
+
+  device_class->get_history = gdk_device_virtual_get_history;
+  device_class->get_state = gdk_device_virtual_get_state;
+  device_class->set_window_cursor = gdk_device_virtual_set_window_cursor;
+  device_class->warp = gdk_device_virtual_warp;
+  device_class->query_state = gdk_device_virtual_query_state;
+  device_class->grab = gdk_device_virtual_grab;
+  device_class->ungrab = gdk_device_virtual_ungrab;
+  device_class->window_at_position = gdk_device_virtual_window_at_position;
+  device_class->select_window_events = gdk_device_virtual_select_window_events;
+}
+
+static void
+gdk_device_virtual_init (GdkDeviceVirtual *device_virtual)
+{
+  GdkDevice *device;
+
+  device = GDK_DEVICE (device_virtual);
+
+}
+
+void
+_gdk_device_virtual_set_active (GdkDevice *device,
+                               GdkDevice *new_active)
+{
+  GdkDeviceVirtual *virtual = GDK_DEVICE_VIRTUAL (device);
+  int n_axes, i;
+  GdkAtom label_atom;
+  GdkAxisUse use;
+  gdouble min_value, max_value, resolution;
+
+  if (virtual->active_device == new_active)
+    return;
+
+  virtual->active_device = new_active;
+  
+  if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
+    {
+      _gdk_device_reset_axes (device);
+      n_axes = gdk_device_get_n_axes (new_active);
+      for (i = 0; i < n_axes; i++)
+       {
+         _gdk_device_get_axis_info (new_active, i,
+                                    &label_atom, &use, 
+                                    &min_value, &max_value, &resolution);
+         _gdk_device_add_axis (device,
+                               label_atom, use, 
+                               min_value, max_value, resolution);
+       }
+    }
+
+  g_signal_emit_by_name (G_OBJECT (device), "changed");
+}
+
+static gboolean
+gdk_device_virtual_get_history (GdkDevice      *device,
+                               GdkWindow      *window,
+                               guint32         start,
+                               guint32         stop,
+                               GdkTimeCoord ***events,
+                               gint           *n_events)
+{
+  /* History is only per slave device */
+  return FALSE;
+}
+
+static void
+gdk_device_virtual_get_state (GdkDevice       *device,
+                             GdkWindow       *window,
+                             gdouble         *axes,
+                             GdkModifierType *mask)
+{
+  GdkDeviceVirtual *virtual = GDK_DEVICE_VIRTUAL (device);
+  GdkDevice *active = virtual->active_device;
+
+  GDK_DEVICE_GET_CLASS (active)->get_state (active,
+                                           window, axes, mask);
+}
+
+static void
+gdk_device_virtual_set_window_cursor (GdkDevice *device,
+                                     GdkWindow *window,
+                                     GdkCursor *cursor)
+{
+  GdkWin32Cursor *cursor_private;
+  GdkWindow *parent_window;
+  GdkWindowImplWin32 *impl;
+  HCURSOR hcursor;
+  HCURSOR hprevcursor;
+
+  impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
+  cursor_private = (GdkWin32Cursor*) cursor;
+
+  hprevcursor = impl->hcursor;
+
+  if (!cursor)
+    hcursor = NULL;
+  else
+    hcursor = cursor_private->hcursor;
+
+  if (hcursor != NULL)
+    {
+      /* If the pointer is over our window, set new cursor */
       GdkWindow *curr_window = gdk_window_get_device_position (window, device, NULL, NULL, NULL);
-
-      if (curr_window == window ||
-          (curr_window && window == gdk_window_get_toplevel (curr_window)))
-        SetCursor (hcursor);
-      else
-        {
-          /* Climb up the tree and find whether our window is the
-           * first ancestor that has cursor defined, and if so, set
-           * new cursor.
-           */
-          while (curr_window && curr_window->impl &&
-                 !GDK_WINDOW_IMPL_WIN32 (curr_window->impl)->hcursor)
-            {
-              curr_window = curr_window->parent;
-              if (curr_window == GDK_WINDOW (window))
-                {
-                  SetCursor (hcursor);
-                  break;
-                }
-            }
-        }
-    }
-
-  /* Unset the previous cursor: Need to make sure it's no longer in
-   * use before we destroy it, in case we're not over our window but
-   * the cursor is still set to our old one.
-   */
-  if (hprevcursor != NULL &&
-      GetCursor () == hprevcursor)
-    {
-      /* Look for a suitable cursor to use instead */
-      hcursor = NULL;
-      parent_window = GDK_WINDOW (window)->parent;
-
-      while (hcursor == NULL)
-        {
-          if (parent_window)
-            {
-              impl = GDK_WINDOW_IMPL_WIN32 (parent_window->impl);
-              hcursor = impl->hcursor;
-              parent_window = parent_window->parent;
-            }
-          else
-            hcursor = LoadCursor (NULL, IDC_ARROW);
-        }
-
-      SetCursor (hcursor);
-    }
-}
-
-static void
-gdk_device_virtual_warp (GdkDevice *device,
-                        GdkScreen *screen,
+
+      if (curr_window == window ||
+          (curr_window && window == gdk_window_get_toplevel (curr_window)))
+        SetCursor (hcursor);
+      else
+        {
+          /* Climb up the tree and find whether our window is the
+           * first ancestor that has cursor defined, and if so, set
+           * new cursor.
+           */
+          while (curr_window && curr_window->impl &&
+                 !GDK_WINDOW_IMPL_WIN32 (curr_window->impl)->hcursor)
+            {
+              curr_window = curr_window->parent;
+              if (curr_window == GDK_WINDOW (window))
+                {
+                  SetCursor (hcursor);
+                  break;
+                }
+            }
+        }
+    }
+
+  /* Unset the previous cursor: Need to make sure it's no longer in
+   * use before we destroy it, in case we're not over our window but
+   * the cursor is still set to our old one.
+   */
+  if (hprevcursor != NULL &&
+      GetCursor () == hprevcursor)
+    {
+      /* Look for a suitable cursor to use instead */
+      hcursor = NULL;
+      parent_window = GDK_WINDOW (window)->parent;
+
+      while (hcursor == NULL)
+        {
+          if (parent_window)
+            {
+              impl = GDK_WINDOW_IMPL_WIN32 (parent_window->impl);
+              hcursor = impl->hcursor;
+              parent_window = parent_window->parent;
+            }
+          else
+            hcursor = LoadCursor (NULL, IDC_ARROW);
+        }
+
+      SetCursor (hcursor);
+    }
+}
+
+static void
+gdk_device_virtual_warp (GdkDevice *device,
+                        GdkScreen *screen,
                         gdouble   x,
                         gdouble   y)
-{
-  SetCursorPos (x - _gdk_offset_x, y - _gdk_offset_y);
-}
-
-static void
-gdk_device_virtual_query_state (GdkDevice        *device,
-                               GdkWindow        *window,
-                               GdkWindow       **root_window,
-                               GdkWindow       **child_window,
-                               gdouble          *root_x,
-                               gdouble          *root_y,
-                               gdouble          *win_x,
-                               gdouble          *win_y,
-                               GdkModifierType  *mask)
-{
-  GdkDeviceVirtual *virtual = GDK_DEVICE_VIRTUAL (device);
-
-  _gdk_device_query_state (virtual->active_device,
-                          window, root_window, child_window,
-                          root_x, root_y,
-                          win_x, win_y,
-                          mask);
-}
-
-static GdkGrabStatus
-gdk_device_virtual_grab (GdkDevice    *device,
-                        GdkWindow    *window,
-                        gboolean      owner_events,
-                        GdkEventMask  event_mask,
-                        GdkWindow    *confine_to,
-                        GdkCursor    *cursor,
-                        guint32       time_)
-{
-  GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
-  HCURSOR hcursor;
-  GdkWin32Cursor *cursor_private;
-
-  cursor_private = (GdkWin32Cursor*) cursor;
-
-  if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
-    {
-      if (!cursor)
-       hcursor = NULL;
-      else if ((hcursor = CopyCursor (cursor_private->hcursor)) == NULL)
-       WIN32_API_FAILED ("CopyCursor");
-
-      if (_gdk_win32_grab_cursor != NULL)
-       {
-         if (GetCursor () == _gdk_win32_grab_cursor)
-           SetCursor (NULL);
-         DestroyCursor (_gdk_win32_grab_cursor);
-       }
-
-      _gdk_win32_grab_cursor = hcursor;
-
-      if (_gdk_win32_grab_cursor != NULL)
-       SetCursor (_gdk_win32_grab_cursor);
-      else if (impl->hcursor != NULL)
-       SetCursor (impl->hcursor);
-      else
-       SetCursor (LoadCursor (NULL, IDC_ARROW));
-
-      SetCapture (GDK_WINDOW_HWND (window));
-    }
-
-  return GDK_GRAB_SUCCESS;
-}
-
-static void
-gdk_device_virtual_ungrab (GdkDevice *device,
-                         guint32    time_)
-{
-  GdkDeviceGrabInfo *info;
-  GdkDisplay *display;
-
-  display = gdk_device_get_display (device);
-  info = _gdk_display_get_last_device_grab (display, device);
-
-  if (info)
-    info->serial_end = 0;
-
-  if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
-    {
-      if (_gdk_win32_grab_cursor != NULL)
-       {
-         if (GetCursor () == _gdk_win32_grab_cursor)
-           SetCursor (NULL);
-         DestroyCursor (_gdk_win32_grab_cursor);
-       }
-      _gdk_win32_grab_cursor = NULL;
-
-      ReleaseCapture ();
-    }
-
+{
+  SetCursorPos (x - _gdk_offset_x, y - _gdk_offset_y);
+}
+
+static void
+gdk_device_virtual_query_state (GdkDevice        *device,
+                               GdkWindow        *window,
+                               GdkWindow       **root_window,
+                               GdkWindow       **child_window,
+                               gdouble          *root_x,
+                               gdouble          *root_y,
+                               gdouble          *win_x,
+                               gdouble          *win_y,
+                               GdkModifierType  *mask)
+{
+  GdkDeviceVirtual *virtual = GDK_DEVICE_VIRTUAL (device);
+
+  _gdk_device_query_state (virtual->active_device,
+                          window, root_window, child_window,
+                          root_x, root_y,
+                          win_x, win_y,
+                          mask);
+}
+
+static GdkGrabStatus
+gdk_device_virtual_grab (GdkDevice    *device,
+                        GdkWindow    *window,
+                        gboolean      owner_events,
+                        GdkEventMask  event_mask,
+                        GdkWindow    *confine_to,
+                        GdkCursor    *cursor,
+                        guint32       time_)
+{
+  GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
+  HCURSOR hcursor;
+  GdkWin32Cursor *cursor_private;
+
+  cursor_private = (GdkWin32Cursor*) cursor;
+
+  if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
+    {
+      if (!cursor)
+       hcursor = NULL;
+      else if ((hcursor = CopyCursor (cursor_private->hcursor)) == NULL)
+       WIN32_API_FAILED ("CopyCursor");
+
+      if (_gdk_win32_grab_cursor != NULL)
+       {
+         if (GetCursor () == _gdk_win32_grab_cursor)
+           SetCursor (NULL);
+         DestroyCursor (_gdk_win32_grab_cursor);
+       }
+
+      _gdk_win32_grab_cursor = hcursor;
+
+      if (_gdk_win32_grab_cursor != NULL)
+       SetCursor (_gdk_win32_grab_cursor);
+      else if (impl->hcursor != NULL)
+       SetCursor (impl->hcursor);
+      else
+       SetCursor (LoadCursor (NULL, IDC_ARROW));
+
+      SetCapture (GDK_WINDOW_HWND (window));
+    }
+
+  return GDK_GRAB_SUCCESS;
+}
+
+static void
+gdk_device_virtual_ungrab (GdkDevice *device,
+                         guint32    time_)
+{
+  GdkDeviceGrabInfo *info;
+  GdkDisplay *display;
+
+  display = gdk_device_get_display (device);
+  info = _gdk_display_get_last_device_grab (display, device);
+
+  if (info)
+    info->serial_end = 0;
+
+  if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
+    {
+      if (_gdk_win32_grab_cursor != NULL)
+       {
+         if (GetCursor () == _gdk_win32_grab_cursor)
+           SetCursor (NULL);
+         DestroyCursor (_gdk_win32_grab_cursor);
+       }
+      _gdk_win32_grab_cursor = NULL;
+
+      ReleaseCapture ();
+    }
+
   _gdk_display_device_grab_update (display, device, device, 0);
-}
-
-static void
-screen_to_client (HWND hwnd, POINT screen_pt, POINT *client_pt)
-{
-  *client_pt = screen_pt;
-  ScreenToClient (hwnd, client_pt);
-}
-
-static GdkWindow *
-gdk_device_virtual_window_at_position (GdkDevice       *device,
-                                      gdouble         *win_x,
-                                      gdouble         *win_y,
-                                      GdkModifierType *mask,
-                                      gboolean         get_toplevel)
-{
-  GdkWindow *window = NULL;
-  POINT screen_pt, client_pt;
-  HWND hwnd, hwndc;
-  RECT rect;
-
-  GetCursorPos (&screen_pt);
-
-  if (get_toplevel)
-    {
-      /* Only consider visible children of the desktop to avoid the various
-       * non-visible windows you often find on a running Windows box. These
-       * might overlap our windows and cause our walk to fail. As we assume
-       * WindowFromPoint() can find our windows, we follow similar logic
-       * here, and ignore invisible and disabled windows.
-       */
-      hwnd = GetDesktopWindow ();
-      do {
-        window = gdk_win32_handle_table_lookup (hwnd);
-
-        if (window != NULL &&
-            GDK_WINDOW_TYPE (window) != GDK_WINDOW_ROOT &&
-            GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN)
-          break;
-
-        screen_to_client (hwnd, screen_pt, &client_pt);
-        hwndc = ChildWindowFromPointEx (hwnd, client_pt, CWP_SKIPDISABLED  |
-                                                         CWP_SKIPINVISIBLE);
-
-       /* Verify that we're really inside the client area of the window */
-       if (hwndc != hwnd)
-         {
-           GetClientRect (hwndc, &rect);
-           screen_to_client (hwndc, screen_pt, &client_pt);
-           if (!PtInRect (&rect, client_pt))
-             hwndc = hwnd;
-         }
-
-      } while (hwndc != hwnd && (hwnd = hwndc, 1));
-
-    }
-  else
-    {
-      hwnd = WindowFromPoint (screen_pt);
-
-      /* Verify that we're really inside the client area of the window */
-      GetClientRect (hwnd, &rect);
-      screen_to_client (hwnd, screen_pt, &client_pt);
-      if (!PtInRect (&rect, client_pt))
-       hwnd = NULL;
-
-      /* If we didn't hit any window at that point, return the desktop */
-      if (hwnd == NULL)
-        {
-          if (win_x)
-            *win_x = screen_pt.x + _gdk_offset_x;
-          if (win_y)
-            *win_y = screen_pt.y + _gdk_offset_y;
-          return _gdk_root;
-        }
-
-      window = gdk_win32_handle_table_lookup (hwnd);
-    }
-
-  if (window && (win_x || win_y))
-    {
-      if (win_x)
-        *win_x = client_pt.x;
-      if (win_y)
-        *win_y = client_pt.y;
-    }
-
-  return window;
-}
-
-static void
-gdk_device_virtual_select_window_events (GdkDevice    *device,
-                                        GdkWindow    *window,
-                                        GdkEventMask  event_mask)
-{
-}
+}
+
+static void
+screen_to_client (HWND hwnd, POINT screen_pt, POINT *client_pt)
+{
+  *client_pt = screen_pt;
+  ScreenToClient (hwnd, client_pt);
+}
+
+static GdkWindow *
+gdk_device_virtual_window_at_position (GdkDevice       *device,
+                                      gdouble         *win_x,
+                                      gdouble         *win_y,
+                                      GdkModifierType *mask,
+                                      gboolean         get_toplevel)
+{
+  GdkWindow *window = NULL;
+  POINT screen_pt, client_pt;
+  HWND hwnd, hwndc;
+  RECT rect;
+
+  GetCursorPos (&screen_pt);
+
+  if (get_toplevel)
+    {
+      /* Only consider visible children of the desktop to avoid the various
+       * non-visible windows you often find on a running Windows box. These
+       * might overlap our windows and cause our walk to fail. As we assume
+       * WindowFromPoint() can find our windows, we follow similar logic
+       * here, and ignore invisible and disabled windows.
+       */
+      hwnd = GetDesktopWindow ();
+      do {
+        window = gdk_win32_handle_table_lookup (hwnd);
+
+        if (window != NULL &&
+            GDK_WINDOW_TYPE (window) != GDK_WINDOW_ROOT &&
+            GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN)
+          break;
+
+        screen_to_client (hwnd, screen_pt, &client_pt);
+        hwndc = ChildWindowFromPointEx (hwnd, client_pt, CWP_SKIPDISABLED  |
+                                                         CWP_SKIPINVISIBLE);
+
+       /* Verify that we're really inside the client area of the window */
+       if (hwndc != hwnd)
+         {
+           GetClientRect (hwndc, &rect);
+           screen_to_client (hwndc, screen_pt, &client_pt);
+           if (!PtInRect (&rect, client_pt))
+             hwndc = hwnd;
+         }
+
+      } while (hwndc != hwnd && (hwnd = hwndc, 1));
+
+    }
+  else
+    {
+      hwnd = WindowFromPoint (screen_pt);
+
+      /* Verify that we're really inside the client area of the window */
+      GetClientRect (hwnd, &rect);
+      screen_to_client (hwnd, screen_pt, &client_pt);
+      if (!PtInRect (&rect, client_pt))
+       hwnd = NULL;
+
+      /* If we didn't hit any window at that point, return the desktop */
+      if (hwnd == NULL)
+        {
+          if (win_x)
+            *win_x = screen_pt.x + _gdk_offset_x;
+          if (win_y)
+            *win_y = screen_pt.y + _gdk_offset_y;
+          return _gdk_root;
+        }
+
+      window = gdk_win32_handle_table_lookup (hwnd);
+    }
+
+  if (window && (win_x || win_y))
+    {
+      if (win_x)
+        *win_x = client_pt.x;
+      if (win_y)
+        *win_y = client_pt.y;
+    }
+
+  return window;
+}
+
+static void
+gdk_device_virtual_select_window_events (GdkDevice    *device,
+                                        GdkWindow    *window,
+                                        GdkEventMask  event_mask)
+{
+}
diff --git a/gdk/win32/gdkdevice-virtual.h b/gdk/win32/gdkdevice-virtual.h
index e552a5d..e44e733 100644
--- a/gdk/win32/gdkdevice-virtual.h
+++ b/gdk/win32/gdkdevice-virtual.h
@@ -1,54 +1,54 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 2009 Carlos Garnacho <carlosg gnome org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __GDK_DEVICE_VIRTUAL_H__
-#define __GDK_DEVICE_VIRTUAL_H__
-
-#include <gdk/gdkdeviceprivate.h>
-
-G_BEGIN_DECLS
-
-#define GDK_TYPE_DEVICE_VIRTUAL         (gdk_device_virtual_get_type ())
-#define GDK_DEVICE_VIRTUAL(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GDK_TYPE_DEVICE_VIRTUAL, 
GdkDeviceVirtual))
-#define GDK_DEVICE_VIRTUAL_CLASS(c)     (G_TYPE_CHECK_CLASS_CAST ((c), GDK_TYPE_DEVICE_VIRTUAL, 
GdkDeviceVirtualClass))
-#define GDK_IS_DEVICE_VIRTUAL(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDK_TYPE_DEVICE_VIRTUAL))
-#define GDK_IS_DEVICE_VIRTUAL_CLASS(c)  (G_TYPE_CHECK_CLASS_TYPE ((c), GDK_TYPE_DEVICE_VIRTUAL))
-#define GDK_DEVICE_VIRTUAL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDK_TYPE_DEVICE_VIRTUAL, 
GdkDeviceVirtualClass))
-
-typedef struct _GdkDeviceVirtual GdkDeviceVirtual;
-typedef struct _GdkDeviceVirtualClass GdkDeviceVirtualClass;
-
-struct _GdkDeviceVirtual
-{
-  GdkDevice parent_instance;
-  GdkDevice *active_device;
-};
-
-struct _GdkDeviceVirtualClass
-{
-  GdkDeviceClass parent_class;
-};
-
-GType gdk_device_virtual_get_type (void) G_GNUC_CONST;
-
-void _gdk_device_virtual_set_active (GdkDevice *device,
-                                    GdkDevice *new_active);
-
-
-G_END_DECLS
-
-#endif /* __GDK_DEVICE_VIRTUAL_H__ */
+/* GDK - The GIMP Drawing Kit
+ * Copyright (C) 2009 Carlos Garnacho <carlosg gnome org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GDK_DEVICE_VIRTUAL_H__
+#define __GDK_DEVICE_VIRTUAL_H__
+
+#include <gdk/gdkdeviceprivate.h>
+
+G_BEGIN_DECLS
+
+#define GDK_TYPE_DEVICE_VIRTUAL         (gdk_device_virtual_get_type ())
+#define GDK_DEVICE_VIRTUAL(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GDK_TYPE_DEVICE_VIRTUAL, 
GdkDeviceVirtual))
+#define GDK_DEVICE_VIRTUAL_CLASS(c)     (G_TYPE_CHECK_CLASS_CAST ((c), GDK_TYPE_DEVICE_VIRTUAL, 
GdkDeviceVirtualClass))
+#define GDK_IS_DEVICE_VIRTUAL(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDK_TYPE_DEVICE_VIRTUAL))
+#define GDK_IS_DEVICE_VIRTUAL_CLASS(c)  (G_TYPE_CHECK_CLASS_TYPE ((c), GDK_TYPE_DEVICE_VIRTUAL))
+#define GDK_DEVICE_VIRTUAL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDK_TYPE_DEVICE_VIRTUAL, 
GdkDeviceVirtualClass))
+
+typedef struct _GdkDeviceVirtual GdkDeviceVirtual;
+typedef struct _GdkDeviceVirtualClass GdkDeviceVirtualClass;
+
+struct _GdkDeviceVirtual
+{
+  GdkDevice parent_instance;
+  GdkDevice *active_device;
+};
+
+struct _GdkDeviceVirtualClass
+{
+  GdkDeviceClass parent_class;
+};
+
+GType gdk_device_virtual_get_type (void) G_GNUC_CONST;
+
+void _gdk_device_virtual_set_active (GdkDevice *device,
+                                    GdkDevice *new_active);
+
+
+G_END_DECLS
+
+#endif /* __GDK_DEVICE_VIRTUAL_H__ */


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