mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 12:28:22 +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:
@@ -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 <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:
|
||||
|
||||
@@ -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 */
|
||||
|
||||
18
src/main.c
18
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<argc; i++) {
|
||||
#ifdef USECPP
|
||||
|
||||
@@ -313,7 +313,7 @@ handleSig(int sig)
|
||||
static int already_crashed = 0;
|
||||
int dumpcore = 0;
|
||||
#ifndef NO_EMERGENCY_AUTORESTART
|
||||
int crashAction;
|
||||
int crashAction, i;
|
||||
char *argv[2];
|
||||
|
||||
argv[1] = NULL;
|
||||
@@ -362,7 +362,6 @@ handleSig(int sig)
|
||||
if (dpy) {
|
||||
CARD32 data[2];
|
||||
WWindow *wwin;
|
||||
int i;
|
||||
|
||||
XGrabServer(dpy);
|
||||
crashAction = wShowCrashingDialogPanel(sig);
|
||||
@@ -411,9 +410,10 @@ handleSig(int sig)
|
||||
|
||||
wmessage(_("trying to start alternate window manager..."));
|
||||
|
||||
Restart(FALLBACK_WINDOWMANAGER, False);
|
||||
Restart("fvwm", False);
|
||||
Restart("twm", False);
|
||||
for (i=0; i<WMGetArrayItemCount(wPreferences.fallbackWMs); i++) {
|
||||
Restart(WMGetFromArray(wPreferences.fallbackWMs, i), False);
|
||||
}
|
||||
|
||||
wfatal(_("failed to start alternate window manager. Aborting."));
|
||||
#else
|
||||
wfatal(_("a fatal error has occured, probably due to a bug. "
|
||||
|
||||
Reference in New Issue
Block a user