X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fblackbox.cc;h=631e819e1bab33c5c499efd112ca2e0739def576;hb=6d4aa1af4e6377602e051cccb881fbd357f34de7;hp=00a640381530341f1974dacc5a92334ac9bb79fd;hpb=ffa4c7f3414944869016497a4f560c24b9d8b3e9;p=chaz%2Fopenbox diff --git a/src/blackbox.cc b/src/blackbox.cc index 00a64038..631e819e 100644 --- a/src/blackbox.cc +++ b/src/blackbox.cc @@ -111,7 +111,6 @@ using std::string; #include "Workspace.hh" #include "Workspacemenu.hh" #include "XAtom.hh" -#include "Input.hh" // X event scanner for enter/leave notifies - adapted from twm struct scanargs { @@ -146,6 +145,12 @@ Blackbox::Blackbox(char **m_argv, char *dpy_name, char *rc, char *menu) ::blackbox = this; argv = m_argv; + + // try to make sure the ~/.openbox directory exists + mkdir(expandTilde("~/.openbox").c_str(), S_IREAD | S_IWRITE | S_IEXEC | + S_IRGRP | S_IWGRP | S_IXGRP | + S_IROTH | S_IWOTH | S_IXOTH); + if (! rc) rc = "~/.openbox/rc"; rc_file = expandTilde(rc); config.setFile(rc_file); @@ -163,7 +168,6 @@ Blackbox::Blackbox(char **m_argv, char *dpy_name, char *rc, char *menu) load_rc(); xatom = new XAtom(getXDisplay()); - input = new BInput(this); cursor.session = XCreateFontCursor(getXDisplay(), XC_left_ptr); cursor.move = XCreateFontCursor(getXDisplay(), XC_fleur); @@ -324,7 +328,12 @@ void Blackbox::process_event(XEvent *e) { BlackboxWindow *win = searchWindow(e->xmaprequest.window); - if (! win) { + if (win) { + if (win->isIconic()) { + win->deiconify(); + win->setInputFocus(); + } + } else { BScreen *screen = searchScreen(e->xmaprequest.parent); if (! screen) { @@ -446,13 +455,9 @@ void Blackbox::process_event(XEvent *e) { case PropertyNotify: { last_time = e->xproperty.time; - if (e->xproperty.state != PropertyDelete) { - BlackboxWindow *win = searchWindow(e->xproperty.window); - - if (win) - win->propertyNotifyEvent(e->xproperty.atom); - } - + BlackboxWindow *win = searchWindow(e->xproperty.window); + if (win) + win->propertyNotifyEvent(&e->xproperty); break; }