// root window
if (e.xproperty.atom == _xatom->getAtom(XAtom::net_number_of_desktops))
updateNumDesktops();
- if (e.xproperty.atom == _xatom->getAtom(XAtom::net_current_desktop))
+ else if (e.xproperty.atom == _xatom->getAtom(XAtom::net_current_desktop))
updateActiveDesktop();
- if (e.xproperty.atom == _xatom->getAtom(XAtom::net_active_window))
+ else if (e.xproperty.atom == _xatom->getAtom(XAtom::net_active_window))
updateActiveWindow();
- if (e.xproperty.atom == _xatom->getAtom(XAtom::net_client_list)) {
+ else if (e.xproperty.atom == _xatom->getAtom(XAtom::net_client_list)) {
// catch any window unmaps first
XEvent ev;
if (XCheckTypedWindowEvent(_epist->getXDisplay(), e.xany.window,
return;
case Action::moveWindowUp:
- window->move(window->x(), window->y() - it->number());
+ window->move(window->x(), window->y() -
+ (it->number() != 0 ? it->number(): 1));
return;
case Action::moveWindowDown:
- window->move(window->x(), window->y() + it->number());
+ window->move(window->x(), window->y() +
+ (it->number() != 0 ? it->number(): 1));
return;
case Action::moveWindowLeft:
- window->move(window->x() - it->number(), window->y());
+ window->move(window->x() - (it->number() != 0 ? it->number(): 1),
+ window->y());
return;
case Action::moveWindowRight:
- window->move(window->x() + it->number(), window->y());
+ window->move(window->x() + (it->number() != 0 ? it->number(): 1),
+ window->y());
return;
case Action::resizeWindowWidth:
case Action::toggleMaximizeFull:
window->toggleMaximize(XWindow::Max_Full);
return;
+
+ case Action::toggleDecorations:
+ window->decorate(! window->decorated());
+ return;
default:
assert(false); // unhandled action type!