Fixes (?) for font problems with Microsoft Office

Added URL to website http://www.rdesktop.org/
Releasing 0.9.0-alpha2


git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@16 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
Matt Chapman 2000-09-28 15:54:11 +00:00
parent f032bc75af
commit 7c41cdc1d0
6 changed files with 19 additions and 42 deletions

View File

@ -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 <matthewc@cse.unsw.edu.au>
rdesktop Author

View File

@ -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); cache_put_text(os->text[os->length+1], os->text, os->length);
} }
ui_draw_text(os->font, os->flags, os->mixmode, ui_draw_text(os->font, os->flags, os->mixmode, os->x, os->y,
os->x, os->y, os->boxleft, os->boxtop, os->clipleft, os->cliptop,
os->clipright - os->clipleft,
os->clipbottom - os->cliptop,
os->boxleft, os->boxtop,
os->boxright - os->boxleft, os->boxright - os->boxleft,
os->boxbottom - os->boxtop, os->boxbottom - os->boxtop,
os->bgcolour, os->fgcolour, os->text, os->length); os->bgcolour, os->fgcolour, os->text, os->length);

View File

@ -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_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_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_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_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); void ui_desktop_restore(uint32 offset, int x, int y, int cx, int cy);

View File

@ -59,7 +59,8 @@ int main(int argc, char *argv[])
int c; int c;
STATUS("rdesktop: A Remote Desktop Protocol client.\n"); 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) while ((c = getopt(argc, argv, "u:n:w:h:k:mbl?")) != -1)
{ {

View File

@ -21,7 +21,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#define VERSION "0.9.0-alpha1" #define VERSION "0.9.0-alpha2"
#define STATUS(args...) fprintf(stderr, args); #define STATUS(args...) fprintf(stderr, args);
#define ERROR(args...) fprintf(stderr, "ERROR: "args); #define ERROR(args...) fprintf(stderr, "ERROR: "args);

14
xwin.c
View File

@ -491,8 +491,9 @@ void ui_draw_glyph(int mixmode,
} }
} }
void ui_draw_text(uint8 font, uint8 flags, int mixmode, int x, void ui_draw_text(uint8 font, uint8 flags, int mixmode, int x, int y,
int y, int boxx, int boxy, int boxcx, int boxcy, int clipx, int clipy, int clipcx, int clipcy,
int boxx, int boxy, int boxcx, int boxcy,
int bgcolour, int fgcolour, uint8 *text, uint8 length) int bgcolour, int fgcolour, uint8 *text, uint8 length)
{ {
FONTGLYPH *glyph; 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); ui_rect(boxx, boxy, boxcx, boxcy, bgcolour);
} }
else if (mixmode == MIX_OPAQUE)
{
ui_rect(clipx, clipy, clipcx, clipcy, bgcolour);
}
/* Paint text, character by character */ /* Paint text, character by character */
for (i = 0; i < length; i++) for (i = 0; i < length; i++)
{ {
glyph = cache_get_font(font, text[i]); glyph = cache_get_font(font, text[i]);
if (!(flags & TEXT2_IMPLICIT_X))
x += text[++i];
if (glyph != NULL) if (glyph != NULL)
{ {
ui_draw_glyph(mixmode, x, 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) if (flags & TEXT2_IMPLICIT_X)
x += glyph->width; x += glyph->width;
else
x += text[++i];
} }
} }
} }