XLibre Xserver
Go to file
Peter Hutterer 6423769799 xkb: after making changes to the xkb ctrls, copy them back into kbdfeed.
enabled_ctrls_changes nowhere near the usual event or config paths. So this
condition always evaluated to false and the memcpy would thus never been
hit. As a result, any modification to the XKB struct during
XkbUpdateDescActions was not reflected in the kbdfeed ctrls.
The flag that is set by XkbUpdateDescActions() if ctrls were changed are in
enabled_ctrls.

This mainly affected keyboard repeat control as XKB uses the kbdfeed ctrls,
not XKB's per_key_repeats, to determine if a key needs to be repeated. Thus,
adding a "repeat= False" to the XKB map of any action did not have any
effect.

Test case:
assign Mode_switch to any key that by default repeats, e.g. the menu key.

    key <COMP> {         [     Mode_switch ] };

Then modify the Mode_switch action to not repeat the key.

    interpret Mode_switch+AnyOfOrNone(all) {
        virtualModifier= AltGr;
        useModMapMods=level1;
        action= SetGroup(group=+1);
        // Add this line
        repeat= False;
    };

Though the flags are correctly reflected in the description loaded in the
server, the change is not handed back to the kbdfeed struct and XKB will
trigger softrepeats of this key.

This patch also adds two explanatory comments and an extra check, as this
path may be hit before the CtrlProc for the kbdfeed struct is set.

Red Hat Bug 537708 <https://bugzilla.redhat.com/show_bug.cgi?id=537708>

Also fixes broken auto-repeat of the backspace key in the colemak layout
(mapped to CapsLock).

X.Org Bug 16318 <http://bugs.freedesktop.org/show_bug.cgi?id=16318>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Dirk Wallenstein <halsmit@t-online.de>
Reviewed-by: Dirk Wallenstein <halsmit@t-online.de>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2011-01-21 09:07:09 +10:00
Xext X Sync Cleanups 2011-01-05 08:41:30 -08:00
Xi Xi: reset remainders when warping the device. 2011-01-20 07:48:46 +10:00
composite composite: Support updating an arbitrary subtree 2011-01-05 11:57:31 -08:00
config udev: Fix removing of the wake up handler 2010-12-31 12:52:51 +00:00
damageext Set DamageSetReportAfterOp to true for the damage extension 2010-11-10 15:51:27 -08:00
dbe miDbe window priv priv is pre-allocated, don't use dixSetPrivate (bug 28639) 2010-07-02 12:30:24 -04:00
dix Merge branch 'for-peter' of git://people.freedesktop.org/~daniels/xserver into for-keith 2011-01-07 09:35:07 +10:00
doc Call SourceValidate even if src == dst 2011-01-05 11:56:42 -08:00
exa Add subWindowMode parameter to SourceValidate 2011-01-05 11:56:28 -08:00
fb Sun's copyrights now belong to Oracle 2010-12-07 11:10:35 -08:00
glx glx: warning fixes 2010-12-31 12:52:24 +00:00
hw Call SourceValidate even if src == dst 2011-01-05 11:56:42 -08:00
include Merge branch 'for-peter' of git://people.freedesktop.org/~daniels/xserver into for-keith 2011-01-07 09:35:07 +10:00
m4 remove dolt 2010-09-30 17:44:59 -07:00
mi NO_PANORAMIX preprocessor symbol is nowhere defined 2011-01-07 09:30:45 +10:00
miext Call SourceValidate even if src == dst 2011-01-05 11:56:42 -08:00
os os: always check if client is local when connection is accepted 2010-12-31 12:52:51 +00:00
randr randr: check for virtual size limits before set crtc 2010-12-20 00:46:32 -08:00
record record: Prevent a crash on recording client disconnect. 2010-06-22 11:43:36 -07:00
render Add subWindowMode parameter to SourceValidate 2011-01-05 11:56:28 -08:00
test Merge branch 'for-peter' of git://people.freedesktop.org/~daniels/xserver into for-keith 2011-01-07 09:35:07 +10:00
xfixes Sun's copyrights now belong to Oracle 2010-12-07 11:10:35 -08:00
xkb xkb: after making changes to the xkb ctrls, copy them back into kbdfeed. 2011-01-21 09:07:09 +10:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
COPYING Add asprintf() implementation for platforms without it 2010-12-07 11:10:35 -08:00
Makefile.am remove dolt 2010-09-30 17:44:59 -07:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac Remove SCO support 2010-12-20 12:11:11 -05:00
cpprules.in xfree86: Set a saner search path for xorg.conf.d 2010-04-08 15:21:01 +10:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-07 12:57:23 -08:00
xorg-server.pc.in config: declare xserver private dependencies in xorg-server.pc 2010-06-22 11:34:47 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage