Merge branch 'unstable' into clipboard
authorMichael Jumper <zhangmaike@users.sourceforge.net>
Thu, 12 Apr 2012 08:19:56 +0000 (01:19 -0700)
committerMichael Jumper <zhangmaike@users.sourceforge.net>
Thu, 12 Apr 2012 08:19:56 +0000 (01:19 -0700)
1  2 
src/client.c

diff --combined src/client.c
@@@ -91,10 -91,6 +91,10 @@@ enum ARGS_IDX 
      IDX_COLOR_DEPTH
  };
  
 +int __guac_receive_channel_data(freerdp* rdp_inst, int channelId, uint8* data, int size, int flags, int total_size) {
 +    return freerdp_channels_data(rdp_inst, channelId, data, size, flags, total_size);
 +}
 +
  boolean rdp_freerdp_pre_connect(freerdp* instance) {
  
      rdpContext* context = instance->context;
      rdpPrimaryUpdate* primary;
      CLRCONV* clrconv;
  
 +    /* Load clipboard plugin */
 +    freerdp_channels_load_plugin(channels, instance->settings, "cliprdr", NULL);
 +
      /* Init color conversion structure */
      clrconv = xnew(CLRCONV);
      clrconv->alpha = 1;
      xfree(pointer);
  
      /* Set up GDI */
+     instance->update->EndPaint = guac_rdp_gdi_end_paint;
      instance->update->Palette = guac_rdp_gdi_palette_update;
      instance->update->SetBounds = guac_rdp_gdi_set_bounds;
  
@@@ -199,10 -193,6 +200,6 @@@ boolean rdp_freerdp_post_connect(freerd
      client->mouse_handler = rdp_guac_client_mouse_handler;
      client->key_handler = rdp_guac_client_key_handler;
  
-     /* Send size */
-     guac_protocol_send_size(client->socket, GUAC_DEFAULT_LAYER,
-             instance->settings->width, instance->settings->height);
      return true;
  
  }
@@@ -281,7 -271,6 +278,7 @@@ int guac_client_init(guac_client* clien
      rdp_inst = freerdp_new();
      rdp_inst->PreConnect = rdp_freerdp_pre_connect;
      rdp_inst->PostConnect = rdp_freerdp_post_connect;
 +    rdp_inst->ReceiveChannelData = __guac_receive_channel_data;
  
      /* Allocate FreeRDP context */
      rdp_inst->context_size = sizeof(rdp_freerdp_context);
      /* Send connection name */
      guac_protocol_send_name(client->socket, settings->window_title);
  
+     /* Send size */
+     guac_protocol_send_size(client->socket, GUAC_DEFAULT_LAYER,
+             settings->width, settings->height);
+     /* Create glyph surfaces */
+     guac_client_data->opaque_glyph_surface = cairo_image_surface_create(
+             CAIRO_FORMAT_RGB24, settings->width, settings->height);
+     guac_client_data->trans_glyph_surface = cairo_image_surface_create(
+             CAIRO_FORMAT_ARGB32, settings->width, settings->height);
      /* Success */
      return 0;