[gtk-frdp/gtk-frdp-0-1] frdp-session: Resize gdi when recreating cairo surface
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk-frdp/gtk-frdp-0-1] frdp-session: Resize gdi when recreating cairo surface
- Date: Mon, 4 Apr 2022 10:18:30 +0000 (UTC)
commit 930d64337cc54b9887f9d61d410d734a30feb5c9
Author: Felipe Borges <felipeborges gnome org>
Date: Mon Apr 4 11:39:39 2022 +0200
frdp-session: Resize gdi when recreating cairo surface
src/frdp-session.c | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)
---
diff --git a/src/frdp-session.c b/src/frdp-session.c
index 9e11759..b1bee1b 100644
--- a/src/frdp-session.c
+++ b/src/frdp-session.c
@@ -180,6 +180,13 @@ create_cairo_surface (FrdpSession *self)
}
gdi = self->priv->freerdp_session->context->gdi;
+
+ GtkWidget *scrolled = gtk_widget_get_ancestor (self->priv->display, GTK_TYPE_SCROLLED_WINDOW);
+ gdi_resize (gdi, gtk_widget_get_allocated_width (scrolled),
+ gtk_widget_get_allocated_height (scrolled));
+ gtk_widget_set_size_request (self->priv->display,
+ gdi->width, gdi->height);
+
stride = cairo_format_stride_for_width (self->priv->cairo_format, gdi->width);
self->priv->surface =
cairo_image_surface_create_for_data ((unsigned char*) gdi->primary_buffer,
@@ -197,19 +204,7 @@ frdp_session_size_allocate (GtkWidget *widget,
{
FrdpSession *self = (FrdpSession*) user_data;
- gtk_widget_realize (self->priv->display);
- GtkWidget *scrolled = gtk_widget_get_ancestor (self->priv->display, GTK_TYPE_SCROLLED_WINDOW);
- gtk_widget_queue_draw_area (self->priv->display,
- 0,
- 0,
- gtk_widget_get_allocated_width (scrolled),
- gtk_widget_get_allocated_height (scrolled));
create_cairo_surface (self);
-
- g_print ("Display size-allocate (%d, %d)\n\n", allocation->width, allocation->height);
- g_print ("SCrolled (%d, %d)\n\n",
- gtk_widget_get_allocated_width (scrolled),
- gtk_widget_get_allocated_height (scrolled));
}
static void
@@ -505,6 +500,10 @@ frdp_session_init_freerdp (FrdpSession *self)
settings->UseRdpSecurityLayer = FALSE;
settings->NegotiateSecurityLayer = TRUE;
+
+ settings->DesktopResize = TRUE;
+ settings->DynamicResolutionUpdate = TRUE;
+ settings->SupportDisplayControl = TRUE;
}
static void
@@ -559,6 +558,7 @@ frdp_session_connect_thread (GTask *task,
}
gtk_widget_realize (self->priv->display);
+ create_cairo_surface (self);
g_signal_connect (self->priv->display, "draw",
G_CALLBACK (frdp_session_draw), self);
g_signal_connect (self->priv->display, "configure-event",
@@ -568,8 +568,6 @@ frdp_session_connect_thread (GTask *task,
self->priv->update_id = g_idle_add ((GSourceFunc) update, self);
- //create_cairo_surface (self);
-
g_task_return_boolean (task, TRUE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]