Package: freerdp-x11 Followup-For: Bug #778650 Dear Maintainer,
I sent a patch which is adjusted for current Debian package 1.1.0~git20140921.1.440916e+dfsg1-5. I also prepared package in mentors.debian.net, in case you'd be willing to sponsor my package. http://mentors.debian.net/package/freerdp You can pull my changes from https://github.com/pevik/debian-freerdp.git, branch fix-bug-778650 Kind regards, Petr -- System Information: Debian Release: stretch/sid APT prefers unstable APT policy: (900, 'unstable'), (500, 'stable'), (500, 'oldstable'), (100, 'testing'), (50, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.2.0-rc6-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=cs_CZ.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages freerdp-x11 depends on: ii libc6 2.19-22 ii libfreerdp-cache1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-client1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-codec1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-common1.1.0 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-core1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-crypto1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-gdi1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-locale1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-primitives1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-rail1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libfreerdp-utils1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libjpeg62-turbo 1:1.4.1-2 ii libssl1.0.0 1.0.2d-1 ii libwinpr-crt0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-crypto0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-dsparse0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-environment0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-file0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-handle0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-heap0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-input0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-interlocked0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-library0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-path0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-pool0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-registry0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-rpc0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-sspi0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-synch0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-sysinfo0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-thread0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libwinpr-utils0.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libx11-6 2:1.6.3-1 ii libxcursor1 1:1.1.14-1+b1 ii libxext6 2:1.3.3-1 ii libxfreerdp-client1.1 1.1.0~git20140921.1.440916e+dfsg1-5.1 ii libxi6 2:1.7.4-1+b2 ii libxinerama1 2:1.1.3-1+b1 ii libxkbfile1 1:1.0.8-1 ii libxrender1 1:0.9.8-1+b1 ii libxv1 2:1.0.10-1+b1 ii zlib1g 1:1.2.8.dfsg-2+b1 Versions of packages freerdp-x11 recommends: ii libfreerdp-plugins-standard 1.1.0~git20140921.1.440916e+dfsg1-5.1 freerdp-x11 suggests no packages. -- no debconf information
>From ffa7f0363fa4f0770d0f1ac451d7a5e87d415d7b Mon Sep 17 00:00:00 2001 From: Seray Rosh <seray.r...@web.de> Date: Fri, 27 Feb 2015 16:02:40 +0100 Subject: [PATCH] fix #778650: release keys when xfreerdp is unfocused to prevent stuck keys This fixes https://bugs.debian.org/778650 Originated from https://github.com/FreeRDP/FreeRDP/pull/2430 Cherry picked from upstream commit ffa7f0363fa4f0770d0f1ac451d7a5e87d415d7b, ported for debian/1.1.0~git20140921.1.440916e+dfsg1-5 --- Signed-off-by: Petr Vorel <petr.vo...@gmail.com> --- client/X11/xf_event.c | 1 + client/X11/xf_keyboard.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/client/X11/xf_event.c b/client/X11/xf_event.c index d59898a..2a5ff81 100644 --- a/client/X11/xf_event.c +++ b/client/X11/xf_event.c @@ -456,6 +456,7 @@ static BOOL xf_event_FocusOut(xfContext* xfc, XEvent* event, BOOL app) if (event->xfocus.mode == NotifyWhileGrabbed) XUngrabKeyboard(xfc->display, CurrentTime); + xf_kbd_release_all_keypress(xfc); xf_kbd_clear(xfc); if (app) diff --git a/client/X11/xf_keyboard.c b/client/X11/xf_keyboard.c index d7ab0fe..a2202cd 100644 --- a/client/X11/xf_keyboard.c +++ b/client/X11/xf_keyboard.c @@ -75,6 +75,12 @@ void xf_kbd_release_all_keypress(xfContext* xfc) if (xfc->pressed_keys[keycode] != NoSymbol) { rdp_scancode = freerdp_keyboard_get_rdp_scancode_from_x11_keycode(keycode); + + // release tab before releasing the windows key. + // this stops the start menu from opening on unfocus event. + if (rdp_scancode == RDP_SCANCODE_LWIN) + freerdp_input_send_keyboard_event_ex(xfc->instance->input, FALSE, RDP_SCANCODE_TAB); + freerdp_input_send_keyboard_event_ex(xfc->instance->input, FALSE, rdp_scancode); xfc->pressed_keys[keycode] = NoSymbol; } -- 2.5.0