diff src/w32term.c @ 41447:783d21cc62b9

(x_after_update_window_line): Doc fix. (w32_read_socket): Doc fix. Avoid SET_FRAME_GARBAGED for tip frames. <WM_SHOWWINDOW>: Redo mouse highlight when hiding tip frame.
author Jason Rumney <jasonr@gnu.org>
date Sat, 24 Nov 2001 17:31:06 +0000
parents 2043af2d023f
children 0c5ab6e27a8f
line wrap: on
line diff
--- a/src/w32term.c	Sat Nov 24 17:10:39 2001 +0000
+++ b/src/w32term.c	Sat Nov 24 17:31:06 2001 +0000
@@ -752,7 +752,7 @@
 /* Draw truncation mark bitmaps, continuation mark bitmaps, overlay
    arrow bitmaps, or clear the fringes if no bitmaps are required
    before DESIRED_ROW is made current.  The window being updated is
-   found in updated_window.  This function It is called from
+   found in updated_window.  This function is called from
    update_window_line only if it is known that there are differences
    between bitmaps to be drawn between current row and DESIRED_ROW.  */
 
@@ -8464,7 +8464,7 @@
   if (numchars <= 0)
     abort ();                   /* Don't think this happens. */
 
-  /* TODO: tooltips, tool-bars, ghostscript integration, mouse
+  /* TODO: tool-bars, ghostscript integration, mouse
      cursors. */
   while (get_next_msg (&msg, FALSE))
     {
@@ -8789,6 +8789,15 @@
 	  break;
 
 	case WM_SHOWWINDOW:
+	  /* wParam non-zero means Window is about to be shown, 0 means
+	     about to be hidden.  */
+	  /* Redo the mouse-highlight after the tooltip has gone.  */
+	  if (!msg.msg.wParam && msg.msg.hwnd == tip_window)
+	    {
+	      tip_window = NULL;
+	      redo_mouse_highlight ();
+	    }
+
 	  /* If window has been obscured or exposed by another window
 	     being maximised or minimised/restored, then recheck
 	     visibility of all frames.  Direct changes to our own
@@ -9068,6 +9077,11 @@
       FOR_EACH_FRAME (tail, frame)
 	{
 	  FRAME_PTR f = XFRAME (frame);
+	  /* The tooltip has been drawn already.  Avoid the
+	     SET_FRAME_GARBAGED below.  */
+	  if (f == XFRAME (tip_frame))
+	    continue;
+
 	  /* Check "visible" frames and mark each as obscured or not.
 	     Note that async_visible is nonzero for unobscured and
 	     obscured frames, but zero for hidden and iconified frames.  */