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