X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fblackbox.cc;h=ae3b5ead51865af7bff0b618ce94c300f3120f9b;hb=5fed16de70c0fbe40c9e62667f80f612d027c717;hp=dafc6bdfa8d8ce610008dfee93a13b12b3dcb177;hpb=32c13697524e01a21e5b667188cad73434693ecb;p=chaz%2Fopenbox diff --git a/src/blackbox.cc b/src/blackbox.cc index dafc6bdf..ae3b5ead 100644 --- a/src/blackbox.cc +++ b/src/blackbox.cc @@ -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); @@ -702,9 +710,11 @@ void Blackbox::process_event(XEvent *e) { if (win) { if (win->isIconic()) win->deiconify(False, True); + if (win->isShaded()) + win->shade(); if (win->isVisible() && win->setInputFocus()) { - //win->getScreen()->getWorkspace(win->getWorkspaceNumber())-> - // raiseWindow(win); + win->getScreen()->getWorkspace(win->getWorkspaceNumber())-> + raiseWindow(win); win->installColormap(True); } } @@ -964,6 +974,9 @@ void Blackbox::process_event(XEvent *e) { bool Blackbox::handleSignal(int sig) { switch (sig) { case SIGHUP: + restart(); + break; + case SIGUSR1: reconfigure(); break;