[gtk+/wip/matthiasc/monitor] broadway: Port to new monitor api



commit f0c8a78c67cdb38103407503ab67b1b0395f9c6e
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Apr 2 23:42:40 2016 -0400

    broadway: Port to new monitor api

 gdk/broadway/gdkdisplay-broadway.c |   27 +++++++++++++++
 gdk/broadway/gdkdisplay-broadway.h |    3 ++
 gdk/broadway/gdkscreen-broadway.c  |   62 +++--------------------------------
 3 files changed, 36 insertions(+), 56 deletions(-)
---
diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c
index 2aa56c6..88c1334 100644
--- a/gdk/broadway/gdkdisplay-broadway.c
+++ b/gdk/broadway/gdkdisplay-broadway.c
@@ -55,6 +55,10 @@ static void
 gdk_broadway_display_init (GdkBroadwayDisplay *display)
 {
   display->id_ht = g_hash_table_new (NULL, NULL);
+
+  display->monitor = g_object_new (gdk_monitor_get_type (), "display", display, NULL);
+  gdk_monitor_set_manufacturer (display->monitor, "browser");
+  gdk_monitor_set_model (display->monitor, "0");
 }
 
 static void
@@ -200,6 +204,8 @@ gdk_broadway_display_finalize (GObject *object)
   g_object_unref (broadway_display->screens[0]);
   g_free (broadway_display->screens);
 
+  g_object_unref (broadway_display->monitor);
+
   G_OBJECT_CLASS (gdk_broadway_display_parent_class)->finalize (object);
 }
 
@@ -281,6 +287,24 @@ gdk_broadway_display_hide_keyboard (GdkBroadwayDisplay *display)
   _gdk_broadway_server_set_show_keyboard (display->server, FALSE);
 }
 
+static GdkMonitor **
+gdk_broadway_display_get_monitors (GdkDisplay *display,
+                                   int        *n_monitors)
+{
+  GdkBroadwayDisplay *broadway_display = GDK_BROADWAY_DISPLAY (display);
+
+  *n_monitors = 1;
+  return &broadway_display->monitor;
+}
+
+static GdkMonitor *
+gdk_broadway_display_get_primary_monitor (GdkDisplay *display)
+{
+  GdkBroadwayDisplay *broadway_display = GDK_BROADWAY_DISPLAY (display);
+
+  return broadway_display->monitor;
+}
+
 static void
 gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class)
 {
@@ -328,5 +352,8 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class)
   display_class->convert_selection = _gdk_broadway_display_convert_selection;
   display_class->text_property_to_utf8_list = _gdk_broadway_display_text_property_to_utf8_list;
   display_class->utf8_to_string_target = _gdk_broadway_display_utf8_to_string_target;
+
+  display_class->get_monitors = gdk_broadway_display_get_monitors;
+  display_class->get_primary_monitor = gdk_broadway_display_get_primary_monitor;
 }
 
diff --git a/gdk/broadway/gdkdisplay-broadway.h b/gdk/broadway/gdkdisplay-broadway.h
index fe2080a..38a9968 100644
--- a/gdk/broadway/gdkdisplay-broadway.h
+++ b/gdk/broadway/gdkdisplay-broadway.h
@@ -30,6 +30,7 @@
 #include "gdkinternals.h"
 #include "gdkmain.h"
 #include "gdkbroadway-server.h"
+#include "gdkmonitorprivate.h"
 
 G_BEGIN_DECLS
 
@@ -56,6 +57,8 @@ struct _GdkBroadwayDisplay
   GdkBroadwayServer *server;
 
   gpointer move_resize_data;
+
+  GdkMonitor *monitor;
 };
 
 struct _GdkBroadwayDisplayClass
