]> git.tdb.fi Git - libs/gui.git/commitdiff
Fix some minor issues in XRandR mode setting code
authorMikko Rasa <tdb@tdb.fi>
Sun, 22 Oct 2023 07:45:20 +0000 (10:45 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sun, 22 Oct 2023 07:45:20 +0000 (10:45 +0300)
source/graphics/x11/display.cpp

index b5888c6459620bca2fc118d923e8b98e10d609ea..58297fb769af1c4773f15f770f4a1b85aa4c120a 100644 (file)
@@ -285,6 +285,7 @@ void Display::set_mode(const VideoMode &requested_mode, bool exclusive)
                if(!crtc)
                {
                        XRRFreeOutputInfo(output_info);
+                       XRRFreeScreenResources(res);
                        throw unsupported_video_mode(requested_mode);
                }
        }
@@ -293,10 +294,10 @@ void Display::set_mode(const VideoMode &requested_mode, bool exclusive)
        to one of the elements of the monitors list, which is non-const here. */
        Monitor *monitor = const_cast<Monitor *>(mode->monitor);
 
+       monitor->current_settings.mode = mode;
+       monitor->current_settings.rotation = requested_rotation;
        if(exclusive)
        {
-               monitor->current_settings.mode = mode;
-               monitor->current_settings.rotation = requested_rotation;
                monitor->current_settings.x = 0;
                monitor->current_settings.y = 0;