[gtk+] x11: Stop using GdkScreen in api



commit 2daa7d1a53ad26e9b39e1b9fd83156bea45c4a58
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Nov 17 10:18:20 2017 -0500

    x11: Stop using GdkScreen in api
    
    This type is going away, so switch to using GdkX11Screen
    everywhere.

 gdk/gdkinternals.h                |    2 -
 gdk/gdkscreen.c                   |   12 ----
 gdk/x11/gdkapplaunchcontext-x11.c |    9 +--
 gdk/x11/gdkdisplay-x11.c          |   28 ++++-----
 gdk/x11/gdkdisplay-x11.h          |    7 +-
 gdk/x11/gdkeventsource.c          |    2 +-
 gdk/x11/gdkglcontext-x11.c        |    6 +-
 gdk/x11/gdkprivate-x11.h          |    7 --
 gdk/x11/gdkscreen-x11.c           |  127 +++++++++++++++---------------------
 gdk/x11/gdkscreen-x11.h           |   41 +++++++-----
 gdk/x11/gdkvisual-x11.c           |    6 +-
 gdk/x11/gdkwindow-x11.c           |    2 +-
 gdk/x11/gdkx11display.h           |    3 +-
 gdk/x11/gdkx11screen.h            |   22 +++----
 gdk/x11/gdkxftdefaults.c          |   15 ++---
 15 files changed, 121 insertions(+), 168 deletions(-)
---
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index 3a8f145..0ef2aaa 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -390,8 +390,6 @@ cairo_region_t *gdk_window_get_current_paint_region (GdkWindow *window);
 void       _gdk_window_process_updates_recurse (GdkWindow *window,
                                                 cairo_region_t *expose_region);
 
-void       _gdk_screen_close             (GdkScreen      *screen);
-
 /*****************************************
  * Interfaces provided by windowing code *
  *****************************************/
diff --git a/gdk/gdkscreen.c b/gdk/gdkscreen.c
index 2677575..4911d9b 100644
--- a/gdk/gdkscreen.c
+++ b/gdk/gdkscreen.c
@@ -55,15 +55,3 @@ static void
 gdk_screen_init (GdkScreen *screen)
 {
 }
-
-void
-_gdk_screen_close (GdkScreen *screen)
-{
-  g_return_if_fail (GDK_IS_SCREEN (screen));
-
-  if (!screen->closed)
-    {
-      screen->closed = TRUE;
-      g_object_run_dispose (G_OBJECT (screen));
-    }
-}
diff --git a/gdk/x11/gdkapplaunchcontext-x11.c b/gdk/x11/gdkapplaunchcontext-x11.c
index 2080f19..6019bbc 100644
--- a/gdk/x11/gdkapplaunchcontext-x11.c
+++ b/gdk/x11/gdkapplaunchcontext-x11.c
@@ -22,7 +22,6 @@
 
 #include "gdkx11applaunchcontext.h"
 #include "gdkapplaunchcontextprivate.h"
-#include "gdkscreen.h"
 #include "gdkintl.h"
 #include "gdkprivate-x11.h"
 
@@ -225,8 +224,8 @@ startup_timeout (void *data)
 
 
 static void
