]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
don't resize the client itself while doing a resize if its not final when config_opaq...
[chaz/openbox] / openbox / client.c
index f17d1bafa10ced0d955804a3c45ff102df7b7c45..3d9239e481dd95ed1acfb748b25996f7af002734 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 */
@@ -1722,7 +1733,7 @@ void client_configure(Client *self, Corner anchor, int x, int y, int w, int h,
 
     RECT_SET(self->area, x, y, w, h);
 
-    if (resized)
+    if (final || (resized && !config_opaque_resize))
        XResizeWindow(ob_display, self->window, w, h);
 
     /* move/resize the frame to match the request */
This page took 0.021505 seconds and 4 git commands to generate.