Remove hidden monitor heads at xinerama sizes construction time
authorPhilippe Brochard <pbrochard@common-lisp.net>
Sun, 25 Nov 2012 15:09:07 +0000 (25 16:09 +0100)
committerPhilippe Brochard <pbrochard@common-lisp.net>
Sun, 25 Nov 2012 15:09:07 +0000 (25 16:09 +0100)
contrib/contrib-example.lisp
src/clfswm-internal.lisp

dissimilarity index 68%
index 006497c..7c77536 100644 (file)
@@ -1,3 +1,38 @@
-(in-package :clfswm)
-
-(format t "My contribution code start here~%")
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: A contrib example.
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2012 Philippe Brochard <pbrochard@common-lisp.net>
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; Documentation: A contrib example.
+;;;   If you want to use this file, just add this line in
+;;; your configuration file:
+;;;
+;;;   (load-contrib "contrib-example.lisp")
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+(format t "Loading Contrib Example code... ")
+
+(format t "~&My contribution code start here~%")
+
+(format t "done~%")
index 90a75a0..ea0a3eb 100644 (file)
                     (parse-integer string :junk-allowed t))
                   (split-string (substitute #\space #\x (substitute #\space #\, line))))))
 
-(defun get-connected-heads-size (&optional (fake (string= (getenv "DISPLAY") ":1")))
+(defun get-connected-heads-size (&optional fake)
   (labels ((heads-info ()
              (if (not fake)
                  (do-shell "xdpyinfo -ext XINERAMA")
@@ -836,20 +836,19 @@ XINERAMA version 1.1 opcode: 150
            do (when (search " head " line)
                 (destructuring-bind (w h x y)
                     (parse-xinerama-info line)
-                  (push (list x y w h) sizes))))
-        (remove-if (lambda (size)
-                     (destructuring-bind (x y w h) size
-                       (dolist (s sizes)
-                         (unless (eq s size)
+                  (let ((found
+                         (dolist (s sizes)
                            (destructuring-bind (x1 y1 w1 h1) s
                              (when (and (>= x x1)
                                         (>= y y1)
                                         (<= (+ x w) (+ x1 w1))
                                         (<= (+ y h) (+ y1 h1)))
-                               (return t)))))))
-                   sizes)))))
-        ;;'((10 10 500 300) (550 50 400 400) (100 320 400 270))))))
-        ;;'((10 10 500 580) (540 50 470 500))))))
+                               (return t))))))
+                    (unless found
+                      (push (list x y w h) sizes))))))
+        sizes))))
+;;'((10 10 500 300) (550 50 400 400) (100 320 400 270))))))
+;;'((10 10 500 580) (540 50 470 500))))))
 
 
 (let ((last-sizes nil))