]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/x11/window.cpp
Implement additional fullscreen options for Window
[libs/gui.git] / source / graphics / x11 / window.cpp
index 7513d3ffb14ebb958efe5e7d9b33a9f65e0482e4..07ff75588c824ad17ab1cdd22b09572a7cd279de 100644 (file)
@@ -111,7 +111,15 @@ void Window::platform_reconfigure(bool fullscreen_changed)
        XSetWMNormalHints(dpy, priv->window, &hints);
 
        if(options.fullscreen)
-               XMoveResizeWindow(dpy, priv->window, 0, 0, options.width, options.height);
+       {
+               if(options.fullscreen_exclusive)
+                       XMoveResizeWindow(dpy, priv->window, 0, 0, options.width, options.height);
+               else
+               {
+                       const Monitor::Settings &ms = options.fullscreen_monitor->current_settings;
+                       XMoveResizeWindow(dpy, priv->window, ms.x, ms.y, options.width, options.height);
+               }
+       }
        else if(options.user_position)
                XMoveResizeWindow(dpy, priv->window, options.x, options.y, options.width, options.height);
        else
@@ -244,7 +252,7 @@ bool Window::event(const Event &evnt)
                        XSetInputFocus(display.get_private().display, priv->window, RevertToParent, CurrentTime);
                break;
        case MapNotify:
-               if(options.fullscreen)
+               if(options.fullscreen && options.fullscreen_exclusive)
                        XGrabPointer(display.get_private().display, priv->window, true, None, GrabModeAsync, GrabModeAsync, priv->window, None, CurrentTime);
                break;
        case Expose: