diff --git a/ANNOUNCE b/ANNOUNCE deleted file mode 100644 index 012348a..0000000 --- a/ANNOUNCE +++ /dev/null @@ -1,33 +0,0 @@ -=============================== -ANNOUNCING rdesktop 0.9.0alpha1 -=============================== - -rdesktop is an open source client for Windows NT Terminal Server, -capable of natively speaking its Remote Desktop Protocol. No server -extensions are required. - -0.9.0alpha1 is a milestone release including experimental support for -much of the protocol. It is NOT a stable, production-quality release. -Users should be prepared to submit bug reports and, ideally, patches. - -The current X-Windows driver is rather limited - an Xlib guru's -assistance would be appreciated. In particular, this version requires -the X display to support windows of 8-bit depth, which in most cases -means running X in 8-bit mode. Keyboard mapping may also be problematic. - -The -l option will disable licence negotiation, which is probably -what you want during testing. - -Tested platforms include Linux, Solaris and OSF1, but it is should be -fairly straight-forward to port to other platforms and even windowing -systems. - -rdesktop is released under the GNU Public License. - -See http://www.cse.unsw.edu.au/~matthewc/rdesktop/ for more information -and download instructions. Please send feedback to me. - -Cheers, - -Matt Chapman -rdesktop Author diff --git a/orders.c b/orders.c index b5c0b10..22bd385 100644 --- a/orders.c +++ b/orders.c @@ -618,8 +618,11 @@ static void process_text2(STREAM s, TEXT2_ORDER *os, uint32 present, BOOL delta) cache_put_text(os->text[os->length+1], os->text, os->length); } - ui_draw_text(os->font, os->flags, os->mixmode, - os->x, os->y, os->boxleft, os->boxtop, + ui_draw_text(os->font, os->flags, os->mixmode, os->x, os->y, + os->clipleft, os->cliptop, + os->clipright - os->clipleft, + os->clipbottom - os->cliptop, + os->boxleft, os->boxtop, os->boxright - os->boxleft, os->boxbottom - os->boxtop, os->bgcolour, os->fgcolour, os->text, os->length); diff --git a/proto.h b/proto.h index 1d39056..4fea04c 100644 --- a/proto.h +++ b/proto.h @@ -90,6 +90,6 @@ void ui_triblt(uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx void ui_line(uint8 opcode, int startx, int starty, int endx, int endy, PEN *pen); void ui_rect(int x, int y, int cx, int cy, int colour); void ui_draw_glyph(int mixmode, int x, int y, int cx, int cy, HGLYPH glyph, int srcx, int srcy, int bgcolour, int fgcolour); -void ui_draw_text(uint8 font, uint8 flags, int mixmode, int x, int y, int boxx, int boxy, int boxcx, int boxcy, int bgcolour, int fgcolour, uint8 *text, uint8 length); +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); void ui_desktop_save(uint32 offset, int x, int y, int cx, int cy); void ui_desktop_restore(uint32 offset, int x, int y, int cx, int cy); diff --git a/rdesktop.c b/rdesktop.c index 6edf484..1dd0e3f 100644 --- a/rdesktop.c +++ b/rdesktop.c @@ -59,7 +59,8 @@ int main(int argc, char *argv[]) int c; STATUS("rdesktop: A Remote Desktop Protocol client.\n"); - STATUS("Version "VERSION". Copyright (C) 1999-2000 Matt Chapman.\n\n"); + STATUS("Version "VERSION". Copyright (C) 1999-2000 Matt Chapman.\n"); + STATUS("See http://www.rdesktop.org/ for more information.\n\n"); while ((c = getopt(argc, argv, "u:n:w:h:k:mbl?")) != -1) { diff --git a/rdesktop.h b/rdesktop.h index c7254fd..1eaa156 100644 --- a/rdesktop.h +++ b/rdesktop.h @@ -21,7 +21,7 @@ #include #include -#define VERSION "0.9.0-alpha1" +#define VERSION "0.9.0-alpha2" #define STATUS(args...) fprintf(stderr, args); #define ERROR(args...) fprintf(stderr, "ERROR: "args); diff --git a/xwin.c b/xwin.c index 5814bdb..9a209af 100644 --- a/xwin.c +++ b/xwin.c @@ -491,8 +491,9 @@ void ui_draw_glyph(int mixmode, } } -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 @@ void ui_draw_text(uint8 font, uint8 flags, int mixmode, int x, { 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 @@ void ui_draw_text(uint8 font, uint8 flags, int mixmode, int x, if (flags & TEXT2_IMPLICIT_X) x += glyph->width; - else - x += text[++i]; } } }