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

Reply via email to