]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/window.cpp
Implement additional fullscreen options for Window
[libs/gui.git] / source / graphics / window.cpp
index 958667ead5698165d18508a7685f7ea1eebcfa9f..d27f41fd6fda9980cbf9192329335388e918d8c0 100644 (file)
@@ -15,6 +15,8 @@ WindowOptions::WindowOptions():
        width(640),
        height(480),
        fullscreen(false),
+       fullscreen_monitor(0),
+       fullscreen_exclusive(true),
        resizable(false)
 { }
 
@@ -90,11 +92,14 @@ void Window::reconfigure(const WindowOptions &opts)
 
 void Window::set_fullscreen_mode()
 {
+       if(!options.fullscreen_monitor)
+               options.fullscreen_monitor = display.get_desktop_mode().monitor;
        VideoMode mode(options.width, options.height);
-       mode.rotation = display.get_desktop_mode().monitor->desktop_settings.rotation;
+       mode.monitor = options.fullscreen_monitor;
+       mode.rotation = mode.monitor->desktop_settings.rotation;
        if(mode.rotation==ROTATE_LEFT || mode.rotation==ROTATE_RIGHT)
                swap(mode.width, mode.height);
-       display.set_mode(mode, true);
+       display.set_mode(mode, options.fullscreen_exclusive);
 }
 
 void Window::set_keyboard_autorepeat(bool r)