]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/x11/display.cpp
Store monitor names
[libs/gui.git] / source / graphics / x11 / display.cpp
index c2a4eaf26371d1a190f8051f9e198590192d95a4..8f022f7957a8af1c5df81d5844fe7e7683d2a7d9 100644 (file)
@@ -38,6 +38,7 @@ int x_error_handler(Display *display, XErrorEvent *event)
        return 0;
 }
 
+#ifdef WITH_XRANDR
 inline Msp::Graphics::VideoRotation rotation_from_sys(Rotation r)
 {
        switch(r)
@@ -60,12 +61,13 @@ inline Rotation rotation_to_sys(Msp::Graphics::VideoRotation r)
        }
 }
 
-bool monitor_x_compare(const Msp::Graphics::Monitor &m1, const Msp::Graphics::Monitor &m2)
+inline bool monitor_x_compare(const Msp::Graphics::Monitor &m1, const Msp::Graphics::Monitor &m2)
 {
        if(m1.desktop_mode && !m2.desktop_mode)
                return true;
        return m1.x<m2.x;
 }
+#endif
 
 inline unsigned mode_width(const Msp::Graphics::VideoMode &m, Msp::Graphics::VideoRotation r)
 {
@@ -121,6 +123,7 @@ Display::Display(const string &disp_name):
                                monitors.push_back(Monitor());
                                Monitor &monitor = monitors.back();
                                monitor.index = monitors.size()-1;
+                               monitor.name.assign(output->name, output->nameLen);
                                priv->monitors.push_back(res->outputs[i]);
 
                                if(crtc)
@@ -145,8 +148,8 @@ Display::Display(const string &disp_name):
                                        VideoMode mode(info->width, info->height);
                                        mode.index = modes.size();
                                        mode.monitor = &monitor;
-                                       mode.rate = info->dotClock/(info->hTotal*info->vTotal);
-                                       if(find_mode(mode))
+                                       mode.rate = static_cast<float>(info->dotClock)/(info->hTotal*info->vTotal);
+                                       if(find_mode(mode, 0.01f))
                                                continue;
 
                                        modes.push_back(mode);