#include "otk/property.hh"
#include "otk/util.hh"
#include "otk/rendercolor.hh"
+#include "otk/renderstyle.hh"
extern "C" {
#include <X11/cursorfont.h>
while (waitpid(-1, NULL, WNOHANG) > 0);
otk::RenderColor::initialize();
+ otk::RenderStyle::initialize();
otk::Timer::initialize();
otk::Property::initialize();
_actions = new Actions();
for (it = _screens.begin(); it != end; ++it) {
(*it)->manageExisting();
}
-
+
// grab any keys set up before the screens existed
_bindings->grabKeys(true);
//delete _display;
otk::Timer::destroy();
+ otk::RenderStyle::destroy();
otk::RenderColor::destroy();
}
void Openbox::setFocusedClient(Client *c)
{
+ // sometimes this is called with the already-focused window, this is
+ // important for the python scripts to work (eg, c = 0 twice). don't just
+ // return if _focused_client == c
+
+ assert(_focused_screen);
+
+ // uninstall the old colormap
+ if (_focused_client)
+ _focused_client->installColormap(false);
+ else
+ _focused_screen->installColormap(false);
+
_focused_client = c;
if (c) {
_focused_screen = _screens[c->screen()];
+
+ // install the client's colormap
+ c->installColormap(true);
} else {
- assert(_focused_screen);
XSetInputFocus(**otk::display, _focused_screen->focuswindow(),
RevertToNone, CurrentTime);
+
+ // install the root window colormap
+ _focused_screen->installColormap(true);
}
// set the NET_ACTIVE_WINDOW hint for all screens
ScreenList::iterator it, end = _screens.end();