changeset 111361:1b94785df959

Backport from trunk.
author Chong Yidong <cyd@stupidchicken.com>
date Thu, 04 Nov 2010 15:34:11 -0400
parents 3c958232fff8
children 6a193fac7810
files src/ChangeLog src/xfns.c
diffstat 2 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Thu Nov 04 15:27:46 2010 -0400
+++ b/src/ChangeLog	Thu Nov 04 15:34:11 2010 -0400
@@ -1,3 +1,8 @@
+2010-04-09  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* xfns.c (Fx_show_tip): Call try_window in a loop until
+	fonts_changed_p is zero (Bug#2423).
+
 2010-11-04  Jan Djärv  <jan.h.d@swipnet.se>
 
 	* xfns.c (x_real_positions): Only use _NET_FRAME_EXTENTS if our
--- a/src/xfns.c	Thu Nov 04 15:27:46 2010 -0400
+++ b/src/xfns.c	Thu Nov 04 15:34:11 2010 -0400
@@ -5221,10 +5221,14 @@
   old_buffer = current_buffer;
   set_buffer_internal_1 (XBUFFER (XWINDOW (FRAME_ROOT_WINDOW (f))->buffer));
   current_buffer->truncate_lines = Qnil;
-  clear_glyph_matrix (w->desired_matrix);
-  clear_glyph_matrix (w->current_matrix);
-  SET_TEXT_POS (pos, BEGV, BEGV_BYTE);
-  try_window (FRAME_ROOT_WINDOW (f), pos, 0);
+
+  do {
+    fonts_changed_p = 0;
+    clear_glyph_matrix (w->desired_matrix);
+    clear_glyph_matrix (w->current_matrix);
+    SET_TEXT_POS (pos, BEGV, BEGV_BYTE);
+    try_window (FRAME_ROOT_WINDOW (f), pos, 0);
+  } while (fonts_changed_p);
 
   /* Compute width and height of the tooltip.  */
   width = height = 0;