add next/prev window on all workspaces
This commit is contained in:
parent
faab750f78
commit
a9dfa0439b
5 changed files with 20 additions and 12 deletions
|
@ -47,8 +47,8 @@ public:
|
|||
|
||||
nextWindow, //done for now
|
||||
prevWindow, //done for now
|
||||
nextWindowOnAllWorkspaces,
|
||||
prevWindowOnAllWorkspaces,
|
||||
nextWindowOnAllWorkspaces, //done
|
||||
prevWindowOnAllWorkspaces, //done
|
||||
|
||||
nextWindowOfClass,
|
||||
prevWindowOfClass,
|
||||
|
|
|
@ -100,6 +100,14 @@ epist::epist(char **argv, char *dpy_name, char *rc_file)
|
|||
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")),
|
||||
|
|
|
@ -356,16 +356,8 @@ void screen::cycleWindow(const bool forward, const bool alldesktops) const {
|
|||
(*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();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -170,3 +170,10 @@ void XWindow::iconify() const {
|
|||
_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);
|
||||
}
|
||||
|
|
|
@ -85,6 +85,7 @@ public:
|
|||
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; }
|
||||
|
|
Loading…
Reference in a new issue