From: pcg Date: Fri, 5 Mar 2004 04:43:41 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=342db2a874c5b3a3a46fcb4c1eaf96e3e7301cf4;p=dana%2Furxvt.git *** empty log message *** --- diff --git a/src/defaultfont.C b/src/defaultfont.C index 3ccc98d8..9c848ee4 100644 --- a/src/defaultfont.C +++ b/src/defaultfont.C @@ -313,6 +313,7 @@ rxvt_font_default::draw (rxvt_drawable &d, int x, int y, while (len--) { + compose_char *cc; text_t t = *text++; // is it in our linedrawing table? @@ -351,10 +352,11 @@ rxvt_font_default::draw (rxvt_drawable &d, int x, int y, gcv.line_width = 0; XChangeGC (d.display->display, GC, GCLineWidth, &gcv); } - else if (IS_COMPOSE (t)) + else if (IS_COMPOSE (t) && (cc = rxvt_composite[t])) { - const compose_char &cc = rxvt_composite[t]; - (void)0; //D ADD pseudo handling here + (*fs)[fs->find_font (cc->c1)]->draw (d, x, y, &(t = cc->c1), 1, fg, bg); + if (cc->c2 != NOCHAR) + (*fs)[fs->find_font (cc->c2)]->draw (d, x, y, &(t = cc->c2), 1, fg, -1); } else switch (t) @@ -1028,6 +1030,7 @@ rxvt_fontset::new_font (const char *name, codeset cs) else f = new rxvt_font_x11; + f->fs = this; f->set_term (r); f->set_name (strdup (name)); diff --git a/src/defaultfont.h b/src/defaultfont.h index 8efbdb0b..f588c60f 100644 --- a/src/defaultfont.h +++ b/src/defaultfont.h @@ -57,6 +57,7 @@ struct rxvt_drawable { }; struct rxvt_font { + struct rxvt_fontset *fs; // managed by the fontset rxvt_t r; void set_term (rxvt_t r) { this->r = r; }