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:
@@ -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:
|
||||||
|
|||||||
@@ -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 */
|
||||||
|
|||||||
18
src/main.c
18
src/main.c
@@ -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
|
||||||
|
|||||||
@@ -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. "
|
||||||
|
|||||||
Reference in New Issue
Block a user