[clfswm-cvs] CVS clfswm
pbrochard
pbrochard at common-lisp.net
Tue Dec 25 22:52:16 UTC 2007
Update of /project/clfswm/cvsroot/clfswm
In directory clnet:/tmp/cvs-serv17241
Modified Files:
ChangeLog bindings-second-mode.lisp clfswm-internal.lisp
Log Message:
hide-group and less flickering when moving/resizing groups
--- /project/clfswm/cvsroot/clfswm/ChangeLog 2007/12/22 22:55:26 1.4
+++ /project/clfswm/cvsroot/clfswm/ChangeLog 2007/12/25 22:52:16 1.5
@@ -1,10 +1,22 @@
+2007-12-25 Philippe Brochard <hocwp at free.fr>
+
+ * bindings-second-mode.lisp (mouse-motion): use hide-group to have
+ less flickering when moving/resizing groups.
+
+ * clfswm-internal.lisp (hide-group): new function.
+ (show-all-group): clear-all: new parameter.
+
2007-12-22 Philippe Brochard <hocwp at free.fr>
- * clfswm-keys.lisp (define-define-key): undefine-*-multi-name: new macro.
- * clfswm: Color change for the pager. Typo or better description
+ * clfswm-keys.lisp (define-define-key): undefine-*-multi-name: new
+ macro.
+ * clfswm*: Color change for the pager. Typo or better description
in bindings definitions. Define bindings for a qwerty keyboard by
- default. dot-clfswmrc show examples to switch to an azerty keyboard.
- * config.lisp: new file - group all globals variables in this file.
+ default. dot-clfswmrc show examples to switch to an azerty
+ keyboard.
+ License change to GPL v3.
+ * config.lisp: new file - group all globals variables in this
+ file.
2007-08-26 Philippe Brochard <hocwp at free.fr>
--- /project/clfswm/cvsroot/clfswm/bindings-second-mode.lisp 2007/12/22 22:55:26 1.5
+++ /project/clfswm/cvsroot/clfswm/bindings-second-mode.lisp 2007/12/25 22:52:16 1.6
@@ -1,7 +1,7 @@
;;; --------------------------------------------------------------------------
;;; CLFSWM - FullScreen Window Manager
;;;
-;;; #Date#: Sat Dec 22 23:31:58 2007
+;;; #Date#: Tue Dec 25 23:09:55 2007
;;;
;;; --------------------------------------------------------------------------
;;; Documentation: Bindings keys and mouse for second mode
@@ -428,16 +428,18 @@
(setf accept-motion t))
(case *motion-action*
(:move-group
+ (hide-group *root* *motion-object*)
(setf (group-x *motion-object*) (+ root-x *motion-dx*)
(group-y *motion-object*) (+ root-y *motion-dy*))
(adapt-all-window-in-group *motion-object*)
- (show-all-group (current-workspace)))
+ (show-all-group (current-workspace) *root* *root-gc* nil))
(:resize-group
+ (hide-group *root* *motion-object*)
(setf (group-width *motion-object*) (max (+ (group-width *motion-object*) (- root-x *motion-dx*)) 100)
(group-height *motion-object*) (max (+ (group-height *motion-object*) (- root-y *motion-dy*)) 100)
*motion-dx* root-x *motion-dy* root-y)
(adapt-all-window-in-group *motion-object*)
- (show-all-group (current-workspace))))))
+ (show-all-group (current-workspace) *root* *root-gc* nil)))))
--- /project/clfswm/cvsroot/clfswm/clfswm-internal.lisp 2007/12/21 22:01:14 1.4
+++ /project/clfswm/cvsroot/clfswm/clfswm-internal.lisp 2007/12/25 22:52:16 1.5
@@ -1,7 +1,7 @@
;;; --------------------------------------------------------------------------
;;; CLFSWM - FullScreen Window Manager
;;;
-;;; #Date#: Fri Dec 21 23:00:08 2007
+;;; #Date#: Tue Dec 25 23:17:49 2007
;;;
;;; --------------------------------------------------------------------------
;;; Documentation: Main functions
@@ -180,6 +180,13 @@
+(defun hide-group (root group)
+ (multiple-value-bind (x y width height)
+ (get-group-size group)
+ (clear-area root :x (1- x) :y (1- y) :width (+ width 2) :height (+ height 2))))
+
+
+
(defun show-group (root gc group)
(when (and gc group)
(handler-case
@@ -197,12 +204,16 @@
-(defun show-all-group (workspace &optional (root *root*) (gc *root-gc*))
- "Show all groups in workspace"
+(defun show-all-group (workspace &optional (root *root*) (gc *root-gc*) (clear-all :hide-each))
+ "Show all groups in workspace
+clear-all: nil=do not clear; t=clear all root window; :hide-each=clear each group before redrawing"
(handler-case
(progn
- (clear-area root)
+ (when clear-all
+ (clear-area root))
(dolist (group (reverse (workspace-group-list workspace)))
+ (when (eql clear-all :hide-each)
+ (hide-group root group))
(show-group root gc group)))
((or match-error window-error drawable-error) (c)
(declare (ignore c)))))
More information about the clfswm-cvs
mailing list