]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't optimized away tool tip redraw, may lead to corrupted text.
authorJan D <jan.h.d@swipnet.se>
Fri, 3 Apr 2015 11:59:05 +0000 (13:59 +0200)
committerJan D <jan.h.d@swipnet.se>
Fri, 3 Apr 2015 11:59:18 +0000 (13:59 +0200)
* src/xterm.c (handle_one_xevent): Always redraw tool tips on
MapNotify.  Update tool tip frame sizes on ConfigureNotify.

src/ChangeLog
src/xterm.c

index 7c7892a3fe847d126c9dc189c805712d7ba46f05..09225f26dfc538798029024a1f3ef603077063fc 100644 (file)
@@ -1,3 +1,8 @@
+2015-04-03  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xterm.c (handle_one_xevent): Always redraw tool tips on
+       MapNotify.  Update tool tip frame sizes on ConfigureNotify.
+
 2015-03-31  Eli Zaretskii  <eliz@gnu.org>
 
        * keyboard.c (read_key_sequence): Don't let
index bdc85ae71fc3417785f5ad34c058e6f9b0b29898..e904343387cd38dbace77da873fd3905b52afdaf 100644 (file)
@@ -7010,11 +7010,6 @@ handle_one_xevent (struct x_display_info *dpyinfo,
       goto OTHER;
 
     case MapNotify:
-      if (event->xmap.window == tip_window)
-        /* The tooltip has been drawn already.  Avoid
-           the SET_FRAME_GARBAGED below.  */
-        goto OTHER;
-
       /* We use x_top_window_to_frame because map events can
          come for sub-windows and they don't mean that the
          frame is visible.  */
@@ -7544,6 +7539,18 @@ handle_one_xevent (struct x_display_info *dpyinfo,
         {
          x_net_wm_state (f, event->xconfigure.window);
 
+#ifdef USE_X_TOOLKIT
+          /* Tip frames are pure X window, set size for them.  */
+          if (! NILP (tip_frame) && XFRAME (tip_frame) == f)
+            {
+              if (FRAME_PIXEL_HEIGHT (f) != event->xconfigure.height
+                  || FRAME_PIXEL_WIDTH (f) != event->xconfigure.width)
+                SET_FRAME_GARBAGED (f);
+              FRAME_PIXEL_HEIGHT (f) = event->xconfigure.height;
+              FRAME_PIXEL_WIDTH (f) = event->xconfigure.width;
+            }
+#endif
+
 #ifndef USE_X_TOOLKIT
 #ifndef USE_GTK
           int width = FRAME_PIXEL_TO_TEXT_WIDTH (f, event->xconfigure.width);