[gtk+] mir: correctly get screen mm sizes
- From: Marco Trevisan <marcotrevi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] mir: correctly get screen mm sizes
- Date: Thu, 13 Nov 2014 01:07:59 +0000 (UTC)
commit 98a8c66970872c600a3122c53c4a7680276f069d
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Thu Nov 13 01:47:56 2014 +0100
mir: correctly get screen mm sizes
gdk/mir/gdkmirscreen.c | 33 +++++++++++++++++++++++++++++----
1 files changed, 29 insertions(+), 4 deletions(-)
---
diff --git a/gdk/mir/gdkmirscreen.c b/gdk/mir/gdkmirscreen.c
index dedaa02..b182d94 100644
--- a/gdk/mir/gdkmirscreen.c
+++ b/gdk/mir/gdkmirscreen.c
@@ -95,6 +95,29 @@ get_screen_size (MirDisplayConfiguration *config, gint *width, gint *height)
}
static void
+get_screen_size_mm (MirDisplayConfiguration *config, gint *width, gint *height)
+{
+ uint32_t i;
+
+ *width = 0;
+ *height = 0;
+
+ if (!config)
+ return;
+
+ for (i = 0; i < config->num_outputs; i++)
+ {
+ MirDisplayOutput *o = &config->outputs[i];
+
+ if (!o->used)
+ continue;
+
+ *width += o->physical_width_mm;
+ *height += o->physical_height_mm;
+ }
+}
+
+static void
update_display_config (GdkMirScreen *screen)
{
gdk_mir_display_get_mir_connection (GDK_DISPLAY (screen->display));
@@ -194,16 +217,18 @@ static gint
gdk_mir_screen_get_width_mm (GdkScreen *screen)
{
g_printerr ("gdk_mir_screen_get_width_mm\n");
- // FIXME: A combination of all screens?
- return get_output (screen, 0)->physical_width_mm;
+ gint width, height;
+ get_screen_size_mm (GDK_MIR_SCREEN (screen)->display_config, &width, &height);
+ return width;
}
static gint
gdk_mir_screen_get_height_mm (GdkScreen *screen)
{
g_printerr ("gdk_mir_screen_get_height_mm\n");
- // FIXME: A combination of all screens?
- return get_output (screen, 0)->physical_height_mm;
+ gint width, height;
+ get_screen_size_mm (GDK_MIR_SCREEN (screen)->display_config, &width, &height);
+ return height;
}
static gint
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]