diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/CurrentWindowCmd.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/CurrentWindowCmd.cc b/src/CurrentWindowCmd.cc index 44556f5..3e4ef38 100644 --- a/src/CurrentWindowCmd.cc +++ b/src/CurrentWindowCmd.cc | |||
@@ -227,8 +227,16 @@ public: | |||
227 | explicit ActivateTabCmd() { } | 227 | explicit ActivateTabCmd() { } |
228 | protected: | 228 | protected: |
229 | void real_execute() { | 229 | void real_execute() { |
230 | WinClient* winclient = fbwindow().winClientOfLabelButtonWindow( | 230 | Window root, last = 0, |
231 | Fluxbox::instance()->lastEvent().xany.window); | 231 | tab = Fluxbox::instance()->lastEvent().xany.window; |
232 | int junk; unsigned int ujunk; | ||
233 | WinClient *winclient = 0; | ||
234 | Display *dpy = Fluxbox::instance()->display(); | ||
235 | while (!winclient && tab && tab != last) { | ||
236 | last = tab; | ||
237 | XQueryPointer(dpy, tab, &root, &tab, &junk, &junk, &junk, &junk, &ujunk); | ||
238 | winclient = fbwindow().winClientOfLabelButtonWindow(tab); | ||
239 | } | ||
232 | 240 | ||
233 | if (winclient && winclient != &fbwindow().winClient()) { | 241 | if (winclient && winclient != &fbwindow().winClient()) { |
234 | fbwindow().setCurrentClient(*winclient, true); | 242 | fbwindow().setCurrentClient(*winclient, true); |