[clfswm-cvs] CVS clfswm

pbrochard pbrochard at common-lisp.net
Fri Dec 21 22:38:14 UTC 2007


Update of /project/clfswm/cvsroot/clfswm
In directory clnet:/tmp/cvs-serv30069

Modified Files:
	README clfswm-second-mode.lisp clfswm.asd clfswm.lisp 
Log Message:
readme update

--- /project/clfswm/cvsroot/clfswm/README	2007/05/15 19:49:49	1.1
+++ /project/clfswm/cvsroot/clfswm/README	2007/12/21 22:38:14	1.2
@@ -28,11 +28,21 @@
 To use CLFSWM, load the load.lisp file. It loads the ASDF package,
 build the system and start the main loop.
 
+Another way is to do something like this:
+$ cd /in/the/directory/of/clfswm/
+$ clisp/cmucl/sbcl/...                  # start a lisp
+  > (load "asdf.lisp")                  ; asdf for clisp or cmucl
+or> (require :asdf)                     ; asdf for sbcl
+  > (require :clx)                      ; clx for cmucl
+  > (asdf:oos 'asdf:load-op :clfswm)    ; compile and load the system
+  > (in-package :clfswm)                ; go in the clfswm package
+  > (clfswm:main)                       ; start the main loop
+
 
 Tweaking
 
-To change the default keybinding, have a look at the bindings.lisp
-file and at the package.lisp file for global variables.
+To change the default keybinding, have a look at the bindings*.lisp
+files and at the config.lisp file for global variables.
 If you want to add workspaces or groups at startup, tell this to
 clfswm in the init-display function in clfswm.lisp (there is already a
 default workspace and a default group created).
@@ -45,23 +55,11 @@
 startup. There is an example in the clfswm source (dot-clfswmrc).
 
 
-Development note
-
-As I think that there is as many CLFSWM as users, I propose a fork
-based development. CLFSWM has no configuration file in this
-respect. If you don't like something in clfswm use something else or
-learn Common Lisp (if not already done) and hack what you want on
-it. When you'll have done your hack, publish your code (if you want)
-and tell me its URL to link it from the clfswm web site. This way,
-everybody can share its ideas and have only what he wants in its
-window manager.
-
-
 License
 
  CLFSWM is under the GNU General Public License - GPL license.
- You can find more information in the files [3]COPYING. or on the
- [4]Free Software Foundation site.
+ You can find more information in the files COPYING. or on the
+ [3]Free Software Foundation site.
 
 
 Philippe Brochard <hocwp at free dot fr>.
@@ -70,5 +68,4 @@
 
    1. http://incise.org/index.cgi/TinyWM
    2. http://www.nongnu.org/stumpwm/
-   3. file://localhost/other-home/lisp/clfswm/web/COPYING
-   4. http://www.gnu.org/
+   3. http://www.gnu.org/
--- /project/clfswm/cvsroot/clfswm/clfswm-second-mode.lisp	2007/12/21 22:01:14	1.4
+++ /project/clfswm/cvsroot/clfswm/clfswm-second-mode.lisp	2007/12/21 22:38:14	1.5
@@ -1,7 +1,7 @@
 ;;; --------------------------------------------------------------------------
 ;;; CLFSWM - FullScreen Window Manager
 ;;;
-;;; #Date#: Fri Dec 21 23:00:19 2007
+;;; #Date#: Fri Dec 21 23:04:46 2007
 ;;;
 ;;; --------------------------------------------------------------------------
 ;;; Documentation: Second mode functions
@@ -190,3 +190,232 @@
   (focus-window (current-window))
   (show-all-group (current-workspace))
   (wait-no-key-or-button-press))
