xwem-patches
[Top] [All Lists]

Summary for xwem--main--2.2--patch-13

From: Zajcev Evgeny <lg@xxxxxxxx>
Subject: Summary for xwem--main--2.2--patch-13
Date: Sat, 14 May 2005 19:15:43 +0400 (MSD)
Location: lg@xxxxxxxxxxxxxx http://arch.xwem.org/2005/

Revision: xwem--main--2.2--patch-13
Archive: lg@xxxxxxxxxxxxxx
Creator: Zajcev Evgeny <lg@xxxxxxxx>
Date: Sat May 14 19:15:38 MSD 2005
Standard-date: 2005-05-14 15:15:38 GMT
Modified-files: lisp/xwem-minibuffer.el
New-patches: lg@xxxxxxxxxxxxxx/xwem--main--2.2--patch-13
Summary: try to fix recent problems with minibuffer
Keywords: minibuffer, resize

* lisp/xwem-minibuffer.el (xwem-minibuffer-emacs-frames-has-minibuffer):
  [fix] :initialize added.  Changed method to conditionally select
  xwem-minibuffer.  From this time it is done by advicing
  `read-from-minibuffer' rather then intalling `select-frame-hook'.  It
  should make nil valued `xwem-minibuffer-emacs-frames-has-minibuffer' be
  better.  From this time i started using nil valued
  `xwem-minibuffer-emacs-frames-has-minibuffer' :)

* lisp/xwem-minibuffer.el (xwem-emacs-frame-select-hook): Removed.

* lisp/xwem-minibuffer.el (xwem-minib-apply-specifiers): [fix] Use xwem
  minibuffer Emacs window for vertical motion.

* lisp/xwem-minibuffer.el (xwem-minib-rsz-resize): [fix] Do not resize to
  lesser height then original, even if `xwem-minib-resize-exact' is
  non-nil.  Also `xwem-minib-rsz-resize' does not relies on
  xwem-minib-cl-xgeom value, rather it fetches geometry info from X
  server, using `XGetGeometry'.

* lisp/xwem-minibuffer.el (xwem-modeline-disable): [fix] Unset
  top-gutter-visible-p specifier as well as top-gutter.

* added files

    {arch}/xwem/xwem--main/xwem--main--2.2/lg@xxxxxxxxxxxxxx/patch-log/patch-13

* modified files

--- orig/lisp/xwem-minibuffer.el
+++ mod/lisp/xwem-minibuffer.el
@@ -221,10 +221,16 @@
              (progn
                (setq default-x-frame-plist
                      (plist-remprop default-x-frame-plist 'minibuffer))
-               (remove-hook 'select-frame-hook 'xwem-emacs-frame-select-hook))
+               (ad-remove-advice 'read-from-minibuffer 'around 
'xwem-minib-as-emacs-minib))
            (setq default-x-frame-plist
                  (plist-put default-x-frame-plist 'minibuffer nil))
-           (add-hook 'select-frame-hook 'xwem-emacs-frame-select-hook)))
+           (defadvice read-from-minibuffer (around xwem-minib-as-emacs-minib 
activate)
+             "Make xwem minibuffer be conditionally selected, when its emacs 
frame
+selected.
+Used when `xwem-minibuffer-emacs-frames-has-minibuffer' is nil."
+             (xwem-under-minibuffer
+              ad-do-it))))
+  :initialize 'custom-initialize-default
   :group 'xwem-minibuffer)
 
 (defcustom xwem-minibuffer-set-default-minibuffer-frame t
@@ -301,17 +307,6 @@
   "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)
@@ -657,24 +652,29 @@
     (save-excursion
       (goto-char (point-min))
       ;; XXX
-      (vertical-motion-pixels (X-Geom-height (xwem-rootgeom))))))
+      (vertical-motion-pixels
+       (X-Geom-height (xwem-rootgeom))
+       (frame-selected-window (xwem-minib-frame xwem-minibuffer))))))
+
+(defvar xwem-minib-rsz-saved-height nil)
 
 (define-xwem-deffered xwem-minib-rsz-resize (&optional new-height)
   "Resize xwem minibuffer to fit either NEW-HEIGHT.
-If NEW-HEIGHT is ommited, current window height considered."
+If NEW-HEIGHT is ommited, current window height considered.
+`xwem-minib-rsz-resize' won't ever shrink height to less then original
+height stored in `xwem-minib-rsz-saved-height'."
   (when (xwem-cl-selected-p (xwem-minib-cl xwem-minibuffer))
-    (let ((height (window-text-area-pixel-height
+    (let* ((height (window-text-area-pixel-height
                    (frame-selected-window (xwem-minib-frame xwem-minibuffer))))
           (lines (or new-height (+ (face-height 'default (xwem-minib-frame 
xwem-minibuffer))
-                                   (xwem-minib-rsz-count-window-lines)))))
-      (cond ((or new-height xwem-minib-resize-exact (> lines height))
-             ;; Adjust xwem minibuffer cl height
-             (xwem-client-resize (xwem-minib-cl xwem-minibuffer) nil
-                                 (+ (X-Geom-height-with-borders
-                                     (xwem-minib-cl-xgeom xwem-minibuffer))
-                                    (- lines height))))))))
-
-(defvar xwem-minib-rsz-saved-height nil)
+                                   (xwem-minib-rsz-count-window-lines))))
+          (mg (XGetGeometry (xwem-dpy) (xwem-cl-xwin (xwem-minib-cl 
xwem-minibuffer))))
+          (rh (or new-height (+ (X-Geom-height mg) (- lines height)))))
+      (when (< rh xwem-minib-rsz-saved-height)
+        (setq rh xwem-minib-rsz-saved-height))
+      (when (or new-height xwem-minib-resize-exact)
+        ;; Adjust xwem minibuffer cl height
+        (xwem-client-resize (xwem-minib-cl xwem-minibuffer) nil rh)))))
 
 (define-xwem-deffered xwem-minib-rsz-setup ()
   "Setup xwem resize minibuffer mode for xwem minibuffer."
@@ -774,8 +774,7 @@
     (let* ((str (xwem-modeline-regenerate))
            (mw (frame-width (xwem-minib-frame xwem-minibuffer))))
       (set-specifier top-gutter (substring str 0 (and (> (length str) mw) mw))
-                     (xwem-minib-frame xwem-minibuffer))
-      )))
+                     (xwem-minib-frame xwem-minibuffer)))))
 
 ;;;###autoload(autoload 'xwem-modeline-enable "xwem-minibuffer" nil t)
 (define-xwem-command xwem-modeline-enable ()
@@ -817,6 +816,8 @@
       (specifier-instance top-gutter-border-width
                           (xwem-minib-frame xwem-minibuffer))))
   ;; Stop showing gutter
+  (set-specifier top-gutter-visible-p nil
+                 (xwem-minib-frame xwem-minibuffer))
   (set-specifier top-gutter nil
                  (xwem-minib-frame xwem-minibuffer)))
 




<Prev in Thread] Current Thread [Next in Thread>
  • Summary for xwem--main--2.2--patch-13, Zajcev Evgeny <=