diff options
| author | Jan D | 2015-04-03 13:59:05 +0200 |
|---|---|---|
| committer | Jan D | 2015-04-03 13:59:18 +0200 |
| commit | c775195c62843deed10e7967e488b3b04b84c412 (patch) | |
| tree | ad7ebaf9a57688436c69be4919492f52a495a99c /src | |
| parent | 7c691f32f78303750d29972a29dcc6754fae257a (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | src/xterm.c | 17 |
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 @@ | |||
| 1 | 2015-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 | |||
| 1 | 2015-03-31 Eli Zaretskii <eliz@gnu.org> | 6 | 2015-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); |