summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-02-03 08:37:55 +0000
committerDana Jansens <danakj@orodu.net>2003-02-03 08:37:55 +0000
commit88a4e59f44d077bae57e4c2be762c88d3141ed36 (patch)
tree91f784c79a0f5d2a31afd4ce9c7de7ab8abbf63e
parentef48bd3dffbc273a0be170a96a4511658a05a050 (diff)
always get the first focused screen
-rw-r--r--src/openbox.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/openbox.cc b/src/openbox.cc
index 0143a3eb..caacb63b 100644
--- a/src/openbox.cc
+++ b/src/openbox.cc
@@ -148,6 +148,8 @@ Openbox::Openbox(int argc, char **argv)
python_exec(SCRIPTDIR"/defaults.py"); // system default bahaviors
// initialize all the screens
+ _focused_screen = 0;
+
for (int i = 0, max = ScreenCount(**otk::display); i < max; ++i) {
Screen *screen;
if (_single && i != DefaultScreen(**otk::display)) {
@@ -155,14 +157,18 @@ Openbox::Openbox(int argc, char **argv)
continue;
}
screen = new Screen(i);
- if (screen->managed())
+ if (screen->managed()) {
_screens.push_back(screen);
- else {
+ if (!_focused_screen) // set this to the first screen managed
+ _focused_screen = screen;
+ } else {
delete screen;
_screens.push_back(0);
}
}
+ assert(_focused_screen);
+
if (_screens.empty()) {
printf(_("No screens were found without a window manager. Exiting.\n"));
::exit(1);
@@ -177,7 +183,6 @@ Openbox::Openbox(int argc, char **argv)
_bindings->grabKeys(true);
// set up input focus
- _focused_screen = _screens[0];
setFocusedClient(0);
_state = State_Normal; // done starting