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

Philippe Brochard pbrochard at common-lisp.net
Sun Mar 24 15:50:59 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  d6b1dd9193b247f52b6815d39653a2ea729f5477 (commit)
      from  2be90723a2266743adcce0ff14ab4af064c29ff4 (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 d6b1dd9193b247f52b6815d39653a2ea729f5477
Author: Philippe Brochard <pbrochard at common-lisp.net>
Date:   Sun Mar 24 16:50:54 2013 +0100

    Beginning of sloppy select over all windows

diff --git a/src/clfswm.lisp b/src/clfswm.lisp
index 34f50ad..c874b09 100644
--- a/src/clfswm.lisp
+++ b/src/clfswm.lisp
@@ -133,12 +133,29 @@
       (:sloppy-select (let* ((child (find-child-under-mouse root-x root-y))
 			     (parent (find-parent-frame child)))
 			(unless (or (child-root-p child)
-				    (equal (typecase child
-				    	     (xlib:window parent)
-					     (t child))
-					   (current-child)))
+				    (child-equal-p (typecase child
+                                                     (xlib:window parent)
+                                                     (t child))
+                                                   (current-child)))
 			    (focus-all-children child parent)
-			    (show-all-children)))))))
+			    (show-all-children))))
+      (:sloppy-select-window (let* ((child (find-child-under-mouse root-x root-y))
+                                    (parent (find-parent-frame child))
+                                    (need-warp-pointer (not (or (frame-p child)
+                                                                (child-equal-p child (frame-selected-child parent))))))
+                               (unless (child-root-p child)
+                                 (when (focus-all-children child parent)
+                                   (show-all-children)
+                                   (when need-warp-pointer
+                                     (typecase child
+                                       (xlib:window (xlib:warp-pointer *root*
+                                                                       (truncate (+ (x-drawable-x child)
+                                                                                    (/ (x-drawable-width child) 2)))
+                                                                       (truncate (+ (x-drawable-y child)
+                                                                                    (/ (x-drawable-height child) 2)))))
+                                       (frame (xlib:warp-pointer *root*
+                                                                 (+ (frame-rx child) 10)
+                                                                 (+ (frame-ry child) 10))))))))))))
 
 (define-handler main-mode :exposure (window)
   (awhen (find-frame-window window)

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

Summary of changes:
 src/clfswm.lisp |   27 ++++++++++++++++++++++-----
 1 files changed, 22 insertions(+), 5 deletions(-)


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




More information about the clfswm-cvs mailing list