[clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1212-9-g2c2d14a

Philippe Brochard pbrochard at common-lisp.net
Thu Jan 10 08:53:50 UTC 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CLFSWM - A(nother) Common Lisp FullScreen Window Manager".

The branch, master has been updated
       via  2c2d14a8691c1145d8ac4e151a73502b8880119f (commit)
      from  6a451c65b93ea73212a9c216190a946d0e5c04fb (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 2c2d14a8691c1145d8ac4e151a73502b8880119f
Author: Philippe Brochard <pbrochard at common-lisp.net>
Date:   Thu Jan 10 09:53:29 2013 +0100

    Raise window only if there is no maxsize fullscreenned windows (ex: SDL windows in fullscreen mode)

diff --git a/src/clfswm-internal.lisp b/src/clfswm-internal.lisp
index 819a420..72240f3 100644
--- a/src/clfswm-internal.lisp
+++ b/src/clfswm-internal.lisp
@@ -1071,7 +1071,9 @@ XINERAMA version 1.1 opcode: 150
   (lower-window window (frame-window child)))
 
 (defmethod set-child-stack-order (window child)
-  (declare (ignore window child)))
+  (declare (ignore child))
+  (unless (maxmin-size-equal-window-in-tree)
+    (raise-window window)))
 
 
 
diff --git a/src/xlib-util.lisp b/src/xlib-util.lisp
index 97ff700..6210c6e 100644
--- a/src/xlib-util.lisp
+++ b/src/xlib-util.lisp
@@ -328,6 +328,31 @@ they should be windows. So use this function to make a window out of them."
 
 
 
+(defun maxmin-size-equal-p (window)
+  (when (xlib:window-p window)
+    (let ((hints (xlib:wm-normal-hints window)))
+      (when hints
+        (let ((hint-x (xlib:wm-size-hints-x hints))
+              (hint-y (xlib:wm-size-hints-y hints))
+              (user-specified-position-p (xlib:wm-size-hints-user-specified-position-p hints))
+              (min-width (xlib:wm-size-hints-min-width hints))
+              (min-height (xlib:wm-size-hints-min-height hints))
+              (max-width (xlib:wm-size-hints-max-width hints))
+              (max-height (xlib:wm-size-hints-max-height hints)))
+          (and hint-x hint-y min-width max-width min-height max-height
+               user-specified-position-p
+               (= hint-x 0) (= hint-y 0)
+               (= min-width max-width)
+               (= min-height max-height)))))))
+
+(defun maxmin-size-equal-window-in-tree ()
+  (dolist (win (xlib:query-tree *root*))
+    (when (maxmin-size-equal-p win)
+      (return win))))
+
+
+
+
 (defun window-state (win)
   "Get the state (iconic, normal, withdrawn) of a window."
   (first (xlib:get-property win :WM_STATE)))

-----------------------------------------------------------------------

Summary of changes:
 src/clfswm-internal.lisp |    4 +++-
 src/xlib-util.lisp       |   25 +++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
CLFSWM - A(nother) Common Lisp FullScreen Window Manager




More information about the clfswm-cvs mailing list