diff --git a/community/freerdp/PKGBUILD b/community/freerdp/PKGBUILD index b4f9f29e4..bb97794d6 100644 --- a/community/freerdp/PKGBUILD +++ b/community/freerdp/PKGBUILD @@ -6,10 +6,10 @@ # - define WITH_NEON and ARM_FP_ABI to fix retard developer assumptions pkgname=freerdp -pkgver=1.2.0_beta1+20150227 +pkgver=1.2.0_beta1+20150302 _pkgver=${pkgver/_/-} _pkgver=${_pkgver/+/-} -pkgrel=4 +pkgrel=1 pkgdesc="Free RDP client" arch=('i686' 'x86_64') url="http://freerdp.sourceforge.net" @@ -21,12 +21,14 @@ makedepends=('krb5' 'cmake' 'damageproto' 'fixesproto' 'renderproto' 'xmlto' 'docbook-xsl' 'git') conflicts=('freerdp-git') #source=($pkgname-$pkgver.tar.gz::https://github.com/FreeRDP/FreeRDP/archive/${pkgver/_/-}.tar.gz -source=(FreeRDP-${_pkgver}::git://github.com/FreeRDP/FreeRDP.git#commit=ff6dbb049ce066f6fca5708f81fd33f97086bc0e) -md5sums=('SKIP') +source=(FreeRDP-${_pkgver}::git://github.com/FreeRDP/FreeRDP.git#commit=ff6dbb049ce066f6fca5708f81fd33f97086bc0e + stuck_winkey.patch) +md5sums=('SKIP' + 'd29f028e61967f091f021d24005dbee2') prepare() { cd $srcdir/FreeRDP-${_pkgver} -# patch -p1 <$srcdir/build-fix.patch + patch -p1 <$srcdir/stuck_winkey.patch } build() { diff --git a/community/freerdp/stuck_winkey.patch b/community/freerdp/stuck_winkey.patch new file mode 100644 index 000000000..2bb1f10d8 --- /dev/null +++ b/community/freerdp/stuck_winkey.patch @@ -0,0 +1,27 @@ +diff -rup ./client/X11.old/xf_event.c ./client/X11/xf_event.c +--- ./client/X11.old/xf_event.c 2014-06-12 15:51:57.000000000 +0200 ++++ ./client/X11/xf_event.c 2014-10-22 16:53:53.440644196 +0200 +@@ -556,6 +556,7 @@ static BOOL xf_event_FocusOut(xfContext* + if (event->xfocus.mode == NotifyWhileGrabbed) + XUngrabKeyboard(xfc->display, CurrentTime); + ++ xf_keyboard_release_all_keypress(xfc); + xf_keyboard_clear(xfc); + + if (app) +diff -rup ./client/X11.old/xf_keyboard.c ./client/X11/xf_keyboard.c +--- ./client/X11.old/xf_keyboard.c 2014-06-12 15:51:57.000000000 +0200 ++++ ./client/X11/xf_keyboard.c 2014-10-22 16:57:58.403749478 +0200 +@@ -169,6 +169,12 @@ void xf_keyboard_release_all_keypress(xf + if (xfc->KeyboardState[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->KeyboardState[keycode] = NoSymbol; + }