2010-12-27 23:51:20 +01:00
|
|
|
From ee0e658bb6cb0d1290072090f1de90ff44145365 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Dan Nicholson <dbn.lists@gmail.com>
|
|
|
|
Date: Thu, 16 Dec 2010 06:01:06 -0800
|
|
|
|
Subject: [PATCH] xfree86: Use last Screen section found to prefer xorg.conf
|
|
|
|
|
|
|
|
Allowing multiple .conf files with xorg.conf.d works well for InputClass
|
|
|
|
where any section in xorg.conf would override settings from previous
|
|
|
|
.conf files typically installed by the distro. This does not work well
|
|
|
|
with Screen sections where the first section found has been used when
|
|
|
|
the Layout doesn't specify a Screen. Instead, use the last Screen
|
|
|
|
section found to give preference to xorg.conf and match the InputScreen
|
|
|
|
semantics.
|
|
|
|
|
|
|
|
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
|
|
|
|
---
|
|
|
|
hw/xfree86/common/xf86Config.c | 10 ++++++++--
|
|
|
|
1 files changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
|
|
|
|
index 5800700..b2fc8e3 100644
|
|
|
|
--- a/hw/xfree86/common/xf86Config.c
|
|
|
|
+++ b/hw/xfree86/common/xf86Config.c
|
|
|
|
@@ -1678,7 +1678,7 @@ configLayout(serverLayoutPtr servlayoutp, XF86ConfLayoutPtr conf_layout,
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
- * No layout section, so find the first Screen section and set that up as
|
|
|
|
+ * No layout section, so find the last Screen section and set that up as
|
|
|
|
* the only active screen.
|
|
|
|
*/
|
|
|
|
static Bool
|
|
|
|
@@ -1697,7 +1697,7 @@ configImpliedLayout(serverLayoutPtr servlayoutp, XF86ConfScreenPtr conf_screen,
|
|
|
|
/*
|
|
|
|
* which screen section is the active one?
|
|
|
|
*
|
|
|
|
- * If there is a -screen option, use that one, otherwise use the first
|
|
|
|
+ * If there is a -screen option, use that one, otherwise use the last
|
|
|
|
* one.
|
|
|
|
*/
|
|
|
|
|
|
|
|
@@ -1710,6 +1710,12 @@ configImpliedLayout(serverLayoutPtr servlayoutp, XF86ConfScreenPtr conf_screen,
|
|
|
|
}
|
|
|
|
conf_screen = s;
|
|
|
|
from = X_CMDLINE;
|
2011-01-03 07:38:04 +01:00
|
|
|
+ } else if (conf_screen) {
|
2010-12-27 23:51:20 +01:00
|
|
|
+ /* Use the last Screen in the list */
|
|
|
|
+ s = conf_screen;
|
|
|
|
+ while (s->list.next)
|
|
|
|
+ s = s->list.next;
|
|
|
|
+ conf_screen = s;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* We have exactly one screen */
|
|
|
|
--
|
|
|
|
1.7.2.3
|
|
|
|
|