xwem-patches
[Top] [All Lists]

Summary for xwem--main--2.2--patch-15

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

Revision: xwem--main--2.2--patch-15
Archive: lg@xxxxxxxxxxxxxx
Creator: Zajcev Evgeny <lg@xxxxxxxx>
Date: Thu May 19 02:18:51 MSD 2005
Standard-date: 2005-05-18 22:18:51 GMT
Modified-files: extra/xwem-mogu.el extra/xwem-rooticon.el
    lisp/xwem-frame.el lisp/xwem-interactive.el
    lisp/xwem-keydefs.el lisp/xwem-launcher.el
    lisp/xwem-minibuffer.el lisp/xwem-misc.el
    lisp/xwem-netwm.el lisp/xwem-rooter.el
    lisp/xwem-transient.el utils/xwem-osd.el
New-patches: dev@xxxxxxxxxxxxxxxx/xwem--dev--2.2--patch-9
    lg@xxxxxxxxxxxxxx/xwem--main--2.2--patch-15
Summary: rank fixes, minibuffer bug fix, addons
Keywords: rank, switch, minibuffer

* extra/xwem-mogu.el (xwem-mogu-create-grid): [fix] ranking

* extra/xwem-rooticon.el (xwem-rooticon-cl-state-change-hook): [fix]
  ranking

* lisp/xwem-frame.el (xwem-frame-fast-switch): [new] Command for fast
  frame switching.

* lisp/xwem-interactive.el (xwem-under-minibuffer): [bug fix] Do not
  select minibuffer once again if it is already selected.  This is fixes
  bugo-feature that Steve was having with his sy-riece.  It also fixes
  deselecting bug when recursive minibuffer is enabled and two minibuffer
  commands are executed, f.e. `H-:' and then `H-M-x'

* lisp/xwem-keydefs.el (H-C-<digit>): [new] Commands for fast frame
  switching, switches to <digit> frame.

* lisp/xwem-minibuffer.el (xwem-minibuffer-emacs-frames-has-minibuffer):
  [fix] Select xwem minibuffer only if reading occurs in frame that has
  xwem minibuffer as minibuffer.  This fix allows having frames with and
  without their own minibuffers simultaneously.

* lisp/xwem-minibuffer.el: [fix] ranking

* lisp/xwem-misc.el (xwem-xwin-rank): [fix] Set if given RANK is number
  and unset if given RANK is non-number.

* lisp/xwem-misc.el (xwem-turn-on-debug): [new]

* lisp/xwem-misc.el (xwem-turn-off-debug): [new]

* lisp/xwem-netwm.el: [fix] ranking

* lisp/xwem-rooter.el: [fix] ranking

* lisp/xwem-transient.el: [fix] ranking

* utils/xwem-osd.el: [fix] ranking

* added files

    {arch}/xwem/xwem--dev/xwem--dev--2.2/dev@xxxxxxxxxxxxxxxx/patch-log/patch-9
    {arch}/xwem/xwem--main/xwem--main--2.2/lg@xxxxxxxxxxxxxx/patch-log/patch-15

* modified files

--- orig/extra/xwem-mogu.el
+++ mod/extra/xwem-mogu.el
@@ -63,6 +63,7 @@
 
 (require 'xwem-load)
 (require 'xwem-interactive)
+(require 'xwem-misc)
 
 (require 'xlib-xshape)
 
@@ -202,7 +203,7 @@
                                         (XAllocColor (xwem-dpy) 
(XDefaultColormap (xwem-dpy))
                                                      (xwem-make-color 
xwem-mogu-grid-color)))))
       ;; XXX Setup stack rank
-      (xwem-misc-set-xwin-always-on-top xwem-mogu-xwin 100)
+      (setf (xwem-xwin-rank xwem-mogu-xwin) 100)
 
       ;; Create mask pixmap
       (setf (xwem-mogu-xmask xwem-mogu-xwin)


--- orig/extra/xwem-rooticon.el
+++ mod/extra/xwem-rooticon.el
@@ -291,9 +291,7 @@
       ;; Set always on top rank (if any)
       (let ((rank (find cl xwem-rooticon-always-on-top-spec
                         :key 'car :test 'xwem-cl-match-p)))
-        (when rank
-          (xwem-misc-set-xwin-always-on-top
-           (xwem-rooticon-xriwin ri) (cdr rank))))
+        (setf (xwem-xwin-rank (xwem-rooticon-xriwin ri)) (cdr rank)))
 
       (xwem-rooticon-apply-state ri))))
 


