diff --git a/rdesktop.c b/rdesktop.c index cd35257..b83de24 100644 --- a/rdesktop.c +++ b/rdesktop.c @@ -68,9 +68,9 @@ BOOL g_hide_decorations = False; BOOL g_use_rdp5 = True; BOOL g_console_session = False; BOOL g_numlock_sync = False; -extern BOOL g_owncolmap; -extern BOOL g_ownbackstore; -extern uint32 g_embed_wnd; +BOOL g_owncolmap = False; +BOOL g_ownbackstore = True; /* We can't rely on external BackingStore */ +uint32 g_embed_wnd; uint32 g_rdp5_performanceflags = RDP5_NO_WALLPAPER | RDP5_NO_FULLWINDOWDRAG | RDP5_NO_MENUANIMATIONS; #ifdef WITH_RDPSND diff --git a/vnc/vnc.c b/vnc/vnc.c index f410adc..41b467f 100644 --- a/vnc/vnc.c +++ b/vnc/vnc.c @@ -59,8 +59,8 @@ extern int rfbClientSocket; #define BITSPERBYTES 8 #define TOBYTES(bits) ((bits)/BITSPERBYTES) -extern int width; -extern int height; +extern int g_width; +extern int g_height; extern int keylayout; extern BOOL sendmotion; #ifdef ENABLE_SHADOW @@ -74,6 +74,8 @@ int rfbClientSocket = 0; static rfbScreenInfoPtr server = NULL; static vncBuffer *frameBuffer = NULL; static uint8_t reverseByte[0x100]; +BOOL g_enable_compose = False; +int g_display=0; /* ignored */ BOOL owncolmap = False; @@ -149,7 +151,7 @@ get_key_state(unsigned int state, uint32 keysym) } void -vncKey(Bool down, KeySym keysym, struct _rfbClientRec *cl) +vncKey(rfbBool down, rfbKeySym keysym, struct _rfbClientRec *cl) { uint32 ev_time = time(NULL); key_translation tr = { 0, 0 }; @@ -272,7 +274,7 @@ rdp2vnc_connect(char *server, uint32 flags, char *domain, char *password, -extern char title[]; +extern char g_title[]; BOOL ui_create_window() { @@ -284,9 +286,9 @@ ui_create_window() (((i >> 4) & 1) << 3) | (((i >> 3) & 1) << 4) | (((i >> 2) & 1) << 5) | (((i >> 1) & 1) << 6) | (((i >> 0) & 1) << 7); - server = rfbGetScreen(0, NULL, width, height, 8, 1, 1); - server->desktopName = title; - server->frameBuffer = (char *) malloc(width * height); + server = rfbGetScreen(0, NULL, g_width, g_height, 8, 1, 1); + server->desktopName = g_title; + server->frameBuffer = (char *) malloc(g_width * g_height); server->ptrAddEvent = vncMouse; server->kbdAddEvent = vncKey; #ifdef ENABLE_SHADOW @@ -305,14 +307,14 @@ ui_create_window() server->rfbDeferUpdateTime = defer_time; frameBuffer = (vncBuffer *) malloc(sizeof(vncBuffer)); - frameBuffer->w = width; - frameBuffer->h = height; - frameBuffer->linew = width; + frameBuffer->w = g_width; + frameBuffer->h = g_height; + frameBuffer->linew = g_width; frameBuffer->data = server->frameBuffer; frameBuffer->owner = FALSE; frameBuffer->format = &server->rfbServerFormat; - ui_set_clip(0, 0, width, height); + ui_set_clip(0, 0, g_width, g_height); rfbInitServer(server); #ifndef ENABLE_SHADOW @@ -484,6 +486,11 @@ ui_destroy_cursor(HCURSOR cursor) rfbFreeCursor((rfbCursorPtr) cursor); } +void ui_set_null_cursor(void) +{ + rfbSetCursor(server, 0, FALSE); +} + HGLYPH ui_create_glyph(int width, int height, uint8 * data) { diff --git a/vnc/x11stubs.h b/vnc/x11stubs.h index 5951f92..55fe36b 100644 --- a/vnc/x11stubs.h +++ b/vnc/x11stubs.h @@ -23,6 +23,8 @@ #define Button5 5 typedef int Display; +typedef int Window; +typedef rfbKeySym KeySym; KeySym XStringToKeysym(const char *str); const char *XKeysymToString(KeySym keysym); diff --git a/xkeymap.c b/xkeymap.c index 0c351dc..51b1e31 100644 --- a/xkeymap.c +++ b/xkeymap.c @@ -602,12 +602,16 @@ ensure_remote_modifiers(uint32 ev_time, key_translation tr) unsigned int read_keyboard_state() { +#ifdef RDP2VNC + return 0; +#else unsigned int state; Window wdummy; int dummy; XQueryPointer(g_display, g_wnd, &wdummy, &wdummy, &dummy, &dummy, &dummy, &dummy, &state); return state; +#endif } diff --git a/xwin.c b/xwin.c index f547f62..50a43b3 100644 --- a/xwin.c +++ b/xwin.c @@ -43,7 +43,7 @@ Time g_last_gesturetime; static int g_x_socket; static Screen *g_screen; Window g_wnd; -uint32 g_embed_wnd; +extern uint32 g_embed_wnd; BOOL g_enable_compose = False; static GC g_gc = NULL; static Visual *g_visual; @@ -66,7 +66,7 @@ static int g_red_shift_r, g_blue_shift_r, g_green_shift_r; static int g_red_shift_l, g_blue_shift_l, g_green_shift_l; /* software backing store */ -BOOL g_ownbackstore = True; /* We can't rely on external BackingStore */ +extern BOOL g_ownbackstore; static Pixmap g_backstore = 0; /* Moving in single app mode */ @@ -115,7 +115,7 @@ PixelColour; } /* colour maps */ -BOOL g_owncolmap = False; +extern BOOL g_owncolmap; static Colormap g_xcolmap; static uint32 *g_colmap = NULL;