Commits

lg  committed fe447bd

Author field fix

  • Participants
  • Parent commits c5050f5

Comments (0)

Files changed (29)

+2004-12-06  Zajcev Evgeny <zevlg@yandex.ru>
+
+	* *.el (Author): Fixes.
+	
+2004-12-06  Zajcev Evgeny <zevlg@yandex.ru>
+
+	* dockapp/xwem-pager.el (Repository): Initial import of xwem-pager
+		  code done by Richard Klinda <ignotus@hixsplit.hu>
+
+2004-12-06  Zajcev Evgeny <zevlg@yandex.ru>
+
+	* lisp/xwem-keyboard.el (xwem-hyper-modifier): [addon] Alt 
+	* lisp/xwem-keyboard.el (xwem-meta-modifier): Ditto.
+	* lisp/xwem-keyboard.el (xwem-control-modifier): Ditto.
+
+	Alt modifier added, however not yet supported in keys resolution
+	code.
+	
+	* lisp/xwem-misc.el:
+	* lisp/xwem-misc.el (xwem-misc-mask-pixmap): New.
+	* lisp/xwem-misc.el (xwem-misc-mask-fgc): New.
+	* lisp/xwem-misc.el (xwem-misc-mask-bgc): New.
+	* lisp/xwem-misc.el (xwem-misc-init): [addon] common masking
+		  initialisation.
+
+	Masking fg/bg X-Gc's added for common use.
+	
+	* dockapp/xwem-battery.el:
+	* dockapp/xwem-battery.el (apm-battery): New.  Emacs lisp version
+		  of apm-battery.  It is not required to have apm-battery
+		  DSO loaded to use xwem-battery dockapp.
+
+	* dockapp/xwem-framei.el:
+	* dockapp/xwem-framei.el (xwem-frame):
+	* dockapp/xwem-framei.el (xwem-framei-default-format):
+	* dockapp/xwem-framei.el (xwem-framei-dockapp-keymap):
+	* dockapp/xwem-framei.el (xwem-framei-dockapp-default-format):
+	* dockapp/xwem-framei.el (xwem-framei-stop-dockapp):
+	* dockapp/xwem-framei.el (xwem-framei-dockapp):
+	* dockapp/xwem-framei.el (xwem-framei-dockapp-popup-menu):
+	* dockapp/xwem-framei.el (xwem-framei-dockapp-popup-alt-menu):
+		  New.  Alternative menu.
+
+	Fixes due to race condition, when killing client in dedicated
+	frame.
+
+	* utils/xwem-osd.el (xwem-osd-event-handler): [fix] use
+		  xwem-override-local-map
+
+	* lisp/xwem-help.el (xwem-help-where-is): [fix] use
+		  xwem-global-keymap.
+
+	* lisp/xwem-clients.el (xwem-cl-apply-new-xgeom): [arguments]
+		  HOLD-SIZE argument added.
+	* lisp/xwem-clients.el (xwem-refit-dedicated): [fix] Use
+		  HOLD-SIZE.
+
+	* extra/xwem-recover.el (xwem-recover-real-recover): [fix] xdpy ->
+		  xwem-dpy
+
 2004-12-06  Steve Youngs  <steve@youngs.au.com>
 
 	From Richard Klinda <ignotus@hixsplit.hu>

File dockapp/xwem-battery.el

 ;; Copyright (C) 2004 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Thu Sep  2 01:14:36 GMT 2004
 ;; Keywords: xwem
 ;; X-CVS: $Id$
                                   xwem-batt-update-interval xwem-batt-update-interval))
     'started))
 
