--- sourceforge.net/trunk/rdesktop/xwin.c 2000/09/28 07:04:14 16 +++ sourceforge.net/trunk/rdesktop/xwin.c 2000/09/28 15:54:11 17 @@ -491,8 +491,9 @@ } } -void ui_draw_text(uint8 font, uint8 flags, int mixmode, int x, - int y, int boxx, int boxy, int boxcx, int boxcy, +void ui_draw_text(uint8 font, uint8 flags, int mixmode, int x, int y, + int clipx, int clipy, int clipcx, int clipcy, + int boxx, int boxy, int boxcx, int boxcy, int bgcolour, int fgcolour, uint8 *text, uint8 length) { FONTGLYPH *glyph; @@ -502,12 +503,19 @@ { ui_rect(boxx, boxy, boxcx, boxcy, bgcolour); } + else if (mixmode == MIX_OPAQUE) + { + ui_rect(clipx, clipy, clipcx, clipcy, bgcolour); + } /* Paint text, character by character */ for (i = 0; i < length; i++) { glyph = cache_get_font(font, text[i]); + if (!(flags & TEXT2_IMPLICIT_X)) + x += text[++i]; + if (glyph != NULL) { ui_draw_glyph(mixmode, x, @@ -518,8 +526,6 @@ if (flags & TEXT2_IMPLICIT_X) x += glyph->width; - else - x += text[++i]; } } }