-add_startup_timeout (GdkScreen  *screen,
-                     const char *startup_id)
+add_startup_timeout (GdkX11Screen *screen,
+                     const char   *startup_id)
 {
   StartupTimeoutData *data;
   StartupNotificationData *sn_data;
@@ -265,7 +264,7 @@ gdk_x11_app_launch_context_get_startup_notify_id (GAppLaunchContext *context,
 {
   static int sequence = 0;
   GdkDisplay *display;
-  GdkScreen *screen;
+  GdkX11Screen *screen;
   int files_count;
   char *description;
   char *icon_name;
@@ -392,7 +391,7 @@ gdk_x11_app_launch_context_launch_failed (GAppLaunchContext *context,
                                           const gchar       *startup_notify_id)
 {
   GdkAppLaunchContext *ctx;
-  GdkScreen *screen;
+  GdkX11Screen *screen;
   StartupTimeoutData *data;
   StartupNotificationData *sn_data;
   GSList *l;
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index 1669ba5..0e601fa 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -30,7 +30,6 @@
 #include "gdkeventtranslator.h"
 #include "gdkframeclockprivate.h"
 #include "gdkinternals.h"
-#include "gdkscreen.h"
 #include "gdkinternals.h"
 #include "gdkdeviceprivate.h"
 #include "gdkkeysprivate.h"
@@ -452,7 +451,7 @@ gdk_check_wm_state_changed (GdkWindow *window)
 {
   GdkToplevelX11 *toplevel = _gdk_x11_window_get_toplevel (window);
   GdkDisplay *display = GDK_WINDOW_DISPLAY (window);
-  GdkScreen *screen = GDK_WINDOW_SCREEN (window);
+  GdkX11Screen *screen = GDK_WINDOW_SCREEN (window);
 
   Atom type;
   gint format;
@@ -619,7 +618,6 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
   GdkWindow *window;
   gboolean is_substructure;
   GdkWindowImplX11 *window_impl = NULL;
-  GdkScreen *screen = NULL;
   GdkX11Screen *x11_screen = NULL;
   GdkToplevelX11 *toplevel = NULL;
   GdkX11Display *display_x11 = GDK_X11_DISPLAY (display);
@@ -647,8 +645,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
       if (!GDK_IS_WINDOW (window))
         return FALSE;
 
-      screen = GDK_WINDOW_SCREEN (window);
-      x11_screen = GDK_X11_SCREEN (screen);
+      x11_screen = GDK_WINDOW_SCREEN (window);
       toplevel = _gdk_x11_window_get_toplevel (window);
       window_impl = GDK_WINDOW_IMPL_X11 (window->impl);
 
@@ -669,8 +666,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
 
   if (xevent->type == DestroyNotify && !is_substructure)
     {
-      screen = GDK_X11_DISPLAY (display)->screen;
-      x11_screen = GDK_X11_SCREEN (screen);
+      x11_screen = GDK_X11_DISPLAY (display)->screen;
 
       if (x11_screen->wmspec_check_window == xevent->xdestroywindow.window)
         {
@@ -680,7 +676,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
           x11_screen->window_manager_name = g_strdup ("unknown");
 
           /* careful, reentrancy */
-          _gdk_x11_screen_window_manager_changed (screen);
+          _gdk_x11_screen_window_manager_changed (x11_screen);
 
           return_val = FALSE;
           goto done;
@@ -841,8 +837,8 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
            * interpret UnmapNotify events as implying iconic state.
            * http://bugzilla.gnome.org/show_bug.cgi?id=590726.
            */
-          if (screen &&
-              !gdk_x11_screen_supports_net_wm_hint (screen,
+          if (x11_screen &&
+              !gdk_x11_screen_supports_net_wm_hint (x11_screen,
                                                     gdk_atom_intern_static_string ("_NET_WM_STATE_HIDDEN")))
             {
               /* If we are shown (not withdrawn) and get an unmap, it means we were
@@ -926,7 +922,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
                           : ""));
       if (_gdk_x11_display_is_root_window (display, xevent->xconfigure.window))
         {
-         _gdk_x11_screen_size_changed (screen, xevent);
+         _gdk_x11_screen_size_changed (x11_screen, xevent);
         }
 
 #ifdef HAVE_XSYNC
@@ -1162,8 +1158,8 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
       if (xevent->type - display_x11->xrandr_event_base == RRScreenChangeNotify ||
           xevent->type - display_x11->xrandr_event_base == RRNotify)
        {
-          if (screen)
-            _gdk_x11_screen_size_changed (screen, xevent);
+          if (x11_screen)
+            _gdk_x11_screen_size_changed (x11_screen, xevent);
        }
       else
 #endif
@@ -2149,11 +2145,11 @@ gdk_x11_lookup_xdisplay (Display *xdisplay)
  * Returns: (transfer none): the #GdkScreen corresponding to
  *     @xrootwin, or %NULL.
  **/
-GdkScreen *
+GdkX11Screen *
 _gdk_x11_display_screen_for_xrootwin (GdkDisplay *display,
                                      Window      xrootwin)
 {
-  GdkScreen *screen;
+  GdkX11Screen *screen;
   XWindowAttributes attrs;
   gboolean result;
   GdkX11Display *display_x11;
@@ -3043,7 +3039,7 @@ gdk_x11_set_sm_client_id (const gchar *sm_client_id)
   g_slist_free (displays);
 }
 
-GdkScreen *
+GdkX11Screen *
 gdk_x11_display_get_screen (GdkDisplay *display)
 {
   return GDK_X11_DISPLAY (display)->screen;
diff --git a/gdk/x11/gdkdisplay-x11.h b/gdk/x11/gdkdisplay-x11.h
index 4e81301..adee9f2 100644
--- a/gdk/x11/gdkdisplay-x11.h
+++ b/gdk/x11/gdkdisplay-x11.h
@@ -26,6 +26,7 @@
 #include "gdkkeys.h"
 #include "gdkwindow.h"
 #include "gdkinternals.h"
+#include "gdkx11screen.h"
 
 #include <X11/X.h>
 #include <X11/Xlib.h>
@@ -37,7 +38,7 @@ struct _GdkX11Display
 {
   GdkDisplay parent_instance;
   Display *xdisplay;
-  GdkScreen *screen;
+  GdkX11Screen *screen;
   GList *screens;
   GList *toplevels;
 
@@ -162,8 +163,8 @@ struct _GdkX11DisplayClass
   GdkDisplayClass parent_class;
 };
 
-GdkScreen *_gdk_x11_display_screen_for_xrootwin (GdkDisplay  *display,
-                                                 Window       xrootwin);
+GdkX11Screen *_gdk_x11_display_screen_for_xrootwin (GdkDisplay  *display,
+                                                    Window       xrootwin);
 void       _gdk_x11_display_error_event         (GdkDisplay  *display,
                                                  XErrorEvent *error);
 
diff --git a/gdk/x11/gdkeventsource.c b/gdk/x11/gdkeventsource.c
index 512ccb1..cb1f811 100644
--- a/gdk/x11/gdkeventsource.c
+++ b/gdk/x11/gdkeventsource.c
@@ -275,7 +275,7 @@ gdk_event_source_translate_event (GdkEventSource *event_source,
   GdkX11Screen *x11_screen;
   gpointer cache;
 
-  x11_screen = (GdkX11Screen *) gdk_x11_display_get_screen (event_source->display); 
+  x11_screen = GDK_X11_DISPLAY (event_source->display)->screen;
 
   dpy = GDK_DISPLAY_XDISPLAY (event_source->display);
 
diff --git a/gdk/x11/gdkglcontext-x11.c b/gdk/x11/gdkglcontext-x11.c
index 75dab82..40127cd 100644
--- a/gdk/x11/gdkglcontext-x11.c
+++ b/gdk/x11/gdkglcontext-x11.c
@@ -1117,9 +1117,8 @@ save_cached_gl_visuals (GdkDisplay *display, int system, int rgba)
 }
 
 void
-_gdk_x11_screen_update_visuals_for_gl (GdkScreen *screen)
+_gdk_x11_screen_update_visuals_for_gl (GdkX11Screen *x11_screen)
 {
-  GdkX11Screen *x11_screen;
   GdkDisplay *display;
   GdkX11Display *display_x11;
   Display *dpy;
@@ -1127,7 +1126,6 @@ _gdk_x11_screen_update_visuals_for_gl (GdkScreen *screen)
   int i;
   int system_visual_id, rgba_visual_id;
 
-  x11_screen = GDK_X11_SCREEN (screen);
   display = x11_screen->display;
   display_x11 = GDK_X11_DISPLAY (display);
   dpy = gdk_x11_display_get_xdisplay (display);
@@ -1150,7 +1148,7 @@ _gdk_x11_screen_update_visuals_for_gl (GdkScreen *screen)
       return;
     }
 
-  if (!gdk_x11_screen_init_gl (screen))
+  if (!gdk_x11_screen_init_gl (x11_screen))
     return;
 
   gl_info = g_new0 (struct glvisualinfo, x11_screen->nvisuals);
diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h
index 8daad76..17c235e 100644
--- a/gdk/x11/gdkprivate-x11.h
+++ b/gdk/x11/gdkprivate-x11.h
@@ -278,9 +278,6 @@ gdk_window_cache_shape_filter (GdkXEvent *xev,
                                GdkEvent  *event,
                                gpointer   data);
 
-void _gdk_x11_screen_init_visuals     (GdkScreen *screen,
-                                       gboolean   setup_display);
-
 void _gdk_x11_cursor_display_finalize (GdkDisplay *display);
 
 void _gdk_x11_window_register_dnd (GdkWindow *window);
@@ -291,10 +288,6 @@ GdkDragContext * _gdk_x11_window_drag_begin (GdkWindow *window,
                                              gint       x_root,
                                              gint       y_root);
 
-gboolean _gdk_x11_get_xft_setting (GdkScreen   *screen,
-                                   const gchar *name,
-                                   GValue      *value);
-
 GdkGrabStatus _gdk_x11_convert_grab_status (gint status);
 
 cairo_surface_t * _gdk_x11_display_create_bitmap_surface (GdkDisplay *display,
diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c
index 6f5178e..f1a279c 100644
--- a/gdk/x11/gdkscreen-x11.c
+++ b/gdk/x11/gdkscreen-x11.c
@@ -46,9 +46,9 @@
 #include <X11/extensions/Xfixes.h>
 #endif
 
-static void         gdk_x11_screen_dispose     (GObject                  *object);
-static void         gdk_x11_screen_finalize    (GObject                  *object);
-static void        init_randr_support         (GdkScreen         *screen);
+static void gdk_x11_screen_dispose  (GObject      *object);
+static void gdk_x11_screen_finalize (GObject      *object);
+static void init_randr_support     (GdkX11Screen *screen);
 
 enum
 {
@@ -131,14 +131,12 @@ gdk_x11_screen_finalize (GObject *object)
  * Since: 2.14
  */
 XID
-gdk_x11_screen_get_monitor_output (GdkScreen *screen,
-                                   gint       monitor_num)
+gdk_x11_screen_get_monitor_output (GdkX11Screen *x11_screen,
+                                   gint          monitor_num)
 {
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
   GdkX11Display *x11_display = GDK_X11_DISPLAY (x11_screen->display);
   GdkX11Monitor *monitor;
 
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), None);
   g_return_val_if_fail (monitor_num >= 0, None);
   g_return_val_if_fail (monitor_num < x11_display->monitors->len, None);
 
@@ -147,7 +145,7 @@ gdk_x11_screen_get_monitor_output (GdkScreen *screen,
 }
 
 static int
-get_current_desktop (GdkScreen *screen)
+get_current_desktop (GdkX11Screen *screen)
 {
   Display *display;
   Window win;
@@ -184,10 +182,9 @@ get_current_desktop (GdkScreen *screen)
 }
 
 void
-gdk_x11_screen_get_work_area (GdkScreen    *screen,
+gdk_x11_screen_get_work_area (GdkX11Screen *x11_screen,
                               GdkRectangle *area)
 {
-  GdkX11Screen   *x11_screen = GDK_X11_SCREEN (screen);
   Atom            workarea;
   Atom            type;
   Window          win;
@@ -201,7 +198,7 @@ gdk_x11_screen_get_work_area (GdkScreen    *screen,
   int             desktop;
   Display        *display;
 
-  display = GDK_SCREEN_XDISPLAY (screen);
+  display = GDK_SCREEN_XDISPLAY (x11_screen);
   workarea = XInternAtom (display, "_NET_WORKAREA", True);
 
   /* Defaults in case of error */
@@ -210,14 +207,14 @@ gdk_x11_screen_get_work_area (GdkScreen    *screen,
   area->width = WidthOfScreen (x11_screen->xscreen);
   area->height = HeightOfScreen (x11_screen->xscreen);
 
-  if (!gdk_x11_screen_supports_net_wm_hint (screen,
+  if (!gdk_x11_screen_supports_net_wm_hint (x11_screen,
                                             gdk_atom_intern_static_string ("_NET_WORKAREA")))
     return;
 
   if (workarea == None)
     return;
 
-  win = XRootWindow (display, gdk_x11_screen_get_screen_number (screen));
+  win = XRootWindow (display, gdk_x11_screen_get_screen_number (x11_screen));
   result = XGetWindowProperty (display,
                                win,
                                workarea,
@@ -237,7 +234,7 @@ gdk_x11_screen_get_work_area (GdkScreen    *screen,
       num % 4 != 0)
     goto out;
 
-  desktop = get_current_desktop (screen);
+  desktop = get_current_desktop (x11_screen);
   if (desktop + 1 > num / 4) /* fvwm gets this wrong */
     goto out;
 
@@ -268,9 +265,9 @@ out:
  * Since: 2.2
  */
 Screen *
-gdk_x11_screen_get_xscreen (GdkScreen *screen)
+gdk_x11_screen_get_xscreen (GdkX11Screen *screen)
 {
-  return GDK_X11_SCREEN (screen)->xscreen;
+  return screen->xscreen;
 }
 
 /**
@@ -285,9 +282,9 @@ gdk_x11_screen_get_xscreen (GdkScreen *screen)
  * Since: 2.2
  */
 int
-gdk_x11_screen_get_screen_number (GdkScreen *screen)
+gdk_x11_screen_get_screen_number (GdkX11Screen *screen)
 {
-  return GDK_X11_SCREEN (screen)->screen_num;
+  return screen->screen_num;
 }
 
 static GdkX11Monitor *
@@ -320,12 +317,11 @@ translate_subpixel_order (int subpixel)
 }
 
 static gboolean
-init_randr15 (GdkScreen *screen, gboolean *changed)
+init_randr15 (GdkX11Screen *x11_screen, gboolean *changed)
 {
 #ifdef HAVE_RANDR15
-  GdkDisplay *display = GDK_SCREEN_DISPLAY (screen);
+  GdkDisplay *display = GDK_SCREEN_DISPLAY (x11_screen);
   GdkX11Display *x11_display = GDK_X11_DISPLAY (display);
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
   XRRScreenResources *resources;
   RROutput primary_output = None;
   RROutput first_output = None;
@@ -505,12 +501,11 @@ init_randr15 (GdkScreen *screen, gboolean *changed)
 }
 
 static gboolean
-init_randr13 (GdkScreen *screen, gboolean *changed)
+init_randr13 (GdkX11Screen *x11_screen, gboolean *changed)
 {
 #ifdef HAVE_RANDR
-  GdkDisplay *display = GDK_SCREEN_DISPLAY (screen);
+  GdkDisplay *display = GDK_SCREEN_DISPLAY (x11_screen);
   GdkX11Display *x11_display = GDK_X11_DISPLAY (display);
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
   XRRScreenResources *resources;
   RROutput primary_output = None;
   RROutput first_output = None;
@@ -675,9 +670,8 @@ init_randr13 (GdkScreen *screen, gboolean *changed)
 }
 
 static void
-init_no_multihead (GdkScreen *screen, gboolean *changed)
+init_no_multihead (GdkX11Screen *x11_screen, gboolean *changed)
 {
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
   GdkX11Display *x11_display = GDK_X11_DISPLAY (x11_screen->display);
   GdkX11Monitor *monitor;
   GdkRectangle geometry;
@@ -749,7 +743,7 @@ init_no_multihead (GdkScreen *screen, gboolean *changed)
 }
 
 static gboolean
-init_multihead (GdkScreen *screen)
+init_multihead (GdkX11Screen *screen)
 {
   gboolean any_changed = FALSE;
 
@@ -760,19 +754,17 @@ init_multihead (GdkScreen *screen)
   return any_changed;
 }
 
-GdkScreen *
+GdkX11Screen *
 _gdk_x11_screen_new (GdkDisplay *display,
                     gint        screen_number,
                      gboolean    setup_display)
 {
-  GdkScreen *screen;
   GdkX11Screen *x11_screen;
   GdkX11Display *display_x11 = GDK_X11_DISPLAY (display);
   const char *scale_str;
 
-  screen = g_object_new (GDK_TYPE_X11_SCREEN, NULL);
+  x11_screen = g_object_new (GDK_TYPE_X11_SCREEN, NULL);
 
-  x11_screen = GDK_X11_SCREEN (screen);
   x11_screen->display = display;
   x11_screen->xdisplay = display_x11->xdisplay;
   x11_screen->xscreen = ScreenOfDisplay (display_x11->xdisplay, screen_number);
@@ -793,12 +785,12 @@ _gdk_x11_screen_new (GdkDisplay *display,
   else
     x11_screen->window_scale = 1;
 
-  init_randr_support (screen);
-  init_multihead (screen);
+  init_randr_support (x11_screen);
+  init_multihead (x11_screen);
 
-  _gdk_x11_screen_init_visuals (screen, setup_display);
+  _gdk_x11_screen_init_visuals (x11_screen, setup_display);
 
-  return screen;
+  return x11_screen;
 }
 
 void
@@ -832,20 +824,18 @@ _gdk_x11_screen_set_window_scale (GdkX11Screen *x11_screen,
 }
 
 static void
-init_randr_support (GdkScreen *screen)
+init_randr_support (GdkX11Screen *x11_screen)
 {
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
-
   /* NB: This is also needed for XSettings, so don't remove. */
-  XSelectInput (GDK_SCREEN_XDISPLAY (screen),
+  XSelectInput (GDK_SCREEN_XDISPLAY (x11_screen),
                 x11_screen->xroot_window,
                 StructureNotifyMask);
 
 #ifdef HAVE_RANDR
-  if (!GDK_X11_DISPLAY (GDK_SCREEN_DISPLAY (screen))->have_randr12)
+  if (!GDK_X11_DISPLAY (GDK_SCREEN_DISPLAY (x11_screen))->have_randr12)
     return;
 
-  XRRSelectInput (GDK_SCREEN_XDISPLAY (screen),
+  XRRSelectInput (GDK_SCREEN_XDISPLAY (x11_screen),
                   x11_screen->xroot_window,
                   RRScreenChangeNotifyMask
                   | RRCrtcChangeNotifyMask
@@ -854,14 +844,14 @@ init_randr_support (GdkScreen *screen)
 }
 
 static void
-process_monitors_change (GdkScreen *screen)
+process_monitors_change (GdkX11Screen *screen)
 {
   init_multihead (screen);
 }
 
 void
-_gdk_x11_screen_size_changed (GdkScreen *screen,
-                             XEvent    *event)
+_gdk_x11_screen_size_changed (GdkX11Screen *screen,
+                             XEvent       *event)
 {
 #ifdef HAVE_RANDR
   GdkX11Display *display_x11;
@@ -881,14 +871,13 @@ _gdk_x11_screen_size_changed (GdkScreen *screen,
 }
 
 void
-_gdk_x11_screen_get_edge_monitors (GdkScreen *screen,
+_gdk_x11_screen_get_edge_monitors (GdkX11Screen *x11_screen,
                                    gint      *top,
                                    gint      *bottom,
                                    gint      *left,
                                    gint      *right)
 {
 #ifdef HAVE_XFREE_XINERAMA
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
   gint          top_most_pos = HeightOfScreen (x11_screen->xscreen);
   gint          left_most_pos = WidthOfScreen (x11_screen->xscreen);
   gint          bottom_most_pos = 0;
@@ -942,17 +931,16 @@ _gdk_x11_screen_get_edge_monitors (GdkScreen *screen,
 }
 
 void
-_gdk_x11_screen_window_manager_changed (GdkScreen *screen)
+_gdk_x11_screen_window_manager_changed (GdkX11Screen *screen)
 {
   g_signal_emit (screen, signals[WINDOW_MANAGER_CHANGED], 0);
 }
 
 gboolean
-gdk_x11_screen_get_setting (GdkScreen   *screen,
+gdk_x11_screen_get_setting (GdkX11Screen   *x11_screen,
                            const gchar *name,
                            GValue      *value)
 {
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
   const GValue *setting;
 
   if (x11_screen->xsettings == NULL)
@@ -973,7 +961,7 @@ gdk_x11_screen_get_setting (GdkScreen   *screen,
   return TRUE;
 
  out:
-  return _gdk_x11_get_xft_setting (screen, name, value);
+  return _gdk_x11_screen_get_xft_setting (x11_screen, name, value);
 }
 
 static void
@@ -1019,15 +1007,13 @@ get_net_supporting_wm_check (GdkX11Screen *screen,
 }
 
 static void
-fetch_net_wm_check_window (GdkScreen *screen)
+fetch_net_wm_check_window (GdkX11Screen *x11_screen)
 {
-  GdkX11Screen *x11_screen;
   GdkDisplay *display;
   Window window;
   GTimeVal tv;
   gint error;
 
-  x11_screen = GDK_X11_SCREEN (screen);
   display = x11_screen->display;
 
   g_return_if_fail (GDK_X11_DISPLAY (display)->trusted_client);
@@ -1069,7 +1055,7 @@ fetch_net_wm_check_window (GdkScreen *screen)
       x11_screen->need_refetch_wm_name = TRUE;
 
       /* Careful, reentrancy */
-      _gdk_x11_screen_window_manager_changed (screen);
+      _gdk_x11_screen_window_manager_changed (x11_screen);
     }
 }
 
@@ -1096,31 +1082,27 @@ fetch_net_wm_check_window (GdkScreen *screen)
  * Since: 2.2
  **/
 gboolean
-gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen,
+gdk_x11_screen_supports_net_wm_hint (GdkX11Screen *x11_screen,
                                     GdkAtom    property)
 {
   gulong i;
-  GdkX11Screen *x11_screen;
   NetWmSupportedAtoms *supported_atoms;
   GdkDisplay *display;
   Atom atom;
 
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
-
-  x11_screen = GDK_X11_SCREEN (screen);
   display = x11_screen->display;
 
   if (!G_LIKELY (GDK_X11_DISPLAY (display)->trusted_client))
     return FALSE;
 
-  supported_atoms = g_object_get_data (G_OBJECT (screen), "gdk-net-wm-supported-atoms");
+  supported_atoms = g_object_get_data (G_OBJECT (x11_screen), "gdk-net-wm-supported-atoms");
   if (!supported_atoms)
     {
       supported_atoms = g_new0 (NetWmSupportedAtoms, 1);
-      g_object_set_data_full (G_OBJECT (screen), "gdk-net-wm-supported-atoms", supported_atoms, 
cleanup_atoms);
+      g_object_set_data_full (G_OBJECT (x11_screen), "gdk-net-wm-supported-atoms", supported_atoms, 
cleanup_atoms);
     }
 
-  fetch_net_wm_check_window (screen);
+  fetch_net_wm_check_window (x11_screen);
 
   if (x11_screen->wmspec_check_window == None)
     return FALSE;
@@ -1179,18 +1161,16 @@ gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen,
  * Since: 2.2
  **/
 const char*
-gdk_x11_screen_get_window_manager_name (GdkScreen *screen)
+gdk_x11_screen_get_window_manager_name (GdkX11Screen *x11_screen)
 {
-  GdkX11Screen *x11_screen;
   GdkDisplay *display;
 
-  x11_screen = GDK_X11_SCREEN (screen);
   display = x11_screen->display;
 
   if (!G_LIKELY (GDK_X11_DISPLAY (display)->trusted_client))
     return x11_screen->window_manager_name;
 
-  fetch_net_wm_check_window (screen);
+  fetch_net_wm_check_window (x11_screen);
 
   if (x11_screen->need_refetch_wm_name)
     {
@@ -1234,7 +1214,7 @@ gdk_x11_screen_get_window_manager_name (GdkScreen *screen)
         }
     }
 
-  return GDK_X11_SCREEN (screen)->window_manager_name;
+  return x11_screen->window_manager_name;
 }
 
 static void
@@ -1257,10 +1237,9 @@ gdk_x11_screen_class_init (GdkX11ScreenClass *klass)
 }
 
 static guint32
-get_netwm_cardinal_property (GdkScreen   *screen,
-                             const gchar *name)
+get_netwm_cardinal_property (GdkX11Screen *x11_screen,
+                             const gchar  *name)
 {
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
   GdkAtom atom;
   guint32 prop = 0;
   Atom type;
@@ -1271,12 +1250,12 @@ get_netwm_cardinal_property (GdkScreen   *screen,
 
   atom = gdk_atom_intern_static_string (name);
 
-  if (!gdk_x11_screen_supports_net_wm_hint (screen, atom))
+  if (!gdk_x11_screen_supports_net_wm_hint (x11_screen, atom))
     return 0;
 
   XGetWindowProperty (x11_screen->xdisplay,
                       x11_screen->xroot_window,
-                      gdk_x11_get_xatom_by_name_for_display (GDK_SCREEN_DISPLAY (screen), name),
+                      gdk_x11_get_xatom_by_name_for_display (GDK_SCREEN_DISPLAY (x11_screen), name),
                       0, G_MAXLONG,
                       False, XA_CARDINAL, &type, &format, &nitems,
                       &bytes_after, &data);
@@ -1303,7 +1282,7 @@ get_netwm_cardinal_property (GdkScreen   *screen,
  * Since: 3.10
  */
 guint32
-gdk_x11_screen_get_number_of_desktops (GdkScreen *screen)
+gdk_x11_screen_get_number_of_desktops (GdkX11Screen *screen)
 {
   return get_netwm_cardinal_property (screen, "_NET_NUMBER_OF_DESKTOPS");
 }
@@ -1322,7 +1301,7 @@ gdk_x11_screen_get_number_of_desktops (GdkScreen *screen)
  * Since: 3.10
  */
 guint32
-gdk_x11_screen_get_current_desktop (GdkScreen *screen)
+gdk_x11_screen_get_current_desktop (GdkX11Screen *screen)
 {
   return get_netwm_cardinal_property (screen, "_NET_CURRENT_DESKTOP");
 }
diff --git a/gdk/x11/gdkscreen-x11.h b/gdk/x11/gdkscreen-x11.h
index 5f091e0..273a7a8 100644
--- a/gdk/x11/gdkscreen-x11.h
+++ b/gdk/x11/gdkscreen-x11.h
@@ -29,7 +29,7 @@
 #include <X11/Xlib.h>
 
 G_BEGIN_DECLS
-  
+
 typedef struct _GdkX11Monitor GdkX11Monitor;
 
 struct _GdkX11Screen
@@ -96,27 +96,34 @@ struct _GdkX11ScreenClass
 };
 
 GType       _gdk_x11_screen_get_type (void);
-GdkScreen * _gdk_x11_screen_new      (GdkDisplay *display,
-                                     gint        screen_number,
-                                      gboolean    setup_display);
-
-void _gdk_x11_screen_update_visuals_for_gl  (GdkScreen *screen);
-void _gdk_x11_screen_window_manager_changed (GdkScreen *screen);
-void _gdk_x11_screen_size_changed           (GdkScreen *screen,
-                                            XEvent    *event);
-void _gdk_x11_screen_get_edge_monitors      (GdkScreen *screen,
-                                            gint      *top,
-                                            gint      *bottom,
-                                            gint      *left,
-                                            gint      *right);
+GdkX11Screen *_gdk_x11_screen_new           (GdkDisplay   *display,
+                                             gint          screen_number,
+                                             gboolean      setup_display);
+
+void _gdk_x11_screen_update_visuals_for_gl  (GdkX11Screen *screen);
+void _gdk_x11_screen_window_manager_changed (GdkX11Screen *screen);
+void _gdk_x11_screen_size_changed           (GdkX11Screen *screen,
+                                             XEvent       *event);
+void _gdk_x11_screen_get_edge_monitors      (GdkX11Screen *screen,
+                                             gint         *top,
+                                             gint         *bottom,
+                                             gint         *left,
+                                             gint         *right);
 void _gdk_x11_screen_set_window_scale       (GdkX11Screen *x11_screen,
-                                            int        scale);
-void gdk_x11_screen_get_work_area           (GdkScreen    *screen,
+                                             int           scale);
+void gdk_x11_screen_get_work_area           (GdkX11Screen *screen,
                                              GdkRectangle *area);
-gboolean gdk_x11_screen_get_setting         (GdkScreen    *screen,
+gboolean gdk_x11_screen_get_setting         (GdkX11Screen *screen,
+                                             const char   *name,
+                                             GValue       *value);
+gboolean
+_gdk_x11_screen_get_xft_setting             (GdkX11Screen *screen,
                                              const char   *name,
                                              GValue       *value);
 
+void _gdk_x11_screen_init_visuals           (GdkX11Screen *screen,
+                                             gboolean      setup_display);
+
 G_END_DECLS
 
 #endif /* __GDK_X11_SCREEN__ */
diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c
index 45ff54c..85b0362 100644
--- a/gdk/x11/gdkvisual-x11.c
+++ b/gdk/x11/gdkvisual-x11.c
@@ -49,8 +49,8 @@ gdk_x11_visual_class_init (GdkX11VisualClass *class)
 }
 
 void
-_gdk_x11_screen_init_visuals (GdkScreen *screen,
-                              gboolean   setup_display)
+_gdk_x11_screen_init_visuals (GdkX11Screen *screen,
+                              gboolean      setup_display)
 {
   static const gint possible_depths[8] = { 32, 30, 24, 16, 15, 8, 4, 1 };
   static const GdkVisualType possible_types[6] =
@@ -255,7 +255,7 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen,
   /* If GL is available we want to pick better default/rgba visuals,
      as we care about glx details such as alpha/depth/stencil depth,
      stereo and double buffering */
-  _gdk_x11_screen_update_visuals_for_gl (screen);
+  _gdk_x11_screen_update_visuals_for_gl (x11_screen);
 
   if (setup_display)
     {
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index ef99753..d3f602d 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -1059,7 +1059,7 @@ GdkWindow *
 gdk_x11_window_foreign_new_for_display (GdkDisplay *display,
                                         Window      window)
 {
-  GdkScreen *screen;
+  GdkX11Screen *screen;
   GdkWindow *win;
   GdkWindowImplX11 *impl;
   GdkX11Display *display_x11;
diff --git a/gdk/x11/gdkx11display.h b/gdk/x11/gdkx11display.h
index d43ebee..c432af9 100644
--- a/gdk/x11/gdkx11display.h
+++ b/gdk/x11/gdkx11display.h
@@ -30,6 +30,7 @@
 #endif
 
 #include <gdk/gdk.h>
+#include <gdk/x11/gdkx11screen.h>
 
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
@@ -94,7 +95,7 @@ GDK_AVAILABLE_IN_ALL
 GdkDisplay   *gdk_x11_lookup_xdisplay (Display *xdisplay);
 
 GDK_AVAILABLE_IN_3_94
-GdkScreen  *gdk_x11_display_get_screen (GdkDisplay *display);
+GdkX11Screen *gdk_x11_display_get_screen (GdkDisplay *display);
 
 GDK_AVAILABLE_IN_ALL
 void        gdk_x11_display_grab              (GdkDisplay *display);
diff --git a/gdk/x11/gdkx11screen.h b/gdk/x11/gdkx11screen.h
index 167c7b5..867f9ab 100644
--- a/gdk/x11/gdkx11screen.h
+++ b/gdk/x11/gdkx11screen.h
@@ -43,36 +43,32 @@ G_BEGIN_DECLS
 #define GDK_IS_X11_SCREEN_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_X11_SCREEN))
 #define GDK_X11_SCREEN_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_X11_SCREEN, 
GdkX11ScreenClass))
 
-#ifdef GDK_COMPILATION
 typedef struct _GdkX11Screen GdkX11Screen;
-#else
-typedef GdkScreen GdkX11Screen;
-#endif
 typedef struct _GdkX11ScreenClass GdkX11ScreenClass;
 
 GDK_AVAILABLE_IN_ALL
 GType    gdk_x11_screen_get_type          (void);
 
 GDK_AVAILABLE_IN_ALL
-Screen * gdk_x11_screen_get_xscreen       (GdkScreen   *screen);
+Screen * gdk_x11_screen_get_xscreen       (GdkX11Screen   *screen);
 GDK_AVAILABLE_IN_ALL
-int      gdk_x11_screen_get_screen_number (GdkScreen   *screen);
+int      gdk_x11_screen_get_screen_number (GdkX11Screen   *screen);
 
 GDK_AVAILABLE_IN_ALL
-const char* gdk_x11_screen_get_window_manager_name (GdkScreen *screen);
+const char* gdk_x11_screen_get_window_manager_name (GdkX11Screen *screen);
 
 GDK_AVAILABLE_IN_ALL
-gboolean gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen,
-                                              GdkAtom    property);
+gboolean gdk_x11_screen_supports_net_wm_hint (GdkX11Screen *screen,
+                                              GdkAtom       property);
 
 GDK_AVAILABLE_IN_ALL
-XID      gdk_x11_screen_get_monitor_output   (GdkScreen *screen,
-                                              gint       monitor_num);
+XID      gdk_x11_screen_get_monitor_output   (GdkX11Screen *screen,
+                                              gint          monitor_num);
 
 GDK_AVAILABLE_IN_3_10
-guint32  gdk_x11_screen_get_number_of_desktops (GdkScreen *screen);
+guint32  gdk_x11_screen_get_number_of_desktops (GdkX11Screen *screen);
 GDK_AVAILABLE_IN_3_10
-guint32  gdk_x11_screen_get_current_desktop    (GdkScreen *screen);
+guint32  gdk_x11_screen_get_current_desktop    (GdkX11Screen *screen);
 
 G_END_DECLS
 
diff --git a/gdk/x11/gdkxftdefaults.c b/gdk/x11/gdkxftdefaults.c
index 704ad24..cb6c8be 100644
--- a/gdk/x11/gdkxftdefaults.c
+++ b/gdk/x11/gdkxftdefaults.c
@@ -147,10 +147,9 @@ get_integer_default (Display     *dpy,
 }
 
 static void
-init_xft_settings (GdkScreen *screen)
+init_xft_settings (GdkX11Screen *x11_screen)
 {
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
-  Display *xdisplay = GDK_SCREEN_XDISPLAY (screen);
+  Display *xdisplay = GDK_SCREEN_XDISPLAY (x11_screen);
   double dpi_double;
   gboolean b;
 
@@ -180,18 +179,16 @@ init_xft_settings (GdkScreen *screen)
 }
 
 gboolean
-_gdk_x11_get_xft_setting (GdkScreen   *screen,
-                         const gchar *name,
-                         GValue      *value)
+_gdk_x11_screen_get_xft_setting (GdkX11Screen *x11_screen,
+                                 const char   *name,
+                                 GValue       *value)
 {
-  GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
-  
   if (strncmp (name, "gtk-xft-", 8) != 0)
     return FALSE;
 
   name += 8;
 
-  init_xft_settings (screen);
+  init_xft_settings (x11_screen);
 
   if (strcmp (name, "antialias") == 0)
     {


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