26 lines
889 B
Diff
26 lines
889 B
Diff
|
Patch by krh@redhat.com:
|
||
|
|
||
|
In a multihead setup, if only the first screen can be
|
||
|
initialized, but the second screen is mentioned first in the
|
||
|
ServerLayout section, the xf86InitOrigins() function will crash
|
||
|
because the screen referred to in the e.g. "RightOf" part is
|
||
|
non-existent.
|
||
|
|
||
|
--- hw/xfree86/common/xf86Cursor.c.init-origins-fix 2004-10-18 22:22:42.675899006 -0400
|
||
|
+++ hw/xfree86/common/xf86Cursor.c 2004-10-18 22:21:42.540867549 -0400
|
||
|
@@ -566,6 +566,14 @@
|
||
|
|
||
|
screen = &xf86ConfigLayout.screens[i];
|
||
|
|
||
|
+ if (screen->refscreen != NULL &&
|
||
|
+ screen->refscreen->screennum >= xf86NumScreens) {
|
||
|
+ screensLeft &= ~(1 << i);
|
||
|
+ xf86Msg(X_WARNING, "Not including screen \"%s\" in origins calculation.\n",
|
||
|
+ screen->screen->id);
|
||
|
+ continue;
|
||
|
+ }
|
||
|
+
|
||
|
switch(screen->where) {
|
||
|
case PosObsolete:
|
||
|
OldStyleConfig = TRUE;
|