xwem-devel
[Top] [All Lists]

Summary for xwem--main--2.1--patch-14

From: Zajcev Evgeny <lg@xxxxxxxx>
Subject: Summary for xwem--main--2.1--patch-14
Date: Fri, 4 Feb 2005 02:52:44 +0300 (MSK)
Location: lg@xxxxxxxxxxxxxx http://arch.xwem.org/2005/

Revision: xwem--main--2.1--patch-14
Archive: lg@xxxxxxxxxxxxxx
Creator: Zajcev Evgeny <lg@xxxxxxxx>
Date: Fri Feb  4 02:52:39 MSK 2005
Standard-date: 2005-02-03 23:52:39 GMT
Modified-files: dockapp/xwem-time.el lisp/xwem-clients.el
    lisp/xwem-keydefs.el lisp/xwem-launcher.el
New-patches: dev@xxxxxxxxxxxxxxxx/xwem--dev--2.1--patch-8
    lg@xxxxxxxxxxxxxx/xwem--main--2.1--patch-14
Summary: merge from ckent, xwem-open-file command added
Keywords: merge, ckent, cleanup, xwem-open-file

* dockapp/xwem-time.el (xwem-time-event-handler): [fixes] typo

* lisp/xwem-clients.el (xwem-switch-other-client): [addon] try to avoid
  selecting client that would be choosen by `xwem-method-other-client'.
  This increases accuracy of hitting necessary client when using `H-x
  H-l'.

* lisp/xwem-keydefs.el (H-x H-f): [new] xwem-open-file

* lisp/xwem-launcher.el (xwem-open-file-commands-alist): [new] Custom
  variable to control `xwem-open-file'.

* lisp/xwem-launcher.el (xwem-open-file): [new cmd] Interactively open
  some file.

* added files

    {arch}/xwem/xwem--dev/xwem--dev--2.1/dev@xxxxxxxxxxxxxxxx/patch-log/patch-8
    {arch}/xwem/xwem--main/xwem--main--2.1/lg@xxxxxxxxxxxxxx/patch-log/patch-14

* modified files

--- orig/dockapp/xwem-time.el
+++ mod/dockapp/xwem-time.el
@@ -1270,23 +1270,18 @@
      (delete-itimer (X-Win-get-prop win 'xwem-time-timer))
      (delete-itimer (X-Win-get-prop win 'xwem-time-load))
      
-     (multiple-value-bind (m1 m2)
-         (values-list (X-Win-get-prop win 'mail-pixmap))
-       (XFreePixmap (xwem-dpy) m1)
-       (XFreePixmap (xwem-dpy) m2))
-     (multiple-value-bind (m1 m2)
-         (values-list (X-Win-get-prop win 'load-pixmap))
-       (XFreePixmap (xwem-dpy) m1)
-       (XFreePixmap (xwem-dpy) m2))
-     (multiple-value-bind (m1 m2)
-         (values-list (X-Win-get-prop win 'time-pixmap))
-       (XFreePixmap (xwem-dpy) m1)
-       (XFreePixmap (xwem-dpy) m2))
-     (multiple-value-bind (m1 m2)
-         (values-list (X-Win-get-prop win 'mask-pixmap))
-       (XFreePixmap (xwem-dpy) m1)
-       (XFreePixmap (xwem-dpy) m2))
+     (let (cp)
+       (setq cp (X-Win-get-prop win 'mail-pixmap))
+       (XFreePixmap (xwem-dpy) (car cp))
+       (XFreePixmap (xwem-dpy) (cdr cp))
+       (setq cp (X-Win-get-prop win 'load-pixmap))
+       (XFreePixmap (xwem-dpy) (car cp))
+       (XFreePixmap (xwem-dpy) (cdr cp))
+       (setq cp (X-Win-get-prop win 'time-pixmap))
+       (XFreePixmap (xwem-dpy) (car cp))
+       (XFreePixmap (xwem-dpy) (cdr cp)))
 
+     (XFreePixmap (xwem-dpy) (X-Win-get-prop win 'mask-pixmap))
      (XFreeGC (xwem-dpy) (X-Win-get-prop win 'time-gc))
      (XFreeGC (xwem-dpy) (X-Win-get-prop win 'time-mask-gc))
 
@@ -1302,7 +1297,9 @@
      (X-Win-rem-prop win 'mail-pixmap)
      (X-Win-rem-prop win 'load-pixmap)
      (X-Win-rem-prop win 'time-pixmap)
-     (X-Win-rem-prop win 'mask-pixmap))
+     (X-Win-rem-prop win 'mask-pixmap)
+     (X-Win-rem-prop win 'time-gc)
+     (X-Win-rem-prop win 'time-mask-gc))
 
     ((:X-ButtonPress :X-ButtonRelease)
      (let ((xwem-override-local-map xwem-time-map))


--- orig/lisp/xwem-clients.el
+++ mod/lisp/xwem-clients.el
@@ -845,15 +845,20 @@
 `xwem-cl-switch-to-other'."
   (xwem-interactive "p")
 
