xwem-patches
[Top] [All Lists]

Summary for xwem--main--2.1--patch-26

From: Zajcev Evgeny <lg@xxxxxxxx>
Subject: Summary for xwem--main--2.1--patch-26
Date: Wed, 23 Feb 2005 03:00:13 +0300 (MSK)
Location: lg@xxxxxxxxxxxxxx http://arch.xwem.org/2005/

Revision: xwem--main--2.1--patch-26
Archive: lg@xxxxxxxxxxxxxx
Creator: Zajcev Evgeny <lg@xxxxxxxx>
Date: Wed Feb 23 03:00:08 MSK 2005
Standard-date: 2005-02-23 00:00:08 GMT
Modified-files: extra/xwem-keytt.el extra/xwem-vline.el
    lisp/xwem-clients.el lisp/xwem-help.el
    lisp/xwem-keydefs.el lisp/xwem-manage.el
    lisp/xwem-minibuffer.el lisp/xwem-misc.el
    lisp/xwem-netwm.el lisp/xwem-selections.el
New-patches: dev@xxxxxxxxxxxxxxxx/xwem--dev--2.1--patch-20
    dev@xxxxxxxxxxxxxxxx/xwem--dev--2.1--patch-21
    dev@xxxxxxxxxxxxxxxx/xwem--dev--2.1--patch-22
    lg@xxxxxxxxxxxxxx/xwem--main--2.1--patch-26
Summary: keytt addons imported, aspect ratio fix, vline fix, help fix
Keywords: keytt, aspect ratio, vline, help, modeline

* extra/xwem-keytt.el (xwem-keytt-global-mode): [new] Function to enable
  global xwem-keytt minor mode.  Just add `(xwem-keytt-global-mode)' into
  xwemrc.el to start using xwem-keytt globally.  xwem-keytt currently
  supports: gv, firefox, acroread, xpdf, xdvi, djview, xchm applications.

* extra/xwem-vline.el (xwem-turn-on-vline): [addon] Accepts numeric
  prefix argument to specify column at which vline to display. NOTE:
  `xwem-turn-on-vline' command is not bound by default.

* lisp/xwem-clients.el (xwem-cl-switch-other-omit-mode-specific): [new]
  Customizable variable to control `xwem-switch-other-client' command
  behaviour.  Non-nil - mean new behaviour (smart switcher to recent
  client), nil - old behaviour (always switch to last most recent client)

* lisp/xwem-clients.el (xwem-cl-correct-size-for-size): [addon] Support
  for aspect ratio, final, thanks to Richard for contribution!

* lisp/xwem-help.el (xwem-describe-prefix-bindings): [fix] Show minor
  mode bindings as well.

* lisp/xwem-help.el (xwem-help-mode): [new] Command to describe current
  major/minor mode.  By default bound to `H-h m'

* lisp/xwem-keydefs.el (xwem-help-map): [addon] `H-h m'

* lisp/xwem-manage.el (xwem-applications-alist): [addon] xdvi, xpdf, xchm
  applications added.

* lisp/xwem-minibuffer.el (xwem-manage-minibuffer): [bug fix] Select
  correct position, thanks to Steve's eagle eyes!

* lisp/xwem-minibuffer.el (modeline): fixes, automatical minibuffer
  resizing on `xwem-modeline-enable' and `xwem-modeline-disable'
  commands.  Everybody please try H-M-x xwem-modeline-enable RET ..

* lisp/xwem-netwm.el (fullscreen): [addon] Set major mode property
  'omit-aspect-ratio to disregard client's aspect ratio when doing
  refiting.

* lisp/xwem-selections.el (xwem-selections-no-remove): [change] t now by
  default.  Was discussed and agreed.

