]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/x11/display.cpp
Use a tighter threshold when checking for duplicate modes
[libs/gui.git] / source / graphics / x11 / display.cpp
index 7b8f9da91cb06bd378d12ff73343444ae9664be7..b70c9a7c197866179a95b26bf4aae26d7e3d16bd 100644 (file)
@@ -60,14 +60,14 @@ inline Rotation rotation_to_sys(Msp::Graphics::VideoRotation r)
        default: return RR_Rotate_0;
        }
 }
-#endif
 
-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)
 {
@@ -147,8 +147,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);