all repos — fluxbox @ 3254816b6b0bbcf0e5b85ea8eb836ce9bac96bbb

custom fork of the fluxbox windowmanager

expose and fix ActivateTabCmd

The function failed if the last event window was actually the tab.
Thomas Lübking thomas.luebking@gmail.com
commit

3254816b6b0bbcf0e5b85ea8eb836ce9bac96bbb

parent

0d1b204121ba7168b03cd960e3a616b7b9a6c9b1

2 files changed, 24 insertions(+), 24 deletions(-)

jump to
M src/CurrentWindowCmd.ccsrc/CurrentWindowCmd.cc

@@ -167,6 +167,23 @@ void CurrentWindowCmd::real_execute() {

(fbwindow().*m_action)(); } +void ActivateTabCmd::real_execute() { + Window root, last = 0, + tab = Fluxbox::instance()->lastEvent().xany.window; + int junk; unsigned int ujunk; + WinClient *winclient = fbwindow().winClientOfLabelButtonWindow(tab); + Display *dpy = Fluxbox::instance()->display(); + while (!winclient && tab && tab != last) { + last = tab; + XQueryPointer(dpy, tab, &root, &tab, &junk, &junk, &junk, &junk, &ujunk); + winclient = fbwindow().winClientOfLabelButtonWindow(tab); + } + + if (winclient && winclient != &fbwindow().winClient()) { + fbwindow().setCurrentClient(*winclient, true); + } +} + namespace { FbTk::Command<void> *parseIntCmd(const string &command, const string &args,

@@ -220,30 +237,6 @@ }

REGISTER_COMMAND_PARSER(activate, parseFocusCmd, void); REGISTER_COMMAND_PARSER(focus, parseFocusCmd, void); - - -class ActivateTabCmd: public WindowHelperCmd { -public: - explicit ActivateTabCmd() { } -protected: - void real_execute() { - Window root, last = 0, - tab = Fluxbox::instance()->lastEvent().xany.window; - int junk; unsigned int ujunk; - WinClient *winclient = 0; - Display *dpy = Fluxbox::instance()->display(); - while (!winclient && tab && tab != last) { - last = tab; - XQueryPointer(dpy, tab, &root, &tab, &junk, &junk, &junk, &junk, &ujunk); - winclient = fbwindow().winClientOfLabelButtonWindow(tab); - } - - if (winclient && winclient != &fbwindow().winClient()) { - fbwindow().setCurrentClient(*winclient, true); - } - - } -}; REGISTER_COMMAND(activatetab, ActivateTabCmd, void);
M src/CurrentWindowCmd.hhsrc/CurrentWindowCmd.hh

@@ -282,4 +282,11 @@ private:

ClientPattern m_pat; }; +class ActivateTabCmd: public WindowHelperCmd { +public: + explicit ActivateTabCmd() { } +protected: + void real_execute(); +}; + #endif // CURRENTWINDOWCMD_HH