Location: lg@xxxxxxxxxxxxxx http://arch.xwem.org/2005/
Revision: xwem--main--2.2--patch-7
Archive: lg@xxxxxxxxxxxxxx
Creator: Zajcev Evgeny <lg@xxxxxxxx>
Date: Sat Apr 23 02:57:52 MSD 2005
Standard-date: 2005-04-22 22:57:52 GMT
Modified-files: lisp/xwem-minibuffer.el
New-patches: lg@xxxxxxxxxxxxxx/xwem--main--2.2--patch-7
Summary: added :set function to xwem-minibuffer-emacs-frames-has-minibuffer
Keywords:
* lisp/xwem-minibuffer.el (xwem-minibuffer-emacs-frames-has-minibuffer):
[addon] :set function added. To add/remove
`xwem-emacs-frame-select-hook' from `select-frame-hook'
* lisp/xwem-minibuffer.el (xwem-emacs-frame-select-hook): [new] Select
xwem minibuffer if xwem's minibuffer emacs frame is selected. Used
when `xwem-minibuffer-emacs-frames-has-minibuffer' is nil.
* added files
{arch}/xwem/xwem--main/xwem--main--2.2/lg@xxxxxxxxxxxxxx/patch-log/patch-7
* modified files
--- orig/lisp/xwem-minibuffer.el
+++ mod/lisp/xwem-minibuffer.el
@@ -207,6 +207,16 @@
(defcustom xwem-minibuffer-emacs-frames-has-minibuffer t
"*Non-nil mean Emacs frames will have their own minibuffers."
:type 'boolean
+ :set (lambda (sym val)
+ (set sym val)
+ (if val
+ (progn
+ (setq default-x-frame-plist
+ (plist-remprop default-x-frame-plist 'minibuffer))
+ (remove-hook 'select-frame-hook 'xwem-emacs-frame-select-hook))
+ (setq default-x-frame-plist
+ (plist-put default-x-frame-plist 'minibuffer nil))
+ (add-hook 'select-frame-hook 'xwem-emacs-frame-select-hook)))
:group 'xwem-minibuffer)
(defcustom xwem-minibuffer-set-default-minibuffer-frame t
@@ -283,6 +293,17 @@
"Keymap used while in xwem.")
+(defun xwem-emacs-frame-select-hook ()
+ "Select or deselect xwem minibuffer.
+Make xwem minibuffer be conditionally selected, when its emacs frame
+selected.
+Used when `xwem-minibuffer-emacs-frames-has-minibuffer' is nil."
+ (if (eq (selected-frame) (xwem-minib-frame xwem-minibuffer))
+ (xwem-select-client (xwem-minib-cl xwem-minibuffer))
+ (when (and (xwem-cl-selected-p (xwem-minib-cl xwem-minibuffer))
+ (not (eq (xwem-last-client) (xwem-minib-cl xwem-minibuffer))))
+ (xwem-select-client (xwem-last-client)))))
+
(defun xwem-minib-apply-specifiers (frame)
"Apply `xwem-minib-specifiers' to FRAME."
(mapc #'(lambda (spc)
|