#include "Workspace.hh"
#include "Workspacemenu.hh"
#include "XAtom.hh"
-#include "Input.hh"
// X event scanner for enter/leave notifies - adapted from twm
struct scanargs {
::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);
active_screen = 0;
focused_window = changing_window = (BlackboxWindow *) 0;
- XrmInitialize();
load_rc();
xatom = new XAtom(getXDisplay());
- input = new BInput(this);
cursor.session = XCreateFontCursor(getXDisplay(), XC_left_ptr);
cursor.move = XCreateFontCursor(getXDisplay(), XC_fleur);
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) {
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;
}
void Blackbox::load_rc(void) {
if (! config.load())
- config.create();
+ config.create();
string s;