diff options
Diffstat (limited to '0002-freerdp2-32bpp.patch')
-rw-r--r-- | 0002-freerdp2-32bpp.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/0002-freerdp2-32bpp.patch b/0002-freerdp2-32bpp.patch new file mode 100644 index 0000000..f429c1c --- /dev/null +++ b/0002-freerdp2-32bpp.patch @@ -0,0 +1,57 @@ +diff --git a/plugins/rdp/vinagre-rdp-tab.c b/plugins/rdp/vinagre-rdp-tab.c +index b731f9b..7c806bf 100644 +--- a/plugins/rdp/vinagre-rdp-tab.c ++++ b/plugins/rdp/vinagre-rdp-tab.c +@@ -574,45 +574,49 @@ frdp_pre_connect (freerdp *instance) + settings->order_support[NEG_POLYGON_CB_INDEX] = false; + settings->order_support[NEG_ELLIPSE_SC_INDEX] = false; + settings->order_support[NEG_ELLIPSE_CB_INDEX] = false; + #endif + + return TRUE; + } + + static BOOL + frdp_post_connect (freerdp *instance) + { + VinagreRdpTab *rdp_tab = ((frdpContext *) instance->context)->rdp_tab; + VinagreRdpTabPrivate *priv = rdp_tab->priv; + rdpGdi *gdi; + int stride; + + gdi_init (instance, + #if defined(FREERDP_VERSION_MAJOR) && defined(FREERDP_VERSION_MINOR) && \ + !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && \ + FREERDP_VERSION_MINOR >= 2)) +- CLRBUF_24BPP, ++ CLRBUF_24BPP, NULL + #else +- CLRBUF_32BPP, ++#ifdef CLRBUF_32BPP ++ CLRBUF_32BPP, NULL ++#else ++ PIXEL_FORMAT_BGRA32 ++#endif + #endif +- NULL); ++ ); + gdi = instance->context->gdi; + + instance->update->BeginPaint = frdp_begin_paint; + instance->update->EndPaint = frdp_end_paint; + + stride = cairo_format_stride_for_width (CAIRO_FORMAT_RGB24, gdi->width); + rdp_tab->priv->surface = cairo_image_surface_create_for_data ((unsigned char*) gdi->primary_buffer, + CAIRO_FORMAT_RGB24, + gdi->width, + gdi->height, + stride); + gtk_widget_queue_draw_area (priv->display, + 0, 0, + gdi->width, gdi->height); + + vinagre_tab_save_credentials_in_keyring (VINAGRE_TAB (rdp_tab)); + vinagre_tab_add_recent_used (VINAGRE_TAB (rdp_tab)); + vinagre_tab_set_state (VINAGRE_TAB (rdp_tab), VINAGRE_TAB_STATE_CONNECTED); + + return TRUE; |