all repos — fluxbox @ 9eecd58bf30c8b1c0d72b9070bf91e2c60f32fa5

custom fork of the fluxbox windowmanager

make alt-tab skip modal windows
Mark Tiefenbruck mark@fluxbox.org
commit

9eecd58bf30c8b1c0d72b9070bf91e2c60f32fa5

parent

610a15ac47371c5cbd4c2dcf6eec696aec5bb4fa

4 files changed, 9 insertions(+), 2 deletions(-)

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

@@ -53,7 +53,7 @@ namespace {

bool doSkipWindow(const Focusable &win, const ClientPattern *pat) { const FluxboxWindow *fbwin = win.fbwindow(); - if (!fbwin || fbwin->isFocusHidden()) + if (!fbwin || fbwin->isFocusHidden() || fbwin->isModal()) return true; // skip if no fbwindow or if focushidden if (pat && !pat->match(win)) return true; // skip if it doesn't match the pattern
M src/Focusable.hhsrc/Focusable.hh

@@ -54,8 +54,10 @@ virtual bool focus() { return false; }

/// @return true if the focusable has input focus virtual bool isFocused() const { return m_focused; } - /// @return return true if it can be focused + /// @return true if it can be focused virtual bool acceptsFocus() const { return true; } + /// @return true if temporarily prevented from being focused + virtual bool isModal() const { return false; } /// @return true if icon button should appear focused bool getAttentionState() const { return m_attention_state; }
M src/Window.ccsrc/Window.cc

@@ -3306,6 +3306,10 @@ bool FluxboxWindow::acceptsFocus() const {

return (m_client ? m_client->acceptsFocus() : false); } +bool FluxboxWindow::isModal() const { + return (m_client ? m_client->isModal() : true); +} + const FbTk::PixmapWithMask &FluxboxWindow::icon() const { return (m_client ? m_client->icon() : m_icon); }
M src/Window.hhsrc/Window.hh

@@ -414,6 +414,7 @@ const FbTk::FbWindow &parent() const { return m_parent; }

FbTk::FbWindow &parent() { return m_parent; } bool acceptsFocus() const; + bool isModal() const; const FbTk::PixmapWithMask &icon() const; const FbTk::BiDiString &title() const; const FbTk::FbString &getWMClassName() const;