]> Dogcows Code - chaz/openbox/blobdiff - src/openbox.cc
initialize _modal, its used before the window's type is checked
[chaz/openbox] / src / openbox.cc
index 727b403ebbe8c543bf55ef36f1c0b8b9c171e6f3..50146e270dad245e0a025535aab917cba032c75c 100644 (file)
@@ -360,13 +360,27 @@ Client *Openbox::findClient(Window window)
 
 void Openbox::setFocusedClient(Client *c)
 {
+  if (c == _focused_client) return;
+  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();
This page took 0.022798 seconds and 4 git commands to generate.