nextWindow, //done for now
prevWindow, //done for now
- nextWindowOnAllWorkspaces,
- prevWindowOnAllWorkspaces,
+ nextWindowOnAllWorkspaces, //done
+ prevWindowOnAllWorkspaces, //done
nextWindowOfClass,
prevWindowOfClass,
XKeysymToKeycode(getXDisplay(),
XStringToKeysym("Tab")),
Mod1Mask | ShiftMask));
+ _actions.push_back(Action(Action::nextWindowOnAllWorkspaces,
+ XKeysymToKeycode(getXDisplay(),
+ XStringToKeysym("Tab")),
+ Mod1Mask | ControlMask));
+ _actions.push_back(Action(Action::prevWindowOnAllWorkspaces,
+ XKeysymToKeycode(getXDisplay(),
+ XStringToKeysym("Tab")),
+ Mod1Mask | ShiftMask | ControlMask));
_actions.push_back(Action(Action::raise,
XKeysymToKeycode(getXDisplay(),
XStringToKeysym("Up")),
(*target)->iconic() ||
(! alldesktops && (*target)->desktop() != _active_desktop));
- if (target != _clients.end()) {
- if ((*target)->desktop() != _active_desktop)
- changeWorkspace((*target)->desktop());
-
- // we dont send an ACTIVE_WINDOW client message because that would also
- // unshade the window if it was shaded
- XSetInputFocus(_epist->getXDisplay(), (*target)->window(), RevertToNone,
- CurrentTime);
- XRaiseWindow(_epist->getXDisplay(), (*target)->window());
- }
+ if (target != _clients.end())
+ (*target)->focus();
}
_xatom->sendClientMessage(_screen->rootWindow(), XAtom::wm_change_state,
_window, IconicState);
}
+
+
+void XWindow::focus() const {
+ // this will also unshade the window..
+ _xatom->sendClientMessage(_screen->rootWindow(), XAtom::net_active_window,
+ _window);
+}
void raise() const;
void lower() const;
void iconify() const;
+ void focus() const;
bool operator == (const XWindow &w) const { return w._window == _window; }
bool operator == (const Window &w) const { return w == _window; }