[gtk+/wip/matthiasc/monitor] broadway: Port to new monitor api
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/monitor] broadway: Port to new monitor api
- Date: Sun, 3 Apr 2016 14:51:59 +0000 (UTC)
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]