aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/common/xf86Xinput.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-05-29 15:44:00 +0200
committermarha <marha@users.sourceforge.net>2011-05-29 15:44:00 +0200
commit75b5635aa9e9791d10e3f63538e75237303ee6da (patch)
tree3467c4f258773ec64aea7c4dda11b8574df9791f /xorg-server/hw/xfree86/common/xf86Xinput.c
parentb2e1c9dff46fdf1b5936115531693981454ca466 (diff)
parent1ccf18dc09e288ddf937aa890b50c8d0a9df4319 (diff)
downloadvcxsrv-75b5635aa9e9791d10e3f63538e75237303ee6da.tar.gz
vcxsrv-75b5635aa9e9791d10e3f63538e75237303ee6da.tar.bz2
vcxsrv-75b5635aa9e9791d10e3f63538e75237303ee6da.zip
Merge remote-tracking branch 'origin/released'
Conflicts: libX11/specs/libX11/CH08.xml mesalib/src/mesa/main/dlist.c mesalib/src/mesa/main/fbobject.c mesalib/src/mesa/main/queryobj.c mesalib/src/mesa/main/shaderapi.c mesalib/src/mesa/main/teximage.c mesalib/src/mesa/program/ir_to_mesa.cpp mesalib/src/mesa/state_tracker/st_atom_pixeltransfer.c mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c mesalib/src/mesa/state_tracker/st_cb_drawpixels.c mesalib/src/mesa/state_tracker/st_cb_readpixels.c mesalib/src/mesa/state_tracker/st_cb_texture.c mkfontscale/list.h pixman/pixman/Makefile.win32 xorg-server/dix/devices.c xorg-server/dix/events.c xorg-server/dix/inpututils.c xorg-server/fb/fbbltone.c xorg-server/hw/kdrive/ephyr/ephyr.c xorg-server/hw/kdrive/ephyr/ephyrinit.c xorg-server/hw/xfree86/common/xf86Module.h xorg-server/hw/xfree86/common/xf86Xinput.c xorg-server/hw/xfree86/man/xorg.conf.man xorg-server/hw/xwin/winkeybd.c xorg-server/hw/xwin/winmouse.c xorg-server/include/input.h xorg-server/include/inputstr.h xorg-server/mi/mieq.c xorg-server/randr/rrscreen.c xorg-server/xkeyboard-config/rules/base.extras.xml.in xorg-server/xkeyboard-config/rules/base.xml.in
Diffstat (limited to 'xorg-server/hw/xfree86/common/xf86Xinput.c')
-rw-r--r--xorg-server/hw/xfree86/common/xf86Xinput.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/xorg-server/hw/xfree86/common/xf86Xinput.c b/xorg-server/hw/xfree86/common/xf86Xinput.c
index b8d866429..afef0994d 100644
--- a/xorg-server/hw/xfree86/common/xf86Xinput.c
+++ b/xorg-server/hw/xfree86/common/xf86Xinput.c
@@ -470,6 +470,20 @@ match_path_pattern(const char *attr, const char *pattern)
#endif
/*
+ * If no Layout section is found, xf86ServerLayout.id becomes "(implicit)"
+ * It is convenient that "" in patterns means "no explicit layout"
+ */
+static int
+match_string_implicit(const char *attr, const char *pattern)
+{
+ if (strlen(pattern)) {
+ return strcmp(attr, pattern);
+ } else {
+ return strcmp(attr,"(implicit)");
+ }
+}
+
+/*
* Match an attribute against a list of NULL terminated arrays of patterns.
* If a pattern in each list entry is matched, return TRUE.
*/
@@ -564,6 +578,13 @@ InputClassMatches(const XF86ConfInputClassPtr iclass, const InputInfoPtr idev,
return FALSE;
}
+ /* MatchLayout string */
+ if (!list_is_empty(&iclass->match_layout)) {
+ if (!MatchAttrToken(xf86ConfigLayout.id,
+ &iclass->match_layout, match_string_implicit))
+ return FALSE;
+ }
+
/* MatchIs* booleans */
if (iclass->is_keyboard.set &&
iclass->is_keyboard.val != !!(attrs->flags & ATTR_KEYBOARD))