Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
d522e75104
@ -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));
|
||||||
|
@ -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);
|
||||||
|
@ -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 */
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -39,7 +39,13 @@
|
|||||||
#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)
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user