]> Dogcows Code - chaz/openbox/blobdiff - src/blackbox.cc
clean up the systray and desktop lists
[chaz/openbox] / src / blackbox.cc
index dafc6bdfa8d8ce610008dfee93a13b12b3dcb177..6bd47f9c4fee61fdf6e7eacb49d4fdac5737b729 100644 (file)
@@ -328,10 +328,18 @@ void Blackbox::process_event(XEvent *e) {
     BlackboxWindow *win = searchWindow(e->xmaprequest.window);
 
     if (win) {
+      bool focus = False;
       if (win->isIconic()) {
         win->deiconify();
-        win->setInputFocus();
+        focus = True;
+      }
+      if (win->isShaded()) {
+        win->shade();
+        focus = True;
       }
+
+      if (focus && (win->isTransient() || win->getScreen()->doFocusNew()))
+        win->setInputFocus();
     } else {
       BScreen *screen = searchScreen(e->xmaprequest.parent);
 
@@ -964,6 +972,9 @@ void Blackbox::process_event(XEvent *e) {
 bool Blackbox::handleSignal(int sig) {
   switch (sig) {
   case SIGHUP:
+    restart();
+    break;
+
   case SIGUSR1:
     reconfigure();
     break;
This page took 0.023689 seconds and 4 git commands to generate.