summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan D <jan.h.d@swipnet.se>2010-04-09 18:49:06 +0200
committerJan D <jan.h.d@swipnet.se>2010-04-09 18:49:06 +0200
commitb13aef54997edcdceae7dab09a979f5833e6285d (patch)
tree7c27948b37a82a43c5e46ab3add49b5a4f6233dd
parent0880716f5085e0203436a436280ce2cc9fb0edad (diff)
downloademacs-b13aef54997edcdceae7dab09a979f5833e6285d.tar.gz
Fix showing the complete tip the first time, bug #2423.
* xfns.c (Fx_show_tip): Call try_window in a loop until fonts_changed_p is zero (Bug#2423).
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xfns.c12
2 files changed, 13 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0f61c91c790..cbb14a58622 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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-04-08 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (set_cursor_from_row): Don't dereference glyphs beyond
diff --git a/src/xfns.c b/src/xfns.c
index 647526cc22b..b70f20fe644 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -5225,10 +5225,14 @@ Text larger than the specified size is clipped. */)
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;