[gtk+] win32: Stop using gdk_display_get_root_window



commit c1c919cf7dacf62bd3809dfa3f69ce26ab792434
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Nov 5 21:00:04 2017 -0500

    win32: Stop using gdk_display_get_root_window
    
    Use the newly introduced backend api for this purpose.

 gdk/win32/gdkdevice-win32.c        |    6 +++---
 gdk/win32/gdkdevice-wintab.c       |    6 +++---
 gdk/win32/gdkdevicemanager-win32.c |    9 ++++-----
 gdk/win32/gdkdisplay-win32.c       |    2 +-
 gdk/win32/gdkdnd-win32.c           |    4 ++--
 gdk/win32/gdkevents-win32.c        |    7 +++----
 gdk/win32/gdkproperty-win32.c      |    2 +-
 gdk/win32/gdkwindow-win32.c        |   26 +++++++++-----------------
 8 files changed, 26 insertions(+), 36 deletions(-)
---
diff --git a/gdk/win32/gdkdevice-win32.c b/gdk/win32/gdkdevice-win32.c
index 0033fff..10914e9 100644
--- a/gdk/win32/gdkdevice-win32.c
+++ b/gdk/win32/gdkdevice-win32.c
@@ -111,7 +111,7 @@ gdk_device_win32_query_state (GdkDevice        *device,
   GdkWindowImplWin32 *impl;
 
   if (window == NULL)
-    window = gdk_display_get_root_window (gdk_display_get_default ());
+    window = gdk_win32_display_get_root_window (gdk_display_get_default ());
   impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
 
   hwnd = GDK_WINDOW_HWND (window);
@@ -131,7 +131,7 @@ gdk_device_win32_query_state (GdkDevice        *device,
   if (win_y)
     *win_y = point.y / impl->window_scale;
 
-  if (window == gdk_display_get_root_window (gdk_display_get_default ()))
+  if (window == gdk_win32_display_get_root_window (gdk_display_get_default ()))
     {
       if (win_x)
         *win_x += _gdk_offset_x;
@@ -247,7 +247,7 @@ _gdk_device_win32_window_at_position (GdkDevice       *device,
       /* If we didn't hit any window at that point, return the desktop */
       if (hwnd == NULL)
         {
-          window = gdk_display_get_root_window (gdk_display_get_default ());
+          window = gdk_win32_display_get_root_window (gdk_display_get_default ());
           impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
 
           if (win_x)
diff --git a/gdk/win32/gdkdevice-wintab.c b/gdk/win32/gdkdevice-wintab.c
index a9ffd94..573f8da 100644
--- a/gdk/win32/gdkdevice-wintab.c
+++ b/gdk/win32/gdkdevice-wintab.c
@@ -123,7 +123,7 @@ gdk_device_wintab_query_state (GdkDevice        *device,
 
   device_wintab = GDK_DEVICE_WINTAB (device);
   if (window == NULL)
-    window = gdk_display_get_root_window (gdk_display_get_default ());
+    window = gdk_win32_display_get_root_window (gdk_display_get_default ());
   impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
 
   hwnd = GDK_WINDOW_HWND (window);
@@ -143,7 +143,7 @@ gdk_device_wintab_query_state (GdkDevice        *device,
   if (win_y)
     *win_y = point.y / impl->window_scale;
 
-  if (window == gdk_display_get_root_window (gdk_display_get_default ()))
+  if (window == gdk_win32_display_get_root_window (gdk_display_get_default ()))
     {
       if (win_x)
         *win_x += _gdk_offset_x;
@@ -223,7 +223,7 @@ _gdk_device_wintab_translate_axes (GdkDeviceWintab *device_wintab,
   gint i;
 
   device = GDK_DEVICE (device_wintab);
-  root_window = gdk_display_get_root_window (gdk_window_get_display (window));
+  root_window = gdk_win32_display_get_root_window (gdk_window_get_display (window));
   impl_window = _gdk_window_get_impl_window (window);
   temp_x = temp_y = 0;
 
diff --git a/gdk/win32/gdkdevicemanager-win32.c b/gdk/win32/gdkdevicemanager-win32.c
index 704c5c4..fc05292 100644
--- a/gdk/win32/gdkdevicemanager-win32.c
+++ b/gdk/win32/gdkdevicemanager-win32.c
@@ -353,7 +353,7 @@ static void
 wintab_init_check (GdkDeviceManagerWin32 *device_manager)
 {
   GdkDisplay *display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (device_manager));
-  GdkWindow *root = gdk_display_get_root_window (display);
+  GdkWindow *root = gdk_win32_display_get_root_window (display);
   static gboolean wintab_initialized = FALSE;
   GdkDeviceWintab *device;
   WORD specversion;
@@ -961,7 +961,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
 G_GNUC_END_IGNORE_DEPRECATIONS;
   window = gdk_device_get_window_at_position (device_manager->core_pointer, &x, &y);
   if (window == NULL)
-    window = gdk_display_get_root_window (gdk_display_get_default ());
+    window = gdk_win32_display_get_root_window (gdk_display_get_default ());
 
   g_object_ref (window);
 
@@ -1004,7 +1004,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS;
           window = g_object_ref (last_grab->window);
         }
 
-      if (window == gdk_display_get_root_window (gdk_display_get_default ()))
+      if (window == gdk_win32_display_get_root_window (gdk_display_get_default ()))
         {
           GDK_NOTE (EVENTS_OR_INPUT, g_print ("... is root\n"));
           return FALSE;
@@ -1081,8 +1081,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS;
         {
           GDK_NOTE (EVENTS_OR_INPUT, g_print ("... not selected\n"));
 
-          if (window->parent == gdk_display_get_root_window (gdk_display_get_default ()) ||
-              window->parent == NULL)
+          if (window->parent == NULL)
             return FALSE;
 
           impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c
index 5a34e7d..55fe437 100644
--- a/gdk/win32/gdkdisplay-win32.c
+++ b/gdk/win32/gdkdisplay-win32.c
@@ -619,7 +619,7 @@ inner_clipboard_window_procedure (HWND   hwnd,
         GDK_NOTE (DND, g_print (" \n"));
 
         event = gdk_event_new (GDK_OWNER_CHANGE);
-        event->owner_change.window = gdk_display_get_root_window (gdk_display_get_default ());
+        event->owner_change.window = gdk_win32_display_get_root_window (gdk_display_get_default ());
         event->owner_change.reason = GDK_OWNER_CHANGE_NEW_OWNER;
         event->owner_change.selection = GDK_SELECTION_CLIPBOARD;
         event->owner_change.time = _gdk_win32_get_next_tick (0);
diff --git a/gdk/win32/gdkdnd-win32.c b/gdk/win32/gdkdnd-win32.c
index 8771eb0..07c457f 100644
--- a/gdk/win32/gdkdnd-win32.c
+++ b/gdk/win32/gdkdnd-win32.c
@@ -732,7 +732,7 @@ idropsource_givefeedback (LPDROPSOURCE This,
   else
     {
       if (ctx->context->dest_window == NULL)
-        ctx->context->dest_window = g_object_ref (gdk_display_get_root_window (gdk_display_get_default ()));
+        ctx->context->dest_window = g_object_ref (gdk_win32_display_get_root_window (gdk_display_get_default 
()));
     }
 
   return DRAGDROP_S_USEDEFAULTCURSORS;
@@ -1431,7 +1431,7 @@ gdk_dropfiles_filter (GdkXEvent *xev,
       context->protocol = GDK_DRAG_PROTO_WIN32_DROPFILES;
       context->is_source = FALSE;
 
-      context->source_window = gdk_display_get_root_window (gdk_display_get_default ());
+      context->source_window = gdk_win32_display_get_root_window (gdk_display_get_default ());
       g_object_ref (context->source_window);
 
       context->dest_window = event->any.window;
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 591f533..7945ed4 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -1355,8 +1355,7 @@ propagate (GdkWindow  **window,
        {
          /* Owner doesn't want it, propagate to parent. */
          GdkWindow *parent = gdk_window_get_parent (*window);
-         if (parent == gdk_display_get_root_window (gdk_display_get_default ()) ||
-             parent == NULL)
+         if (parent == NULL)
            {
              /* No parent; check if grabbed */
              if (grab_window != NULL)
@@ -1434,7 +1433,7 @@ _gdk_win32_get_window_rect (GdkWindow *window,
   point.y = client_rect.top;
 
   /* top level windows need screen coords */
-  if (gdk_window_get_parent (window) == gdk_display_get_root_window (gdk_display_get_default ()))
+  if (gdk_window_get_parent (window) == NULL)
     {
       ClientToScreen (hwnd, &point);
       point.x += _gdk_offset_x * window_impl->window_scale;
@@ -2162,7 +2161,7 @@ gdk_event_translate (MSG  *msg,
     {
       /* Apply global filters */
 
-      GdkFilterReturn result = apply_event_filters (window ? window : gdk_display_get_root_window (display),
+      GdkFilterReturn result = apply_event_filters (window ? window : gdk_win32_display_get_root_window 
(display),
                                                     msg,
                                                     &_gdk_default_filters);
 
diff --git a/gdk/win32/gdkproperty-win32.c b/gdk/win32/gdkproperty-win32.c
index b1910b7..29e8fe5 100644
--- a/gdk/win32/gdkproperty-win32.c
+++ b/gdk/win32/gdkproperty-win32.c
@@ -295,7 +295,7 @@ _gdk_win32_window_delete_property (GdkWindow *window,
   if (property == _gdk_selection)
     _gdk_selection_property_delete (window);
   else if (property == _wm_transient_for)
-    gdk_window_set_transient_for (window, gdk_display_get_root_window (gdk_window_get_display (window)));
+    gdk_window_set_transient_for (window, gdk_win32_display_get_root_window (gdk_window_get_display 
(window)));
   else
     {
       prop_name = gdk_atom_name (property);
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index 24cd94e..11ccec0 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -465,7 +465,7 @@ _gdk_win32_window_enable_transparency (GdkWindow *window)
   if (!gdk_display_is_composited (gdk_window_get_display (window)))
     return FALSE;
 
-  if (window == gdk_display_get_root_window (gdk_window_get_display (window)))
+  if (window == gdk_win32_display_get_root_window (gdk_window_get_display (window)))
     return FALSE;
 
   thiswindow = GDK_WINDOW_HWND (window);
@@ -719,7 +719,7 @@ _gdk_win32_display_create_window_impl (GdkDisplay    *display,
   switch (window->window_type)
     {
     case GDK_WINDOW_TOPLEVEL:
-      if (GDK_WINDOW_TYPE (window->parent) != GDK_WINDOW_ROOT)
+      if (window->parent && GDK_WINDOW_TYPE (window->parent) != GDK_WINDOW_ROOT)
        {
          /* The common code warns for this case. */
          hparent = GetDesktopWindow ();
@@ -744,7 +744,7 @@ _gdk_win32_display_create_window_impl (GdkDisplay    *display,
 
     case GDK_WINDOW_TEMP:
       /* A temp window is not necessarily a top level window */
-      dwStyle = (gdk_display_get_root_window (display) == real_parent ? WS_POPUP : WS_CHILDWINDOW);
+      dwStyle = (real_parent == NULL || gdk_win32_display_get_root_window (display) == real_parent) ? 
WS_POPUP : WS_CHILDWINDOW);
       dwStyle |= WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
       dwExStyle |= WS_EX_TOOLWINDOW | WS_EX_TOPMOST;
       offset_x = _gdk_offset_x;
@@ -893,9 +893,7 @@ gdk_win32_window_foreign_new_for_display (GdkDisplay *display,
   parent = GetParent (anid);
 
   /* Always treat foreigns as toplevels */
-  window->parent = gdk_display_get_root_window (gdk_display_get_default ());
-
-  window->parent->children = g_list_concat (&window->children_list_node, window->parent->children);
+  window->parent = NULL;
 
   GetClientRect ((HWND) anid, &rect);
   point.x = rect.left;
@@ -2000,14 +1998,6 @@ gdk_win32_window_get_geometry (GdkWindow *window,
 
   display = gdk_window_get_display (window);
 
-  if (!window)
-    {
-      window = gdk_display_get_root_window (display);
-      window_is_root = TRUE;
-    }
-  else
-    window_is_root = (gdk_display_get_root_window (display) == window);
-
   if (!GDK_WINDOW_DESTROYED (window))
     {
       RECT rect;
@@ -2023,18 +2013,20 @@ gdk_win32_window_get_geometry (GdkWindow *window,
          pt.x = rect.left;
          pt.y = rect.top;
          ClientToScreen (GDK_WINDOW_HWND (window), &pt);
-         ScreenToClient (GDK_WINDOW_HWND (parent), &pt);
+          if (parent)
+           ScreenToClient (GDK_WINDOW_HWND (parent), &pt);
          rect.left = pt.x;
          rect.top = pt.y;
 
          pt.x = rect.right;
          pt.y = rect.bottom;
          ClientToScreen (GDK_WINDOW_HWND (window), &pt);
-         ScreenToClient (GDK_WINDOW_HWND (parent), &pt);
+          if (parent)
+           ScreenToClient (GDK_WINDOW_HWND (parent), &pt);
          rect.right = pt.x;
          rect.bottom = pt.y;
 
-         if (gdk_display_get_root_window (display) == parent)
+         if (parent == NULL)
            {
              rect.left += _gdk_offset_x * impl->window_scale;
              rect.top += _gdk_offset_y * impl->window_scale;


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