]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/windows/display.cpp
Initialize monitor.current_settings on Windows
[libs/gui.git] / source / graphics / windows / display.cpp
index fdae09e362e5abe25c8c29d34a5380d351a6b1ae..61fe9837d6d1db0e4cc9f7da8edcbd1f02e9c3bd 100644 (file)
@@ -9,7 +9,8 @@ namespace Graphics {
 
 Display::Display(const string &):
        primary_monitor(0),
-       priv(new Private)
+       priv(new Private),
+       focus_window(0)
 {
        static ErrorDialog err_dlg(0);
 
@@ -26,6 +27,7 @@ Display::Display(const string &):
                monitors.push_back(Monitor());
                Monitor &monitor = monitors.back();
                monitor.index = monitors.size()-1;
+               monitor.name = adapter_dev.DeviceString;
                priv->monitors.push_back(adapter_dev.DeviceName);
 
                if(adapter_dev.StateFlags&DISPLAY_DEVICE_PRIMARY_DEVICE)
@@ -51,13 +53,16 @@ Display::Display(const string &):
                        monitor.video_modes.push_back(&modes.back());
 
                        if(have_current && info.dmPelsWidth==current.dmPelsWidth && info.dmPelsHeight==current.dmPelsHeight && info.dmDisplayFrequency==current.dmDisplayFrequency)
-                               monitor.desktop_mode = &modes.back();
+                               monitor.desktop_settings.mode = &modes.back();
                }
+
+               monitor.current_settings = monitor.desktop_settings;
        }
 }
 
 Display::~Display()
 {
+       delete priv;
 }
 
 void Display::set_mode(const VideoMode &requested_mode, bool)
@@ -87,7 +92,7 @@ void Display::set_mode(const VideoMode &requested_mode, bool)
 
        for(list<Monitor>::iterator i=monitors.begin(); i!=monitors.end(); ++i)
                if(&*i==mode->monitor)
-                       i->current_mode = mode;
+                       i->current_settings.mode = mode;
 }
 
 bool Display::process_events()