[mutter] meta-monitor-xrandr: Assign a name to the mode



commit 3ee09c6251cf0f30eb1dc45492f41abe69af5b9e
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Sat Aug 23 08:48:42 2014 -0400

    meta-monitor-xrandr: Assign a name to the mode
    
    Based on a downstream Endless patch. They use this to show a proper mode
    name to the users.

 src/backends/x11/meta-monitor-manager-xrandr.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/src/backends/x11/meta-monitor-manager-xrandr.c b/src/backends/x11/meta-monitor-manager-xrandr.c
index d7729e1..7f60f40 100644
--- a/src/backends/x11/meta-monitor-manager-xrandr.c
+++ b/src/backends/x11/meta-monitor-manager-xrandr.c
@@ -330,6 +330,21 @@ output_get_hotplug_mode_update (MetaMonitorManagerXrandr *manager_xrandr,
   return output_get_boolean_property (manager_xrandr, output, "hotplug_mode_update");
 }
 
+static char *
+get_xmode_name (XRRModeInfo *xmode)
+{
+  int width = xmode->width;
+  int height = xmode->height;
+
+  if (xmode->hSkew != 0)
+    {
+      width += 2 * (xmode->hSkew >> 8);
+      height += 2 * (xmode->hSkew & 0xff);
+    }
+
+  return g_strdup_printf ("%dx%d", width, height);
+}
+
 static void
 meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
 {
@@ -415,6 +430,7 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
       mode->height = xmode->height;
       mode->refresh_rate = (xmode->dotClock /
                            ((float)xmode->hTotal * xmode->vTotal));
+      mode->name = get_xmode_name (xmode);
     }
 
   for (i = 0; i < (unsigned)resources->ncrtc; i++)


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