aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan D2015-04-03 13:59:05 +0200
committerJan D2015-04-03 13:59:18 +0200
commitc775195c62843deed10e7967e488b3b04b84c412 (patch)
treead7ebaf9a57688436c69be4919492f52a495a99c /src
parent7c691f32f78303750d29972a29dcc6754fae257a (diff)
downloademacs-c775195c62843deed10e7967e488b3b04b84c412.tar.gz
emacs-c775195c62843deed10e7967e488b3b04b84c412.zip
Don't optimized away tool tip redraw, may lead to corrupted text.
* src/xterm.c (handle_one_xevent): Always redraw tool tips on MapNotify. Update tool tip frame sizes on ConfigureNotify.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xterm.c17
2 files changed, 17 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 7c7892a3fe8..09225f26dfc 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12015-04-03 Jan Djärv <jan.h.d@swipnet.se>
2
3 * xterm.c (handle_one_xevent): Always redraw tool tips on
4 MapNotify. Update tool tip frame sizes on ConfigureNotify.
5
12015-03-31 Eli Zaretskii <eliz@gnu.org> 62015-03-31 Eli Zaretskii <eliz@gnu.org>
2 7
3 * keyboard.c (read_key_sequence): Don't let 8 * keyboard.c (read_key_sequence): Don't let
diff --git a/src/xterm.c b/src/xterm.c
index bdc85ae71fc..e904343387c 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -7010,11 +7010,6 @@ handle_one_xevent (struct x_display_info *dpyinfo,
7010 goto OTHER; 7010 goto OTHER;
7011 7011
7012 case MapNotify: 7012 case MapNotify:
7013 if (event->xmap.window == tip_window)
7014 /* The tooltip has been drawn already. Avoid
7015 the SET_FRAME_GARBAGED below. */
7016 goto OTHER;
7017
7018 /* We use x_top_window_to_frame because map events can 7013 /* We use x_top_window_to_frame because map events can
7019 come for sub-windows and they don't mean that the 7014 come for sub-windows and they don't mean that the
7020 frame is visible. */ 7015 frame is visible. */
@@ -7544,6 +7539,18 @@ handle_one_xevent (struct x_display_info *dpyinfo,
7544 { 7539 {
7545 x_net_wm_state (f, event->xconfigure.window); 7540 x_net_wm_state (f, event->xconfigure.window);
7546 7541
7542#ifdef USE_X_TOOLKIT
7543 /* Tip frames are pure X window, set size for them. */
7544 if (! NILP (tip_frame) && XFRAME (tip_frame) == f)
7545 {
7546 if (FRAME_PIXEL_HEIGHT (f) != event->xconfigure.height
7547 || FRAME_PIXEL_WIDTH (f) != event->xconfigure.width)
7548 SET_FRAME_GARBAGED (f);
7549 FRAME_PIXEL_HEIGHT (f) = event->xconfigure.height;
7550 FRAME_PIXEL_WIDTH (f) = event->xconfigure.width;
7551 }
7552#endif
7553
7547#ifndef USE_X_TOOLKIT 7554#ifndef USE_X_TOOLKIT
7548#ifndef USE_GTK 7555#ifndef USE_GTK
7549 int width = FRAME_PIXEL_TO_TEXT_WIDTH (f, event->xconfigure.width); 7556 int width = FRAME_PIXEL_TO_TEXT_WIDTH (f, event->xconfigure.width);