synched with bb-cvs. couple bug fixes.
Dana Jansens danakj@orodu.net
5 files changed,
14 insertions(+),
12 deletions(-)
M
src/Screen.cc
→
src/Screen.cc
@@ -1040,10 +1040,14 @@ current_workspace->hideAll();
workspacemenu->setItemSelected(current_workspace->getID() + 2, False); - if (blackbox->getFocusedWindow() && - blackbox->getFocusedWindow()->getScreen() == this && - ! blackbox->getFocusedWindow()->isStuck()) { - current_workspace->setLastFocusedWindow(blackbox->getFocusedWindow()); + BlackboxWindow *focused = blackbox->getFocusedWindow(); + if (focused && focused->getScreen() == this && ! focused->isStuck()) { + if (focused->getWorkspaceNumber() != current_workspace->getID()) { + fprintf(stderr, "%s is on the wrong workspace, aborting\n", + focused->getTitle()); + abort(); + } + current_workspace->setLastFocusedWindow(focused); blackbox->setFocusedWindow((BlackboxWindow *) 0); }@@ -1079,7 +1083,8 @@ windowList.push_back(win);
XMapRequestEvent mre; mre.window = w; - win->restoreAttributes(); + if (blackbox->isStartup()) + win->restoreAttributes(); win->mapRequestEvent(&mre); }
M
src/Window.cc
→
src/Window.cc
@@ -268,7 +268,6 @@ }
BlackboxWindow::~BlackboxWindow(void) { - #ifdef DEBUG fprintf(stderr, "BlackboxWindow::~BlackboxWindow: destroying 0x%lx\n", client.window);
M
src/Workspace.cc
→
src/Workspace.cc
@@ -224,7 +224,6 @@ wkspc->stackingList.remove((*it));
wkspc->stackingList.push_back((*it)); } } - }
M
src/blackbox.cc
→
src/blackbox.cc
@@ -666,10 +666,9 @@ win->deiconify();
} else if(e->xclient.message_type == getBlackboxChangeWorkspaceAtom()) { BScreen *screen = searchScreen(e->xclient.window); - if (screen && e->xclient.data.l[0] >= 0 && - e->xclient.data.l[0] < - static_cast<signed>(screen->getWorkspaceCount())) - screen->changeWorkspaceID(e->xclient.data.l[0]); + unsigned int workspace = e->xclient.data.l[0]; + if (screen && workspace < screen->getWorkspaceCount()) + screen->changeWorkspaceID(workspace); } else if (e->xclient.message_type == getBlackboxChangeWindowFocusAtom()) { BlackboxWindow *win = searchWindow(e->xclient.window);
M
util/Makefile.am
→
util/Makefile.am
@@ -11,7 +11,7 @@
MAINTAINERCLEANFILES = Makefile.in distclean-local: - rm -f *\~ + rm -f *\~ .\#* # local dependencies