1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 20:38:08 +01:00

- 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.
This commit is contained in:
dan
2002-02-01 01:20:15 +00:00
parent 06f1bf91a9
commit f37b4cf5d0
4 changed files with 26 additions and 9 deletions

View File

@@ -27,6 +27,10 @@ Changes since version 0.80.0:
option for a window using the window Inspector. option for a window using the window Inspector.
- Let XRender transparent window be see-through to desktop - Let XRender transparent window be see-through to desktop
- Added Greek (el) language pixmap (Michalis Kabrianis <Michalis@bigfoot.com>) - Added Greek (el) language pixmap (Michalis Kabrianis <Michalis@bigfoot.com>)
- 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: Changes since version 0.70.0:

View File

@@ -321,7 +321,8 @@ typedef struct WPreferences {
/* paths to find pixmaps */ /* paths to find pixmaps */
char *icon_path; /* : separated list of */ char *icon_path; /* : separated list of */
/* paths to find icons */ /* paths to find icons */
WMArray *fallbackWMs; /* fallback window manager list */
char *logger_shell; /* shell to log child stdi/o */ char *logger_shell; /* shell to log child stdi/o */
RImage *button_images; /* titlebar button images */ RImage *button_images; /* titlebar button images */

View File

@@ -582,7 +582,7 @@ int
main(int argc, char **argv) main(int argc, char **argv)
{ {
int i, restart=0; int i, restart=0;
char *str; char *str, *alt;
int d, s; int d, s;
#ifdef DEBUG #ifdef DEBUG
Bool doSync = False; Bool doSync = False;
@@ -610,9 +610,21 @@ main(int argc, char **argv)
restart = 0; restart = 0;
memset(&wPreferences, 0, sizeof(WPreferences)); 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) { if (argc>1) {
for (i=1; i<argc; i++) { for (i=1; i<argc; i++) {
#ifdef USECPP #ifdef USECPP

View File

@@ -313,7 +313,7 @@ handleSig(int sig)
static int already_crashed = 0; static int already_crashed = 0;
int dumpcore = 0; int dumpcore = 0;
#ifndef NO_EMERGENCY_AUTORESTART #ifndef NO_EMERGENCY_AUTORESTART
int crashAction; int crashAction, i;
char *argv[2]; char *argv[2];
argv[1] = NULL; argv[1] = NULL;
@@ -362,7 +362,6 @@ handleSig(int sig)
if (dpy) { if (dpy) {
CARD32 data[2]; CARD32 data[2];
WWindow *wwin; WWindow *wwin;
int i;
XGrabServer(dpy); XGrabServer(dpy);
crashAction = wShowCrashingDialogPanel(sig); crashAction = wShowCrashingDialogPanel(sig);
@@ -411,9 +410,10 @@ handleSig(int sig)
wmessage(_("trying to start alternate window manager...")); wmessage(_("trying to start alternate window manager..."));
Restart(FALLBACK_WINDOWMANAGER, False); for (i=0; i<WMGetArrayItemCount(wPreferences.fallbackWMs); i++) {
Restart("fvwm", False); Restart(WMGetFromArray(wPreferences.fallbackWMs, i), False);
Restart("twm", False); }
wfatal(_("failed to start alternate window manager. Aborting.")); wfatal(_("failed to start alternate window manager. Aborting."));
#else #else
wfatal(_("a fatal error has occured, probably due to a bug. " wfatal(_("a fatal error has occured, probably due to a bug. "