net/freerdp: add workaround for focus bug of WM

Some WMs (for example fvwm and fluxbox) intermittently steal focus
during attempts to drag something with the mouse on the remote machine,
effectively making it impossible to drag. This behavior seems to also
depend on the configuration of the WM.

Add an optional patch to work around this problem, activated by the new
option BROKENFOCUS. Note that this workaround may lead to a wrong state
of keyboard modifiers after focus changes, so only enable if if you
really need to.

PR:	254908
Approved by:	VVD <vvd@unislabs.com> (maintainer)
This commit is contained in:
Felix Palmen 2021-09-04 11:31:06 +02:00 committed by Tobias C. Berner
parent e858b5d6ba
commit ce0e0139a4
2 changed files with 16 additions and 2 deletions

View file

@ -39,8 +39,9 @@ CMAKE_OFF= WITH_DSP_EXPERIMENTAL WITH_GPROF WITH_GSTREAMER_0_10 WITH_IPP \
CMAKE_ARGS_aarch64+= -DWITH_NEON=ON
CFLAGS_aarch64+= -D__ARM_NEON__=__ARM_NEON # clang
OPTIONS_DEFINE= ALSA CUPS FAAC FAAD FFMPEG GSM GSTREAMER ICU JPEG KERBEROS \
LAME MANPAGES OPENH264 PCSC PULSEAUDIO SOXR WAYLAND X11
OPTIONS_DEFINE= ALSA BROKENFOCUS CUPS FAAC FAAD FFMPEG GSM GSTREAMER \
ICU JPEG KERBEROS LAME MANPAGES OPENH264 PCSC \
PULSEAUDIO SOXR WAYLAND X11
OPTIONS_DEFAULT= CUPS GSTREAMER ICU KERBEROS MANPAGES SWSCALE WAYLAND X11
OPTIONS_RADIO= SCALE
OPTIONS_RADIO_SCALE= CAIRO SWSCALE
@ -55,6 +56,9 @@ OPTIONS_DEFAULT_amd64= SSE
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_CMAKE_BOOL= WITH_ALSA
BROKENFOCUS_DESC= Work around focus bug in some WMs (PR \#254908)
BROKENFOCUS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-focusbug.diff
CAIRO_DESC= Use CAIRO image library for screen resizing
CAIRO_LIB_DEPENDS= libcairo.so:graphics/cairo
CAIRO_CMAKE_BOOL= WITH_CAIRO

View file

@ -0,0 +1,10 @@
--- client/X11/xf_keyboard.c.orig 2021-09-02 06:23:36 UTC
+++ client/X11/xf_keyboard.c
@@ -183,7 +183,6 @@ void xf_keyboard_release_all_keypress(xfContext* xfc)
xfc->KeyboardState[keycode] = FALSE;
}
}
- xf_sync_kbd_state(xfc);
}
BOOL xf_keyboard_key_pressed(xfContext* xfc, KeySym keysym)