diff options
author | Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de> | 2004-10-16 01:28:52 +0000 |
---|---|---|
committer | Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de> | 2004-10-16 01:28:52 +0000 |
commit | 6a35e5c3f1d3de46550e00dfe1cc4270f90ac7b9 (patch) | |
tree | 16d7d2d95ab4930a7eccf9bd19ed9d654c129c5e | |
parent | db603fe466421bb82f664452c8c4d0f7cb984231 (diff) |
Make multiple monitors default for -multiwindow and -mwextwm. Added a flag
to indicate if the user has overridden the multimonitor settings.
(Øyvind Harboe, Alexander Gottwald)
-rw-r--r-- | hw/xwin/ChangeLog | 8 | ||||
-rw-r--r-- | hw/xwin/win.h | 3 | ||||
-rwxr-xr-x | hw/xwin/winprocarg.c | 55 |
3 files changed, 66 insertions, 0 deletions
diff --git a/hw/xwin/ChangeLog b/hw/xwin/ChangeLog index bdeeb0499..a3716fa44 100644 --- a/hw/xwin/ChangeLog +++ b/hw/xwin/ChangeLog @@ -1,3 +1,11 @@ +2004-10-16 Alexander Gottwald <ago at freedesktop dot org> + + * winprocarg.c (winInitializeDefaultScreens, ddxProcessArgument): + * win.h: + Make multiple monitors default for -multiwindow and -mwextwm. + Added a flag to indicate if the user has overridden the multimonitor + settings. (Øyvind Harboe, Alexander Gottwald) + 2004-10-05 Alexander Gottwald <ago at freedesktop dot org> * XWin.rc: diff --git a/hw/xwin/win.h b/hw/xwin/win.h index 33e874f1c..df336bac6 100644 --- a/hw/xwin/win.h +++ b/hw/xwin/win.h @@ -425,6 +425,9 @@ typedef struct #ifdef XWIN_MULTIWINDOW Bool fMultiWindow; #endif +#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM) + Bool fMultiMonitorOverride; +#endif Bool fMultipleMonitors; Bool fLessPointer; Bool fScrollbars; diff --git a/hw/xwin/winprocarg.c b/hw/xwin/winprocarg.c index 0032a9152..dd61b94b5 100755 --- a/hw/xwin/winprocarg.c +++ b/hw/xwin/winprocarg.c @@ -128,6 +128,9 @@ winInitializeDefaultScreens (void) #ifdef XWIN_MULTIWINDOW g_ScreenInfo[i].fMultiWindow = FALSE; #endif +#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM) + g_ScreenInfo[i].fMultiMonitorOverride = FALSE; +#endif g_ScreenInfo[i].fMultipleMonitors = FALSE; g_ScreenInfo[i].fLessPointer = FALSE; g_ScreenInfo[i].fScrollbars = FALSE; @@ -399,12 +402,16 @@ ddxProcessArgument (int argc, char *argv[], int i) /* Parameter is for all screens */ for (j = 0; j < MAXSCREENS; j++) { + if (!g_ScreenInfo[j].fMultiMonitorOverride) + g_ScreenInfo[j].fMultipleMonitors = FALSE; g_ScreenInfo[j].fFullScreen = TRUE; } } else { /* Parameter is for a single screen */ + if (!g_ScreenInfo[g_iLastScreen].fMultiMonitorOverride) + g_ScreenInfo[g_iLastScreen].fMultipleMonitors = FALSE; g_ScreenInfo[g_iLastScreen].fFullScreen = TRUE; } @@ -451,12 +458,16 @@ ddxProcessArgument (int argc, char *argv[], int i) /* Parameter is for all screens */ for (j = 0; j < MAXSCREENS; j++) { + if (!g_ScreenInfo[j].fMultiMonitorOverride) + g_ScreenInfo[j].fMultipleMonitors = FALSE; g_ScreenInfo[j].fDecoration = FALSE; } } else { /* Parameter is for a single screen */ + if (!g_ScreenInfo[g_iLastScreen].fMultiMonitorOverride) + g_ScreenInfo[g_iLastScreen].fMultipleMonitors = FALSE; g_ScreenInfo[g_iLastScreen].fDecoration = FALSE; } @@ -478,12 +489,16 @@ ddxProcessArgument (int argc, char *argv[], int i) /* Parameter is for all screens */ for (j = 0; j < MAXSCREENS; j++) { + if (!g_ScreenInfo[j].fMultiMonitorOverride) + g_ScreenInfo[j].fMultipleMonitors = TRUE; g_ScreenInfo[j].fMWExtWM = TRUE; } } else { /* Parameter is for a single screen */ + if (!g_ScreenInfo[g_iLastScreen].fMultiMonitorOverride) + g_ScreenInfo[g_iLastScreen].fMultipleMonitors = TRUE; g_ScreenInfo[g_iLastScreen].fMWExtWM = TRUE; } @@ -505,12 +520,16 @@ ddxProcessArgument (int argc, char *argv[], int i) /* Parameter is for all screens */ for (j = 0; j < MAXSCREENS; j++) { + if (!g_ScreenInfo[j].fMultiMonitorOverride) + g_ScreenInfo[j].fMultipleMonitors = FALSE; g_ScreenInfo[j].fRootless = TRUE; } } else { /* Parameter is for a single screen */ + if (!g_ScreenInfo[g_iLastScreen].fMultiMonitorOverride) + g_ScreenInfo[g_iLastScreen].fMultipleMonitors = FALSE; g_ScreenInfo[g_iLastScreen].fRootless = TRUE; } @@ -532,12 +551,16 @@ ddxProcessArgument (int argc, char *argv[], int i) /* Parameter is for all screens */ for (j = 0; j < MAXSCREENS; j++) { + if (!g_ScreenInfo[j].fMultiMonitorOverride) + g_ScreenInfo[j].fMultipleMonitors = TRUE; g_ScreenInfo[j].fMultiWindow = TRUE; } } else { /* Parameter is for a single screen */ + if (!g_ScreenInfo[g_iLastScreen].fMultiMonitorOverride) + g_ScreenInfo[g_iLastScreen].fMultipleMonitors = TRUE; g_ScreenInfo[g_iLastScreen].fMultiWindow = TRUE; } @@ -560,12 +583,14 @@ ddxProcessArgument (int argc, char *argv[], int i) /* Parameter is for all screens */ for (j = 0; j < MAXSCREENS; j++) { + g_ScreenInfo[j].fMultiMonitorOverride = TRUE; g_ScreenInfo[j].fMultipleMonitors = TRUE; } } else { /* Parameter is for a single screen */ + g_ScreenInfo[g_iLastScreen].fMultiMonitorOverride = TRUE; g_ScreenInfo[g_iLastScreen].fMultipleMonitors = TRUE; } @@ -574,6 +599,36 @@ ddxProcessArgument (int argc, char *argv[], int i) } /* + * Look for the '-nomultiplemonitors' argument + */ + if (IS_OPTION ("-nomultiplemonitors") + || IS_OPTION ("-nomultimonitors")) + { + /* Is this parameter attached to a screen or is it global? */ + if (-1 == g_iLastScreen) + { + int j; + + /* Parameter is for all screens */ + for (j = 0; j < MAXSCREENS; j++) + { + g_ScreenInfo[j].fMultiMonitorOverride = TRUE; + g_ScreenInfo[j].fMultipleMonitors = FALSE; + } + } + else + { + /* Parameter is for a single screen */ + g_ScreenInfo[g_iLastScreen].fMultiMonitorOverride = TRUE; + g_ScreenInfo[g_iLastScreen].fMultipleMonitors = FALSE; + } + + /* Indicate that we have processed this argument */ + return 1; + } + + + /* * Look for the '-scrollbars' argument */ if (IS_OPTION ("-scrollbars")) |