src/video/x11/SDL_x11window.c
changeset 6539 c76274e7f32a
parent 6501 2efafb933bd5
child 6540 44459e2f6e4d
--- a/src/video/x11/SDL_x11window.c	Wed Oct 03 12:04:30 2012 -0700
+++ b/src/video/x11/SDL_x11window.c	Wed Oct 03 12:14:04 2012 -0700
@@ -917,28 +917,26 @@
     if (X11_IsWindowMapped(_this, window)) {
         XEvent e;
 
-        if (!X11_IsActionAllowed(window, _NET_WM_ACTION_FULLSCREEN)) {
-            /* We aren't allowed to go into fullscreen mode... */
-            if ((window->flags & SDL_WINDOW_RESIZABLE) == 0) {
-                /* ...and we aren't resizable. Compiz refuses fullscreen toggle in this case. */
-                XSizeHints *sizehints = XAllocSizeHints();
-                long flags = 0;
-                XGetWMNormalHints(display, data->xwindow, sizehints, &flags);
-                /* set the resize flags on */
+        if (!(window->flags & SDL_WINDOW_RESIZABLE)) {
+            /* Compiz refuses fullscreen toggle if we're not resizable, so update the hints so we
+               can be resized to the fullscreen resolution (or reset so we're not resizable again) */
+            XSizeHints *sizehints = XAllocSizeHints();
+            long flags = 0;
+            XGetWMNormalHints(display, data->xwindow, sizehints, &flags);
+            /* set the resize flags on */
+            if (fullscreen) {
+                /* we are going fullscreen so turn the flags off */
+                sizehints->flags &= ~(PMinSize | PMaxSize);
+            } else {
+                /* Reset the min/max width height to make the window non-resizable again */
                 sizehints->flags |= PMinSize | PMaxSize;
-                if (fullscreen) {
-                    /* we are going fullscreen so turn the flags off */
-                    sizehints->flags ^= (PMinSize | PMaxSize);
-                } else {
-                    /* Reset the min/max width height to make the window non-resizable again */
-                    sizehints->min_width = sizehints->max_width = window->w;
-                    sizehints->min_height = sizehints->max_height = window->h;
-                }
-                XSetWMNormalHints(display, data->xwindow, sizehints);
-                XFree(sizehints);
+                sizehints->min_width = sizehints->max_width = window->w;
+                sizehints->min_height = sizehints->max_height = window->h;
             }
+            XSetWMNormalHints(display, data->xwindow, sizehints);
+            XFree(sizehints);
         }
-        
+
         SDL_zero(e);
         e.xany.type = ClientMessage;
         e.xclient.message_type = _NET_WM_STATE;