From pbrochard at common-lisp.net Mon Sep 3 22:24:14 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Mon, 03 Sep 2012 15:24:14 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-102-ga03cd97 Message-ID: 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 a03cd97bea2838cd2c6920e665430477bc9582c7 (commit) from 02dc1b12ef9eb955c29d45f108d836a3a3dc206a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++++ src/clfswm-internal.lisp | 18 +++++++++++------- src/clfswm.lisp | 28 +++++++++++++++++++--------- src/package.lisp | 3 +++ 4 files changed, 39 insertions(+), 16 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Mon Sep 3 22:24:15 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Mon, 03 Sep 2012 15:24:15 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-102-ga03cd97 Message-ID: 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, test has been updated via a03cd97bea2838cd2c6920e665430477bc9582c7 (commit) from 02dc1b12ef9eb955c29d45f108d836a3a3dc206a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++++ src/clfswm-internal.lisp | 18 +++++++++++------- src/clfswm.lisp | 28 +++++++++++++++++++--------- src/package.lisp | 3 +++ 4 files changed, 39 insertions(+), 16 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Tue Sep 4 21:56:17 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Tue, 04 Sep 2012 14:56:17 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-104-g15957bd Message-ID: 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 15957bd21d0aadee226a7294a28272c1009f06fc (commit) via aa4e40bdac40f9170c7a7f594de4177e6c03c7d7 (commit) from a03cd97bea2838cd2c6920e665430477bc9582c7 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++++ src/clfswm-internal.lisp | 14 ++++++++------ src/package.lisp | 6 ++++++ 3 files changed, 20 insertions(+), 6 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Tue Sep 4 21:56:17 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Tue, 04 Sep 2012 14:56:17 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-104-g15957bd Message-ID: 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, test has been updated via 15957bd21d0aadee226a7294a28272c1009f06fc (commit) via aa4e40bdac40f9170c7a7f594de4177e6c03c7d7 (commit) from a03cd97bea2838cd2c6920e665430477bc9582c7 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++++ src/clfswm-internal.lisp | 14 ++++++++------ src/package.lisp | 6 ++++++ 3 files changed, 20 insertions(+), 6 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Wed Sep 5 18:48:49 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Wed, 05 Sep 2012 11:48:49 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-105-g1c7bd82 Message-ID: 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 1c7bd820770c0f9091e709dbf3f2b598cfa8aeb8 (commit) from 15957bd21d0aadee226a7294a28272c1009f06fc (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ contrib/toolbar.lisp | 26 ++++++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Wed Sep 5 18:48:49 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Wed, 05 Sep 2012 11:48:49 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-105-g1c7bd82 Message-ID: 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, test has been updated via 1c7bd820770c0f9091e709dbf3f2b598cfa8aeb8 (commit) from 15957bd21d0aadee226a7294a28272c1009f06fc (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ contrib/toolbar.lisp | 26 ++++++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Wed Sep 5 21:25:22 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Wed, 05 Sep 2012 14:25:22 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-106-gecb89e0 Message-ID: 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 ecb89e043bff76366e9a01bdcb21a9b3492e0963 (commit) from 1c7bd820770c0f9091e709dbf3f2b598cfa8aeb8 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 3 + contrib/toolbar.lisp | 9 +++- contrib/wallpaper.lisp | 93 ++++++++++++++++++++++++++++++++++++++++++++++ src/clfswm-internal.lisp | 6 ++- 4 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 contrib/wallpaper.lisp hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Wed Sep 5 21:25:23 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Wed, 05 Sep 2012 14:25:23 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-106-gecb89e0 Message-ID: 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, test has been updated via ecb89e043bff76366e9a01bdcb21a9b3492e0963 (commit) from 1c7bd820770c0f9091e709dbf3f2b598cfa8aeb8 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 3 + contrib/toolbar.lisp | 9 +++- contrib/wallpaper.lisp | 93 ++++++++++++++++++++++++++++++++++++++++++++++ src/clfswm-internal.lisp | 6 ++- 4 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 contrib/wallpaper.lisp hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Thu Sep 6 21:09:23 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Thu, 06 Sep 2012 14:09:23 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-107-gfcd7928 Message-ID: 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 fcd792813a60d93baab7b00993eb1b21921a8583 (commit) from ecb89e043bff76366e9a01bdcb21a9b3492e0963 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ contrib/wallpaper.lisp | 37 +++++++++++++++++++++++++------------ 2 files changed, 30 insertions(+), 12 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Thu Sep 6 21:09:23 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Thu, 06 Sep 2012 14:09:23 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-107-gfcd7928 Message-ID: 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, test has been updated via fcd792813a60d93baab7b00993eb1b21921a8583 (commit) from ecb89e043bff76366e9a01bdcb21a9b3492e0963 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ contrib/wallpaper.lisp | 37 +++++++++++++++++++++++++------------ 2 files changed, 30 insertions(+), 12 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 9 15:24:35 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 09 Sep 2012 08:24:35 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-108-g6c085a7 Message-ID: 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 6c085a7ccfc59f984017a7e1374b130469e61ef4 (commit) from fcd792813a60d93baab7b00993eb1b21921a8583 (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 6c085a7ccfc59f984017a7e1374b130469e61ef4 Author: Philippe Brochard Date: Sun Sep 9 17:24:29 2012 +0200 src/*.lisp: Remove uneeded with-xlib-protect. diff --git a/ChangeLog b/ChangeLog index 00f4958..a4b5dff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-09-09 Philippe Brochard + + * src/*.lisp: Remove uneeded with-xlib-protect. + 2012-09-06 Philippe Brochard * contrib/wallpaper.lisp (wallpaper): create/use-background diff --git a/src/package.lisp b/src/package.lisp index 275c573..72bdd4f 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -45,23 +45,23 @@ ;;; CONFIG - Compress motion notify ? ;; This variable may be useful to speed up some slow version of CLX. ;; It is particulary useful with CLISP/MIT-CLX (and others). -(defconfig *have-to-compress-notify* t nil - "Compress event notify? +(defconfig *have-to-compress-notify* t + nil "Compress event notify? This variable may be useful to speed up some slow version of CLX. It is particulary useful with CLISP/MIT-CLX.") -(defconfig *transparent-background* t nil - "Enable transparent background: one of nil, :pseudo, t (xcompmgr must be started)") +(defconfig *transparent-background* t + nil "Enable transparent background: one of nil, :pseudo, t (xcompmgr must be started)") -(defconfig *default-transparency* 0.8 nil - "Default transparency for all windows when in xcompmgr transparency mode") +(defconfig *default-transparency* 0.8 + nil "Default transparency for all windows when in xcompmgr transparency mode") -(defconfig *show-root-frame-p* nil nil - "Show the root frame information or not") +(defconfig *show-root-frame-p* nil + nil "Show the root frame information or not") -(defconfig *border-size* 1 nil - "Windows and frames border size") +(defconfig *border-size* 1 + nil "Windows and frames border size") diff --git a/src/xlib-util.lisp b/src/xlib-util.lisp index 104e21a..fa6f1e3 100644 --- a/src/xlib-util.lisp +++ b/src/xlib-util.lisp @@ -120,8 +120,9 @@ Window types are in +WINDOW-TYPES+.") (when (and pos (zerop pos)) (let ((pos-mod (search "mode" name))) (when pos-mod - (values (intern (string-upcase (subseq name (+ pos-mod 5))) :keyword) - (subseq name (length "handle-event-fun-") (1- pos-mod)))))))) + (intern (string-upcase (subseq name (+ pos-mod 5))) :keyword)))))) +;; (values (intern (string-upcase (subseq name (+ pos-mod 5))) :keyword) +;; (subseq name (length "handle-event-fun-") (1- pos-mod)))))))) (defparameter *handle-event-fun-symbols* nil) @@ -178,8 +179,7 @@ Expand in handle-event-fun-main-mode-key-press" `(defun ,(keyword->handle-event mode keyword) (&rest event-slots &key #+:event-debug event-key , at args &allow-other-keys) (declare (ignorable event-slots)) #+:event-debug (print (list *current-event-mode* event-key)) - (with-xlib-protect (:define-handler (list ',mode ,keyword)) - , at body))) + , at body)) (defun event-hook-name (event-keyword) @@ -227,11 +227,9 @@ Expand in handle-event-fun-main-mode-key-press" `(let ((,event-fun (lambda (&rest event-slots &key #+:event-debug event-key , at args &allow-other-keys) (declare (ignorable event-slots)) #+:event-debug (print (list ,event-keyword event-key)) - (with-xlib-protect (:define-event-hook ,event-keyword) - , at body)))) + , at body))) (add-event-hook ,event-keyword ,event-fun) - (with-xlib-protect (:define-event-hook-2 ,event-keyword) - ,event-fun)))) + ,event-fun))) (defmacro event-defun (name args &body body) @@ -261,20 +259,17 @@ they should be windows. So use this function to make a window out of them." #+(or sbcl ecl openmcl) (xlib::make-window :id (slot-value xobject 'xlib::id) :display *display*) #-(or sbcl clisp ecl openmcl) (error 'not-implemented))) - (with-xlib-protect (:handle-event event-key) - (catch 'exit-handle-event - (let ((win (getf event-slots :window))) - (when (and win (not (xlib:window-p win))) - (dbg "Pixmap Workaround! Should be a window: " win) - (setf (getf event-slots :window) (make-xlib-window win)))) - (with-xlib-protect (:handle-event-2 event-key) - (let ((hook-symbol (event-hook-name event-key))) - (when (boundp hook-symbol) - (apply #'call-hook (symbol-value hook-symbol) event-slots)))) - (with-xlib-protect (:handle-event-3 event-key) - (if (fboundp event-key) - (apply event-key event-slots) - #+:event-debug (pushnew (list *current-event-mode* event-key) *unhandled-events* :test #'equal)))) + (catch 'exit-handle-event + (let ((win (getf event-slots :window))) + (when (and win (not (xlib:window-p win))) + (dbg "Pixmap Workaround! Should be a window: " win) + (setf (getf event-slots :window) (make-xlib-window win)))) + (let ((hook-symbol (event-hook-name event-key))) + (when (boundp hook-symbol) + (apply #'call-hook (symbol-value hook-symbol) event-slots))) + (if (fboundp event-key) + (apply event-key event-slots) + #+:event-debug (pushnew (list *current-event-mode* event-key) *unhandled-events* :test #'equal)) (xlib:display-finish-output *display*)) t)) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 4 ++++ src/package.lisp | 20 ++++++++++---------- src/xlib-util.lisp | 39 +++++++++++++++++---------------------- 3 files changed, 31 insertions(+), 32 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 9 20:14:20 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 09 Sep 2012 13:14:20 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-109-g246b817 Message-ID: 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 246b81755943dbe2317dd3932003ea501b779cf3 (commit) from 6c085a7ccfc59f984017a7e1374b130469e61ef4 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: src/clfswm-internal.lisp | 23 ++++++++++++----------- src/clfswm-util.lisp | 1 + src/clfswm.lisp | 6 ------ src/xlib-util.lisp | 2 +- 4 files changed, 14 insertions(+), 18 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 9 20:14:20 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 09 Sep 2012 13:14:20 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-109-g246b817 Message-ID: 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, test has been updated via 246b81755943dbe2317dd3932003ea501b779cf3 (commit) via 6c085a7ccfc59f984017a7e1374b130469e61ef4 (commit) from fcd792813a60d93baab7b00993eb1b21921a8583 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 4 ++++ src/clfswm-internal.lisp | 23 ++++++++++++----------- src/clfswm-util.lisp | 1 + src/clfswm.lisp | 6 ------ src/package.lisp | 20 ++++++++++---------- src/xlib-util.lisp | 41 ++++++++++++++++++----------------------- 6 files changed, 45 insertions(+), 50 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 9 21:02:48 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 09 Sep 2012 14:02:48 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-110-g683929b Message-ID: 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 683929b12401dd29f5f5646aef519ba4437ea891 (commit) from 246b81755943dbe2317dd3932003ea501b779cf3 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 4 + doc/menu.html | 826 +++++++++++++++++++++++++++++++++++----------------- doc/menu.txt | 636 +++++++++++++++++++++++----------------- doc/variables.html | 109 ++++++-- doc/variables.txt | 45 ++- 5 files changed, 1046 insertions(+), 574 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 9 21:02:48 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 09 Sep 2012 14:02:48 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-110-g683929b Message-ID: 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, test has been updated via 683929b12401dd29f5f5646aef519ba4437ea891 (commit) from 246b81755943dbe2317dd3932003ea501b779cf3 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 4 + doc/menu.html | 826 +++++++++++++++++++++++++++++++++++----------------- doc/menu.txt | 636 +++++++++++++++++++++++----------------- doc/variables.html | 109 ++++++-- doc/variables.txt | 45 ++- 5 files changed, 1046 insertions(+), 574 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Mon Sep 10 07:37:35 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Mon, 10 Sep 2012 00:37:35 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-111-g0f99956 Message-ID: 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 0f9995691a5b7d6e3a4c17b4602c6f41e30e3119 (commit) from 683929b12401dd29f5f5646aef519ba4437ea891 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: src/clfswm.lisp | 12 ++++++------ src/xlib-util.lisp | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Mon Sep 10 07:37:36 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Mon, 10 Sep 2012 00:37:36 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-111-g0f99956 Message-ID: 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, test has been updated via 0f9995691a5b7d6e3a4c17b4602c6f41e30e3119 (commit) from 683929b12401dd29f5f5646aef519ba4437ea891 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: src/clfswm.lisp | 12 ++++++------ src/xlib-util.lisp | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Thu Sep 13 19:08:46 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Thu, 13 Sep 2012 12:08:46 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-112-g0a9742d Message-ID: 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 0a9742d41c95d9a3d385bfa91571ad4af5ebcd5c (commit) from 0f9995691a5b7d6e3a4c17b4602c6f41e30e3119 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: src/xlib-util.lisp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Thu Sep 13 19:08:46 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Thu, 13 Sep 2012 12:08:46 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-112-g0a9742d Message-ID: 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, test has been updated via 0a9742d41c95d9a3d385bfa91571ad4af5ebcd5c (commit) from 0f9995691a5b7d6e3a4c17b4602c6f41e30e3119 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: src/xlib-util.lisp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Fri Sep 21 19:41:15 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 21 Sep 2012 12:41:15 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-113-gd95e8d3 Message-ID: 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 d95e8d3f14daaae4bf34f977d7d71ef179171997 (commit) from 0a9742d41c95d9a3d385bfa91571ad4af5ebcd5c (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: clfswm.asd | 2 +- doc/variables.html | 28 ++++++++++++++-------------- doc/variables.txt | 28 ++++++++++++++-------------- src/version.lisp | 2 +- 4 files changed, 30 insertions(+), 30 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Fri Sep 21 19:41:15 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 21 Sep 2012 12:41:15 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-113-gd95e8d3 Message-ID: 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, test has been updated via d95e8d3f14daaae4bf34f977d7d71ef179171997 (commit) from 0a9742d41c95d9a3d385bfa91571ad4af5ebcd5c (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: clfswm.asd | 2 +- doc/variables.html | 28 ++++++++++++++-------------- doc/variables.txt | 28 ++++++++++++++-------------- src/version.lisp | 2 +- 4 files changed, 30 insertions(+), 30 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Fri Sep 21 19:47:06 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 21 Sep 2012 12:47:06 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager tag R-1209 created. R-1106-113-gd95e8d3 Message-ID: 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 tag, R-1209 has been created at d95e8d3f14daaae4bf34f977d7d71ef179171997 (commit) - Log ----------------------------------------------------------------- commit d95e8d3f14daaae4bf34f977d7d71ef179171997 Author: Philippe Brochard Date: Fri Sep 21 21:22:47 2012 +0200 Release 1209 ----------------------------------------------------------------------- hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sat Sep 22 08:01:49 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 22 Sep 2012 01:01:49 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-114-ge3fd6d1 Message-ID: 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 e3fd6d1e2f30eb46cc1228d4c1c1bab554ce9f08 (commit) from d95e8d3f14daaae4bf34f977d7d71ef179171997 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 4 ++++ TODO | 3 +++ 2 files changed, 7 insertions(+), 0 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sat Sep 22 08:01:50 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 22 Sep 2012 01:01:50 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-114-ge3fd6d1 Message-ID: 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, test has been updated via e3fd6d1e2f30eb46cc1228d4c1c1bab554ce9f08 (commit) from d95e8d3f14daaae4bf34f977d7d71ef179171997 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 4 ++++ TODO | 3 +++ 2 files changed, 7 insertions(+), 0 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 23 14:02:54 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 23 Sep 2012 07:02:54 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-115-g47dedcf Message-ID: 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 47dedcf45623f3ade064bb8cc04aac275ae262a8 (commit) from e3fd6d1e2f30eb46cc1228d4c1c1bab554ce9f08 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++ src/clfswm.lisp | 75 ++++++++++++++++++++++++++++++------------------------ 2 files changed, 48 insertions(+), 33 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 23 14:02:55 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 23 Sep 2012 07:02:55 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-115-g47dedcf Message-ID: 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, test has been updated via 47dedcf45623f3ade064bb8cc04aac275ae262a8 (commit) from e3fd6d1e2f30eb46cc1228d4c1c1bab554ce9f08 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++ src/clfswm.lisp | 75 ++++++++++++++++++++++++++++++------------------------ 2 files changed, 48 insertions(+), 33 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 23 15:01:23 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 23 Sep 2012 08:01:23 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-116-g20de0ab Message-ID: 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 20de0ab6d1a1d62284df039859b7244f508f14d0 (commit) from 47dedcf45623f3ade064bb8cc04aac275ae262a8 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: clfswm.asd | 2 +- src/version.lisp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 23 15:01:24 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 23 Sep 2012 08:01:24 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-116-g20de0ab Message-ID: 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, test has been updated via 20de0ab6d1a1d62284df039859b7244f508f14d0 (commit) from 47dedcf45623f3ade064bb8cc04aac275ae262a8 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: clfswm.asd | 2 +- src/version.lisp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sat Sep 29 21:42:29 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 29 Sep 2012 14:42:29 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-117-g81a310c Message-ID: 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 81a310cac49b418d7671c424713449e67cd870a3 (commit) from 20de0ab6d1a1d62284df039859b7244f508f14d0 (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 81a310cac49b418d7671c424713449e67cd870a3 Author: Philippe Brochard Date: Sat Sep 29 23:42:14 2012 +0200 src/xlib-util.lisp (with-xlib-protect): Limit X errors ignored to prevent freezes and add a backtrace system. diff --git a/ChangeLog b/ChangeLog index 8f50e9d..18a40ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-09-29 Philippe Brochard + + * src/xlib-util.lisp (with-xlib-protect): Limit X errors ignored + to prevent freezes and add a backtrace system. + 2012-09-23 Philippe Brochard * src/clfswm.lisp (configure-request handler): To be ICCCM diff --git a/load.lisp b/load.lisp index 9d2f5f0..d8e063d 100644 --- a/load.lisp +++ b/load.lisp @@ -35,7 +35,7 @@ #+CMU (setf ext:*gc-verbose* nil) -#+SBCL +#+(or SBCL ECL) (require :asdf) #+(or CMU ECL) diff --git a/src/clfswm.lisp b/src/clfswm.lisp index 2af439e..119dd4d 100644 --- a/src/clfswm.lisp +++ b/src/clfswm.lisp @@ -44,7 +44,9 @@ window root-x root-y *fun-press*))) (define-handler main-mode :configure-request (stack-mode window x y width height border-width value-mask) - (let ((to-send-conf-notify-p nil)) + (let ((old-width (x-drawable-height window)) + (old-height (x-drawable-height window)) + (old-border (x-drawable-border-width window))) (labels ((has-x (mask) (= 1 (logand mask 1))) (has-y (mask) (= 2 (logand mask 2))) (has-w (mask) (= 4 (logand mask 4))) @@ -52,14 +54,10 @@ (has-bw (mask) (= 16 (logand mask 16))) (has-stackmode (mask) (= 64 (logand mask 64))) (adjust-from-request () - (when (has-x value-mask) (setf (x-drawable-x window) x - to-send-conf-notify-p t)) - (when (has-y value-mask) (setf (x-drawable-y window) y - to-send-conf-notify-p t)) - (when (has-h value-mask) (setf (x-drawable-height window) height - to-send-conf-notify-p nil)) - (when (has-w value-mask) (setf (x-drawable-width window) width - to-send-conf-notify-p nil)))) + (when (has-x value-mask) (setf (x-drawable-x window) x)) + (when (has-y value-mask) (setf (x-drawable-y window) y)) + (when (has-h value-mask) (setf (x-drawable-height window) height)) + (when (has-w value-mask) (setf (x-drawable-width window) width)))) (when window (xlib:with-state (window) (when (has-bw value-mask) @@ -71,12 +69,6 @@ (adapt-child-to-parent window parent) (adjust-from-request))) (adjust-from-request))) - (when to-send-conf-notify-p - ;; To be ICCCM compliant, send a fake configuration notify event only when - ;; the window has moved and not when it has been resized. - (send-configuration-notify window (x-drawable-x window) (x-drawable-y window) - (x-drawable-width window) (x-drawable-height window) - (x-drawable-border-width window))) (when (has-stackmode value-mask) (case stack-mode (:above @@ -85,7 +77,15 @@ (is-in-current-child-p window)) (raise-window window) (focus-window window) - (focus-all-children window (find-parent-frame window (find-current-root))))))))))))) + (focus-all-children window (find-parent-frame window (find-current-root))))))))) + (unless (or (/= old-width (x-drawable-width window)) + (/= old-height (x-drawable-height window)) + (/= old-border (x-drawable-border-width window))) + ;; To be ICCCM compliant, send a fake configuration notify event only when + ;; the window has moved and not when it has been resized or the border width has changed. + (send-configuration-notify window (x-drawable-x window) (x-drawable-y window) + (x-drawable-width window) (x-drawable-height window) + (x-drawable-border-width window))))))) (define-handler main-mode :map-request (window send-event-p) @@ -209,7 +209,8 @@ :height (xlib:screen-height *screen*) :depth (xlib:screen-root-depth *screen*) :drawable *root*) - *in-second-mode* nil) + *in-second-mode* nil + *x-error-count* 0) (store-root-background) (init-modifier-list) (xgrab-init-pointer) diff --git a/src/tools.lisp b/src/tools.lisp index a5edfdd..7082b56 100644 --- a/src/tools.lisp +++ b/src/tools.lisp @@ -39,7 +39,7 @@ :copy-hash-table :nfuncall :pfuncall - :symbol-search + :symbol-search :create-symbol :create-symbol-in-package :call-hook :add-new-hook @@ -92,6 +92,7 @@ :first-position :find-free-number :date-string + :write-backtrace :do-execute :do-shell :fdo-shell :getenv @@ -216,6 +217,7 @@ (apply function args))) + (defun symbol-search (search symbol) "Search the string 'search' in the symbol name of 'symbol'" (search search (symbol-name symbol) :test #'string-equal)) @@ -814,7 +816,7 @@ Useful for re-using the &REST arg after removing some options." #+lucid (apply #'lcl:run-program prog :wait wait :arguments args opts) #+sbcl (apply #'sb-ext:run-program prog args :wait wait :output *standard-output* opts) #+ecl (apply #'ext:run-program prog args opts) - #+ccl (apply #'ccl:run-program prog args opts :wait wait) + #+ccl (ccl:run-program prog args :wait wait) #-(or allegro clisp cmu gcl liquid lispworks lucid sbcl ecl ccl) (error 'not-implemented :proc (list 'run-prog prog opts))) @@ -1044,6 +1046,31 @@ Useful for re-using the &REST arg after removing some options." hour minute second (nth day days) (nth (1- month) months) date year))))) +;;; +;;; Backtrace function +;;; +(defun write-backtrace (filename &optional other-info clear) + (when (and clear (probe-file filename)) + (delete-file filename)) + (with-open-file (stream filename :direction :output :if-exists :append + :if-does-not-exist :create) + (let ((*standard-output* stream) + (*debug-io* stream)) + (format t "================== New backtrace ==================~%") + (format t "--- ~A ---~%" (date-string)) + (format t "Lisp: ~A ; Version: ~A~2%" (lisp-implementation-type) + (lisp-implementation-version)) + #+clisp (system::print-backtrace) + #+(or cmucl scl) (debug:backtrace) + #+sbcl (sb-debug:backtrace) + #+(or mcl ccl) (ccl:print-call-history :detailed-p nil) + #-(or clisp cmucl scl sbcl mcl ccl) (format t "Backtrace not defined~%") + (when other-info + (format t "~A~%" other-info)) + (format t "--- log end ---~%"))) + (format t "Backtrace logged in file: ~A~%" filename)) + + ;;; ;;; System information functions diff --git a/src/xlib-util.lisp b/src/xlib-util.lisp index cfc1f82..3edacaa 100644 --- a/src/xlib-util.lisp +++ b/src/xlib-util.lisp @@ -69,19 +69,34 @@ Window types are in +WINDOW-TYPES+.") +(defparameter *x-error-count* 0) +(defparameter *max-x-error-count* 10000) +(defparameter *clfswm-x-error-filename* "/tmp/clfswm-backtrace.error") + + (defmacro with-xlib-protect ((&optional name tag) &body body) "Prevent Xlib errors" - #-:xlib-debug (declare (ignore name tag)) `(handler-case (with-simple-restart (top-level "Return to clfswm's top level") - , at body) + , at body + (setf *x-error-count* 0)) (xlib::x-error (c) - #-:xlib-debug (declare (ignore c)) + (incf *x-error-count*) + (when (> *x-error-count* *max-x-error-count*) + (format t "Xlib error: ~A ~A: ~A~%" ,name (if ,tag ,tag ',body) c) + (force-output) + (write-backtrace *clfswm-x-error-filename* + (format nil "~%------- Additional information --------- +Xlib error: ~A ~A: ~A +Body: ~A + +Features: ~A" + ,name ,tag c ',body + *features*)) + (error "Too many X errors: ~A (logged in ~A)" c *clfswm-x-error-filename*)) #+:xlib-debug (progn - (if ,tag - (format t "Xlib error: ~A ~A: ~A~%" ,name ,tag c) - (format t "Xlib error: ~A ~A: ~A~%" ,name ',body c)) + (format t "Xlib error: ~A ~A: ~A~%" ,name (if ,tag ,tag ',body) c) (force-output))))) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ load.lisp | 2 +- src/clfswm.lisp | 35 ++++++++++++++++++----------------- src/tools.lisp | 31 +++++++++++++++++++++++++++++-- src/xlib-util.lisp | 27 +++++++++++++++++++++------ 5 files changed, 74 insertions(+), 26 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sat Sep 29 21:43:02 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 29 Sep 2012 14:43:02 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch test updated. R-1106-117-g81a310c Message-ID: 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, test has been updated via 81a310cac49b418d7671c424713449e67cd870a3 (commit) from 20de0ab6d1a1d62284df039859b7244f508f14d0 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ load.lisp | 2 +- src/clfswm.lisp | 35 ++++++++++++++++++----------------- src/tools.lisp | 31 +++++++++++++++++++++++++++++-- src/xlib-util.lisp | 27 +++++++++++++++++++++------ 5 files changed, 74 insertions(+), 26 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 30 19:02:36 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 30 Sep 2012 12:02:36 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-118-g2a97c66 Message-ID: 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 2a97c668efec1376f35453b3a560117b1ce7435b (commit) from 81a310cac49b418d7671c424713449e67cd870a3 (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 2a97c668efec1376f35453b3a560117b1ce7435b Author: Philippe Brochard Date: Sun Sep 30 21:02:30 2012 +0200 src/clfswm.lisp (configure-request handler): Send a configuration notify event in a more precise way. diff --git a/ChangeLog b/ChangeLog index 18a40ce..27a9fd1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-09-30 Philippe Brochard + + * src/clfswm.lisp (configure-request handler): Send a + configuration notify event in a more precise way. + 2012-09-29 Philippe Brochard * src/xlib-util.lisp (with-xlib-protect): Limit X errors ignored diff --git a/src/clfswm-internal.lisp b/src/clfswm-internal.lisp index 2bc4a60..41606c2 100644 --- a/src/clfswm-internal.lisp +++ b/src/clfswm-internal.lisp @@ -959,10 +959,13 @@ XINERAMA version 1.1 opcode: 150 (multiple-value-bind (nx ny nw nh) (get-parent-layout window parent) (setf nw (max nw 1) nh (max nh 1)) - (let ((change (or (/= (x-drawable-x window) nx) - (/= (x-drawable-y window) ny) - (/= (x-drawable-width window) nw) - (/= (x-drawable-height window) nh)))) + (let ((change nil)) + (when (or (/= (x-drawable-x window) nx) + (/= (x-drawable-y window) ny)) + (setf change :moved)) + (when (or (/= (x-drawable-width window) nw) + (/= (x-drawable-height window) nh)) + (setf change :resized)) (when change (setf (x-drawable-x window) nx (x-drawable-y window) ny @@ -974,10 +977,13 @@ XINERAMA version 1.1 opcode: 150 (defmethod adapt-child-to-parent ((frame frame) parent) (declare (ignore parent)) (with-slots (rx ry rw rh window) frame - (let ((change (or (/= (x-drawable-x window) rx) - (/= (x-drawable-y window) ry) - (/= (x-drawable-width window) rw) - (/= (x-drawable-height window) rh)))) + (let ((change nil)) + (when (or (/= (x-drawable-x window) rx) + (/= (x-drawable-y window) ry)) + (setf change :moved)) + (when (or (/= (x-drawable-width window) rw) + (/= (x-drawable-height window) rh)) + (setf change :resized)) (when change (setf (x-drawable-x window) rx (x-drawable-y window) ry diff --git a/src/clfswm.lisp b/src/clfswm.lisp index 119dd4d..9f8faf1 100644 --- a/src/clfswm.lisp +++ b/src/clfswm.lisp @@ -44,9 +44,7 @@ window root-x root-y *fun-press*))) (define-handler main-mode :configure-request (stack-mode window x y width height border-width value-mask) - (let ((old-width (x-drawable-height window)) - (old-height (x-drawable-height window)) - (old-border (x-drawable-border-width window))) + (let ((change nil)) (labels ((has-x (mask) (= 1 (logand mask 1))) (has-y (mask) (= 2 (logand mask 2))) (has-w (mask) (= 4 (logand mask 4))) @@ -54,19 +52,24 @@ (has-bw (mask) (= 16 (logand mask 16))) (has-stackmode (mask) (= 64 (logand mask 64))) (adjust-from-request () - (when (has-x value-mask) (setf (x-drawable-x window) x)) - (when (has-y value-mask) (setf (x-drawable-y window) y)) - (when (has-h value-mask) (setf (x-drawable-height window) height)) - (when (has-w value-mask) (setf (x-drawable-width window) width)))) + (when (has-x value-mask) (setf (x-drawable-x window) x + change :moved)) + (when (has-y value-mask) (setf (x-drawable-y window) y + change :moved)) + (when (has-h value-mask) (setf (x-drawable-height window) height + change :resized)) + (when (has-w value-mask) (setf (x-drawable-width window) width + change :resized)))) (when window (xlib:with-state (window) (when (has-bw value-mask) - (setf (x-drawable-border-width window) border-width)) + (setf (x-drawable-border-width window) border-width + change :resized)) (let ((current-root (find-current-root))) (if (find-child window current-root) (let ((parent (find-parent-frame window current-root))) (if (and parent (managed-window-p window parent)) - (adapt-child-to-parent window parent) + (setf change (adapt-child-to-parent window parent)) (adjust-from-request))) (adjust-from-request))) (when (has-stackmode value-mask) @@ -75,12 +78,11 @@ (unless (null-size-window-p window) (when (or (child-equal-p window (current-child)) (is-in-current-child-p window)) + (setf change :moved) (raise-window window) (focus-window window) (focus-all-children window (find-parent-frame window (find-current-root))))))))) - (unless (or (/= old-width (x-drawable-width window)) - (/= old-height (x-drawable-height window)) - (/= old-border (x-drawable-border-width window))) + (unless (eq change :resized) ;; To be ICCCM compliant, send a fake configuration notify event only when ;; the window has moved and not when it has been resized or the border width has changed. (send-configuration-notify window (x-drawable-x window) (x-drawable-y window) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ src/clfswm-internal.lisp | 22 ++++++++++++++-------- src/clfswm.lisp | 26 ++++++++++++++------------ 3 files changed, 33 insertions(+), 20 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager From pbrochard at common-lisp.net Sun Sep 30 19:16:09 2012 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 30 Sep 2012 12:16:09 -0700 Subject: [clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager branch master updated. R-1106-119-g809cf34 Message-ID: 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 809cf340f1a50c08d191d5ced21a5023c298b52f (commit) from 2a97c668efec1376f35453b3a560117b1ce7435b (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 809cf340f1a50c08d191d5ced21a5023c298b52f Author: Philippe Brochard Date: Sun Sep 30 21:16:03 2012 +0200 src/clfswm.lisp (configure-request handler): Protect fake configuration notify diff --git a/src/clfswm.lisp b/src/clfswm.lisp index 9f8faf1..f66976a 100644 --- a/src/clfswm.lisp +++ b/src/clfswm.lisp @@ -85,9 +85,10 @@ (unless (eq change :resized) ;; To be ICCCM compliant, send a fake configuration notify event only when ;; the window has moved and not when it has been resized or the border width has changed. - (send-configuration-notify window (x-drawable-x window) (x-drawable-y window) - (x-drawable-width window) (x-drawable-height window) - (x-drawable-border-width window))))))) + (with-xlib-protect () + (send-configuration-notify window (x-drawable-x window) (x-drawable-y window) + (x-drawable-width window) (x-drawable-height window) + (x-drawable-border-width window)))))))) (define-handler main-mode :map-request (window send-event-p) ----------------------------------------------------------------------- Summary of changes: src/clfswm.lisp | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) hooks/post-receive -- CLFSWM - A(nother) Common Lisp FullScreen Window Manager