summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2007-02-23 12:24:55 +0000
committerChris Wilson <cpwilson@src.gnome.org>2007-02-23 12:24:55 +0000
commit2b0e46223ad2952192f3aa7d2e18b0f636f843f4 (patch)
tree30853b4acb03face38ab1863e36477af24a1c555
parent7e2654510c7fe848162021a698ddba2b90cf7d59 (diff)
downloadvte-2b0e46223ad2952192f3aa7d2e18b0f636f843f4.tar.gz
Don't break a glyph run for a graphic, issue the draw and continue.
2007-02-23 Chris Wilson <chris@chris-wilson.co.uk> * src/vte.c: (vte_terminal_draw_rows): Don't break a glyph run for a graphic, issue the draw and continue. svn path=/trunk/; revision=1728
-rw-r--r--ChangeLog6
-rw-r--r--src/vte.c20
2 files changed, 22 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 13db6b8e..91d7adc0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
+ * src/vte.c: (vte_terminal_draw_rows):
+ Don't break a glyph run for a graphic, issue the draw
+ and continue.
+
+2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
+
Cache the font metrics on the vte_xft_font, avoids having to remeasure
when opening a new terminal.
diff --git a/src/vte.c b/src/vte.c
index 9d92de97..85f7906d 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -9240,6 +9240,22 @@ vte_terminal_draw_rows(VteTerminal *terminal,
selected,
FALSE,
&nfore, &nback);
+ /* Graphic characters must be drawn individually. */
+ if (vte_unichar_is_local_graphic(cell->c)) {
+ if (vte_terminal_draw_graphic(terminal,
+ cell->c,
+ nfore, nback,
+ FALSE,
+ start_x + j * column_width,
+ y,
+ column_width,
+ cell->columns,
+ row_height)) {
+
+ j += cell->columns;
+ continue;
+ }
+ }
if (nfore != fore) {
break;
}
@@ -9247,10 +9263,6 @@ vte_terminal_draw_rows(VteTerminal *terminal,
if (nbold != bold) {
break;
}
- /* Graphic characters must be drawn individually. */
- if (vte_unichar_is_local_graphic(cell->c)) {
- break;
- }
/* Break up underlined/not-underlined text. */
nunderline = cell->underline;
if (nunderline != underline) {