From: Philippe Brochard Date: Sun, 21 Oct 2012 11:44:41 +0000 (+0200) Subject: Do not update root geometry when a fullscreened window change root size X-Git-Tag: R-1212~19 X-Git-Url: https://repo.or.cz/w/clfswm.git/commitdiff_plain/b317f0fde0d41f049d76ecbc0fb3fb4c7aaff299 Do not update root geometry when a fullscreened window change root size --- diff --git a/src/clfswm-internal.lisp b/src/clfswm-internal.lisp index 7e404ab..f2ca58c 100644 --- a/src/clfswm-internal.lisp +++ b/src/clfswm-internal.lisp @@ -489,6 +489,16 @@ + +(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 diff --git a/src/clfswm.lisp b/src/clfswm.lisp index 59150ba..c458d10 100644 --- a/src/clfswm.lisp +++ b/src/clfswm.lisp @@ -150,12 +150,14 @@ (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)