X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fblackbox.cc;h=6bd47f9c4fee61fdf6e7eacb49d4fdac5737b729;hb=cac80d06ef93fac0b4d39ec28fada1076f5bf28d;hp=631e819e1bab33c5c499efd112ca2e0739def576;hpb=b29977196b527bb50b045cad249e9c149fa0ef75;p=chaz%2Fopenbox diff --git a/src/blackbox.cc b/src/blackbox.cc index 631e819e..6bd47f9c 100644 --- a/src/blackbox.cc +++ b/src/blackbox.cc @@ -164,7 +164,6 @@ Blackbox::Blackbox(char **m_argv, char *dpy_name, char *rc, char *menu) active_screen = 0; focused_window = changing_window = (BlackboxWindow *) 0; - XrmInitialize(); load_rc(); xatom = new XAtom(getXDisplay()); @@ -329,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); @@ -965,6 +972,9 @@ void Blackbox::process_event(XEvent *e) { bool Blackbox::handleSignal(int sig) { switch (sig) { case SIGHUP: + restart(); + break; + case SIGUSR1: reconfigure(); break; @@ -1202,7 +1212,7 @@ void Blackbox::save_rc(void) { void Blackbox::load_rc(void) { if (! config.load()) - config.create(); + config.create(); string s;