From f37b4cf5d09d80860b90a46196ca06da5e44b1fb Mon Sep 17 00:00:00 2001 From: dan Date: Fri, 1 Feb 2002 01:20:15 +0000 Subject: [PATCH] - Fixed a bug that crashed wmaker when selecting the "Start alternate window manager" option in the crashing dialog panel. - Window Maker will now use the WINDOWMAKER_ALT_WM environment variable (if it is defined) to overwrite the default hardcoded fallback window manager. --- ChangeLog | 4 ++++ src/WindowMaker.h | 3 ++- src/main.c | 18 +++++++++++++++--- src/startup.c | 10 +++++----- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4a49b52a..20320503 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,10 @@ Changes since version 0.80.0: option for a window using the window Inspector. - Let XRender transparent window be see-through to desktop - Added Greek (el) language pixmap (Michalis Kabrianis ) +- Fixed a bug that crashed wmaker when selecting the "Start alternate window + manager" option in the crashing dialog panel. +- Window Maker will now use the WINDOWMAKER_ALT_WM environment variable (if + it is defined) to overwrite the default hardcoded fallback window manager. Changes since version 0.70.0: diff --git a/src/WindowMaker.h b/src/WindowMaker.h index 3fbf9a6d..d8d93e01 100644 --- a/src/WindowMaker.h +++ b/src/WindowMaker.h @@ -321,7 +321,8 @@ typedef struct WPreferences { /* paths to find pixmaps */ char *icon_path; /* : separated list of */ /* paths to find icons */ - + WMArray *fallbackWMs; /* fallback window manager list */ + char *logger_shell; /* shell to log child stdi/o */ RImage *button_images; /* titlebar button images */ diff --git a/src/main.c b/src/main.c index 41ef3d76..8b408bac 100644 --- a/src/main.c +++ b/src/main.c @@ -582,7 +582,7 @@ int main(int argc, char **argv) { int i, restart=0; - char *str; + char *str, *alt; int d, s; #ifdef DEBUG Bool doSync = False; @@ -610,9 +610,21 @@ main(int argc, char **argv) restart = 0; - + memset(&wPreferences, 0, sizeof(WPreferences)); - + + wPreferences.fallbackWMs = WMCreateArray(8); + alt = getenv("WINDOWMAKER_ALT_WM"); + if (alt != NULL) + WMAddToArray(wPreferences.fallbackWMs, wstrdup(alt)); + + WMAddToArray(wPreferences.fallbackWMs, wstrdup(FALLBACK_WINDOWMANAGER)); + WMAddToArray(wPreferences.fallbackWMs, wstrdup("fvwm")); + WMAddToArray(wPreferences.fallbackWMs, wstrdup("twm")); + WMAddToArray(wPreferences.fallbackWMs, NULL); + WMAddToArray(wPreferences.fallbackWMs, wstrdup("rxvt")); + WMAddToArray(wPreferences.fallbackWMs, wstrdup("xterm")); + if (argc>1) { for (i=1; i