summaryrefslogtreecommitdiff
path: root/src/Screen.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-06-05 04:20:08 +0000
committerDana Jansens <danakj@orodu.net>2002-06-05 04:20:08 +0000
commitaad50046de0b1971f869ee95a0f80267c74a1fd3 (patch)
tree4482c98602aca1abeacda399a025be684c6a8b43 /src/Screen.cc
parent7a55323343635d8a29bb62cd49d8d6a5c103f317 (diff)
synched with bb-cvs. couple bug fixes.
Diffstat (limited to 'src/Screen.cc')
-rw-r--r--src/Screen.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/Screen.cc b/src/Screen.cc
index 8779733c..512475c8 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -1040,10 +1040,14 @@ void BScreen::changeWorkspaceID(unsigned int id) {
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 @@ void BScreen::manageWindow(Window w) {
XMapRequestEvent mre;
mre.window = w;
- win->restoreAttributes();
+ if (blackbox->isStartup())
+ win->restoreAttributes();
win->mapRequestEvent(&mre);
}