no_focus = False;
- resource.menu_file = resource.style_file = (char *) 0;
- resource.titlebar_layout = (char *) NULL;
+ resource.menu_file = resource.style_file = NULL;
+ resource.titlebar_layout = NULL;
resource.auto_raise_delay.tv_sec = resource.auto_raise_delay.tv_usec = 0;
- focused_window = masked_window = (OpenboxWindow *) 0;
+ focused_window = masked_window = NULL;
masked = None;
windowSearchList = new LinkedList<WindowSearch>;
if (resource.style_file)
delete [] resource.style_file;
+ if (resource.titlebar_layout)
+ delete [] resource.titlebar_layout;
+
delete timer;
delete screenList;
if (! win)
win = new OpenboxWindow(*this, e->xmaprequest.window);
- if ((win = searchWindow(e->xmaprequest.window)))
+ if ((win = searchWindow(e->xmaprequest.window))) {
win->mapRequestEvent(&e->xmaprequest);
-
+ // if we're using the click to place placement type, then immediately
+ // after the window is mapped, we need to start interactively moving it
+ if (win->getScreen()->placementPolicy() == BScreen::ClickMousePlacement) {
+ int x, y, rx, ry;
+ Window c, r;
+ unsigned int m;
+ XQueryPointer(getXDisplay(), win->getScreen()->getRootWindow(),
+ &r, &c, &rx, &ry, &x, &y, &m);
+ win->startMove(rx, ry);
+ }
+ }
break;
}
for (BScreen *s = it.current(); s != NULL; it++, s = it.current()) {
s->save();
s->getToolbar()->save();
+#ifdef SLIT
s->getSlit()->save();
+#endif // SLIT
}
config.setAutoSave(true);
void Openbox::load() {
if (!config.load())
- return;
+ config.create();
std::string s;
long l;