Do not update root geometry when a fullscreened window change root size
authorPhilippe Brochard <pbrochard@common-lisp.net>
Sun, 21 Oct 2012 11:44:41 +0000 (21 13:44 +0200)
committerPhilippe Brochard <pbrochard@common-lisp.net>
Sun, 21 Oct 2012 11:44:41 +0000 (21 13:44 +0200)
src/clfswm-internal.lisp
src/clfswm.lisp

index 7e404ab..f2ca58c 100644 (file)
 
 
 
+
+(defun null-size-window-in-frame (frame)
+  (let ((null-size-window-p nil))
+    (with-all-windows (frame window)
+      (when (null-size-window-p window)
+        (setf null-size-window-p t)))
+    null-size-window-p))
+
+
+
 (defun create-frame-window ()
   (let ((win (xlib:create-window :parent *root*
                                  :x 0
index 59150ba..c458d10 100644 (file)
   (awhen (find-frame-window window)
     (display-frame-info it)))
 
+
 (define-handler main-mode :configure-notify (window)
   (when (child-equal-p window *root*)
-    (place-frames-from-xinerama-infos)
-    (finish-configuring-root)
-    (show-all-children)
-    (call-hook *root-size-change*)))
+    (unless (null-size-window-in-frame *root-frame*)
+      (place-frames-from-xinerama-infos)
+      (finish-configuring-root)
+      (show-all-children)
+      (call-hook *root-size-change*))))
 
 
 (defun error-handler (display error-key &rest key-vals &key asynchronous &allow-other-keys)