Location: lg@xxxxxxxxxxxxxx http://arch.xwem.org/2005/
Revision: xwem--main--2.2--patch-36
Archive: lg@xxxxxxxxxxxxxx
Creator: Zajcev Evgeny <lg@xxxxxxxx>
Date: Sun Nov 6 00:13:10 MSK 2005
Standard-date: 2005-11-05 21:13:10 GMT
Modified-files: lisp/xwem-events.el lisp/xwem-keyboard.el
utils/xwem-worklog.el
New-patches: dev@xxxxxxxxxxxxxxxx/xwem--dev--2.2--patch-31
dev@xxxxxxxxxxxxxxxx/xwem--dev--2.2--patch-32
dev@xxxxxxxxxxxxxxxx/xwem--dev--2.2--patch-33
lg@xxxxxxxxxxxxxx/xwem--main--2.2--patch-36
Summary: Minor fixes, new custom variable for worklog
Keywords: worklog, keymacro
* lisp/xwem-events.el (xwem-next-command-event): [fix] Keyboard macroses
support added. So `xwem-next-command-event' returns proper event if
executing keyboard macro.
* lisp/xwem-keyboard.el (xwem-read-key): [fix]
* utils/xwem-worklog.el (xwem-worklog-dockapp-update-rate): [new] Custom
variable to control diagram updating in worklog dockapp.
* added files
{arch}/xwem/xwem--dev/xwem--dev--2.2/dev@xxxxxxxxxxxxxxxx/patch-log/patch-31
{arch}/xwem/xwem--dev/xwem--dev--2.2/dev@xxxxxxxxxxxxxxxx/patch-log/patch-32
{arch}/xwem/xwem--dev/xwem--dev--2.2/dev@xxxxxxxxxxxxxxxx/patch-log/patch-33
{arch}/xwem/xwem--main/xwem--main--2.2/lg@xxxxxxxxxxxxxx/patch-log/patch-36
* modified files
--- orig/lisp/xwem-events.el
+++ mod/lisp/xwem-events.el
@@ -195,29 +195,35 @@
(defun xwem-next-command-event (&optional prompt)
"Return next command event.
Actually return cons cell where car is Emacs event and cdr is X Event."
+ (declare (special xwem-keymacro-keys xwem-keymacro-keys-index))
(let (eev cev xev)
;; Normal
(when prompt
(xwem-message 'prompt prompt))
- ;; Process while interesting event occur
- (while (and (setq eev (next-event))
- (not (cond ((and (eval-event-p eev)
- (X-Event-p (setq xev (event-object eev)))
- (memq (X-Event-type xev)
- (list X-KeyPress X-ButtonPress
- X-ButtonRelease X-MotionNotify))
- (setq cev (car (xwem-xevents->emacs-events
(list xev) t))))
- (X-Event-put-property xev 'emacs-event cev)
- 'break)
-
- ((and (eval-event-p eev)
- (eventp (setq cev (event-object eev)))
- (eq (event-function eev)
'xwem-dispatch-command-event))
- ;; Unread command event
- (setq xev nil)
- 'break))))
- (dispatch-event eev))
+ (if (xwem-keymacro-executing-p)
+ (setq cev (aref (xwem-kbd-ekeys->eevents
+ (list (aref xwem-keymacro-keys
+ (incf xwem-keymacro-keys-index)))) 0))
+
+ ;; Process while interesting event occur
+ (while (and (setq eev (next-event))
+ (not (cond ((and (eval-event-p eev)
+ (X-Event-p (setq xev (event-object eev)))
+ (memq (X-Event-type xev)
+ (list X-KeyPress X-ButtonPress
+ X-ButtonRelease X-MotionNotify))
+ (setq cev (car (xwem-xevents->emacs-events
(list xev) t))))
+ (X-Event-put-property xev 'emacs-event cev)
+ 'break)
+
+ ((and (eval-event-p eev)
+ (eventp (setq cev (event-object eev)))
+ (eq (event-function eev)
'xwem-dispatch-command-event))
+ ;; Unread command event
+ (setq xev nil)
+ 'break))))
+ (dispatch-event eev)))
(when prompt
(xwem-clear-message))
--- orig/lisp/xwem-keyboard.el
+++ mod/lisp/xwem-keyboard.el
@@ -317,16 +317,15 @@
"Read single key press, prompting PROMPT in `xwem-minibuffer'.
If NO-MINIB-FOCUS-P is non-nil, focus `xwem-minibuffer' while reading."
(xwem-kbd-stop-command-keys-echoing)
+ (xwem-kbd-start-grabbing)
(car (if no-minib-focus-p
(xwem-next-command-event prompt)
(xwem-under-minibuffer
- (prog2
- (when prompt (xwem-message 'prompt prompt))
- (list (next-key-event))
- (when prompt (xwem-clear-message)))))))
+ (xwem-next-command-event prompt)))))
(defun xwem-read-key-sequence-1 (&optional continue-echo)
(xwem-kbd-stop-command-keys-echoing)
+ (xwem-kbd-start-grabbing)
(let ((xwem-kbd-reading-keyseq t)
(done nil)
xev eev eevs bind)
@@ -771,6 +770,7 @@
"Convert Emacs EVENTS list to X events list."
)
+;;;###xwem-autoload
(defun xwem-kbd-ekeys->eevents (ekeys)
"Convert Emacs keys sequence EKEYS to Emacs events vector."
(mapvector #'(lambda (key)
--- orig/utils/xwem-worklog.el
+++ mod/utils/xwem-worklog.el
@@ -218,6 +218,11 @@
(const :tag "Plain Sectors" plain))
:group 'xwem-worklog)
+(defcustom xwem-worklog-dockapp-update-rate 200
+ "*Dockapp updates per working day."
+ :type 'number
+ :group 'xwem-worklog)
+
(defcustom xwem-worklog-sort-type 'Today-time
"*Sorting type for `xwem-worklog-sorted-task-list'."
:type '(choice (const :tag "Sort by name" name)
@@ -853,7 +858,7 @@
XM-StructureNotify
XM-ButtonPress XM-ButtonRelease))))
(XMapWindow (xwem-dpy) xwin)
- (xwem-misc-raise-xwin xwin)
+ (XRaiseWindow (xwem-dpy) xwin)
xwin))
(defun xwem-worklog-pause-create-xpixmap (xwin)
@@ -1397,10 +1402,10 @@
(defun xwem-worklog-meaning-update-time ()
"Return seconds."
- (if (> xwem-worklog-day-ends xwem-worklog-day-start)
- (/ (* 60 60 (- xwem-worklog-day-ends xwem-worklog-day-start)) 100)
- (/ (* 60 60 (- (+ 24 xwem-worklog-day-ends) xwem-worklog-day-start))
- 100)))
+ (/ (* 60 60 (- (+ (if (> xwem-worklog-day-start xwem-worklog-day-ends) 24 0)
+ xwem-worklog-day-ends)
+ xwem-worklog-day-start))
+ xwem-worklog-dockapp-update-rate))
;; TODO:
;; - Get rid of double call to `xwem-worklog-generate-percentage-spec'
|