X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fwindows%2Fdisplay.cpp;h=7b616662ae9e06585c874f4e36c24af027d3f808;hb=21b0c47700f1b570b6129384ce0b96a0c6b48ffd;hp=ae19f57c2c3bf59de14d9ba5f509ddbbf4eb8e17;hpb=89ec4c335953556ca069960adf6ea3a5dc3bb499;p=libs%2Fgui.git diff --git a/source/graphics/windows/display.cpp b/source/graphics/windows/display.cpp index ae19f57..7b61666 100644 --- a/source/graphics/windows/display.cpp +++ b/source/graphics/windows/display.cpp @@ -11,6 +11,8 @@ Display::Display(const string &): primary_monitor(0), priv(new Private) { + static ErrorDialog err_dlg(0); + for(unsigned i=0;; ++i) { DISPLAY_DEVICE adapter_dev; @@ -39,6 +41,7 @@ Display::Display(const string &): break; VideoMode mode(info.dmPelsWidth, info.dmPelsHeight); + mode.index = modes.size(); mode.monitor = &monitor; mode.rate = info.dmDisplayFrequency; if(find_matching_mode(mode)) @@ -77,6 +80,10 @@ void Display::set_mode(const VideoMode &requested_mode, bool) LONG ret = ChangeDisplaySettingsEx(priv->monitors[mode->monitor->index].c_str(), &info, NULL, CDS_FULLSCREEN, NULL); if(ret!=DISP_CHANGE_SUCCESSFUL) throw unsupported_video_mode(requested_mode); + + for(list::iterator i=monitors.begin(); i!=monitors.end(); ++i) + if(&*i==mode->monitor) + i->current_mode = mode; } bool Display::process_events()