libfreerdp-core: disable fastpath output if server does not support it
authorMarc-André Moreau <marcandre.moreau@gmail.com>
Tue, 20 Dec 2011 19:42:22 +0000 (14:42 -0500)
committerMarc-André Moreau <marcandre.moreau@gmail.com>
Tue, 20 Dec 2011 19:42:22 +0000 (14:42 -0500)
client/X11/xf_event.c
libfreerdp-core/capabilities.c

index 1d2a58f..667b301 100644 (file)
@@ -412,12 +412,16 @@ boolean xf_event_EnterNotify(xfInfo* xfi, XEvent* event, boolean app)
 
                if (xfi->focused)
                        XGrabKeyboard(xfi->display, xfi->window->handle, true, GrabModeAsync, GrabModeAsync, CurrentTime);
-       } else {
-               // Keep track of which window has focus so that we can apply pointer updates
+       }
+       else
+       {
+               /* keep track of which window has focus so that we can apply pointer updates */
+
                xfWindow* xfw;
                rdpWindow* window;
                rdpRail* rail = ((rdpContext*) xfi->context)->rail;
                window = window_list_get_by_extra_id(rail->list, (void*) event->xexpose.window);
+
                if (window != NULL)
                {
                        xfw = (xfWindow*) window->extra;
index 2dbf040..5751446 100644 (file)
@@ -119,6 +119,9 @@ void rdp_read_general_capability_set(STREAM* s, uint16 length, rdpSettings* sett
        stream_read_uint8(s, refreshRectSupport); /* refreshRectSupport (1 byte) */
        stream_read_uint8(s, suppressOutputSupport); /* suppressOutputSupport (1 byte) */
 
+       if (!(extraFlags & FASTPATH_OUTPUT_SUPPORTED))
+               settings->fastpath_output = false;
+
        if (refreshRectSupport == false)
                settings->refresh_rect = false;