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

fixed many bugs related from stacking and old ones too

This commit is contained in:
kojima
2000-03-29 03:23:38 +00:00
parent d267d17621
commit 03e14f363f
11 changed files with 458 additions and 40 deletions

390
src/Makefile.in Normal file
View File

@@ -0,0 +1,390 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AS = @AS@
CC = @CC@
CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@
DLLIBS = @DLLIBS@
DLLTOOL = @DLLTOOL@
GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@
LD = @LD@
LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@
LITE = @LITE@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@
NETLIBS = @NETLIBS@
NLSDIR = @NLSDIR@
NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
WPMOFILES = @WPMOFILES@
XCFLAGS = @XCFLAGS@
XGETTEXT = @XGETTEXT@
XLFLAGS = @XLFLAGS@
XLIBS = @XLIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBRARY_PATH = @X_LIBRARY_PATH@
supported_locales = @supported_locales@
wprefsdir = @wprefsdir@
AUTOMAKE_OPTIONS = no-dependencies
BUILT_SOURCES = wconfig.h
bin_PROGRAMS = wmaker
EXTRA_DIST = wmnotify.c wmnotdef.h wmnotify.h DI.h DL.h I.h L.h Q.h GDB.h nana.h
wmaker_SOURCES = GNUstep.h WindowMaker.h actions.c actions.h appicon.c appicon.h application.c application.h appmenu.c appmenu.h balloon.c balloon.h client.c client.h colormap.c def_pixmaps.h defaults.c defaults.h dialog.c dialog.h dock.c dockedapp.c dock.h event.c extend_pixmaps.h framewin.c framewin.h geomview.c geomview.h gnome.c gnome.h funcs.h icon.c icon.h keybind.h kwm.h kwm.c main.c menu.c menu.h misc.c motif.c motif.h moveres.c openlook.c openlook.h pixmap.c pixmap.h placement.c plugin.c plugin.h properties.c properties.h proplist.c resources.c resources.h rootmenu.c screen.c screen.h session.h session.c shutdown.c stacking.c stacking.h startup.c superfluous.c superfluous.h switchmenu.c texture.c texture.h usermenu.c usermenu.h xdnd.h xdnd.c xmodifier.h xmodifier.c xutil.c xutil.h wconfig.h wcore.c wcore.h wdefaults.c wdefaults.h window.c window.h winmenu.c winspector.h winspector.c workspace.c workspace.h wmsound.c wmsound.h text.c text.h
CPPFLAGS = @CPPFLAGS@ @DFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\"
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@
wmaker_LDADD = $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la @LIBRARY_SEARCH_PATH@ @LIBPL@ @GFXLIBS@ @XLIBS@ @INTLIBS@ @DLLIBS@ -lm
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = wconfig.h
PROGRAMS = $(bin_PROGRAMS)
DEFS = @DEFS@ -I. -I$(srcdir) -I.
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
wmaker_OBJECTS = actions.o appicon.o application.o appmenu.o balloon.o \
client.o colormap.o defaults.o dialog.o dock.o dockedapp.o event.o \
framewin.o geomview.o gnome.o icon.o kwm.o main.o menu.o misc.o motif.o \
moveres.o openlook.o pixmap.o placement.o plugin.o properties.o \
proplist.o resources.o rootmenu.o screen.o session.o shutdown.o \
stacking.o startup.o superfluous.o switchmenu.o texture.o usermenu.o \
xdnd.o xmodifier.o xutil.o wcore.o wdefaults.o window.o winmenu.o \
winspector.o workspace.o wmsound.o text.o
wmaker_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a \
$(top_builddir)/wrlib/libwraster.la
wmaker_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = ./stamp-h.in Makefile.am Makefile.in config.h.in \
wconfig.h.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
SOURCES = $(wmaker_SOURCES)
OBJECTS = $(wmaker_OBJECTS)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .lo .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
config.h: stamp-h
@if test ! -f $@; then \
rm -f stamp-h; \
$(MAKE) stamp-h; \
else :; fi
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=src/config.h \
$(SHELL) ./config.status
@echo timestamp > stamp-h 2> /dev/null
$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
@if test ! -f $@; then \
rm -f $(srcdir)/stamp-h.in; \
$(MAKE) $(srcdir)/stamp-h.in; \
else :; fi
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
mostlyclean-hdr:
clean-hdr:
distclean-hdr:
-rm -f config.h
maintainer-clean-hdr:
wconfig.h: $(top_builddir)/config.status wconfig.h.in
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-binPROGRAMS:
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
distclean-binPROGRAMS:
maintainer-clean-binPROGRAMS:
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
else :; fi; \
done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(bin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
done
.c.o:
$(COMPILE) -c $<
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
.c.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
.s.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
.S.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
maintainer-clean-libtool:
wmaker: $(wmaker_OBJECTS) $(wmaker_DEPENDENCIES)
@rm -f wmaker
$(LINK) $(wmaker_LDFLAGS) $(wmaker_OBJECTS) $(wmaker_LDADD) $(LIBS)
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = src
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
all-recursive-am: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
install-exec-am: install-binPROGRAMS
install-exec: install-exec-am
install-data-am:
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-binPROGRAMS
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS) config.h
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir)
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \
mostlyclean-compile mostlyclean-libtool \
mostlyclean-tags mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-hdr clean-binPROGRAMS clean-compile clean-libtool \
clean-tags clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-hdr distclean-binPROGRAMS distclean-compile \
distclean-libtool distclean-tags distclean-generic \
clean-am
-rm -f libtool
distclean: distclean-am
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-binPROGRAMS \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-tags maintainer-clean-generic \
distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-libtool distclean-libtool \
clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
install-exec-am install-exec install-data-am install-data install-am \
install uninstall-am uninstall all-redirect all-am all installdirs \
mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -425,6 +425,7 @@ typedef struct WPreferences {
unsigned int nocpp:1; /* don't use cpp */
unsigned int noupdates:1; /* don't require ~/GNUstep (-static) */
unsigned int noautolaunch:1; /* don't autolaunch apps */
unsigned int norestore:1; /* don't restore session */
} flags; /* internal flags */
} WPreferences;

