]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
better VIDMODE support, handle the cases where the functions fail
[chaz/openbox] / openbox / client.c
index f17d1bafa10ced0d955804a3c45ff102df7b7c45..f704ca1a61924dd41f5e4ef89d0c66ae6b18f621 100644 (file)
@@ -1610,13 +1610,24 @@ void client_configure(Client *self, Corner anchor, int x, int y, int w, int h,
     /* set the size and position if fullscreen */
     if (self->fullscreen) {
 #ifdef VIDMODE
-        XF86VidModeGetViewPort(ob_display, ob_screen, &x, &y);
+        int dot;
+        XF86VidModeModeLine mode;
+
+        if (XF86VidModeGetModeLine(ob_display, ob_screen, &dot, &mode)) {
+            w = mode.hdisplay;
+            h = mode.vdisplay;
+            if (mode.privsize) XFree(mode.private);
+        } else {
 #else
-       x = 0;
-       y = 0;
+            w = screen_physical_size.width;
+            h = screen_physical_size.height;
+#endif
+#ifdef VIDMODE
+        }
+        if (!XF86VidModeGetViewPort(ob_display, ob_screen, &x, &y)) {
+            x = y = 0;
 #endif
-       w = screen_physical_size.width;
-       h = screen_physical_size.height;
+        }
         user = FALSE; /* ignore that increment etc shit when in fullscreen */
     } else {
         /* set the size and position if maximized */
This page took 0.023062 seconds and 4 git commands to generate.