Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntenore Gatta <antenore@simbiosi.org>2014-07-15 01:38:29 +0400
committerAntenore Gatta <antenore@simbiosi.org>2014-07-15 01:38:29 +0400
commitdba37040048857fff218a74f5bbb791d22a504ba (patch)
tree8ba6a75fed94e3d0b17f4b63d89cfb79132a2309 /remmina-plugins/rdp
parentff81efcb08576ca659b775a659195f22a48aed09 (diff)
parentfe1c9f72b535fd9ccbdaf70b75327e9840582508 (diff)
Merge github.com:repzilon/Remmina into antenore_20140714
Test repzilon fixes
Diffstat (limited to 'remmina-plugins/rdp')
-rw-r--r--remmina-plugins/rdp/16x16/emblems/remmina-rdp-ssh.pngbin900 -> 803 bytes
-rw-r--r--remmina-plugins/rdp/16x16/emblems/remmina-rdp.pngbin867 -> 747 bytes
-rw-r--r--remmina-plugins/rdp/22x22/emblems/remmina-rdp-ssh.pngbin1392 -> 1273 bytes
-rw-r--r--remmina-plugins/rdp/22x22/emblems/remmina-rdp.pngbin1323 -> 1181 bytes
-rw-r--r--remmina-plugins/rdp/rdp_cliprdr.c3
-rw-r--r--remmina-plugins/rdp/rdp_event.c13
-rw-r--r--remmina-plugins/rdp/rdp_gdi.c2
-rw-r--r--remmina-plugins/rdp/rdp_graphics.c26
-rw-r--r--remmina-plugins/rdp/rdp_plugin.c2
9 files changed, 35 insertions, 11 deletions
diff --git a/remmina-plugins/rdp/16x16/emblems/remmina-rdp-ssh.png b/remmina-plugins/rdp/16x16/emblems/remmina-rdp-ssh.png
index 15ec78a18..9defcd6f6 100644
--- a/remmina-plugins/rdp/16x16/emblems/remmina-rdp-ssh.png
+++ b/remmina-plugins/rdp/16x16/emblems/remmina-rdp-ssh.png
Binary files differ
diff --git a/remmina-plugins/rdp/16x16/emblems/remmina-rdp.png b/remmina-plugins/rdp/16x16/emblems/remmina-rdp.png
index 2ede1faf7..2d7724312 100644
--- a/remmina-plugins/rdp/16x16/emblems/remmina-rdp.png
+++ b/remmina-plugins/rdp/16x16/emblems/remmina-rdp.png
Binary files differ
diff --git a/remmina-plugins/rdp/22x22/emblems/remmina-rdp-ssh.png b/remmina-plugins/rdp/22x22/emblems/remmina-rdp-ssh.png
index cf2ec0cd7..e977bb3b7 100644
--- a/remmina-plugins/rdp/22x22/emblems/remmina-rdp-ssh.png
+++ b/remmina-plugins/rdp/22x22/emblems/remmina-rdp-ssh.png
Binary files differ
diff --git a/remmina-plugins/rdp/22x22/emblems/remmina-rdp.png b/remmina-plugins/rdp/22x22/emblems/remmina-rdp.png
index fa9623842..feb093c09 100644
--- a/remmina-plugins/rdp/22x22/emblems/remmina-rdp.png
+++ b/remmina-plugins/rdp/22x22/emblems/remmina-rdp.png
Binary files differ
diff --git a/remmina-plugins/rdp/rdp_cliprdr.c b/remmina-plugins/rdp/rdp_cliprdr.c
index 313aa1b75..972b06c43 100644
--- a/remmina-plugins/rdp/rdp_cliprdr.c
+++ b/remmina-plugins/rdp/rdp_cliprdr.c
@@ -112,7 +112,7 @@ static UINT8* lf2crlf(UINT8* data, int* size)
return outbuf;
}
-static void crlf2lf(UINT8* data, int* size)
+static void crlf2lf(UINT8* data, size_t* size)
{
UINT8 c;
UINT8* out;
@@ -252,6 +252,7 @@ void remmina_rdp_cliprdr_process_data_response(RemminaProtocolWidget* gp, RDP_CB
data = Stream_Buffer(s);
size = Stream_Length(s);
+ Stream_Free(s, TRUE);
pixbuf = gdk_pixbuf_loader_new();
gdk_pixbuf_loader_write(pixbuf, data, size, NULL);
Stream_Free(s, TRUE);
diff --git a/remmina-plugins/rdp/rdp_event.c b/remmina-plugins/rdp/rdp_event.c
index 8dacbe292..5b536d220 100644
--- a/remmina-plugins/rdp/rdp_event.c
+++ b/remmina-plugins/rdp/rdp_event.c
@@ -677,16 +677,24 @@ static void remmina_rdp_event_connected(RemminaProtocolWidget* gp, RemminaPlugin
static void remmina_rdp_event_create_cursor(RemminaProtocolWidget* gp, RemminaPluginRdpUiObject* ui)
{
- cairo_surface_t* surface;
GdkPixbuf* pixbuf;
rfContext* rfi = GET_DATA(gp);
rdpPointer* pointer = (rdpPointer*)ui->cursor.pointer;
+#if GTK_VERSION == 3
+ cairo_surface_t* surface;
UINT8* data = malloc(pointer->width * pointer->height * 4);
+#else
+ guchar *data = g_malloc0(pointer->width * pointer->height * 4);
+#endif
freerdp_alpha_cursor_convert(data, pointer->xorMaskData, pointer->andMaskData, pointer->width, pointer->height, pointer->xorBpp, rfi->clrconv);
+#if GTK_VERSION == 3
surface = cairo_image_surface_create_for_data(data, CAIRO_FORMAT_ARGB32, pointer->width, pointer->height, cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, pointer->width));
pixbuf = gdk_pixbuf_get_from_surface(surface, 0, 0, pointer->width, pointer->height);
cairo_surface_destroy(surface);
+#else
+ pixbuf = gdk_pixbuf_new_from_data(data, GDK_COLORSPACE_RGB, TRUE, 8, pointer->width, pointer->height, (pointer->width * 4), NULL, NULL);
+#endif
((rfPointer*)ui->cursor.pointer)->cursor = gdk_cursor_new_from_pixbuf(rfi->display, pixbuf, pointer->xPos, pointer->yPos);
}
@@ -695,7 +703,10 @@ static void remmina_rdp_event_free_cursor(RemminaProtocolWidget* gp, RemminaPlug
rfContext* rfi = GET_DATA(gp);
g_mutex_lock(rfi->gmutex);
+ /* Ugly leak with GTK2, otherwise g_object_unref segfaults */
+#if GTK_VERSION == 3
g_object_unref(ui->cursor.pointer->cursor);
+#endif
ui->cursor.pointer->cursor = NULL;
g_cond_signal(rfi->gcond);
g_mutex_unlock(rfi->gmutex);
diff --git a/remmina-plugins/rdp/rdp_gdi.c b/remmina-plugins/rdp/rdp_gdi.c
index edf29df65..e1d0ab4c5 100644
--- a/remmina-plugins/rdp/rdp_gdi.c
+++ b/remmina-plugins/rdp/rdp_gdi.c
@@ -127,7 +127,7 @@ static void rf_gdi_surface_bits(rdpContext* context, SURFACE_BITS_COMMAND* surfa
}
else if (surface_bits_command->codecID == RDP_CODEC_ID_NONE)
{
- bitmap = (UINT8*) malloc(surface_bits_command->width * surface_bits_command->height * 4);
+ bitmap = (UINT8*) calloc(1, surface_bits_command->width * surface_bits_command->height * 4);
freerdp_image_flip(surface_bits_command->bitmapData, bitmap,
surface_bits_command->width, surface_bits_command->height, 32);
diff --git a/remmina-plugins/rdp/rdp_graphics.c b/remmina-plugins/rdp/rdp_graphics.c
index 1fa429785..e1065a316 100644
--- a/remmina-plugins/rdp/rdp_graphics.c
+++ b/remmina-plugins/rdp/rdp_graphics.c
@@ -49,7 +49,7 @@ void rf_Bitmap_New(rdpContext* context, rdpBitmap* bitmap)
data = freerdp_image_convert(bitmap->data, NULL,
bitmap->width, bitmap->height, rfi->srcBpp, rfi->bpp, rfi->clrconv);
- if (bitmap->ephemeral != true)
+ if (bitmap->ephemeral != TRUE)
{
image = XCreateImage(rfi->display, rfi->visual, rfi->depth,
ZPixmap, 0, (char*) data, bitmap->width, bitmap->height, rfi->scanline_pad, 0);
@@ -57,13 +57,13 @@ void rf_Bitmap_New(rdpContext* context, rdpBitmap* bitmap)
XPutImage(rfi->display, pixmap, rfi->gc, image, 0, 0, 0, 0, bitmap->width, bitmap->height);
XFree(image);
- if (data != bitmap->data)
- xfree(data);
+ if (data != bitmap->data) && (data != NULL)
+ free(data);
}
else
{
- if (data != bitmap->data)
- xfree(bitmap->data);
+ if (data != bitmap->data) && (data != NULL)
+ free(bitmap->data);
bitmap->data = data;
}
@@ -135,7 +135,7 @@ void rf_Bitmap_Decompress(rdpContext* context, rdpBitmap* bitmap,
status = bitmap_decompress(data, bitmap->data, width, height, length, bpp, bpp);
- if (status != true)
+ if (status != TRUE)
{
printf("Bitmap Decompression Failed\n");
}
@@ -145,7 +145,7 @@ void rf_Bitmap_Decompress(rdpContext* context, rdpBitmap* bitmap,
freerdp_image_flip(data, bitmap->data, width, height, bpp);
}
- bitmap->compressed = false;
+ bitmap->compressed = FALSE;
bitmap->length = size;
bitmap->bpp = bpp;
#endif
@@ -186,7 +186,11 @@ void rf_Pointer_Free(rdpContext* context, rdpPointer* pointer)
RemminaPluginRdpUiObject* ui;
rfContext* rfi = (rfContext*) context;
+#if GTK_VERSION == 2
+ if (((rfPointer*) pointer)->cursor != NULL)
+#else
if (G_IS_OBJECT(((rfPointer*) pointer)->cursor))
+#endif
{
ui = g_new0(RemminaPluginRdpUiObject, 1);
ui->type = REMMINA_RDP_UI_CURSOR;
@@ -196,7 +200,11 @@ void rf_Pointer_Free(rdpContext* context, rdpPointer* pointer)
rf_queue_ui(rfi->protocol_widget, ui);
g_mutex_lock(rfi->gmutex);
+#if GTK_VERSION == 2
+ while (((rfPointer*) pointer)->cursor != NULL)
+#else
while (G_IS_OBJECT(((rfPointer*) pointer)->cursor))
+#endif
{
g_cond_wait(rfi->gcond, rfi->gmutex);
}
@@ -355,6 +363,7 @@ void rf_register_graphics(rdpGraphics* graphics)
pointer = (rdpPointer*) malloc(sizeof(rdpPointer));
ZeroMemory(pointer, sizeof(rdpPointer));
+
pointer->size = sizeof(rfPointer);
pointer->New = rf_Pointer_New;
@@ -364,10 +373,12 @@ void rf_register_graphics(rdpGraphics* graphics)
pointer->SetDefault = rf_Pointer_SetDefault;
graphics_register_pointer(graphics, pointer);
+
free(pointer);
glyph = (rdpGlyph*) malloc(sizeof(rdpGlyph));
ZeroMemory(glyph, sizeof(rdpGlyph));
+
glyph->size = sizeof(rfGlyph);
glyph->New = rf_Glyph_New;
@@ -377,5 +388,6 @@ void rf_register_graphics(rdpGraphics* graphics)
glyph->EndDraw = rf_Glyph_EndDraw;
graphics_register_glyph(graphics, glyph);
+
free(glyph);
}
diff --git a/remmina-plugins/rdp/rdp_plugin.c b/remmina-plugins/rdp/rdp_plugin.c
index 7ab89ec7c..6c1e3cca9 100644
--- a/remmina-plugins/rdp/rdp_plugin.c
+++ b/remmina-plugins/rdp/rdp_plugin.c
@@ -306,7 +306,7 @@ static BOOL remmina_rdp_post_connect(freerdp* instance)
pointer_cache_register_callbacks(instance->update);
/*
- if (rfi->sw_gdi != true)
+ if (rfi->sw_gdi != TRUE)
{
glyph_cache_register_callbacks(instance->update);
brush_cache_register_callbacks(instance->update);