View File

@@ -1401,7 +1401,7 @@ doWindozeCycle(WWindow *wwin, XEvent *event, Bool next)
} else if (ev.type == KeyRelease) {
int i;
for (i = 0; i <= 8 * keymap->max_keypermod; i++) {
for (i = 0; i < 8 * keymap->max_keypermod; i++) {
if (keymap->modifiermap[i] == ev.xkey.keycode &&
wKeyBindings[WKBD_FOCUSNEXT].modifier
& 1<<(i/keymap->max_keypermod)) {

View File

@@ -427,6 +427,7 @@ print_help()
puts(_(" --no-dock do not open the application Dock"));
puts(_(" --no-clip do not open the workspace Clip"));
puts(_(" --no-autolaunch do not autolaunch applications"));
puts(_(" --dont-restore do not restore saved session"));
puts(_(" --locale locale locale to use"));
@@ -590,7 +591,10 @@ main(int argc, char **argv)
#endif
if (strcmp(argv[i], "-no-autolaunch")==0
|| strcmp(argv[i], "--no-autolaunch")==0) {
wPreferences.flags.noautolaunch = 1;
wPreferences.flags.noautolaunch = 1;
} else if (strcmp(argv[i], "-dont-restore")==0
|| strcmp(argv[i], "--dont-restore")==0) {
wPreferences.flags.norestore = 1;
} else if (strcmp(argv[i], "-nodock")==0
|| strcmp(argv[i], "--no-dock")==0) {
wPreferences.flags.nodock=1;

View File

@@ -1687,6 +1687,7 @@ wMouseMoveWindow(WWindow *wwin, XEvent *ev)
break;
if (started) {
XEvent e;
if (!opaqueMove) {
drawFrames(wwin, scr->selected_windows,
moveData.realX - wwin->frame_x,
@@ -1707,6 +1708,22 @@ wMouseMoveWindow(WWindow *wwin, XEvent *ev)
}
if (wPreferences.move_display == WDIS_NEW)
showPosition(wwin, moveData.realX, moveData.realY);
/* discard all enter/leave events that happened until
* the time the button was released */
/*
while (XCheckTypedEvent(dpy, EnterNotify, &e)) {
if (e.xcrossing.time > event.xbutton.time) {
XPutBackEvent(dpy, &e);
break;
}
}
while (!XCheckTypedEvent(dpy, LeaveNotify, &e)) {
if (e.xcrossing.time > event.xbutton.time) {
XPutBackEvent(dpy, &e);
break;
}
}*/
if (!scr->selected_windows) {
/* get rid of the geometry window */

View File

@@ -196,9 +196,7 @@ PlaceIcon(WScreen *scr, int *x_ret, int *y_ret)
#define INDEX(x,y) (((y)+1)*(sw+2) + (x) + 1)
for (obj = WMBagLast(scr->stacking_list, &iter);
obj != NULL;
obj = WMBagNext(scr->stacking_list, &iter)) {
WM_ETARETI_BAG(scr->stacking_list, obj, iter) {
while (obj) {
int x, y;

View File

@@ -125,7 +125,7 @@ static proplist_t sShaded;
static proplist_t sMiniaturized;
static proplist_t sHidden;
static proplist_t sGeometry;
static proplist_t sShortcut;
static proplist_t sShortcutMask;
static proplist_t sDock;
@@ -148,7 +148,7 @@ make_keys()
sHidden = PLMakeString("Hidden");
sGeometry = PLMakeString("Geometry");
sDock = PLMakeString("Dock");
sShortcut = PLMakeString("Shortcut");
sShortcutMask = PLMakeString("ShortcutMask");
sYes = PLMakeString("Yes");
sNo = PLMakeString("No");
@@ -255,7 +255,8 @@ makeWindowState(WWindow *wwin, WApplication *wapp)
geometry = PLMakeString(buffer);
for (mask = 0, i = 0; i < MAX_WINDOW_SHORTCUTS; i++) {
if (WMGetFirstInBag(scr->shortcutWindows[i], wwin)) {
if (scr->shortcutWindows[i] != NULL &&
WMGetFirstInBag(scr->shortcutWindows[i], wwin) != WBNotFound) {
mask |= 1<<i;
}
}
@@ -269,7 +270,7 @@ makeWindowState(WWindow *wwin, WApplication *wapp)
sShaded, shaded,
sMiniaturized, miniaturized,
sHidden, hidden,
sShortcut, shortcut,
sShortcutMask, shortcut,
sGeometry, geometry,
NULL);
@@ -331,7 +332,8 @@ wSessionSaveState(WScreen *scr)
while (wwin) {
WApplication *wapp=wApplicationOf(wwin->main_window);
if (wwin->transient_for==None && WMGetFirstInBag(wapp_list, wapp)<0
if (wwin->transient_for==None
&& WMGetFirstInBag(wapp_list, wapp)==WBNotFound
&& !WFLAGP(wwin, dont_save_session)) {
/* A entry for this application was not yet saved. Save one. */
if ((win_info = makeWindowState(wwin, wapp))!=NULL) {

View File

@@ -48,6 +48,7 @@ extern WPreferences wPreferences;
/*
*----------------------------------------------------------------------
* RemakeStackList--
@@ -105,6 +106,8 @@ RemakeStackList(WScreen *scr)
}
CommitStacking(scr);
}
/*
@@ -128,10 +131,9 @@ CommitStacking(WScreen *scr)
nwindows = scr->window_count;
windows = wmalloc(sizeof(Window)*nwindows);
for (tmp = WMBagLast(scr->stacking_list, &iter), i = 0;
iter != NULL;
WMBagNext(scr->stacking_list, &iter)) {
i = 0;
WM_ETARETI_BAG(scr->stacking_list, tmp, iter) {
while (tmp) {
#ifdef DEBUG
if (i>=nwindows) {
@@ -151,6 +153,7 @@ CommitStacking(WScreen *scr)
#ifdef KWM_HINTS
wKWMBroadcastStacking(scr);
#endif
}
/*
@@ -203,7 +206,7 @@ wRaiseFrame(WCoreWindow *frame)
/* already on top */
if (frame->stacking->above == NULL) {
return;
}
}
/* insert on top of other windows */
@@ -273,13 +276,13 @@ wRaiseFrame(WCoreWindow *frame)
}
/* try to optimize things a little */
if (frame->stacking->above == NULL) {
WCoreWindow *above=NULL;
WCoreWindow *above;
WMBagIterator iter;
for (above = WMBagIteratorAtIndex(scr->stacking_list, level+1, &iter);
above != NULL;
iter != NULL;
above = WMBagNext(scr->stacking_list, &iter)) {
/* can't optimize */
while (above->stacking->under)
above = above->stacking->under;
@@ -304,6 +307,7 @@ wRaiseFrame(WCoreWindow *frame)
#ifdef VIRTUAL_DESKTOP
wWorkspaceRaiseEdge(scr);
#endif
}
@@ -375,6 +379,7 @@ wLowerFrame(WCoreWindow *frame)
frame->stacking->above->stacking->under = frame->stacking->under;
}
wlist = WMGetFromBag(scr->stacking_list, level);
/* look for place to put this window */
#ifdef removed
if (wPreferences.on_top_transients)
@@ -412,7 +417,7 @@ wLowerFrame(WCoreWindow *frame)
WMBagIterator iter;
for (above = WMBagIteratorAtIndex(scr->stacking_list, level-1, &iter);
above != NULL;
iter != NULL;
above = WMBagPrevious(scr->stacking_list, &iter)) {
/* can't optimize */
@@ -436,6 +441,7 @@ wLowerFrame(WCoreWindow *frame)
wKWMSendEventMessage(wwin, WKWMLowerWindow);
}
#endif
}
@@ -462,6 +468,7 @@ AddToStackList(WCoreWindow *frame)
frame->screen_ptr->window_count++;
XSaveContext(dpy, frame->window, wStackContext, (XPointer)frame);
tmpw = WMGetFromBag(scr->stacking_list, index);
if (!tmpw) {
WMSetInBag(scr->stacking_list, index, frame);
frame->stacking->above = NULL;
@@ -507,6 +514,7 @@ AddToStackList(WCoreWindow *frame)
}
#endif
CommitStacking(scr);
}
@@ -575,6 +583,7 @@ MoveInStackListAbove(WCoreWindow *next, WCoreWindow *frame)
} else {
moveFrameToUnder(frame->stacking->above, frame);
}
}
@@ -628,9 +637,7 @@ RemoveFromStackList(WCoreWindow *frame)
int index = frame->stacking->window_level;
if (XDeleteContext(dpy, frame->window, wStackContext)==XCNOENT) {
#ifdef DEBUG0
wwarning("RemoveFromStackingList(): window not in list ");
#endif
return;
}
/* remove from the window stack list */
@@ -639,7 +646,7 @@ RemoveFromStackList(WCoreWindow *frame)
if (frame->stacking->above)
frame->stacking->above->stacking->under = frame->stacking->under;
else /* this was the first window on the list */
WMSetInBag(frame->screen_ptr->stacking_list, index,
WMSetInBag(frame->screen_ptr->stacking_list, index,
frame->stacking->under);
frame->screen_ptr->window_count--;

View File

@@ -896,27 +896,26 @@ StartUp(Bool defaultScreenOnly)
wMenuRestoreState(wScreen[j]);
/* If we're not restarting restore session */
if (ws_state == NULL)
if (ws_state == NULL && !wPreferences.flags.norestore)
wSessionRestoreState(wScreen[j]);
if(!wPreferences.flags.noautolaunch)
{
/* auto-launch apps */
if (!wPreferences.flags.nodock && wScreen[j]->dock) {
wScreen[j]->last_dock = wScreen[j]->dock;
wDockDoAutoLaunch(wScreen[j]->dock, 0);
}
/* auto-launch apps in clip */
if (!wPreferences.flags.noclip) {
int i;
for(i=0; i<wScreen[j]->workspace_count; i++) {
if (wScreen[j]->workspaces[i]->clip) {
wScreen[j]->last_dock = wScreen[j]->workspaces[i]->clip;
wDockDoAutoLaunch(wScreen[j]->workspaces[i]->clip, i);
if (!wPreferences.flags.noautolaunch) {
/* auto-launch apps */
if (!wPreferences.flags.nodock && wScreen[j]->dock) {
wScreen[j]->last_dock = wScreen[j]->dock;
wDockDoAutoLaunch(wScreen[j]->dock, 0);
}
/* auto-launch apps in clip */
if (!wPreferences.flags.noclip) {
int i;
for(i=0; i<wScreen[j]->workspace_count; i++) {
if (wScreen[j]->workspaces[i]->clip) {
wScreen[j]->last_dock = wScreen[j]->workspaces[i]->clip;
wDockDoAutoLaunch(wScreen[j]->workspaces[i]->clip, i);
}
}
}
}
}
/* go to workspace where we were before restart */
if (ws_state) {

View File

@@ -516,9 +516,8 @@ error:
while (--i > 0) {
XFreePixmap(dpy, d[i]);
}
return False;
#endif
return False;
}

View File

@@ -256,6 +256,7 @@ x_reset_modifier_mapping (Display *display)
" by the keysyms used to control those bits. Mod1 does NOT always\n"
" mean Meta, although some non-ICCCM-compliant programs assume that.\n");
#endif
XFree(x_modifier_keymap);
}