diff --git a/gdk/broadway/gdkscreen-broadway.c b/gdk/broadway/gdkscreen-broadway.c
index 51ee140..c123d98 100644
--- a/gdk/broadway/gdkscreen-broadway.c
+++ b/gdk/broadway/gdkscreen-broadway.c
@@ -91,6 +91,7 @@ _gdk_broadway_screen_size_changed (GdkScreen                       *screen,
                                    BroadwayInputScreenResizeNotify *msg)
 {
   GdkBroadwayScreen *broadway_screen = GDK_BROADWAY_SCREEN (screen);
+  GdkMonitor *monitor;
   gint width, height;
   GList *toplevels, *l;
 
@@ -104,6 +105,11 @@ _gdk_broadway_screen_size_changed (GdkScreen                       *screen,
       height == gdk_screen_get_height (screen))
     return;
 
+  monitor = GDK_BROADWAY_DISPLAY (broadway_screen->display)->monitor;
+
+  gdk_monitor_set_size (monitor, msg->width, msg->height);
+  gdk_monitor_set_physical_size (monitor, msg->width * 25.4 / 96, msg->height * 25.4 / 96);
+
   g_signal_emit_by_name (screen, "size-changed");
   toplevels = gdk_screen_get_toplevel_windows (screen);
   for (l = toplevels; l != NULL; l = l->next)
@@ -146,55 +152,6 @@ gdk_broadway_screen_finalize (GObject *object)
   G_OBJECT_CLASS (gdk_broadway_screen_parent_class)->finalize (object);
 }
 
-static gint
-gdk_broadway_screen_get_n_monitors (GdkScreen *screen)
-{
-  return 1;
-}
-
-static gint
-gdk_broadway_screen_get_primary_monitor (GdkScreen *screen)
-{
-  return 0;
-}
-
-static gint
-gdk_broadway_screen_get_monitor_width_mm (GdkScreen *screen,
-                                         gint       monitor_num)
-{
-  return gdk_screen_get_width_mm (screen);
-}
-
-static gint
-gdk_broadway_screen_get_monitor_height_mm (GdkScreen *screen,
-                                          gint       monitor_num)
-{
-  return gdk_screen_get_height_mm (screen);
-}
-
-static gchar *
-gdk_broadway_screen_get_monitor_plug_name (GdkScreen *screen,
-                                          gint       monitor_num)
-{
-  return g_strdup ("browser");
-}
-
-static void
-gdk_broadway_screen_get_monitor_geometry (GdkScreen    *screen,
-                                         gint          monitor_num,
-                                         GdkRectangle *dest)
-{
-  GdkBroadwayScreen *broadway_screen = GDK_BROADWAY_SCREEN (screen);
-
-  if (dest)
-    {
-      dest->x = 0;
-      dest->y = 0;
-      dest->width = broadway_screen->width;
-      dest->height = broadway_screen->height;
-    }
-}
-
 static GdkVisual *
 gdk_broadway_screen_get_rgba_visual (GdkScreen *screen)
 {
@@ -290,13 +247,6 @@ gdk_broadway_screen_class_init (GdkBroadwayScreenClass *klass)
   screen_class->get_height_mm = gdk_broadway_screen_get_height_mm;
   screen_class->get_number = gdk_broadway_screen_get_number;
   screen_class->get_root_window = gdk_broadway_screen_get_root_window;
-  screen_class->get_n_monitors = gdk_broadway_screen_get_n_monitors;
-  screen_class->get_primary_monitor = gdk_broadway_screen_get_primary_monitor;
-  screen_class->get_monitor_width_mm = gdk_broadway_screen_get_monitor_width_mm;
-  screen_class->get_monitor_height_mm = gdk_broadway_screen_get_monitor_height_mm;
-  screen_class->get_monitor_plug_name = gdk_broadway_screen_get_monitor_plug_name;
-  screen_class->get_monitor_geometry = gdk_broadway_screen_get_monitor_geometry;
-  screen_class->get_monitor_workarea = gdk_broadway_screen_get_monitor_geometry;
   screen_class->is_composited = gdk_broadway_screen_is_composited;
   screen_class->make_display_name = gdk_broadway_screen_make_display_name;
   screen_class->get_active_window = gdk_broadway_screen_get_active_window;


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