aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2015-02-23 19:46:44 +0200
committerEli Zaretskii2015-02-23 19:46:44 +0200
commit18178922a8074627fe4e4e2fd0c9d21839f172c4 (patch)
treee0eb66fb6397e5265f12016d15c2a17a74d5a76a
parent02609324ce7341c05f4c5c141942c45d730291b1 (diff)
downloademacs-18178922a8074627fe4e4e2fd0c9d21839f172c4.tar.gz
emacs-18178922a8074627fe4e4e2fd0c9d21839f172c4.zip
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.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/frame.el6
-rw-r--r--src/ChangeLog5
-rw-r--r--src/w32fns.c10
4 files changed, 26 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 @@
12015-02-23 Eli Zaretskii <eliz@gnu.org>
2
3 * frame.el (blink-cursor-timer-function): Don't increment
4 blink-cursor-blinks-done counter when a menu is active on a w32
5 frame. (Bug#19925)
6
12015-02-19 Juri Linkov <juri@linkov.net> 72015-02-19 Juri Linkov <juri@linkov.net>
2 8
3 * comint.el (comint-line-beginning-position): Revert searching for 9 * 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."
1798(defun blink-cursor-timer-function () 1798(defun blink-cursor-timer-function ()
1799 "Timer function of timer `blink-cursor-timer'." 1799 "Timer function of timer `blink-cursor-timer'."
1800 (internal-show-cursor nil (not (internal-show-cursor-p))) 1800 (internal-show-cursor nil (not (internal-show-cursor-p)))
1801 ;; Suspend counting blinks when the w32 menu-bar menu is displayed,
1802 ;; since otherwise menu tooltips will behave erratically.
1803 (or (and (fboundp 'w32--menu-bar-in-use)
1804 (w32--menu-bar-in-use))
1805 (setq blink-cursor-blinks-done (1+ blink-cursor-blinks-done)))
1801 ;; Each blink is two calls to this function. 1806 ;; Each blink is two calls to this function.
1802 (setq blink-cursor-blinks-done (1+ blink-cursor-blinks-done))
1803 (when (and (> blink-cursor-blinks 0) 1807 (when (and (> blink-cursor-blinks 0)
1804 (<= (* 2 blink-cursor-blinks) blink-cursor-blinks-done)) 1808 (<= (* 2 blink-cursor-blinks) blink-cursor-blinks-done))
1805 (blink-cursor-suspend) 1809 (blink-cursor-suspend)
diff --git a/src/ChangeLog b/src/ChangeLog
index 8bffdadf66c..a2ac5389f20 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12015-02-23 Eli Zaretskii <eliz@gnu.org>
2
3 * w32fns.c (Fw32__menu_bar_in_use): New internal function.
4 (Bug#19925)
5
12015-02-20 Glenn Morris <rgm@gnu.org> 62015-02-20 Glenn Morris <rgm@gnu.org>
2 7
3 * fileio.c (Fmake_temp_name): Doc tweaks. (Bug#19858) 8 * fileio.c (Fmake_temp_name): Doc tweaks. (Bug#19858)
diff --git a/src/w32fns.c b/src/w32fns.c
index 5af36b9a0c8..ed110317d17 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -8063,6 +8063,15 @@ w32_sys_ring_bell (struct frame *f)
8063 MessageBeep (sound_type); 8063 MessageBeep (sound_type);
8064} 8064}
8065 8065
8066DEFUN ("w32--menu-bar-in-use", Fw32__menu_bar_in_use, Sw32__menu_bar_in_use,
8067 0, 0, 0,
8068 doc: /* Return non-nil when a menu-bar menu is being used.
8069Internal use only. */)
8070 (void)
8071{
8072 return menubar_in_use ? Qt : Qnil;
8073}
8074
8066 8075
8067/*********************************************************************** 8076/***********************************************************************
8068 Initialization 8077 Initialization
@@ -8439,6 +8448,7 @@ only be necessary if the default setting causes problems. */);
8439 defsubr (&Sw32_window_exists_p); 8448 defsubr (&Sw32_window_exists_p);
8440 defsubr (&Sw32_frame_rect); 8449 defsubr (&Sw32_frame_rect);
8441 defsubr (&Sw32_battery_status); 8450 defsubr (&Sw32_battery_status);
8451 defsubr (&Sw32__menu_bar_in_use);
8442 8452
8443#ifdef WINDOWSNT 8453#ifdef WINDOWSNT
8444 defsubr (&Sfile_system_info); 8454 defsubr (&Sfile_system_info);