* lisp/xwem-selections.el (xwem-copy-cutbuffer): [fix] To make `H-w' work
  with mozilla selections.

* added files

    {arch}/xwem/xwem--dev/xwem--dev--2.1/dev@xxxxxxxxxxxxxxxx/patch-log/patch-20
    {arch}/xwem/xwem--dev/xwem--dev--2.1/dev@xxxxxxxxxxxxxxxx/patch-log/patch-21
    {arch}/xwem/xwem--dev/xwem--dev--2.1/dev@xxxxxxxxxxxxxxxx/patch-log/patch-22
    {arch}/xwem/xwem--main/xwem--main--2.1/lg@xxxxxxxxxxxxxx/patch-log/patch-26

* modified files

--- orig/extra/xwem-keytt.el
+++ mod/extra/xwem-keytt.el
@@ -27,7 +27,12 @@
 
 ;;; Commentary:
 
-;; 
+;; Add this:
+
+;;    (xwem-keytt-global-mode)
+
+;; to your ~/.xwem/xwemrc.el to enable keytt minor mode at manage time
+;; for clients that have support.
 
 ;;; Code:
 
@@ -99,25 +104,39 @@
         (xwem-turn-on-keytt client)
       (xwem-turn-off-keytt client))))
 
+;;;###autoload
+(defun xwem-keytt-global-mode ()
+  "Enable global mode.
+For each client that have support for keytt minor mode,
+xwem-keytt-minor-mode will be enabled at manage time."
+  (add-hook 'xwem-cl-manage-hook 'xwem-turn-on-keytt))
+
 
-;;; Add some predefined keymaps
+;;;; Add some predefined keymaps:
+
+(defmacro xwem-keytt-define-universal-argument-commands (keymap)
+  "Define command universal prefix argument commands for KEYMAP."
+  `(progn
+     (define-key ,keymap (kbd "C-u") 'xwem-universal-argument)
+     (define-key ,keymap (kbd "C-0") 'xwem-universal-digit)
+     (define-key ,keymap (kbd "C-1") 'xwem-universal-digit)
+     (define-key ,keymap (kbd "C-2") 'xwem-universal-digit)
+     (define-key ,keymap (kbd "C-3") 'xwem-universal-digit)
+     (define-key ,keymap (kbd "C-4") 'xwem-universal-digit)
+     (define-key ,keymap (kbd "C-5") 'xwem-universal-digit)
+     (define-key ,keymap (kbd "C-6") 'xwem-universal-digit)
+     (define-key ,keymap (kbd "C-7") 'xwem-universal-digit)
+     (define-key ,keymap (kbd "C-8") 'xwem-universal-digit)
+     (define-key ,keymap (kbd "C-9") 'xwem-universal-digit)))
+
+
+;; GV
 (defvar xwem-keytt-gv-keymap (make-sparse-keymap 'xwem-keytt-gv-keymap)
   "Keytt keymap for GV commands.")
 (xwem-keytt-add-keymap '((application "gv")) xwem-keytt-gv-keymap t)
 
 ;; Universal argument, so `C-5 C-n' for exampl will emulate five `C-n'
-(define-key xwem-keytt-gv-keymap (kbd "C-u") 'xwem-universal-argument)
-(define-key xwem-keytt-gv-keymap (kbd "C-0") 'xwem-universal-digit)
-(define-key xwem-keytt-gv-keymap (kbd "C-1") 'xwem-universal-digit)
-(define-key xwem-keytt-gv-keymap (kbd "C-2") 'xwem-universal-digit)
-(define-key xwem-keytt-gv-keymap (kbd "C-3") 'xwem-universal-digit)
-(define-key xwem-keytt-gv-keymap (kbd "C-4") 'xwem-universal-digit)
-(define-key xwem-keytt-gv-keymap (kbd "C-5") 'xwem-universal-digit)
-(define-key xwem-keytt-gv-keymap (kbd "C-6") 'xwem-universal-digit)
-(define-key xwem-keytt-gv-keymap (kbd "C-7") 'xwem-universal-digit)
-(define-key xwem-keytt-gv-keymap (kbd "C-8") 'xwem-universal-digit)
-(define-key xwem-keytt-gv-keymap (kbd "C-9") 'xwem-universal-digit)
-
+(xwem-keytt-define-universal-argument-commands xwem-keytt-gv-keymap)
 (define-key xwem-keytt-gv-keymap (kbd "C-x C-f") (kbd "o")) ; open
 (define-key xwem-keytt-gv-keymap (kbd "C-x C-c") (kbd "q")) ; exit
 (define-key xwem-keytt-gv-keymap (kbd "C-x C-w") (kbd "s")) ; save marked
@@ -132,6 +151,121 @@
 (define-key xwem-keytt-gv-keymap (kbd "C-<SPC>") (kbd "M")) ; mark page
 (define-key xwem-keytt-gv-keymap (kbd "C-g") (kbd "N")) ; unmark page
 
+
+;; FIREFOX
+(defvar xwem-keytt-firefox-keymap (make-sparse-keymap 
'xwem-keytt-firefox-keymap)
+  "Keytt keymap for firefox commands.")
+(xwem-keytt-add-keymap '((application "firefox")) xwem-keytt-firefox-keymap t)
+
+(xwem-keytt-define-universal-argument-commands xwem-keytt-firefox-keymap)
+(define-key xwem-keytt-firefox-keymap (kbd "C-x C-f") (kbd "C-l")) ; open url
+(define-key xwem-keytt-firefox-keymap (kbd "C-n") (kbd "<down>")) ; scroll down
+(define-key xwem-keytt-firefox-keymap (kbd "C-p") (kbd "<up>")) ; scroll up
+(define-key xwem-keytt-firefox-keymap (kbd "C-f") (kbd "<right>")) ; scroll 
right
+(define-key xwem-keytt-firefox-keymap (kbd "C-b") (kbd "<left>")) ; scroll left
+(define-key xwem-keytt-firefox-keymap (kbd "C-v") (kbd "<next>")) ; scroll 
page down
+(define-key xwem-keytt-firefox-keymap (kbd "M-v") (kbd "<prior>")) ; scroll 
page up
+(define-key xwem-keytt-firefox-keymap (kbd "M->") (kbd "<end>")) ; goto end
+(define-key xwem-keytt-firefox-keymap (kbd "M-<") (kbd "<home>")) ; goto home
+(define-key xwem-keytt-firefox-keymap (kbd "C-s") (kbd "/")) ; search
+(define-key xwem-keytt-firefox-keymap (kbd "C-g") (kbd "<esc>")) ; cancel 
search
+(define-key xwem-keytt-firefox-keymap (kbd "C-x [") (kbd "M-<left>")) ; back
+(define-key xwem-keytt-firefox-keymap (kbd "C-x ]") (kbd "M-<right>")) ; 
forward
+
+
+;; ACROREAD
+(defvar xwem-keytt-acroread-keymap (make-sparse-keymap 
'xwem-keytt-acroread-keymap)
+  "Keytt keymap for acroread commands.")
+(xwem-keytt-add-keymap '((application "acroread")) xwem-keytt-acroread-keymap 
t)
+
+(xwem-keytt-define-universal-argument-commands xwem-keytt-acroread-keymap)
+(define-key xwem-keytt-acroread-keymap (kbd "C-x C-f") (kbd "C-o")) ; open file
+(define-key xwem-keytt-acroread-keymap (kbd "C-x C-c") (kbd "C-q")) ; quit
+(define-key xwem-keytt-acroread-keymap (kbd "C-x C-s") (kbd "C-S")) ; save copy
+(define-key xwem-keytt-acroread-keymap (kbd "C-x k") (kbd "C-w")) ; close file
+(define-key xwem-keytt-acroread-keymap (kbd "C-n") (kbd "<down>")) ; scroll 
down
+(define-key xwem-keytt-acroread-keymap (kbd "C-p") (kbd "<up>")) ; scroll up
+(define-key xwem-keytt-acroread-keymap (kbd "C-v") (kbd "<right>")) ; next page
+(define-key xwem-keytt-acroread-keymap (kbd "M-v") (kbd "<left>")) ; prev page
+(define-key xwem-keytt-acroread-keymap (kbd "M->") (kbd "C-Sh-<next>")) ; last 
page
+(define-key xwem-keytt-acroread-keymap (kbd "M-<") (kbd "C-Sh-<prior>")) ; 
first page
+(define-key xwem-keytt-acroread-keymap (kbd "C-M-l") (kbd "C-<left>")) ; first 
page
+(define-key xwem-keytt-acroread-keymap (kbd "C-x h") (kbd "C-a")) ; select all
+(define-key xwem-keytt-acroread-keymap (kbd "C-s") (kbd "C-f")) ; search
+(define-key xwem-keytt-acroread-keymap (kbd "+") (kbd "C-=")) ; zoom in
+(define-key xwem-keytt-acroread-keymap (kbd "-") (kbd "C--")) ; zoom out
+
+
+;; XPDF
+(defvar xwem-keytt-xpdf-keymap (make-sparse-keymap 'xwem-keytt-xpdf-keymap)
+  "Keytt keymap for xpdf commands.")
+(xwem-keytt-add-keymap '((application "xpdf")) xwem-keytt-xpdf-keymap t)
+
+(xwem-keytt-define-universal-argument-commands xwem-keytt-xpdf-keymap)
+(define-key xwem-keytt-xpdf-keymap (kbd "C-x C-f") (kbd "o")) ; open
+(define-key xwem-keytt-xpdf-keymap (kbd "C-x C-c") (kbd "q")) ; exit
+(define-key xwem-keytt-xpdf-keymap (kbd "C-s") (kbd "f")) ; find text
+(define-key xwem-keytt-xpdf-keymap (kbd "C-g") (kbd "<esc>")) ; stop searching
+(define-key xwem-keytt-xpdf-keymap (kbd "M-<") (kbd "<home>")) ; goto first 
page
+(define-key xwem-keytt-xpdf-keymap (kbd "M->") (kbd "<end>")) ; goto last page
+(define-key xwem-keytt-xpdf-keymap (kbd "C-n") (kbd "<down>")) ; scroll down
+(define-key xwem-keytt-xpdf-keymap (kbd "C-p") (kbd "<up>")) ; scroll up
+(define-key xwem-keytt-xpdf-keymap (kbd "C-v") (kbd "n"))
+(define-key xwem-keytt-xpdf-keymap (kbd "M-v") (kbd "p"))
+
+;; XDVI
+(defvar xwem-keytt-xdvi-keymap (make-sparse-keymap 'xwem-keytt-xdvi-keymap)
+  "Keytt keymap for xdvi commands.")
+(xwem-keytt-add-keymap '((application "xdvi")) xwem-keytt-xdvi-keymap t)
+
+(xwem-keytt-define-universal-argument-commands xwem-keytt-xdvi-keymap)
+(define-key xwem-keytt-xdvi-keymap (kbd "C-x C-f") (kbd "C-F")) ; open
+(define-key xwem-keytt-xdvi-keymap (kbd "C-x C-c") (kbd "q")) ; exit
+(define-key xwem-keytt-xdvi-keymap (kbd "C-s")   (kbd "f")); find text
+(define-key xwem-keytt-xdvi-keymap (kbd "M-<") (kbd "<home>")) ; goto first 
page
+(define-key xwem-keytt-xdvi-keymap (kbd "M->") (kbd "<end>")) ; goto last page
+(define-key xwem-keytt-xdvi-keymap (kbd "C-n") (kbd "<down>")) ; scroll down
+(define-key xwem-keytt-xdvi-keymap (kbd "C-p") (kbd "<up>")) ; scroll up
+(define-key xwem-keytt-xdvi-keymap (kbd "C-v") (kbd "n"))
+(define-key xwem-keytt-xdvi-keymap (kbd "M-v") (kbd "p"))
+(define-key xwem-keytt-xdvi-keymap (kbd "C-l") (kbd "R")) ; reread dvi 
+
+
+;; DJVIEW
+;;  Note: djvu has trouble with the file menu having two of the entries liked
+;;        to o so not likely to work untill its fixed.
+(defvar xwem-keytt-djvu-keymap (make-sparse-keymap 'xwem-keytt-djvu-keymap)
+  "Keytt keymap for djvu commands.")
+(xwem-keytt-add-keymap '((application "djview")) xwem-keytt-djvu-keymap t)
+
+(xwem-keytt-define-universal-argument-commands xwem-keytt-djvu-keymap)
+(define-key xwem-keytt-djvu-keymap (kbd "C-x C-f") (kbd "A-f O")) ; open
+(define-key xwem-keytt-djvu-keymap (kbd "C-x C-c") (kbd "A-f x")) ; exit
+(define-key xwem-keytt-djvu-keymap (kbd "C-x C-w") (kbd "A-f a")) ; save 
current page 
+(define-key xwem-keytt-djvu-keymap (kbd "C-x C-s") (kbd "A-f o")) ; save
+
+(define-key xwem-keytt-djvu-keymap (kbd "C-s") (kbd "f")); find text
+(define-key xwem-keytt-djvu-keymap (kbd "M-<") (kbd "<home>")) ; goto first 
page
+(define-key xwem-keytt-djvu-keymap (kbd "M->") (kbd "<end>")) ; goto last page
+(define-key xwem-keytt-djvu-keymap (kbd "C-n") (kbd "<down>")) ; scroll down
+(define-key xwem-keytt-djvu-keymap (kbd "C-p") (kbd "<up>")) ; scroll up
+(define-key xwem-keytt-djvu-keymap (kbd "C-v") (kbd "<next>"))
+(define-key xwem-keytt-djvu-keymap (kbd "M-v") (kbd "<prior>"))
+
+
+;; XCHM
+;;  Note: Must send mail to the xchm developer with patches to xchm and make
+;;        it have more stuff it menus attached to keymaps
+(defvar xwem-keytt-xchm-keymap (make-sparse-keymap 'xwem-keytt-xchm-keymap)
+  "Keytt keymap for xchm commands.")
+(xwem-keytt-add-keymap '((application "xchm")) xwem-keytt-xchm-keymap t)
+
+(xwem-keytt-define-universal-argument-commands xwem-keytt-xchm-keymap)
+(define-key xwem-keytt-xchm-keymap (kbd "C-x C-f") (kbd "C-o")) ; open
+(define-key xwem-keytt-xchm-keymap (kbd "C-x C-c") (kbd "C-x")) ; exit
+(define-key xwem-keytt-xchm-keymap (kbd "C-s")   (kbd "C-s ")); find show tree 
+
+
 ;;; On-load actions:
 (xwem-add-minor-mode 'xwem-keytt-minor-mode "KeyTT " 'xwem-keytt-keymap)
 


--- orig/extra/xwem-vline.el
+++ mod/extra/xwem-vline.el
@@ -61,22 +61,26 @@
 (define-xwem-command xwem-turn-on-vline
   (client &optional color column column-width)
   "Enable vertical line minor mode for CLIENT."
-  (xwem-interactive (list (xwem-cl-selected)))
+  (xwem-interactive (list (xwem-cl-selected) nil
+                          (and xwem-prefix-arg
+                               (prefix-numeric-value xwem-prefix-arg))
+                          nil))
 
-  (let ((vc xwem-vline-config))
+  (let ((vc xwem-vline-config)
+        (frame (xwem-misc-find-emacs-frame client)))
     (while (and vc (not (xwem-cl-match-p client (car (car vc)))))
       (setq vc (cdr vc)))
     (setq vc (cdr (car vc)))
     (when vc
-      (unless color
-        (setq color (eval (plist-get vc :color))))
-      (unless column
-        (setq column (eval (plist-get vc :column))))
-      (unless column-width
-        (setq column-width (eval (plist-get vc :column-width))))
+      (with-selected-frame (or frame (selected-frame))
+        (unless color
+          (setq color (eval (plist-get vc :color))))
+        (unless column
+          (setq column (eval (plist-get vc :column))))
+        (unless column-width
+          (setq column-width (eval (plist-get vc :column-width)))))
 
       (let ((vline-xwin (xwem-cl-get-sys-prop client 'vline-xwin))
-            (frame (xwem-misc-find-emacs-frame client))
             (xoff (* column column-width)))
         ;; XXX Adjust XOFF for Emacs frames
         (when (framep frame)


--- orig/lisp/xwem-clients.el
+++ mod/lisp/xwem-clients.el
@@ -147,6 +147,12 @@
                  (function :tag "Custom function"))
   :group 'xwem-cl)
 
+(defcustom xwem-cl-switch-other-omit-mode-specific nil
+  "*Non-nil mean \\<xwem-global-map>\\[xwem-switch-other-client]
+wont select client that can be selected with 
\\<xwem-global-map>\\[xwem-cl-switch-to-other]."
+  :type 'boolean
+  :group 'xwem-cl)
+
 (defcustom xwem-client-strict-activation nil
   "*Non-nil mean client is checked for aliveness before the activation.
 Seting `xwem-client-strict-activation' to non-nil can decrease
@@ -813,25 +819,49 @@
         (when (> bh he)
           (setq he-rmd (- he-st he-rmd))))
 
-      ;; Check aspect ratio
-      (when (X-WMSize-paspect-p wmnh)
-        (let ((mia-x (X-WMSize-min-aspect-x wmnh))
-              (mia-y (X-WMSize-min-aspect-y wmnh))
-              (maa-x (X-WMSize-max-aspect-x wmnh))
-              (maa-y (X-WMSize-max-aspect-y wmnh))
-              (ai 0)
-              tmp-nw tmp-nh nw nh)
-
-          ;; Find appropriate aspect index AI
-          (while (and (incf ai)
-                      (< (setq tmp-nw (* mia-x ai)) (- wi bw))
-                      (< (setq tmp-nh (* mia-y ai)) (- he bh)))
-            (setq nw tmp-nw nh tmp-nh))
+      ;; Check aspect ratio, note: major mode may have
+      ;; 'omit-aspect-ratio property, in this case no aspect ratio
+      ;; checking is performed.
+      ;; NOTE: not full support of aspect ratios, only minimal aspect
+      ;;       ratio is used in geometry calculation.
+      (when (and (X-WMSize-paspect-p wmnh)
+                 (not (xwem-manage-property
+                       (xwem-cl-manage-type cl) 'omit-aspect-ratio)))
+        (let* ((mia-x (X-WMSize-min-aspect-x wmnh))
+               (mia-y (X-WMSize-min-aspect-y wmnh))
+;               (maa-x (X-WMSize-max-aspect-x wmnh))
+;               (maa-y (X-WMSize-max-aspect-y wmnh))
+               (client-ratio (/ (float mia-x) mia-y))
+               (window-ratio (/ (float wi) he))
+               nw nh)
+          ;;  +-------------+
+          ;;  |             | <---- window aspect ratio < 
+          ;;  |MMMMMMMMMMMMM|           client aspect ratio 
+          ;;  |MMMMMMMMMMMMM|        (width = window width)
+          ;;  |             |
+          ;;  +-------------+              +-------------+
+          ;;                               |   MMMMMMM   |
+          ;; window aspect ratio >   ----> |   MMMMMMM   |
+          ;;     client aspect ratio       |   MMMMMMM   |
+          ;;  (height = window height)     |   MMMMMMM   |
+          ;;                               +-------------+
+ 
+          ;;         width        width = ratio * height
+          ;; ratio = ------  =>  
+          ;;         height       height = width / ratio
+          ;; 
+          ;; --ignotus
+          (cond ((< window-ratio client-ratio)
+                 (setq nw (- wi bw)
+                       nh (floor (/ nw client-ratio))))
+                ((> window-ratio client-ratio)
+                 (setq nh (- he bh)
+                       nw (floor (* client-ratio nh)))))
 
+          ;; Set reminders according to calculated NW/NH
           (when (and nw nh)
             (setq wi-rmd (- wi nw)
-                  he-rmd (- he nh)))))
-      )
+                  he-rmd (- he nh))))))
 
     (unless (X-Geom-p clgmt)
       (setf (xwem-cl-xgeom cl) (make-X-Geom))
@@ -900,7 +930,8 @@
   (xwem-interactive "p")
 
   (let* ((cl (xwem-cl-selected))
-         (ocl (xwem-method-other-client cl)))
+         (ocl (and xwem-cl-switch-other-omit-mode-specific
+                   (xwem-method-other-client cl))))
     (while (> arg 0)
       (setq cl (xwem-cl-other
                 cl :clients (xwem-clients-list


--- orig/lisp/xwem-help.el
+++ mod/lisp/xwem-help.el
@@ -157,34 +157,34 @@
     (setq prefix (vconcat (butlast (append prefix nil)))))
 
   (xwem-help-display (format "%s prefix" (key-description prefix))
-   (when prefix
-     (insert (format "Key bindings starting with `%s':\n"
-                     (key-description prefix))))
-
-   ;; Minor modes bindings
-   (mapc (lambda (mimap)
-           (when (eval (car mimap))
-             (xwem-describe-prefix-bindings-1 (cdr mimap) prefix
-               (format "\nMinor mode bindings for `%S':" (eval (car mimap))))))
-         xwem-minor-mode-map-alist)
-
-   ;; Local bindings
-   (xwem-describe-prefix-bindings-1 (xwem-local-map xwem-event-client) prefix
-     (format "\n%s major mode bindings:"
-             (upcase (symbol-name (xwem-cl-manage-type xwem-event-client)))))
-
-   ;; Finally global bindings
-   (xwem-describe-prefix-bindings-1 xwem-global-map prefix
-     (format "\nGlobal bindings:"))
-
-   ;; Frame bindings
-   (xwem-describe-prefix-bindings-1 'xwem-frame-prefix prefix
-     (format "\nFrame bindings:"))
-
-   ;; Root bindings.  Really need?
-   (xwem-describe-prefix-bindings-1 'xwem-root-prefix prefix
-     (format "\nRoot bindings:"))
-   ))
+    (when prefix
+      (insert (format "Key bindings starting with `%s':\n"
+                      (key-description prefix))))
+
+    ;; Minor modes bindings
+    (mapc (lambda (mimap)
+            (when (eval (car mimap))
+              (xwem-describe-prefix-bindings-1 (eval (cdr mimap)) prefix
+                (format "\nMinor mode bindings for `%S':" (car mimap)))))
+          xwem-minor-mode-map-alist)
+
+    ;; Local bindings
+    (xwem-describe-prefix-bindings-1 (xwem-local-map xwem-event-client) prefix
+      (format "\n%s major mode bindings:"
+              (upcase (symbol-name (xwem-cl-manage-type xwem-event-client)))))
+
+    ;; Finally global bindings
+    (xwem-describe-prefix-bindings-1 xwem-global-map prefix
+      (format "\nGlobal bindings:"))
+
+    ;; Frame bindings
+    (xwem-describe-prefix-bindings-1 'xwem-frame-prefix prefix
+      (format "\nFrame bindings:"))
+
+    ;; Root bindings.  Really need?
+    (xwem-describe-prefix-bindings-1 'xwem-root-prefix prefix
+      (format "\nRoot bindings:"))
+    ))
 
 ;;;###autoload(autoload 'xwem-help-describe-bindings "xwem-help" "" t)
 (define-xwem-command xwem-help-describe-bindings ()
@@ -227,7 +227,25 @@
               (insert (documentation dfn)))
              (t (insert "not documented"))))
       )))
-   
+
+;;;###autoload(autoload 'xwem-help-mode "xwem-help" "" t)
+(define-xwem-command xwem-help-mode (client)
+  "Describe client mode."
+  (xwem-interactive (list (xwem-cl-selected)))
+
+  (xwem-help-display (format "%S" (xwem-cl-manage-type client))
+    (insert (format "%s mode:\n" (upcase (symbol-name (xwem-cl-manage-type 
client)))))
+    (insert (function-documentation
+             (get 'manage (xwem-cl-manage-type client))))
+    (insert "\nCommands:\n")
+    ;; Minor modes bindings
+    (mapc (lambda (mimap)
+            (when (eval (car mimap))
+              (xwem-describe-prefix-bindings-1 (eval (cdr mimap)) nil
+                (format "\nMinor mode bindings for `%S':" (car mimap)))))
+          xwem-minor-mode-map-alist)
+    ))
+
 ;;;###autoload(autoload 'xwem-help-describe-key "xwem-help" "" t)
 (define-xwem-command xwem-help-describe-key (keys)
   "Describe keysequence."


--- orig/lisp/xwem-keydefs.el
+++ mod/lisp/xwem-keydefs.el
@@ -209,6 +209,7 @@
 (define-key xwem-help-map (xwem-kbd "s") 'xwem-strokes-list)
 (define-key xwem-help-map (xwem-kbd "r") 'xwem-registers-list)
 (define-key xwem-help-map (xwem-kbd "H-y") 'xwem-help-cutbuffers)
+(define-key xwem-help-map (xwem-kbd "m") 'xwem-help-mode)
 
 ;; Universal argument
 (define-key xwem-global-map (xwem-kbd "H-u") 'xwem-universal-argument)


--- orig/lisp/xwem-manage.el
+++ mod/lisp/xwem-manage.el
@@ -114,6 +114,10 @@
                    (class-name "Emacs$")))
     ("xterm" (and (class-inst "^xterm$")
                   (class-name "^XTerm$")))
+    ("xdvi" (and (class-inst "^xdvi$")
+                 (class-name "^XDvi$")))
+    ("xpdf" (class-name "^Xpdf$"))
+    ("xchm" (name "^xCHM"))
     ("acroread" (class-name "^AcroRead$"))
     ("djview" (and (class-inst "^djview$")
                    (class-name "^Djview$")))


--- orig/lisp/xwem-minibuffer.el
+++ mod/lisp/xwem-minibuffer.el
@@ -318,7 +318,9 @@
 (defun xwem-manage-minibuffer (cl)
   "Manage method for xwem minibuffers."
   (let* ((xgeom (make-X-Geom :x 0       ; XXX
-                             :y (X-Geom-height (xwem-rootgeom))
+                             :y (- (X-Geom-height (xwem-rootgeom))
+                                   xwem-minibuffer-outer-border-width
+                                   xwem-minibuffer-outer-border-width)
                              :width (- (X-Geom-width (xwem-rootgeom))
                                        xwem-minibuffer-outer-border-width
                                        xwem-minibuffer-outer-border-width)
@@ -660,14 +662,14 @@
 
 ;;; xwem minibuffer modeline using top gutter
 (defvar xwem-modeline-format
-  '(("--" red)
-    ((symbol-name (xwem-cl-manage-type cl)) blue)
-    (": " blue)
+  '(("--")
+    ((symbol-name (xwem-cl-manage-type cl)))
+    (": ")
     ("[")
     ((or (car (xwem-client-application cl))
               "unknown"))
     ("] ")
-    ((xwem-client-name cl) blue)
+    ((xwem-client-name cl) modeline-buffer-id)
     ("   ")
     ;; Minor modes
     ("(")
@@ -676,7 +678,7 @@
                     (cadr mm)))
                 xwem-minor-mode-alist ""))
     (")")
-    ("--" red))
+    ("--"))
   "Modeline format.")
 (xwem-make-variable-client-local 'xwem-modeline-format)
 
@@ -685,9 +687,8 @@
   (mapconcat (lambda (me)
                (let ((cl (xwem-cl-selected)))
                  (condition-case nil
-                     (xwem-str-with-faces
-                      (eval (car me))
-                      (append '(buffers-tab) (cdr me)))
+                     (let ((str (copy-sequence (eval (car me)))))
+                       (xwem-str-with-faces str (append '(modeline) (cdr me))))
                    (t "<error>"))))
              xwem-modeline-format ""))
 
@@ -698,7 +699,7 @@
 
     (let* ((str (xwem-modeline-regenerate))
            (mw (frame-width (xwem-minib-frame xwem-minibuffer))))
-      (set-specifier top-gutter str
+      (set-specifier top-gutter (substring str 0 (and (> (length str) mw) mw))
                      (xwem-minib-frame xwem-minibuffer))
       )))
 
@@ -709,7 +710,14 @@
 
   (add-hook 'xwem-cl-change-hook 'xwem-modeline-redraw)
   (add-hook 'xwem-client-select-hook 'xwem-modeline-redraw)
-  (xwem-modeline-redraw))
+
+  ;; Start showing gutter
+  (xwem-modeline-redraw-1)
+  ;; Fix xwem minibuffer height size
+  (xwem-client-resize
+   (xwem-minib-cl xwem-minibuffer) nil
+   (+ (X-Geom-height-with-borders (xwem-minib-cl-xgeom xwem-minibuffer))
+      (gutter-pixel-height 'top (xwem-minib-frame xwem-minibuffer)))))
 
 ;;;###autoload(autoload 'xwem-modeline-disable "xwem-minibuffer" nil t)
 (define-xwem-command xwem-modeline-disable (arg)
@@ -718,7 +726,13 @@
 
   (remove-hook 'xwem-cl-change-hook 'xwem-modeline-redraw)
   (remove-hook 'xwem-client-select-hook 'xwem-modeline-redraw)
-  
+
+  ;; Fix xwem minibuffer height size
+  (xwem-client-resize
+   (xwem-minib-cl xwem-minibuffer) nil
+   (- (X-Geom-height-with-borders (xwem-minib-cl-xgeom xwem-minibuffer))
+      (gutter-pixel-height 'top (xwem-minib-frame xwem-minibuffer))))
+  ;; Stop showing gutter
   (set-specifier top-gutter nil (xwem-minib-frame xwem-minibuffer)))
 
 


--- orig/lisp/xwem-misc.el
+++ mod/lisp/xwem-misc.el
@@ -939,13 +939,12 @@
 ;;;###autoload(autoload 'xwem-execute-extended-command "xwem-misc" nil t)
 (define-xwem-command xwem-execute-extended-command (arg)
   "Execute Emacs command.
-If prefix ARG is given insert result to current client."
+Prefix ARG is passed to extended command."
   (xwem-interactive "P")
 
   (with-xwem-read-from-minibuffer
-   (let ((retval (execute-extended-command arg)))
-     (when arg
-       (xwem-kbd-add-pending-keys (pp retval))))))
+   (let ((xwem-prefix-arg arg))
+     (execute-extended-command arg))))
 
 ;;;###autoload(autoload 'xwem-shell-command "xwem-misc" nil t)
 (define-xwem-command xwem-shell-command (command arg)


--- orig/lisp/xwem-netwm.el
+++ mod/lisp/xwem-netwm.el
@@ -575,7 +575,8 @@
 (define-xwem-manage-model fullscreen
   "Managing model to show client at fullscreen size."
   :match-spec '(function xwem-netwm-fullscreen-p)
-  
+  :manage-properties '(omit-aspect-ratio t) ; disregard aspect ratio
+
   :manage-method 'xwem-manage-fullscreen
   :activate-method 'xwem-activate-fullscreen
   :deactivate-method 'xwem-deactivate-fullscreen


--- orig/lisp/xwem-selections.el
+++ mod/lisp/xwem-selections.el
@@ -45,7 +45,7 @@
   :type 'number
   :group 'xwem-selections)
 
-(defcustom xwem-selections-no-remove nil
+(defcustom xwem-selections-no-remove t
   "*Non-nil mean, reverse meaning of prefix arg for `xwem-paste-cutbuffer' 
command.
 Without prefix arg, keep currently pasted cutbuffer.
 With prefix arg, remove it."
@@ -117,6 +117,7 @@
     (insert "X cutbuffers:\n\n")
     (insert "NUMBER   VALUE\n")
     (insert "------   -----\n")
+    (insert (format "%-9s%S\n" 'PRIMARY (get-selection)))
     (mapc (lambda (n)
             (let ((cbval (x-get-cutbuffer n)))
               (when cbval
@@ -145,11 +146,13 @@
       (xwem-copy-region-as-cutbuffer)
 
     (decf which-one)
-    (let ((cb0 (x-get-cutbuffer which-one)))
+    (let ((cb0 (condition-case nil
+                   (get-selection)
+                 (t (x-get-cutbuffer which-one)))))
       (if (not cb0)
-         (xwem-message 'note "No active CUTBUFFER")
+         (xwem-message 'note "No active selection")
        (push cb0 xwem-selections)
-       (xwem-message 'info "Copying CUTBUFFER%d: %S" which-one cb0)))))
+       (xwem-message 'info "Copying %S" cb0)))))
 
 ;;;###autoload(autoload 'xwem-paste-cutbuffer "xwem-selections" "Paste 
CUTBUFFER0 to `xwem-selections'." t)
 (define-xwem-command xwem-paste-cutbuffer (&optional no-remove)




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