+
+
+
+
+
+
+;;;;; Alternative - Second mode with dashed screen
+;;(let ((num 5)
+;;      (line-color "Green"))
+;;  (defun draw-second-mode-window (window gc)
+;;    (show-all-windows-in-workspace (current-workspace))
+;;    (sleep 0.1)
+;;    (display-finish-output *display*)
+;;    (raise-window window)
+;;    (setf (gcontext-foreground gc) (get-color line-color)
+;;	  (gcontext-line-style gc) :dash)
+;;    (let ((dx (/ (drawable-width window) num))
+;;	  (dy (/ (drawable-height window) num)))
+;;      (loop for i from 1 below num do
+;;	    (draw-line window gc (truncate (* i dx)) 0 0 (truncate (* i dy)))
+;;	    (draw-line window gc (truncate (* i dx)) (drawable-height window) (drawable-width window) (truncate (* i dy)))
+;;	    (draw-line window gc (truncate (* i dx)) 0 (drawable-width window) (truncate (* (- num i) dy)))
+;;	    (draw-line window gc (truncate (* (- num i) dx)) (drawable-height window) 0 (truncate (* i dy)))))
+;;    (draw-line window gc 0 (drawable-height window) (drawable-width window) 0)
+;;    (draw-line window gc 0 0 (drawable-width window) (drawable-height window))
+;;    (setf (gcontext-line-style gc) :solid)
+;;    (show-all-group (current-workspace) window gc)
+;;    (no-focus)))
+;;
+;;(defmacro with-draw-second-mode-window ((hide show) &body body)
+;;  (cond ((and hide show) `(progn
+;;			   (hide-window sm-window)
+;;			   , at body
+;;			   (draw-second-mode-window sm-window sm-gc)
+;;			   (display-force-output *display*)))
+;;	(hide `(progn
+;;		(hide-window sm-window)
+;;		, at body
+;;		(display-force-output *display*)))
+;;	(show `(progn
+;;		, at body
+;;		(draw-second-mode-window sm-window sm-gc)
+;;		(display-force-output *display*)))
+;;	(t `(progn
+;;	     , at body
+;;	     (display-force-output *display*)))))
+;;
+;;
+;;(defun second-key-mode ()
+;;  "Switch to editing mode"
+;;  (let* ((sm-window (create-window :parent *root* :x 0 :y 0
+;;				   :width (screen-width *screen*) :height (screen-height *screen*)
+;;				   :colormap (screen-default-colormap *screen*)
+;;				   :event-mask '()))
+;;	 (sm-gc (create-gcontext :drawable sm-window
+;;				 :foreground (get-color "Red")
+;;				 :background (get-color "Black")
+;;				 :line-style :solid)))
+;;    (labels ((handle-key-press (&rest event-slots &key root code state &allow-other-keys)
+;;	       (declare (ignore event-slots root))
+;;	       (funcall-key-from-code *second-keys* code state))
+;;	     (sm-handle-enter-notify (&rest event-slots &key window root-x root-y &allow-other-keys)
+;;	       (declare (ignore event-slots))
+;;	       (unless (or (window-equal sm-window window)
+;;			   (window-equal window *root*))
+;;		 (with-draw-second-mode-window (t t)
+;;		   (focus-group-under-mouse root-x root-y))))
+;;	     (handle-motion-notify (&rest event-slots &key root-x root-y &allow-other-keys)
+;;	       (declare (ignore event-slots))
+;;	       (unless (event-case (*display* :discard-p nil :peek-p t :timeout 0)
+;;			 (:motion-notify () t))
+;;		 (funcall-button-from-code *mouse-action* 'motion 0 root-x root-y #'first)
+;;		 (show-all-group (current-workspace) sm-window sm-gc)
+;;		 (no-focus)))
+;;	     (handle-button-press (&rest event-slots &key root-x root-y code state &allow-other-keys)
+;;	       (declare (ignore event-slots))
+;;	       (funcall-button-from-code *mouse-action* code state root-x root-y #'first))
+;;	     (handle-button-release (&rest event-slots &key root-x root-y code state &allow-other-keys)
+;;	       (declare (ignore event-slots))
+;;	       (funcall-button-from-code *mouse-action* code state root-x root-y #'third))
+;;	     (sm-handle-configure-request (&rest event-slots &key window &allow-other-keys)
+;;	       (unless (window-equal sm-window window)
+;;		 (with-draw-second-mode-window (t t)
+;;		   (apply #'handle-configure-request event-slots))))
+;;	     (sm-handle-map-request (&rest event-slots &key window &allow-other-keys)
+;;	       (unless (window-equal sm-window window)
+;;		 (with-draw-second-mode-window (t t)
+;;		   (apply #'handle-map-request event-slots))))
+;;	     (sm-handle-unmap-notify (&rest event-slots &key window &allow-other-keys)
+;;	       (unless (window-equal sm-window window)
+;;		 (with-draw-second-mode-window (t t)
+;;		   (apply #'handle-unmap-notify event-slots))))
+;;	     (sm-handle-destroy-notify (&rest event-slots &key window &allow-other-keys)
+;;	       (unless (window-equal sm-window window)
+;;		 (with-draw-second-mode-window (t t)
+;;		   (apply #'handle-destroy-notify event-slots))))
+;;	     (handle-event (&rest event-slots &key display event-key &allow-other-keys)
+;;	       (declare (ignore display))
+;;	       (handler-case 
+;;		   (case event-key
+;;		     (:key-press (with-draw-second-mode-window (t t)
+;;				   (apply #'handle-key-press event-slots)))
+;;		     (:enter-notify nil)
+;;		     (:motion-notify (apply #'handle-motion-notify event-slots))
+;;		     (:button-press (with-draw-second-mode-window (t nil)
+;;				      (apply #'handle-button-press event-slots)))
+;;		     (:button-release (with-draw-second-mode-window (nil t)
+;;					(apply #'handle-button-release event-slots)))
+;;		     (:configure-request (apply #'sm-handle-configure-request event-slots))
+;;		     (:map-request (apply #'sm-handle-map-request event-slots))
+;;		     (:unmap-notify (apply #'sm-handle-unmap-notify event-slots))
+;;		     (:destroy-notify (apply #'sm-handle-destroy-notify event-slots))
+;;		     (:mapping-notify nil)
+;;		     (:property-notify nil)
+;;		     (:create-notify nil))
+;;		 ((or drawable-error window-error) (c)
+;;		   (declare (ignore c))))
+;;	       t))
+;;      ;;(dbg "Second key ignore" c)))))
+;;      (minimize-group (current-group))
+;;      (map-window sm-window)
+;;      (raise-window sm-window)
+;;      (draw-second-mode-window sm-window sm-gc)
+;;      (no-focus)
+;;      (ungrab-main-keys)
+;;      (xgrab-keyboard *root*)
+;;      (xgrab-pointer *root* 66 67)
+;;      (unwind-protect
+;;	   (catch 'exit-second-loop
+;;	     (loop
+;;	      (process-event *display* :handler #'handle-event)
+;;	      (display-finish-output *display*)))
+;;	(free-gcontext sm-gc)
+;;	(destroy-window sm-window)
+;;	(xungrab-keyboard)
+;;	(xungrab-pointer)
+;;	(grab-main-keys))
+;;      (adapt-window-to-group (current-window) (current-group))
+;;      (focus-window (current-window))
+;;      (show-all-group (current-workspace))
+;;      (wait-no-key-or-button-press))))
+
+
+
+;;;;; Alternative - Second mode with big screen border
+;;(let ((border-size 5)
+;;      (border-color "Green"))
+;;  (defun second-key-mode ()
+;;    "Switch to editing mode"
+;;    (let* ((windows (list (create-window :parent *root* :x 0 :y 0
+;;					 :width (screen-width *screen*) :height border-size
+;;					 :background (get-color border-color)
+;;					 :colormap (screen-default-colormap *screen*))
+;;			  (create-window :parent *root* :x 0 :y (- (screen-height *screen*) border-size)
+;;					 :width (screen-width *screen*) :height border-size
+;;					 :background (get-color border-color)
+;;					 :colormap (screen-default-colormap *screen*))
+;;			  (create-window :parent *root* :x 0 :y border-size
+;;					 :width border-size :height (- (screen-height *screen*) (* border-size 2))
+;;					 :background (get-color border-color)
+;;					 :colormap (screen-default-colormap *screen*))
+;;			  (create-window :parent *root* :x (- (screen-width *screen*) border-size)
+;;					 :y border-size
+;;					 :width border-size :height (- (screen-height *screen*) (* border-size 2))
+;;					 :background (get-color border-color)
+;;					 :colormap (screen-default-colormap *screen*)))))
+;;      (labels ((draw-second-mode-window ()
+;;		 (dolist (win windows)
+;;		   (raise-window win)))
+;;	       (handle-key-press (&rest event-slots &key root code state &allow-other-keys)
+;;		 (declare (ignore event-slots root))
+;;		 (funcall-key-from-code *second-keys* code state))
+;;	       (handle-enter-notify (&rest event-slots &key root-x root-y &allow-other-keys)
+;;		 (declare (ignore event-slots))
+;;		 (focus-group-under-mouse root-x root-y))
+;;	       (handle-motion-notify (&rest event-slots &key root-x root-y &allow-other-keys)
+;;		 (declare (ignore event-slots))
+;;		 (unless (event-case (*display* :discard-p nil :peek-p t :timeout 0)
+;;			   (:motion-notify () t))
+;;		   (funcall-button-from-code *mouse-action* 'motion 0 root-x root-y #'first)))
+;;	       (handle-button-press (&rest event-slots &key root-x root-y code state &allow-other-keys)
+;;		 (declare (ignore event-slots))
+;;		 (funcall-button-from-code *mouse-action* code state root-x root-y #'first))
+;;	       (handle-button-release (&rest event-slots &key root-x root-y code state &allow-other-keys)
+;;		 (declare (ignore event-slots))
+;;		 (funcall-button-from-code *mouse-action* code state root-x root-y #'third))
+;;	       (handle-event (&rest event-slots &key display event-key &allow-other-keys)
+;;		 (declare (ignore display))
+;;		 (handler-case 
+;;		     (case event-key
+;;		       (:key-press (apply #'handle-key-press event-slots))
+;;		       (:enter-notify (apply #'handle-enter-notify event-slots))
+;;		       (:motion-notify (apply #'handle-motion-notify event-slots))
+;;		       (:button-press (apply #'handle-button-press event-slots))
+;;		       (:button-release (apply #'handle-button-release event-slots))
+;;		       (:configure-request (apply #'handle-configure-request event-slots))
+;;		       (:map-request (apply #'handle-map-request event-slots))
+;;		       (:unmap-notify (apply #'handle-unmap-notify event-slots))
+;;		       (:destroy-notify (apply #'handle-destroy-notify event-slots))
+;;		       (:mapping-notify nil)
+;;		       (:property-notify nil)
+;;		       (:create-notify nil))
+;;		   ((or drawable-error window-error) (c)
+;;		     (declare (ignore c))))
+;;		 (draw-second-mode-window)
+;;		 t))
+;;	;;(dbg "Second key ignore" c)))))
+;;	(minimize-group (current-group))
+;;	(dolist (win windows)
+;;	  (map-window win))
+;;	(draw-second-mode-window)
+;;	(no-focus)
+;;	(ungrab-main-keys)
+;;	(xgrab-keyboard *root*)
+;;	(xgrab-pointer *root* 66 67)
+;;	(unwind-protect
+;;	     (catch 'exit-second-loop
+;;	       (loop
+;;		(process-event *display* :handler #'handle-event)
+;;		(display-finish-output *display*)))
+;;	  (dolist (win windows)
+;;	    (destroy-window win))
+;;	  (xungrab-keyboard)
+;;	  (xungrab-pointer)
+;;	  (grab-main-keys))
+;;	(adapt-window-to-group (current-window) (current-group))
+;;	(focus-window (current-window))
+;;	(show-all-group (current-workspace))
+;;	(wait-no-key-or-button-press)))))
--- /project/clfswm/cvsroot/clfswm/clfswm.asd	2007/12/21 21:44:04	1.2
+++ /project/clfswm/cvsroot/clfswm/clfswm.asd	2007/12/21 22:38:14	1.3
@@ -2,7 +2,7 @@
 ;;;; Author: Philippe Brochard <hocwp at free.fr>
 ;;;; ASDF System Definition
 ;;;
-;;; #date#: Fri Dec 21 22:08:23 2007
+;;; #date#: Fri Dec 21 23:30:21 2007
 
 (in-package #:asdf)
 
@@ -32,7 +32,7 @@
 		  :depends-on ("package" "clfswm-internal"))
 		 (:file "clfswm"
 		  :depends-on ("xlib-util" "netwm-util" "clfswm-keys"
-					   "clfswm-internal" "clfswm-second-mode"))
+					   "clfswm-internal" "clfswm-second-mode" "tools"))
 		 (:file "clfswm-util"
 		  :depends-on ("clfswm" "keysyms"))
 		 (:file "clfswm-pack"
--- /project/clfswm/cvsroot/clfswm/clfswm.lisp	2007/12/21 22:01:14	1.3
+++ /project/clfswm/cvsroot/clfswm/clfswm.lisp	2007/12/21 22:38:14	1.4
@@ -1,7 +1,7 @@
 ;;; --------------------------------------------------------------------------
 ;;; CLFSWM - FullScreen Window Manager
 ;;;
-;;; #Date#: Fri Dec 21 23:00:25 2007
+;;; #Date#: Fri Dec 21 23:04:39 2007
 ;;;
 ;;; --------------------------------------------------------------------------
 ;;; Documentation: Main functions
@@ -270,227 +270,3 @@
 
 
 
-
-;;;;; Alternative - Second mode with dashed screen
-;;(let ((num 5)
-;;      (line-color "Green"))
-;;  (defun draw-second-mode-window (window gc)
-;;    (show-all-windows-in-workspace (current-workspace))
-;;    (sleep 0.1)
-;;    (display-finish-output *display*)
-;;    (raise-window window)
-;;    (setf (gcontext-foreground gc) (get-color line-color)
-;;	  (gcontext-line-style gc) :dash)
-;;    (let ((dx (/ (drawable-width window) num))
-;;	  (dy (/ (drawable-height window) num)))
-;;      (loop for i from 1 below num do
-;;	    (draw-line window gc (truncate (* i dx)) 0 0 (truncate (* i dy)))
-;;	    (draw-line window gc (truncate (* i dx)) (drawable-height window) (drawable-width window) (truncate (* i dy)))
-;;	    (draw-line window gc (truncate (* i dx)) 0 (drawable-width window) (truncate (* (- num i) dy)))
-;;	    (draw-line window gc (truncate (* (- num i) dx)) (drawable-height window) 0 (truncate (* i dy)))))
-;;    (draw-line window gc 0 (drawable-height window) (drawable-width window) 0)
-;;    (draw-line window gc 0 0 (drawable-width window) (drawable-height window))
-;;    (setf (gcontext-line-style gc) :solid)
-;;    (show-all-group (current-workspace) window gc)
-;;    (no-focus)))
-;;
-;;(defmacro with-draw-second-mode-window ((hide show) &body body)
-;;  (cond ((and hide show) `(progn
-;;			   (hide-window sm-window)
-;;			   , at body
-;;			   (draw-second-mode-window sm-window sm-gc)
-;;			   (display-force-output *display*)))
-;;	(hide `(progn
-;;		(hide-window sm-window)
-;;		, at body
-;;		(display-force-output *display*)))
-;;	(show `(progn
-;;		, at body
-;;		(draw-second-mode-window sm-window sm-gc)
-;;		(display-force-output *display*)))
-;;	(t `(progn
-;;	     , at body
-;;	     (display-force-output *display*)))))
-;;
-;;
-;;(defun second-key-mode ()
-;;  "Switch to editing mode"
-;;  (let* ((sm-window (create-window :parent *root* :x 0 :y 0
-;;				   :width (screen-width *screen*) :height (screen-height *screen*)
-;;				   :colormap (screen-default-colormap *screen*)
-;;				   :event-mask '()))
-;;	 (sm-gc (create-gcontext :drawable sm-window
-;;				 :foreground (get-color "Red")
-;;				 :background (get-color "Black")
-;;				 :line-style :solid)))
-;;    (labels ((handle-key-press (&rest event-slots &key root code state &allow-other-keys)
-;;	       (declare (ignore event-slots root))
-;;	       (funcall-key-from-code *second-keys* code state))
-;;	     (sm-handle-enter-notify (&rest event-slots &key window root-x root-y &allow-other-keys)
-;;	       (declare (ignore event-slots))
-;;	       (unless (or (window-equal sm-window window)
-;;			   (window-equal window *root*))
-;;		 (with-draw-second-mode-window (t t)
-;;		   (focus-group-under-mouse root-x root-y))))
-;;	     (handle-motion-notify (&rest event-slots &key root-x root-y &allow-other-keys)
-;;	       (declare (ignore event-slots))
-;;	       (unless (event-case (*display* :discard-p nil :peek-p t :timeout 0)
-;;			 (:motion-notify () t))
-;;		 (funcall-button-from-code *mouse-action* 'motion 0 root-x root-y #'first)
-;;		 (show-all-group (current-workspace) sm-window sm-gc)
-;;		 (no-focus)))
-;;	     (handle-button-press (&rest event-slots &key root-x root-y code state &allow-other-keys)
-;;	       (declare (ignore event-slots))
-;;	       (funcall-button-from-code *mouse-action* code state root-x root-y #'first))
-;;	     (handle-button-release (&rest event-slots &key root-x root-y code state &allow-other-keys)
-;;	       (declare (ignore event-slots))
-;;	       (funcall-button-from-code *mouse-action* code state root-x root-y #'third))
-;;	     (sm-handle-configure-request (&rest event-slots &key window &allow-other-keys)
-;;	       (unless (window-equal sm-window window)
-;;		 (with-draw-second-mode-window (t t)
-;;		   (apply #'handle-configure-request event-slots))))
-;;	     (sm-handle-map-request (&rest event-slots &key window &allow-other-keys)
-;;	       (unless (window-equal sm-window window)
-;;		 (with-draw-second-mode-window (t t)
-;;		   (apply #'handle-map-request event-slots))))
-;;	     (sm-handle-unmap-notify (&rest event-slots &key window &allow-other-keys)
-;;	       (unless (window-equal sm-window window)
-;;		 (with-draw-second-mode-window (t t)
-;;		   (apply #'handle-unmap-notify event-slots))))
-;;	     (sm-handle-destroy-notify (&rest event-slots &key window &allow-other-keys)
-;;	       (unless (window-equal sm-window window)
-;;		 (with-draw-second-mode-window (t t)
-;;		   (apply #'handle-destroy-notify event-slots))))
-;;	     (handle-event (&rest event-slots &key display event-key &allow-other-keys)
-;;	       (declare (ignore display))
-;;	       (handler-case 
-;;		   (case event-key
-;;		     (:key-press (with-draw-second-mode-window (t t)
-;;				   (apply #'handle-key-press event-slots)))
-;;		     (:enter-notify nil)
-;;		     (:motion-notify (apply #'handle-motion-notify event-slots))
-;;		     (:button-press (with-draw-second-mode-window (t nil)
-;;				      (apply #'handle-button-press event-slots)))
-;;		     (:button-release (with-draw-second-mode-window (nil t)
-;;					(apply #'handle-button-release event-slots)))
-;;		     (:configure-request (apply #'sm-handle-configure-request event-slots))
-;;		     (:map-request (apply #'sm-handle-map-request event-slots))
-;;		     (:unmap-notify (apply #'sm-handle-unmap-notify event-slots))
-;;		     (:destroy-notify (apply #'sm-handle-destroy-notify event-slots))
-;;		     (:mapping-notify nil)
-;;		     (:property-notify nil)
-;;		     (:create-notify nil))
-;;		 ((or drawable-error window-error) (c)
-;;		   (declare (ignore c))))
-;;	       t))
-;;      ;;(dbg "Second key ignore" c)))))
-;;      (minimize-group (current-group))
-;;      (map-window sm-window)
-;;      (raise-window sm-window)
-;;      (draw-second-mode-window sm-window sm-gc)
-;;      (no-focus)
-;;      (ungrab-main-keys)
-;;      (xgrab-keyboard *root*)
-;;      (xgrab-pointer *root* 66 67)
-;;      (unwind-protect
-;;	   (catch 'exit-second-loop
-;;	     (loop
-;;	      (process-event *display* :handler #'handle-event)
-;;	      (display-finish-output *display*)))
-;;	(free-gcontext sm-gc)
-;;	(destroy-window sm-window)
-;;	(xungrab-keyboard)
-;;	(xungrab-pointer)
-;;	(grab-main-keys))
-;;      (adapt-window-to-group (current-window) (current-group))
-;;      (focus-window (current-window))
-;;      (show-all-group (current-workspace))
-;;      (wait-no-key-or-button-press))))
-
-
-
-;;;;; Alternative - Second mode with big screen border
-;;(let ((border-size 5)
-;;      (border-color "Green"))
-;;  (defun second-key-mode ()
-;;    "Switch to editing mode"
-;;    (let* ((windows (list (create-window :parent *root* :x 0 :y 0
-;;					 :width (screen-width *screen*) :height border-size
-;;					 :background (get-color border-color)
-;;					 :colormap (screen-default-colormap *screen*))
-;;			  (create-window :parent *root* :x 0 :y (- (screen-height *screen*) border-size)
-;;					 :width (screen-width *screen*) :height border-size
-;;					 :background (get-color border-color)
-;;					 :colormap (screen-default-colormap *screen*))
-;;			  (create-window :parent *root* :x 0 :y border-size
-;;					 :width border-size :height (- (screen-height *screen*) (* border-size 2))
-;;					 :background (get-color border-color)
-;;					 :colormap (screen-default-colormap *screen*))
-;;			  (create-window :parent *root* :x (- (screen-width *screen*) border-size)
-;;					 :y border-size
-;;					 :width border-size :height (- (screen-height *screen*) (* border-size 2))
-;;					 :background (get-color border-color)
-;;					 :colormap (screen-default-colormap *screen*)))))
-;;      (labels ((draw-second-mode-window ()
-;;		 (dolist (win windows)
-;;		   (raise-window win)))
-;;	       (handle-key-press (&rest event-slots &key root code state &allow-other-keys)
-;;		 (declare (ignore event-slots root))
-;;		 (funcall-key-from-code *second-keys* code state))
-;;	       (handle-enter-notify (&rest event-slots &key root-x root-y &allow-other-keys)
-;;		 (declare (ignore event-slots))
-;;		 (focus-group-under-mouse root-x root-y))
-;;	       (handle-motion-notify (&rest event-slots &key root-x root-y &allow-other-keys)
-;;		 (declare (ignore event-slots))
-;;		 (unless (event-case (*display* :discard-p nil :peek-p t :timeout 0)
-;;			   (:motion-notify () t))
-;;		   (funcall-button-from-code *mouse-action* 'motion 0 root-x root-y #'first)))
-;;	       (handle-button-press (&rest event-slots &key root-x root-y code state &allow-other-keys)
-;;		 (declare (ignore event-slots))
-;;		 (funcall-button-from-code *mouse-action* code state root-x root-y #'first))
-;;	       (handle-button-release (&rest event-slots &key root-x root-y code state &allow-other-keys)
-;;		 (declare (ignore event-slots))
-;;		 (funcall-button-from-code *mouse-action* code state root-x root-y #'third))
-;;	       (handle-event (&rest event-slots &key display event-key &allow-other-keys)
-;;		 (declare (ignore display))
-;;		 (handler-case 
-;;		     (case event-key
-;;		       (:key-press (apply #'handle-key-press event-slots))
-;;		       (:enter-notify (apply #'handle-enter-notify event-slots))
-;;		       (:motion-notify (apply #'handle-motion-notify event-slots))
-;;		       (:button-press (apply #'handle-button-press event-slots))
-;;		       (:button-release (apply #'handle-button-release event-slots))
-;;		       (:configure-request (apply #'handle-configure-request event-slots))
-;;		       (:map-request (apply #'handle-map-request event-slots))
-;;		       (:unmap-notify (apply #'handle-unmap-notify event-slots))
-;;		       (:destroy-notify (apply #'handle-destroy-notify event-slots))
-;;		       (:mapping-notify nil)
-;;		       (:property-notify nil)
-;;		       (:create-notify nil))
-;;		   ((or drawable-error window-error) (c)
-;;		     (declare (ignore c))))
-;;		 (draw-second-mode-window)
-;;		 t))
-;;	;;(dbg "Second key ignore" c)))))
-;;	(minimize-group (current-group))
-;;	(dolist (win windows)
-;;	  (map-window win))
-;;	(draw-second-mode-window)
-;;	(no-focus)
-;;	(ungrab-main-keys)
-;;	(xgrab-keyboard *root*)
-;;	(xgrab-pointer *root* 66 67)
-;;	(unwind-protect
-;;	     (catch 'exit-second-loop
-;;	       (loop
-;;		(process-event *display* :handler #'handle-event)
-;;		(display-finish-output *display*)))
-;;	  (dolist (win windows)
-;;	    (destroy-window win))
-;;	  (xungrab-keyboard)
-;;	  (xungrab-pointer)
-;;	  (grab-main-keys))
-;;	(adapt-window-to-group (current-window) (current-group))
-;;	(focus-window (current-window))
-;;	(show-all-group (current-workspace))
-;;	(wait-no-key-or-button-press)))))




More information about the clfswm-cvs mailing list