summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2015-02-23 19:46:44 +0200
committerEli Zaretskii <eliz@gnu.org>2015-02-23 19:46:44 +0200
commit18178922a8074627fe4e4e2fd0c9d21839f172c4 (patch)
treee0eb66fb6397e5265f12016d15c2a17a74d5a76a /lisp
parent02609324ce7341c05f4c5c141942c45d730291b1 (diff)
downloademacs-18178922a8074627fe4e4e2fd0c9d21839f172c4.tar.gz
Avoid erratic behavior of menu-bar tooltips on w32 (Bug#19925)
src/w32fns.c (Fw32__menu_bar_in_use): New internal function. lisp/frame.el (blink-cursor-timer-function): Don't increment blink-cursor-blinks-done counter when a menu is active on a w32 frame.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/frame.el6
2 files changed, 11 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 22e952a91e6..14a12b53a35 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-23 Eli Zaretskii <eliz@gnu.org>
+
+ * frame.el (blink-cursor-timer-function): Don't increment
+ blink-cursor-blinks-done counter when a menu is active on a w32
+ frame. (Bug#19925)
+
2015-02-19 Juri Linkov <juri@linkov.net>
* comint.el (comint-line-beginning-position): Revert searching for
diff --git a/lisp/frame.el b/lisp/frame.el
index 1a584fa0e2c..e1dfa483c97 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -1798,8 +1798,12 @@ command starts, by installing a pre-command hook."
(defun blink-cursor-timer-function ()
"Timer function of timer `blink-cursor-timer'."
(internal-show-cursor nil (not (internal-show-cursor-p)))
+ ;; Suspend counting blinks when the w32 menu-bar menu is displayed,
+ ;; since otherwise menu tooltips will behave erratically.
+ (or (and (fboundp 'w32--menu-bar-in-use)
+ (w32--menu-bar-in-use))
+ (setq blink-cursor-blinks-done (1+ blink-cursor-blinks-done)))
;; Each blink is two calls to this function.
- (setq blink-cursor-blinks-done (1+ blink-cursor-blinks-done))
(when (and (> blink-cursor-blinks 0)
(<= (* 2 blink-cursor-blinks) blink-cursor-blinks-done))
(blink-cursor-suspend)