-  (let ((ocl (xwem-cl-selected)))
+  (let* ((cl (xwem-cl-selected))
+        (ocl (xwem-method-other-client cl)))
     (while (> arg 0)
-      (setq ocl (xwem-cl-other ocl))
+      (setq cl (xwem-cl-other
+               cl :clients (xwem-clients-list
+                            `(lambda (cl)
+                               (not (eq cl ,ocl))))))
       (decf arg))
-    
-    (unless (xwem-cl-p ocl)
-      (error 'xwem-error "Invalid other client"))
+    (unless (xwem-cl-p cl)
+      (setq cl ocl))
+    (unless (xwem-cl-p cl)
+      (error 'xwem-error "No other client"))
 
-    (xwem-select-client ocl)))
+    (xwem-select-client cl)))
 
 ;;;###autoload(autoload 'xwem-attach-client "xwem-clients" "" t)
 (define-xwem-command xwem-attach-client (arg)


--- orig/lisp/xwem-keydefs.el
+++ mod/lisp/xwem-keydefs.el
@@ -366,6 +366,7 @@
 (define-key xwem-global-map (xwem-kbd "H-y") 'xwem-paste-cutbuffer)
 
 ;;; Misc bindings
+(define-key xwem-global-map (xwem-kbd "H-x H-f") 'xwem-open-file)
 ;; Making holer in frames
 (define-key xwem-global-map (xwem-kbd "H-x h") 'xwem-holer-prefix)
 ;; Log your work


--- orig/lisp/xwem-launcher.el
+++ mod/lisp/xwem-launcher.el
@@ -142,17 +142,17 @@
 (defcustom xwem-launch-dock-width 24
   "*Launcher dockapp width."
   :type 'number
-  :group 'xwem-launch)
+  :group 'xwem-launcher)
 
 (defcustom xwem-launch-dock-height 24
   "*Launcher dockapp height."
   :type 'number
-  :group 'xwem-launch)
+  :group 'xwem-launcher)
 
 (defcustom xwem-launch-dock-thick 2
   "*Launcher dockapp border thickness."
   :type 'number
-  :group 'xwem-launch)
+  :group 'xwem-launcher)
 
 ;;; Internal variables
 
@@ -626,7 +626,7 @@
     ((background-dark shadow-dark) (:foreground "black"))
     (t (:foreground "gray70" :background "black")))
   "Default background face for launcher docks."
-  :group 'xwem-launch
+  :group 'xwem-launcher
   :group 'xwem-faces)
 
 (defvar xwem-launch-dock-keymap
@@ -857,7 +857,48 @@
 
     (xwem-XTrayInit (xwem-dpy) xwin dockid dockgroup dockalign)
     xwin))
-  
+
+
+;;; Open file
+(defcustom xwem-open-file-commands-alist
+  '(("\\.\\(ps\\|ps_pages\\|eps\\)\\'" . "gv")
+    ("\\.pdf\\'" . "acroread")
+    ("\\.\\(jpe?g\\|gif\\|png\\)\\'" . "display")
+    ("\\.dvi\\'" . "xdvi")
+    ("\\.txt\\'" . "xterm -e less"))
+  "*Alist specifying how to view special types of files.
+`xwem-open-file-commands-alist' can be dynamically changed by
+`xwemw-open-file' when registering new file extensions, so we
+recommend to use `xwem-desktop' package to save/restore
+`xwem-open-file-commands-alist' value between sessions."
+  :group 'xwem-launcher
+  :type '(repeat (cons (string :tag "Regexp")
+                       (string :tag "Command"))))
+
+;;;###autoload(autoload 'xwem-open-file "xwem-launcher" "Open file with 
appopriate command" t)
+(define-xwem-command xwem-open-file (file &optional command)
+  "Open FILE with command specified by COMMAND."
+  (xwem-interactive
+   (let* ((file (expand-file-name (xwem-read-filename "Find File: ")))
+          cmd)
+     (dolist (elt xwem-open-file-commands-alist)
+       (if (string-match (car elt) file)
+           (setq cmd (cdr elt))))
+     (unless cmd
+       (setq cmd (xwem-read-from-minibuffer "Command: "))
+       ;; Try to register FILE extension in
+       ;; `xwem-open-file-commands-alist'.
+       (let ((fext (and (string-match "\\.\\(.+\\)\\'" file)
+                        (match-string 1 file))))
+         (when (and fext
+                    (xwem-under-minibuffer 
+                     (y-or-n-p (format "Register '%s' extension?: " fext))))
+           (push (cons (concat "\\." fext "\\'") cmd)
+                 xwem-open-file-commands-alist))))
+     (list file cmd)))
+
+  (xwem-launch (format "%s %s" command file)))
+
 
 (provide 'xwem-launcher)
 




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