add next/prev window on all workspaces

This commit is contained in:
Dana Jansens 2002-07-20 09:58:49 +00:00
parent faab750f78
commit a9dfa0439b
5 changed files with 20 additions and 12 deletions

View file

@ -47,8 +47,8 @@ public:
nextWindow, //done for now
prevWindow, //done for now
nextWindowOnAllWorkspaces,
prevWindowOnAllWorkspaces,
nextWindowOnAllWorkspaces, //done
prevWindowOnAllWorkspaces, //done
nextWindowOfClass,
prevWindowOfClass,

View file

@ -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")),

View file

@ -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();
}

View file

@ -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);
}

View file

@ -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; }