Location: lg@xxxxxxxxxxxxxx http://arch.xwem.org/2005/
Revision: xwem--main--2.2--patch-32
Archive: lg@xxxxxxxxxxxxxx
Creator: Zajcev Evgeny <lg@xxxxxxxx>
Date: Fri Sep 23 21:01:18 MSD 2005
Standard-date: 2005-09-23 17:01:18 GMT
Modified-files: lisp/xwem-clients.el lisp/xwem-struct.el
New-patches: dev@xxxxxxxxxxxxxxxx/xwem--dev--2.2--patch-27
lg@xxxxxxxxxxxxxx/xwem--main--2.2--patch-32
Summary: Fixes last client operations
Keywords: cliens, last
* lisp/xwem-struct.el (xwem-last-client): NUM argument added to return
NUMs last client.
* lisp/xwem-clients.e (xwem-cl-select): [revert]
* lisp/xwem-clients.el (xwem-select-last-or-other-client): [fix] Scan
xwem-last-clients stack to find out most suitable client for selection.
* added files
{arch}/xwem/xwem--dev/xwem--dev--2.2/dev@xxxxxxxxxxxxxxxx/patch-log/patch-27
{arch}/xwem/xwem--main/xwem--main--2.2/lg@xxxxxxxxxxxxxx/patch-log/patch-32
* modified files
--- orig/lisp/xwem-clients.el
+++ mod/lisp/xwem-clients.el
@@ -523,8 +523,7 @@
(xwem-client-local-variables-import (xwem-cl-selected))
;; Set CL to be current client
- (unless (xwem-dummy-client-p (xwem-cl-selected))
- (setf (xwem-last-client) (xwem-cl-selected)))
+ (setf (xwem-last-client) (xwem-cl-selected))
(setf (xwem-cl-selected) cl)
(xwem-client-local-variables-export cl))
@@ -794,12 +793,13 @@
(when (or force
(xwem-cl-selected-p cl)
(xwem-cl-selected-p (xwem-dummy-client)))
- (if (and (xwem-cl-alive-p (xwem-last-client))
- (not (eq (xwem-last-client) cl))
- (or allow-dummy
- (not (xwem-dummy-client-p (xwem-last-client)))))
- (xwem-select-client (xwem-last-client))
- (xwem-select-client (xwem-cl-other cl)))))
+ (let ((lcl (find cl xwem-last-clients
+ :test #'(lambda (cl lcl)
+ (and (xwem-cl-alive-p lcl)
+ (not (eq lcl cl))
+ (or allow-dummy
+ (not (xwem-dummy-client-p lcl))))))))
+ (xwem-select-client (or lcl (xwem-cl-other cl))))))
;;;###xwem-autoload
--- orig/lisp/xwem-struct.el
+++ mod/lisp/xwem-struct.el
@@ -398,9 +398,9 @@
(defsetf xwem-cl-selected () (cl)
`(setq xwem-current-cl ,cl))
-(defmacro xwem-last-client ()
- "Return last selected client."
- '(car xwem-last-clients))
+(defmacro xwem-last-client (&optional num)
+ "Return NUMs last selected client."
+ '(nth (or num 0) xwem-last-clients))
(defsetf xwem-last-client () (cl)
`(progn
(push ,cl xwem-last-clients)
|