+
+;;;; In case there is no battery.ell
+(unless (fboundp 'apm-battery)
+  (defvar apm-program "apm")
+  (defvar apm-state-percent-arguments "-bl")
+  (defvar apm-status-alist
+    '((0 . high) (1 . low) (2 . critical) (3 . charging)))
+
+  (defun apm-battery ()
+    "Return battery status."
+    (let (state percents)
+      (with-temp-buffer
+        (call-process apm-program nil (current-buffer)
+                      nil apm-state-percent-arguments)
+        (goto-char (point-min))
+        (setq state (cdr (assq (string-to-int
+                                (buffer-substring (point-at-bol)
+                                                  (point-at-eol)))
+                               apm-status-alist)))
+        (forward-line)
+        (setq percents (string-to-int
+                        (buffer-substring (point-at-bol)
+                                          (point-at-eol)))))
+      (list (eq state 'charging) state percents))))
+
 
 (provide 'xwem-battery)
 

File dockapp/xwem-framei.el

 ;; Copyright (C) 2004 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Tue Jan 27 08:01:43 MSK 2004
 ;; Keywords: xwem
 ;; X-CVS: $Id$
 ;;; Code:
 
 (require 'xwem-load)
+(require 'xwem-frame)
 (require 'xwem-osd)
 
 ;;; Customisation
 Return string in form \"NUM: NAME\""
   (case (xwem-frame-type frame)
     (dedicated
-     (format "%s" (xwem-client-name (xwem-frame-cl frame))))
+     (if (xwem-frame-cl frame)
+         (format "%s" (xwem-client-name (xwem-frame-cl frame)))
+       "Unknown"))
     (t
      (format "[%d] %s" (xwem-frame-num frame) (xwem-frame-name frame)))))
 
   (let ((map (make-sparse-keymap)))
     (set-keymap-default-binding map 'ignore)
     (define-key map [button1] 'xwem-framei-dockapp-popup-menu)
-    (define-key map [button3] 'xwem-framei-dockapp-popup-menu)
+    (define-key map [button3] 'xwem-framei-dockapp-popup-alt-menu)
     map)
   "Keymap used for framei osd.")
 
 Return string in form \"NUM: NAME\""
   (case (xwem-frame-type frame)
     (dedicated
-     (format "%s" (xwem-client-name (xwem-frame-cl frame))))
+     (if (xwem-frame-cl frame)
+         (format "%s" (xwem-client-name (xwem-frame-cl frame)))
+       "Unknown"))
     (t
      (format "%d:%s" (xwem-frame-num frame) (xwem-frame-name frame)))))
 
       (xwem-osd-text xwem-framei-dockapp-osd
                      (funcall xwem-framei-dockapp-format-function frame)))))
 
-(defun xwem-framei-stop-dockapp ()
+(define-xwem-command xwem-framei-stop-dockapp ()
   "Stop framei dockapp, if any."
+  (xwem-interactive)
+
   (remove-hook 'xwem-frame-select-hook 'xwem-framei-dockapp-on-select)
   (remove-hook 'xwem-frame-change-hook 'xwem-framei-dockapp-on-change)
 
 ;;;###autoload
 (defun xwem-framei-dockapp (&optional dockid dockgroup dockalign)
   "Start frame indicator dockapp."
-  (unless xwem-framei-dockapp-osd
+  (unless (xwem-osd-p xwem-framei-dockapp-osd)
     (let ((width (* (face-width 'xwem-framei-dockapp-face) 8))
           (height (face-height 'xwem-framei-dockapp-face)))
 
          (lambda (not-used)
            (nconc
            (mapcar (lambda (frame)
-                     (vector (format "%s %d: %s"
-                                     (capitalize (symbol-name (xwem-frame-type frame)))
-                                     (xwem-frame-num frame) (xwem-frame-name frame))
-                             `(xwem-select-frame ,frame)))
+                     (vector
+                      (case (xwem-frame-type frame)
+                        (dedicated
+                         (if (xwem-frame-cl frame)
+                             (format "D[%d]: %s" (xwem-frame-num frame)
+                                     (xwem-client-name (xwem-frame-cl frame)))
+                           (format "D[%d]: <none>" (xwem-frame-num frame))))
+                        (t (format "%s %d: %s"
+                                   (capitalize (symbol-name (xwem-frame-type frame)))
+                                   (xwem-frame-num frame) (xwem-frame-name frame))))
+                      `(xwem-select-frame ,frame)))
                    xwem-frames-list)
-           "---"
-           (vector "Destroy" 'xwem-framei-stop-dockapp))))
-   ))
+           (list "---"
+                 (vector "Destroy" 'xwem-framei-stop-dockapp)))))))
+
+;;;###autoload(autoload 'xwem-framei-dockapp-popup-alt-menu "xwem-framei" nil t)
+(define-xwem-command xwem-framei-dockapp-popup-alt-menu ()
+  "Popup alternative menu."
+  (xwem-interactive)
+
+  (xwem-popup-menu
+   (nconc '("XWEM Frames")
+          (mapcar (lambda (type)
+                    (nconc (list (capitalize (symbol-name type)))
+                           (mapcar (lambda (frame)
+                                     (vector
+                                      (format "%d: %s"
+                                              (xwem-frame-num frame)
+                                              (case (xwem-frame-type frame)
+                                                (dedicated
+                                                 (if (xwem-frame-cl frame)
+                                                     (xwem-client-name (xwem-frame-cl frame))
+                                                   "<none>"))
+                                                (t (xwem-frame-name frame))))
+                                      `(xwem-select-frame ,frame)))
+                                   (xwem-frames-list type))))
+                  xwem-frame-types)
+          '("---" ["Destroy" xwem-framei-stop-dockapp]))))
 
 
 (provide 'xwem-framei)

File dockapp/xwem-pager.el

 
 ;; Copyright (C) 2004 by Free Software Foundation, Inc.
 
-;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;; Author: Richard Klinda <ignotus@hixsplit.hu>
+;;         Zajcev Evgeny <zevlg@yandex.ru>
 ;; Created: Wed Aug 18 08:05:09 MSD 2004
 ;; Keywords: xwem
 ;; X-CVS: $Id$
 (defvar xwem-pager-border-shadow-active "grey55")
 (defvar xwem-pager-border-shadow-inactive "grey55")
 
-(defun xwem-pager-init ()
+;; veryvery simple pager / 2d viewport support
+;; the code works, do the following:
+;; 
+;; add to XWEM-after-init-hook:
+;; 
+;;    (setq *pager-dockapp* (xwem-2dframes-start-dockapp))
+;; 
+;; ugly i know, that starts the dockapp
+;; 
+;;   (xwem-2dframes-make-frames)
+;; 
+;; that will create the frames
+;; 
+;; load this code, restart your XWEM and be happy.  If you want to try it
+;; out without restarting then MAKE SURE you have only 1 frame, load the
+;; code then:
+;; M-x xwem-2dframes-make-frames
+;; 
+;; eval (setq *pager-dockapp* (xwem-2dframes-start-dockapp))
+;; 
+;; change viewports / frames somehow so the dockapp gets updated
+;; 
+;; i know this code is hackis, but if you rename the variables / sturcture
+;; the code like you want it to be i'll work on it to make it full featured
+;; + add more comments / docstrings.
+
+;;; //////////////////////////////////////////////////////////////////////
+
+(defvar xwem-2dframes-dim '(4 . 4)
+  "X*Y viewports")
+
+(defun xwem-2dframes-make-frames ()
+  "Make the frames, call from XWEM-AFTER-INIT-HOOK!"
+  (let ((num (1- (* (car xwem-2dframes-dim)
+                    (cdr xwem-2dframes-dim)))))
+    (dotimes (i num)
+      (xwem-make-frame-1 'desktop :noselect t))))
+
+(define-xwem-command xwem-2dframes-move-up ()
+  "Move one viewport up."
+  (xwem-interactive)
+  (xwem-2dframes-move 'up))
+
+(define-xwem-command xwem-2dframes-move-down ()
+  "Move one viewport down."
+  (xwem-interactive)
+  (xwem-2dframes-move 'down))
+
+(define-xwem-command xwem-2dframes-move-left ()
+  "Move one viewport left."
+  (xwem-interactive)
+  (xwem-2dframes-move 'left))
+
+(define-xwem-command xwem-2dframes-move-right ()
+  "Move one viewport right."
+  (xwem-interactive)
+  (xwem-2dframes-move 'right))
+
+(defun xwem-2dframes-move (dir)
+  (case dir
+    ('up (xwem-frame-switch-nth (- (xwem-frame-num (xwem-frame-selected))
+                                   (car xwem-2dframes-dim))))
+    ('down (xwem-frame-switch-nth (+ (xwem-frame-num (xwem-frame-selected))
+                                     (car xwem-2dframes-dim))))
+    ('left (xwem-frame-switch-nth (1- (xwem-frame-num (xwem-frame-selected)))))
+    ('right (xwem-frame-switch-nth
+             (1+ (xwem-frame-num (xwem-frame-selected)))))))
+
+;;; //////////////////////////////////////////////////////////////////////
+
+;; bindings
+
+(xwem-global-set-key [(super h)] 'xwem-2dframes-move-left)
+(xwem-global-set-key [(super t)] 'xwem-2dframes-move-down)
+(xwem-global-set-key [(super n)] 'xwem-2dframes-move-up)
+(xwem-global-set-key [(super s)] 'xwem-2dframes-move-right)
+;(xwem-global-set-key [(alt left)] 'xwem-2dframes-move-left)
+;(xwem-global-set-key [(alt down)] 'xwem-2dframes-move-down)
+;(xwem-global-set-key [(alt up)] 'xwem-2dframes-move-up)
+;(xwem-global-set-key [(alt right)] 'xwem-2dframes-move-right)
+
+;;; //////////////////////////////////////////////////////////////////////
+
+;; simple pager
+
+(defvar xwem-2dframes-dockapp-size 8
+  "X*X pixel will represent one viewport.")
+
+(defvar xwem-2dframes-dockapp-grid-p t
+  "If you want a dark line separating the viewports, set this to T.")
+
+(defstruct xwem-2dframes-dockapp
+  win
+  update-itimer                         ; itimer to update worklog-dockapp
+
+  ;; dockapp and sector geometry
+  width height
+  sector-width)
+
+(defun xwem-2dframes-start-dockapp (&optional dockid dockgroup dockalign)
+  "Start xwem worklog dockapp put
+(setq *pager-dockapp* (xwem-2dframes-start-dockapp))
+onto XWEM-AFTER-INIT-HOOK!"
+  (let* ((w (+ (* (car xwem-2dframes-dim) xwem-2dframes-dockapp-size)
+               (if xwem-2dframes-dockapp-grid-p
+                  (- (car xwem-2dframes-dim) 1)
+                  0)))
+         (h (+ (* (cdr xwem-2dframes-dim) xwem-2dframes-dockapp-size)
+               (if xwem-2dframes-dockapp-grid-p
+                   (- (cdr xwem-2dframes-dim) 1)
+                   0)))
+         (sw 0)
+         (wd (make-xwem-2dframes-dockapp
+              :win (XCreateWindow (xwem-dpy) nil 0 0 (+ 1 w) (+ 1 h (* 2 sw))
+                                  0 nil nil nil
+                                  (make-X-Attr :override-redirect t
+                                               :background-pixel
+                                               (XAllocNamedColor (xwem-dpy) (XDefaultColormap (xwem-dpy))
+                                                                 (face-background-name 'default)) ; XXX
+                                               ))
+              :width w :height h :sector-width sw)))
+
+    (X-Win-put-prop (xwem-2dframes-dockapp-win wd) 'xwem-2dframes-dockapp wd)
+
+;    (XSelectInput (xwem-dpy) (xwem-2dframes-dockapp-win wd)
+;                  (apply 'Xmask-or xwem-2dframes-dockapp-event-mask))
+
+;    (X-Win-EventHandler-add (xwem-2dframes-dockapp-win wd) 'xwem-2dframes-dockapp-event-handler nil
+;			    (list X-Expose X-MapNotify X-ButtonPress X-ButtonRelease X-DestroyNotify))
+
+    ;; Initialize wd in sys tray
+    (xwem-XTrayInit (xwem-dpy) (xwem-2dframes-dockapp-win wd) dockid dockgroup dockalign)
+
+    ;; Start updater
+;    (setf (xwem-2dframes-dockapp-update-itimer wd)
+;          (start-itimer "xwem-2dframes-dockapp-updater"
+;                        `(lambda () (xwem-2dframes-dockapp-update ,wd))
+;                        (xwem-worklog-meaning-update-time)
+;                        (xwem-worklog-meaning-update-time)))
+
+;    (add-hook 'xwem-worklog-task-start-hook
+;                 `(lambda () (xwem-2dframes-dockapp-update ,wd)))
+    wd))
+
+;(setq *pager-dockapp* (xwem-2dframes-start-dockapp))
+
+(defun xwem-2dframes-positions (&optional frame)
+  (unless frame
+    (setq frame (xwem-frame-selected)))
+  (let* ((n (xwem-frame-num frame))
+         (row (truncate (/ n (car xwem-2dframes-dim))))
+	 (column (- n (* row (car xwem-2dframes-dim)))))
+    (list n column row)))
+(defvar *pager-dockapp* nil)
+;(xwem-2dframes-dockapp-update *pager-dockapp*)
+
+(defun xwem-2dframes-dockapp-update (dockapp)
+  "Update 2dframes dockapp."
+  (when (xwem-2dframes-dockapp-p dockapp)
+    (let* ((win (xwem-2dframes-dockapp-win dockapp))
+           (xdpy (X-Win-dpy win))
+           (w (xwem-2dframes-dockapp-width dockapp))
+           (h (xwem-2dframes-dockapp-height dockapp)))
+      (multiple-value-bind (num row column)
+          (values-list (xwem-2dframes-positions))
+
+        (setq num num)                  ; shutup compiler
+
+        ;(XClearArea xdpy win 0 0 (1+ w) (1+ h) t) ; doesnt work:-/
+        ;; clear
+        (xwem-set-face-foreground 'xwem-worklog-temp-face
+                                  "gray24")
+        (XFillRectangle xdpy win
+                        (xwem-face-get-gc 'xwem-worklog-temp-face)
+                        0 0 w h)
+
+        ;; grid
+        (when xwem-2dframes-dockapp-grid-p
+          (xwem-set-face-foreground 'xwem-worklog-temp-face
+                                    "gray13")
+          (dotimes (i (car xwem-2dframes-dim))
+            (XDrawLine xdpy win (xwem-face-get-gc 'xwem-worklog-temp-face)
+                       (+ (* i xwem-2dframes-dockapp-size)
+                          i)
+                       0
+                       (+ (* i xwem-2dframes-dockapp-size)
+                          i)
+                       h))
+          (dotimes (i (cdr xwem-2dframes-dim))
+            (XDrawLine xdpy win (xwem-face-get-gc 'xwem-worklog-temp-face)
+                       0
+                       (+ (* i xwem-2dframes-dockapp-size)
+                          i)
+                       w
+                       (+ (* i xwem-2dframes-dockapp-size)
+                          i))))
+
+        ;; active part
+        (xwem-set-face-foreground 'xwem-worklog-temp-face
+                                  "white")
+        (XFillRectangle xdpy win
+                        (xwem-face-get-gc 'xwem-worklog-temp-face)
+                        (+ (* row xwem-2dframes-dockapp-size)
+                           (if xwem-2dframes-dockapp-grid-p
+                               row
+                               0))
+                        (+ (* column xwem-2dframes-dockapp-size)
+                           (if xwem-2dframes-dockapp-grid-p
+                               column
+                               0))
+                        xwem-2dframes-dockapp-size
+                        xwem-2dframes-dockapp-size)))))
+
+(defun xwem-pager-init (&optional dockid dockgroup dockalign)
   "Initialize xwem pager."
-  ;; TODO: write me
-  )
+  (xwem-2dframes-start-dockapp dockid dockgroup dockalign))
 
 
 (provide 'xwem-pager)
 
+;;; On-load actions
+(add-hook 'xwem-frame-select-hook
+          '(lambda nil
+	    (when *pager-dockapp*
+              (xwem-2dframes-dockapp-update *pager-dockapp*))))
+
+
 ;;; xwem-pager.el ends here

File dockapp/xwem-time.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Mon Dec  8 09:53:42 MSK 2003
 ;; Keywords: xwem, xlib
 ;; X-CVS: $Id$

File extra/xwem-recover.el

 
 (define-xwem-deffered xwem-recover-real-recover ()
   "Do real recovering routines."
-  (setf (X-Dpy-snd-queue xdpy) nil)
-  (setf (X-Dpy-message-buffer xdpy) "")
-  (setf (X-Dpy-evq xdpy) nil))
+  (setf (X-Dpy-snd-queue (xwem-dpy)) nil)
+  (setf (X-Dpy-message-buffer (xwem-dpy)) "")
+  (setf (X-Dpy-evq (xwem-dpy)) nil))
 
 ;;;###autoload(autoload 'xwem-recover-do-recover "xwem-recover" "" t)
 (define-xwem-command xwem-recover-do-recover (xdpy)

File lisp/xwem-clgen.el

 ;; Copyright (C) 2004 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Sat Aug 28 14:31:39 MSD 2004
 ;; Keywords: xwem
 ;; X-CVS: $Id$

File lisp/xwem-clients.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
+;;         Richard Klinda <ignotus@hixsplit.hu>
 ;; Created: 2 Mar 2003
 ;; Keywords: xlib, xwem
 ;; X-CVS: $Id$
       (xwem-client-kill cl))
 
     ;; kill window
-    (xwem-window-delete win)
-    ))
+    (xwem-window-delete win)))
 
 ;;;###autoload(autoload 'xwem-cl-transpose "xwem-clients" "" t)
 (define-xwem-command xwem-cl-transpose (cl &optional arg)
     (setq nplist (cdr (cdr nplist)))))
 
 ;;;###xwem-autoload
-(defun xwem-cl-apply-new-xgeom (cl &optional correct-including-border)
+(defun xwem-cl-apply-new-xgeom (cl &optional correct-including-border hold-size)
   "Apply entries in `xwem-cl-new-xgeom' to CL's x geometry.
 When CORRECT-INCLUDING-BORDER is non-nil, then
 `xwem-cl-correct-size-for-size' will correct size reguarding new
-border width, otherwise it will correct size as if border width is 0."
+border width, otherwise it will correct size as if border width is 0.
+If HOLD-SIZE is non-nil no size corrections are performed."
   (let ((nxgeom (xwem-cl-new-xgeom cl))
         (xgeom (xwem-cl-xgeom cl)))
     (when nxgeom
         (setf (X-Geom-width nxgeom) (X-Geom-width xgeom)))
       (unless (X-Geom-height nxgeom)
         (setf (X-Geom-height nxgeom) (X-Geom-height xgeom)))
-
-      (xwem-cl-correct-size-for-size cl nxgeom 'left 'top)
+      
+      (unless hold-size
+        (xwem-cl-correct-size-for-size cl nxgeom 'left 'top))
 
       ;; Flush new geometry
       (setf (xwem-cl-new-xgeom cl) nil))))
 (defun xwem-refit-dedicated (cl)
   "Refit method for dedicated CL."
   (cond ((xwem-cl-new-xgeom cl)
-         (xwem-cl-apply-new-xgeom cl)
+         (xwem-cl-apply-new-xgeom cl nil t)
          (xwem-cl-apply-xgeom cl)
          (xwem-window-set-size (xwem-cl-win cl)
                                (X-Geom-width-with-borders (xwem-cl-xgeom cl))

File lisp/xwem-clswi.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Keywords: xwem
 ;; X-CVS: $Id$
 

File lisp/xwem-desktop.el

 ;; Copyright (C) 2004 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Wed Jul 14 10:16:20 MSD 2004
 ;; Keywords: xwem, desktop
 ;; X-CVS: $Id$

File lisp/xwem-edmacro.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Fri Dec 12 11:19:50 MSK 2003
 ;; Keywords: xwem, xlib
 ;; X-CVS: $Id$

File lisp/xwem-events.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: 21 Mar 2003
 ;; Keywords: xlib, xwem
 ;; X-CVS: $Id$

File lisp/xwem-faces.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Mon Dec 29 12:04:19 MSK 2003
 ;; Keywords: xwem
 ;; X-CVS: $Id$

File lisp/xwem-focus.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Fri Dec 19 13:25:30 MSK 2003
 ;; Keywords: xwem, xlib
 ;; X-CVS: $Id$

File lisp/xwem-frame.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: 21 Mar 2003
 ;; Keywords: xlib, xwem
 ;; X-CVS: $Id$

File lisp/xwem-gamma.el

 ;; Copyright (C) 2004 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Tue Jan 20 13:10:28 MSK 2004
 ;; Keywords: xwem
 ;; X-CVS: $Id$

File lisp/xwem-help.el

   "Where-is for XWEM."
   (xwem-interactive "CXWEM where is command: \nP")
 
-  (let* ((keys (where-is-internal dfn (list (xwem-kbd-current-map))))
+  (let* ((keys (where-is-internal dfn (list xwem-global-map)))
          (msg (if keys (format "%s is on %s" dfn (sorted-key-descriptions keys))
                 (format "%s is not on any keys" dfn))))
     (if paste

File lisp/xwem-icons.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Sat Dec 27 15:38:24 MSK 2003
 ;; Keywords: xwem
 ;; X-CVS: $Id$

File lisp/xwem-interactive.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Thu Dec 18 05:49:52 MSK 2003
 ;; Keywords: xwem, xlib
 ;; X-CVS: $Id$

File lisp/xwem-keyboard.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Authors: Zajcev Evgeny <zevlg@yandex.ru>
+;;          Steve Youngs  <steve@youngs.au.com>
 ;;	    Alex Ott <ottalex@narod.ru>
 ;; Created: 21 Mar 2003
 ;; Keywords: xwem, xlib
   :type '(choice (const :tag "Meta" meta)
 		 (const :tag "Control" control)
 		 (const :tag "Super" super)
-		 (const :tag "Hyper" hyper))
+		 (const :tag "Hyper" hyper)
+                 (const :tag "Alt" alt))
   :group 'xwem-keyboard)
 
 (defcustom xwem-meta-modifier 'meta
   :type '(choice (const :tag "Meta" meta)
 		 (const :tag "Control" control)
 		 (const :tag "Super" super)
-		 (const :tag "Hyper" hyper))
+		 (const :tag "Hyper" hyper)
+                 (const :tag "Alt" alt))
   :group 'xwem-keyboard)
 		 
 (defcustom xwem-control-modifier 'control
   :type '(choice (const :tag "Meta" meta)
 		 (const :tag "Control" control)
 		 (const :tag "Super" super)
-		 (const :tag "Hyper" hyper))
+		 (const :tag "Hyper" hyper)
+                 (const :tag "Alt" alt))
   :group 'xwem-keyboard)
 
 (defcustom xwem-kbd-evillocks (list XK-NumLock XK-Caps-Lock)

File lisp/xwem-keymacro.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Fri Dec 12 17:18:00 MSK 2003
 ;; Keywords: xwem, xlib
 ;; X-CVS: $Id$

File lisp/xwem-manage.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Richard Klinda <ignotus@hixsplit.hu>
 ;; Created: 21 Mar 2003
 ;; Keywords: xlib, xwem
 ;; X-CVS: $Id$

File lisp/xwem-misc.el

 (defvar xwem-cursor-quote nil "Cursor when quoting key.")
 (defvar xwem-cursor-help nil "Cursor when in help mode.")
 
+(defvar xwem-misc-mask-pixmap nil "Pixmap with depth 1.")
+;;;###xwem-autoload
+(defvar xwem-misc-mask-fgc nil "X-Gc with foreground 1.0 destination drawable has depth 1.")
+;;;###xwem-autoload
+(defvar xwem-misc-mask-bgc nil "X-Gc with foreground 1.0 destination drawable has depth 1.")
+
 ;;; Macros
 (defmacro xwem-xwin-frame (xwin)
   "Return XWEM frame, which X window is XWIN."
   "Miscellaneous initializations."
   (pushnew 'xwem-misc-xerr-hook (X-Dpy-error-hooks (xwem-dpy)))
   (xwem-cursors-init)
+
+  (xwem-message 'init "Initializing masking ...")
+  ;; Depth 1 pixmap, gcs
+  (setq xwem-misc-mask-pixmap (XCreatePixmap (xwem-dpy)
+                                             (make-X-Pixmap :dpy (xwem-dpy)
+                                                            :id (X-Dpy-get-id (xwem-dpy)))
+                                             (xwem-rootwin) 1 1 1)
+        xwem-misc-mask-fgc (XCreateGC (xwem-dpy) xwem-misc-mask-pixmap
+                                      (make-X-Gc :dpy (xwem-dpy)
+                                                 :id (X-Dpy-get-id (xwem-dpy))
+                                                 :foreground 1.0
+                                                 :background 0.0))
+        xwem-misc-mask-bgc (XCreateGC (xwem-dpy) xwem-misc-mask-pixmap
+                                      (make-X-Gc :dpy (xwem-dpy)
+                                                 :id (X-Dpy-get-id (xwem-dpy))
+                                                 :foreground 0.0
+                                                 :background 1.0)))
+  (xwem-message 'init "Initializing masking ... done")
   )
 
 ;;; Stuff for debugging

File lisp/xwem-netwm.el

 ;; Copyright (C) 2004 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Sat May 15 19:44:58 MSD 2004
 ;; Keywords: xwem
 ;; X-CVS: $Id$

File lisp/xwem-root.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: 21 Mar 2003
 ;; Keywords: xlib, xwem
 ;; X-CVS: $Id$

File lisp/xwem-strokes.el

 ;; Copyright (C) 2003 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Thu Dec  4 17:42:12 MSK 2003
 ;; Keywords: xwem, xlib
 ;; X-CVS: $Id$

File lisp/xwem-transient.el

 ;; Copyright (C) 2004 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Steve Youngs  <steve@youngs.au.com>
 ;; Created: Sat Jun  5 01:33:25 MSD 2004
 ;; Keywords: xwem
 ;; X-CVS: $Id$

File utils/xwem-osd.el

   "On X display XDPY and window XWIN handle X Event XEV."
   (let* ((osd (xwem-osd-get-osd xwin))
          (keymap (xwem-osd-get-prop osd 'keymap)))
-
     (when (xwem-osd-p osd)
       (X-Event-CASE xev
         (:X-DestroyNotify
 
         ((:X-KeyPress :X-ButtonPress :X-ButtonRelease)
          (when (keymapp keymap)
-           (let ((xwem-override-local-map keymap))
-             (xwem-dispatch-command-xevent xev))))
-        ))
-    ))
+           (xwem-overriding-local-map keymap
+             (xwem-dispatch-command-xevent xev)))))
+      )))
 
 (defun xwem-osd-root-event-handler (xdpy xwin xev)
   "Root window event handler for OSD."
 ;;;###autoload
 (defun xwem-osd-create (xdpy x y width height &optional x-parent properties)
   "On X display XDPY create new xwem osd context with +X+Y/WIDTHxHEIGHT geometry on X-PARENT."
-  (let ((osd (make-xwem-osd :always-ontop xwem-osd-always-ontop :xdpy xdpy :x x :y y :width width :height height
+  (let ((osd (make-xwem-osd :always-ontop xwem-osd-always-ontop
+                            :xdpy xdpy
+                            :x x :y y :width width :height height
                             :plist properties))
         (keymap (plist-get properties 'keymap)))
     (setf (xwem-osd-xwin osd)
 			 (make-X-Attr :override-redirect t
 				      :background-pixel (XBlackPixel xdpy)
 				      :event-mask (Xmask-or XM-StructureNotify
-                                                            (if keymap (Xmask-or XM-KeyPress XM-ButtonPress XM-ButtonRelease) 0)))))
+                                                            (if keymap
+                                                                (Xmask-or XM-KeyPress
+                                                                          XM-ButtonPress
+                                                                          XM-ButtonRelease)
+                                                              0)))))
     ;; Create gc
     (setf (xwem-osd-gc osd)
 	  (XCreateGC xdpy (xwem-osd-xwin osd)

File utils/xwem-worklog.el

 ;; Copyright (C) 2004 by Free Software Foundation, Inc.
 
 ;; Author: Zajcev Evgeny <zevlg@yandex.ru>
+;;         Richard Klinda <ignotus@hixsplit.hu>
 ;; Created: Thu Feb 26 01:00:25 MSK 2004
 ;; Keywords: xwem
 ;; X-CVS: $Id$