--- orig/lisp/xwem-frame.el
+++ mod/lisp/xwem-frame.el
@@ -1240,6 +1240,13 @@
 
     (xwem-select-frame frame)))
 
+;;;###autoload(autoload 'xwem-frame-fast-switch "xwem-frame" "Fast way to 
switch frames." t)
+(define-xwem-command xwem-frame-fast-switch (key)
+  "Just switches to frame numbered after KEY.
+To be used by H-C-<digit> bindings."
+  (xwem-interactive (list (event-key xwem-last-event)))
+  (xwem-frame-switch-nth (- (char-to-int key) 48)))
+
 ;;;###autoload(autoload 'xwem-frame-switch-nth "xwem-frame" "" t)
 (define-xwem-command xwem-frame-switch-nth (arg)
   "Switch xwem frame.


--- orig/lisp/xwem-interactive.el
+++ mod/lisp/xwem-interactive.el
@@ -108,7 +108,8 @@
 
 (defmacro xwem-under-minibuffer (&rest forms)
   "Evaluate FORM under XWEM's minibuffer focus."
-  `(progn
+  `(if (xwem-cl-selected-p (xwem-minib-cl xwem-minibuffer))
+       (progn ,@forms)
      (xwem-client-set-property
       (xwem-minib-cl xwem-minibuffer) 'skip-deselect t)
      (xwem-select-client (xwem-minib-cl xwem-minibuffer))


--- orig/lisp/xwem-keydefs.el
+++ mod/lisp/xwem-keydefs.el
@@ -315,6 +315,17 @@
 (define-key xwem-global-map (xwem-kbd "H-r v") 'xwem-window-enlarge-vertically)
 
 ;; Various commands
+(define-key xwem-global-map (xwem-kbd "H-C-0") 'xwem-frame-fast-switch)
+(define-key xwem-global-map (xwem-kbd "H-C-1") 'xwem-frame-fast-switch)
+(define-key xwem-global-map (xwem-kbd "H-C-2") 'xwem-frame-fast-switch)
+(define-key xwem-global-map (xwem-kbd "H-C-3") 'xwem-frame-fast-switch)
+(define-key xwem-global-map (xwem-kbd "H-C-4") 'xwem-frame-fast-switch)
+(define-key xwem-global-map (xwem-kbd "H-C-5") 'xwem-frame-fast-switch)
+(define-key xwem-global-map (xwem-kbd "H-C-6") 'xwem-frame-fast-switch)
+(define-key xwem-global-map (xwem-kbd "H-C-7") 'xwem-frame-fast-switch)
+(define-key xwem-global-map (xwem-kbd "H-C-8") 'xwem-frame-fast-switch)
+(define-key xwem-global-map (xwem-kbd "H-C-9") 'xwem-frame-fast-switch)
+
 (define-key xwem-global-map (xwem-kbd "H-s") 'xwem-frame-switch-nth)
 (define-key xwem-global-map (xwem-kbd "H-S") 'xwem-frame-switch-nth-linkage)
 


--- orig/lisp/xwem-launcher.el
+++ mod/lisp/xwem-launcher.el
@@ -654,9 +654,9 @@
     (let* ((action (xwem-ladock-action (X-Event-win xwem-last-xevent)))
            (atype (car action))
            (acmd (cdr action)))
-      (cond ((eq atype 'elisp) (eval (read acmd)))
-            ((eq atype 'cmd) (xwem-execute-program acmd))
-            (t (xwem-message 'warning "Unknown action type=`%s'" atype))))))
+      (ecase atype
+        (elisp (eval (read acmd)))
+        (cmd (xwem-execute-program acmd))))))
 
 ;;;###autoload(autoload 'xwem-launch-dock-menu "xwem-launcher" "" t)
 (define-xwem-command xwem-launch-dock-menu (action)


--- orig/lisp/xwem-minibuffer.el
+++ mod/lisp/xwem-minibuffer.el
@@ -200,10 +200,8 @@
   :set (lambda (sym value)
          (set sym value)
          (let ((xwin (xwem-minib-xwin xwem-minibiffer)))
-           (when xwin
-             (if value
-                 (xwem-misc-set-xwin-always-on-top xwin value)
-               (xwem-misc-unset-always-on-top xwin)))))
+           (when (X-Win-p xwin)
+             (setf (xwem-xwin-rank xwin) value))))
   :initialize 'custom-initialize-default
   :group 'xwem-minibuffer)
 
@@ -227,9 +225,14 @@
            (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))))
+Used when `xwem-minibuffer-emacs-frames-has-minibuffer' is nil.
+xwem minibuffer selected only if reading occurs in frame that has xwem
+minibuffer as minibuffer window."
+             (if (eq (window-frame (minibuffer-window (selected-frame)))
+                     (xwem-minib-frame xwem-minibuffer))
+                 (xwem-under-minibuffer
+                  ad-do-it)
+               ad-do-it))))
   :initialize 'custom-initialize-default
   :group 'xwem-minibuffer)
 
@@ -429,9 +432,8 @@
     (XMapWindow (xwem-dpy) (xwem-minib-xwin minib))
 
     ;; Set always on top rank (if any)
-    (when xwem-minibiffer-always-on-top-rank
-      (xwem-misc-set-xwin-always-on-top
-       (xwem-minib-xwin minib) xwem-minibiffer-always-on-top-rank))
+    (setf (xwem-xwin-rank (xwem-minib-xwin minib))
+          xwem-minibiffer-always-on-top-rank)
 
     ;; Set default minibuffer, if not already set
     (unless (xwem-cl-p (xwem-minib-cl xwem-minibuffer))


--- orig/lisp/xwem-misc.el
+++ mod/lisp/xwem-misc.el
@@ -1609,15 +1609,19 @@
 (defmacro xwem-xwin-rank (xwin)
   `(X-Win-get-prop ,xwin 'always-on-top-rank))
 (defsetf xwem-xwin-rank (xwin) (rank)
-  `(xwem-misc-set-xwin-always-on-top ,xwin ,rank))
+  `(if (numberp ,rank)
+       (xwem-misc-set-xwin-always-on-top ,xwin ,rank)
+     (xwem-misc-unset-always-on-top ,xwin)))
 
 ;;;###xwem-autoload
-(defun xwem-misc-set-xwin-always-on-top (xwin &optional rank)
+(defun xwem-misc-set-xwin-always-on-top (xwin rank)
   "Mark xwin as always on top window.
-If number RANK is given, it denotes rank of always on top window.
-Higher RANK mean XWIN is above windows with lower RANK.
-By default RANK is 10."
-  (X-Win-put-prop xwin 'always-on-top-rank (or rank 10))
+RANK number denotes rank of always on top window.  Higher RANK mean
+XWIN is above windows with lower RANK."
+  (unless (numberp rank)
+    (error 'invalid-argument "RANK must be number" rank))
+
+  (X-Win-put-prop xwin 'always-on-top-rank rank)
 
   ;; Sort `xwem-misc-always-on-top-stack' by rank after adding XWIN,
   ;; higher rank are at the end.
@@ -1698,6 +1702,28 @@
                              (make-X-Conf :stackmode X-Below
                                           :sibling bsib))))))
 
+;; Debug
+(defvar xwem-debug)
+
+;;;###autoload
+(defun xwem-turn-on-debug ()
+  "Turn on xwem debugging."
+  (interactive)
+
+  (setq xwem-debug t)
+  (when (X-Dpy-p (xwem-dpy))
+    (setf (X-Dpy-log-buffer (xwem-dpy)) "*xwem-debug*")
+    (X-Dpy-set-log-routines (xwem-dpy) xwem-debug-routines)))
+
+;;;###autoload
+(defun xwem-turn-off-debug ()
+  "Turn off xwem debugging."
+  (interactive)
+
+  (setq xwem-debug nil)
+  (when (X-Dpy-p (xwem-dpy))
+    (setf (X-Dpy-log-buffer (xwem-dpy)) nil)))
+
 
 (provide 'xwem-misc)
 


--- orig/lisp/xwem-netwm.el
+++ mod/lisp/xwem-netwm.el
@@ -542,13 +542,13 @@
   (when (xwem-cl-p cl)
     (case (xwem-cl-state cl)
       (active
-       (xwem-misc-set-xwin-always-on-top
-        (xwem-cl-xwin cl) (car xwem-fullscreen-ai-rank))
+       (setf (xwem-xwin-rank (xwem-cl-xwin cl))
+             (car xwem-fullscreen-ai-rank))
        (XMapWindow (xwem-dpy) (xwem-cl-xwin cl)))
         
       (inactive
-       (xwem-misc-set-xwin-always-on-top
-        (xwem-cl-xwin cl) (cdr xwem-fullscreen-ai-rank))
+       (setf (xwem-xwin-rank (xwem-cl-xwin cl))
+             (cdr xwem-fullscreen-ai-rank))
        (when (and xwem-fullscreen-iconify-when-inactive
                   ;; XXX skip dummy clients and special
                   (not (or (xwem-dummy-client-p (xwem-cl-selected))
@@ -556,8 +556,8 @@
          (xwem-iconify cl)))
 
       (iconified
-       (xwem-misc-set-xwin-always-on-top
-        (xwem-cl-xwin cl) (cdr xwem-fullscreen-ai-rank))
+       (setf (xwem-xwin-rank (xwem-cl-xwin cl))
+             (cdr xwem-fullscreen-ai-rank))
        (XUnmapWindow (xwem-dpy) (xwem-cl-xwin cl))))))
          
 (defun xwem-activate-fullscreen (cl &optional type)


--- orig/lisp/xwem-rooter.el
+++ mod/lisp/xwem-rooter.el
@@ -93,14 +93,10 @@
                     :key 'car :test 'xwem-cl-match-p)))
     (case (xwem-cl-state cl)
       (inactive
-       (if (cadr rank)
-           (xwem-misc-set-xwin-always-on-top (xwem-cl-xwin cl) (cadr rank))
-         (xwem-misc-unset-always-on-top (xwem-cl-xwin cl)))
+       (setf (xwem-xwin-rank (xwem-cl-xwin cl)) (cadr rank))
        (xwem-misc-lower-xwin (xwem-cl-xwin cl)))
       (active
-       (if (cddr rank)
-           (xwem-misc-set-xwin-always-on-top (xwem-cl-xwin cl) (cddr rank))
-         (xwem-misc-unset-always-on-top (xwem-cl-xwin cl)))
+       (setf (xwem-xwin-rank (xwem-cl-xwin cl)) (cddr rank))
        (xwem-misc-raise-xwin (xwem-cl-xwin cl))))))
 
 ;;;; Manage methods


--- orig/lisp/xwem-transient.el
+++ mod/lisp/xwem-transient.el
@@ -105,8 +105,8 @@
       (setf (xwem-cl-translist trc)
             (cons cl (xwem-cl-translist trc)))
       ;; And inherit always on top rank
-      (xwem-misc-set-xwin-always-on-top
-       (xwem-cl-xwin cl) (xwem-xwin-rank (xwem-cl-xwin trc))))
+      (setf (xwem-xwin-rank (xwem-cl-xwin cl))
+            (xwem-xwin-rank (xwem-cl-xwin trc))))
 
     ;; Install transient local keymap
     (xwem-use-local-map xwem-transient-keymap cl)


--- orig/utils/xwem-osd.el
+++ mod/utils/xwem-osd.el
@@ -85,6 +85,7 @@
 (require 'xlib-tray)
 (require 'xlib-xpm)
 
+(require 'xwem-misc)
 (require 'xwem-diagram)
 
 (defgroup xwem-osd nil
@@ -308,8 +309,8 @@
                                                                           
XM-ButtonRelease)
                                                               0)))))
     ;; Apply STACK-RANK
-    (when stack-rank
-      (xwem-misc-set-xwin-always-on-top (xwem-osd-xwin osd) stack-rank))
+    (when (numberp stack-rank)
+      (setf (xwem-xwin-rank (xwem-osd-xwin osd)) stack-rank))
 
     ;; Create gc
     (setf (xwem-osd-gc osd)




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