Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Philippe Auphelle 2011-12-14 13:26:47 +01:00
commit d522e75104
11 changed files with 45 additions and 19 deletions

View File

@ -168,7 +168,7 @@ boolean df_post_connect(freerdp* instance)
context = ((dfContext*) instance->context); context = ((dfContext*) instance->context);
dfi = context->dfi; dfi = context->dfi;
gdi_init(instance, CLRCONV_ALPHA | CLRBUF_16BPP | CLRBUF_32BPP, NULL); gdi_init(instance, CLRCONV_ALPHA | CLRCONV_INVERT | CLRBUF_16BPP | CLRBUF_32BPP, NULL);
gdi = instance->context->gdi; gdi = instance->context->gdi;
dfi->err = DirectFBCreate(&(dfi->dfb)); dfi->err = DirectFBCreate(&(dfi->dfb));

View File

@ -226,7 +226,7 @@ boolean wf_post_connect(freerdp* instance)
if (wfi->sw_gdi) if (wfi->sw_gdi)
{ {
gdi_init(instance, CLRCONV_ALPHA | CLRBUF_32BPP, NULL); gdi_init(instance, CLRCONV_ALPHA | CLRCONV_INVERT | CLRBUF_32BPP, NULL);
gdi = instance->context->gdi; gdi = instance->context->gdi;
wfi->hdc = gdi->primary->hdc; wfi->hdc = gdi->primary->hdc;
wfi->primary = wf_image_new(wfi, width, height, wfi->dstBpp, gdi->primary_buffer); wfi->primary = wf_image_new(wfi, width, height, wfi->dstBpp, gdi->primary_buffer);

View File

@ -210,7 +210,7 @@ void xf_Glyph_New(rdpContext* context, rdpGlyph* glyph)
scanline = (glyph->cx + 7) / 8; scanline = (glyph->cx + 7) / 8;
xf_glyph->pixmap = XCreatePixmap(xfi->display, xfi->drawable, glyph->cx, glyph->cy, 1); xf_glyph->pixmap = XCreatePixmap(xfi->display, xfi->drawing, glyph->cx, glyph->cy, 1);
image = XCreateImage(xfi->display, xfi->visual, 1, image = XCreateImage(xfi->display, xfi->visual, 1,
ZPixmap, 0, (char*) glyph->aj, glyph->cx, glyph->cy, 8, scanline); ZPixmap, 0, (char*) glyph->aj, glyph->cx, glyph->cy, 8, scanline);
@ -242,7 +242,7 @@ void xf_Glyph_Draw(rdpContext* context, rdpGlyph* glyph, int x, int y)
XSetStipple(xfi->display, xfi->gc, xf_glyph->pixmap); XSetStipple(xfi->display, xfi->gc, xf_glyph->pixmap);
XSetTSOrigin(xfi->display, xfi->gc, x, y); XSetTSOrigin(xfi->display, xfi->gc, x, y);
XFillRectangle(xfi->display, xfi->drawable, xfi->gc, x, y, glyph->cx, glyph->cy); XFillRectangle(xfi->display, xfi->drawing, xfi->gc, x, y, glyph->cx, glyph->cy);
XSetStipple(xfi->display, xfi->gc, xfi->bitmap_mono); XSetStipple(xfi->display, xfi->gc, xfi->bitmap_mono);
} }
@ -254,8 +254,12 @@ void xf_Glyph_BeginDraw(rdpContext* context, int x, int y, int width, int height
fgcolor = freerdp_color_convert(fgcolor, xfi->srcBpp, 32, xfi->clrconv); fgcolor = freerdp_color_convert(fgcolor, xfi->srcBpp, 32, xfi->clrconv);
XSetFunction(xfi->display, xfi->gc, GXcopy); XSetFunction(xfi->display, xfi->gc, GXcopy);
XSetFillStyle(xfi->display, xfi->gc, FillSolid);
XSetForeground(xfi->display, xfi->gc, fgcolor); XSetForeground(xfi->display, xfi->gc, fgcolor);
XSetBackground(xfi->display, xfi->gc, bgcolor); XFillRectangle(xfi->display, xfi->drawing, xfi->gc, x, y, width, height);
XSetForeground(xfi->display, xfi->gc, bgcolor);
XSetBackground(xfi->display, xfi->gc, fgcolor);
XSetFillStyle(xfi->display, xfi->gc, FillStippled); XSetFillStyle(xfi->display, xfi->gc, FillStippled);
} }
@ -263,12 +267,15 @@ void xf_Glyph_EndDraw(rdpContext* context, int x, int y, int width, int height,
{ {
xfInfo* xfi = ((xfContext*) context)->xfi; xfInfo* xfi = ((xfContext*) context)->xfi;
if (xfi->remote_app != true) if (xfi->drawing == xfi->primary)
{ {
XCopyArea(xfi->display, xfi->primary, xfi->drawable, xfi->gc, x, y, width, height, x, y); if (xfi->remote_app != true)
} {
XCopyArea(xfi->display, xfi->primary, xfi->drawable, xfi->gc, x, y, width, height, x, y);
}
gdi_InvalidateRegion(xfi->hdc, x, y, width, height); gdi_InvalidateRegion(xfi->hdc, x, y, width, height);
}
} }
/* Graphics Module */ /* Graphics Module */

View File

@ -473,7 +473,7 @@ void xf_StartLocalMoveSize(xfInfo* xfi, xfWindow* window, int direction, int x,
{ {
Window child_window; Window child_window;
#ifdef WITH_DEBUG_X11_LMS #ifdef WITH_DEBUG_X11_LOCAL_MOVESIZE
rdpWindow* wnd = window->window; rdpWindow* wnd = window->window;
#endif #endif
@ -510,7 +510,7 @@ void xf_StartLocalMoveSize(xfInfo* xfi, xfWindow* window, int direction, int x,
void xf_EndLocalMoveSize(xfInfo *xfi, xfWindow *window, boolean cancel) void xf_EndLocalMoveSize(xfInfo *xfi, xfWindow *window, boolean cancel)
{ {
#ifdef WITH_DEBUG_X11_LMS #ifdef WITH_DEBUG_X11_LOCAL_MOVESIZE
rdpWindow* wnd = window->window; rdpWindow* wnd = window->window;
#endif #endif
@ -549,7 +549,7 @@ void xf_MoveWindow(xfInfo* xfi, xfWindow* window, int x, int y, int width, int h
{ {
boolean resize = false; boolean resize = false;
#ifdef WITH_DEBUG_X11_LMS #ifdef WITH_DEBUG_X11_LOCAL_MOVESIZE
rdpWindow* wnd = window->window; rdpWindow* wnd = window->window;
#endif #endif

View File

@ -587,7 +587,7 @@ boolean xf_post_connect(freerdp* instance)
rdpGdi* gdi; rdpGdi* gdi;
uint32 flags; uint32 flags;
flags = CLRCONV_ALPHA; flags = CLRCONV_ALPHA | CLRCONV_INVERT;
if (xfi->bpp > 16) if (xfi->bpp > 16)
flags |= CLRBUF_32BPP; flags |= CLRBUF_32BPP;

View File

@ -182,7 +182,7 @@ boolean tf_post_connect(freerdp* instance)
{ {
rdpGdi* gdi; rdpGdi* gdi;
gdi_init(instance, CLRCONV_ALPHA | CLRBUF_16BPP | CLRBUF_32BPP, NULL); gdi_init(instance, CLRCONV_ALPHA | CLRCONV_INVERT | CLRBUF_16BPP | CLRBUF_32BPP, NULL);
gdi = instance->context->gdi; gdi = instance->context->gdi;
instance->update->BeginPaint = tf_begin_paint; instance->update->BeginPaint = tf_begin_paint;

View File

@ -928,7 +928,7 @@ void rdp_write_bitmap_cache_cell_info(STREAM* s, BITMAP_CACHE_V2_CELL_INFO* cell
* is used to indicate a persistent bitmap cache. * is used to indicate a persistent bitmap cache.
*/ */
info = cellInfo->numEntries || (cellInfo->persistent << 31); info = (cellInfo->numEntries | (cellInfo->persistent << 31));
stream_write_uint32(s, info); stream_write_uint32(s, info);
} }
@ -1930,7 +1930,7 @@ void rdp_write_confirm_active(STREAM* s, rdpSettings* settings)
stream_write_uint16(s, 0); /* pad2Octets (2 bytes) */ stream_write_uint16(s, 0); /* pad2Octets (2 bytes) */
/* Capability Sets */ /* Capability Sets */
numberCapabilities = 14; numberCapabilities = 15;
rdp_write_general_capability_set(s, settings); rdp_write_general_capability_set(s, settings);
rdp_write_bitmap_capability_set(s, settings); rdp_write_bitmap_capability_set(s, settings);
rdp_write_order_capability_set(s, settings); rdp_write_order_capability_set(s, settings);
@ -1947,6 +1947,7 @@ void rdp_write_confirm_active(STREAM* s, rdpSettings* settings)
rdp_write_virtual_channel_capability_set(s, settings); rdp_write_virtual_channel_capability_set(s, settings);
rdp_write_sound_capability_set(s, settings); rdp_write_sound_capability_set(s, settings);
rdp_write_share_capability_set(s, settings); rdp_write_share_capability_set(s, settings);
rdp_write_font_capability_set(s, settings);
rdp_write_control_capability_set(s, settings); rdp_write_control_capability_set(s, settings);
rdp_write_color_cache_capability_set(s, settings); rdp_write_color_cache_capability_set(s, settings);
rdp_write_window_activation_capability_set(s, settings); rdp_write_window_activation_capability_set(s, settings);

View File

@ -39,9 +39,15 @@
#define DLSYM(f, n) dlsym(f, n) #define DLSYM(f, n) dlsym(f, n)
#define DLCLOSE(f) dlclose(f) #define DLCLOSE(f) dlclose(f)
#define PATH_SEPARATOR '/' #define PATH_SEPARATOR '/'
#ifdef __APPLE__
#define PLUGIN_EXT "dylib"
#else
#define PLUGIN_EXT "so" #define PLUGIN_EXT "so"
#endif #endif
#endif
static uint32 FREERDP_CC extension_register_plugin(rdpExtPlugin* plugin) static uint32 FREERDP_CC extension_register_plugin(rdpExtPlugin* plugin)
{ {
rdpExtension* ext = (rdpExtension*) plugin->ext; rdpExtension* ext = (rdpExtension*) plugin->ext;

View File

@ -663,7 +663,7 @@ void gcc_write_client_core_data(STREAM* s, rdpSettings *settings)
connectionType = 0; connectionType = 0;
earlyCapabilityFlags = RNS_UD_CS_SUPPORT_ERRINFO_PDU; earlyCapabilityFlags = RNS_UD_CS_SUPPORT_ERRINFO_PDU;
if (settings->performance_flags == PERF_FLAG_NONE) if ((settings->performance_flags & ~PERF_ENABLE_DESKTOP_COMPOSITION) == PERF_FLAG_NONE)
{ {
earlyCapabilityFlags |= RNS_UD_CS_VALID_CONNECTION_TYPE; earlyCapabilityFlags |= RNS_UD_CS_VALID_CONNECTION_TYPE;
connectionType = CONNECTION_TYPE_LAN; connectionType = CONNECTION_TYPE_LAN;

View File

@ -33,6 +33,13 @@
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <netinet/tcp.h> #include <netinet/tcp.h>
#ifdef __APPLE__
#ifndef TCP_KEEPIDLE
#define TCP_KEEPIDLE TCP_KEEPALIVE
#endif
#endif
#else #else
#define SHUT_RDWR SD_BOTH #define SHUT_RDWR SD_BOTH
#define close(_fd) closesocket(_fd) #define close(_fd) closesocket(_fd)
@ -278,9 +285,9 @@ boolean tcp_set_keep_alive_mode(rdpTcp* tcp)
option_value = 5; option_value = 5;
option_len = sizeof(option_value); option_len = sizeof(option_value);
if (setsockopt(tcp->sockfd, SOL_TCP, TCP_KEEPIDLE, (void*) &option_value, option_len) < 0) if (setsockopt(tcp->sockfd, IPPROTO_TCP, TCP_KEEPIDLE, (void*) &option_value, option_len) < 0)
{ {
perror("setsockopt() SOL_TCP, SO_KEEPIDLE:"); perror("setsockopt() IPPROTO_TCP, SO_KEEPIDLE:");
return false; return false;
} }
#endif #endif

View File

@ -40,7 +40,12 @@
#define DLSYM(f, n) dlsym(f, n) #define DLSYM(f, n) dlsym(f, n)
#define DLCLOSE(f) dlclose(f) #define DLCLOSE(f) dlclose(f)
#define PATH_SEPARATOR '/' #define PATH_SEPARATOR '/'
#ifdef __APPLE__
#define PLUGIN_EXT "dylib"
#else
#define PLUGIN_EXT "so" #define PLUGIN_EXT "so"
#endif
#endif #endif