/* 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 */
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 */