diff options
author | rathnor <rathnor> | 2004-04-28 14:59:12 (GMT) |
---|---|---|
committer | rathnor <rathnor> | 2004-04-28 14:59:12 (GMT) |
commit | 4439b3f9b17e9c8bd9682ce967631f03249304bf (patch) | |
tree | 3e7fd160b6ba503359da09c5eec9b0f57d40e2f0 /src/Screen.cc | |
parent | bb779745f45c917099fde31c4cea8bb6d6bc6f7d (diff) | |
download | fluxbox_pavel-4439b3f9b17e9c8bd9682ce967631f03249304bf.zip fluxbox_pavel-4439b3f9b17e9c8bd9682ce967631f03249304bf.tar.bz2 |
fixes for/reimplement parts of directional focus movement
Diffstat (limited to 'src/Screen.cc')
-rw-r--r-- | src/Screen.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index eef61c4..f815f3a 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Screen.cc,v 1.275 2004/04/19 22:44:42 fluxgen Exp $ | 25 | // $Id: Screen.cc,v 1.276 2004/04/28 14:59:11 rathnor Exp $ |
26 | 26 | ||
27 | 27 | ||
28 | #include "Screen.hh" | 28 | #include "Screen.hh" |
@@ -1640,7 +1640,7 @@ void BScreen::setFocusedWindow(WinClient &winclient) { | |||
1640 | } | 1640 | } |
1641 | } | 1641 | } |
1642 | 1642 | ||
1643 | void BScreen::dirFocus(FluxboxWindow &win, FocusDir dir) { | 1643 | void BScreen::dirFocus(FluxboxWindow &win, const FocusDir dir) { |
1644 | // change focus to the window in direction dir from the given window | 1644 | // change focus to the window in direction dir from the given window |
1645 | 1645 | ||
1646 | // we scan through the list looking for the window that is "closest" | 1646 | // we scan through the list looking for the window that is "closest" |
@@ -1657,7 +1657,11 @@ void BScreen::dirFocus(FluxboxWindow &win, FocusDir dir) { | |||
1657 | Workspace::Windows &wins = currentWorkspace()->windowList(); | 1657 | Workspace::Windows &wins = currentWorkspace()->windowList(); |
1658 | Workspace::Windows::iterator it = wins.begin(); | 1658 | Workspace::Windows::iterator it = wins.begin(); |
1659 | for (; it != wins.end(); ++it) { | 1659 | for (; it != wins.end(); ++it) { |
1660 | if ((*it) == &win) continue; // skip slef | 1660 | if ((*it) == &win |
1661 | || (*it)->isIconic() | ||
1662 | || (*it)->isFocusHidden() | ||
1663 | || !(*it)->winClient().acceptsFocus()) | ||
1664 | continue; // skip self | ||
1661 | 1665 | ||
1662 | // we check things against an edge, and within the bounds (draw a picture) | 1666 | // we check things against an edge, and within the bounds (draw a picture) |
1663 | int edge=0, upper=0, lower=0, oedge=0, oupper=0, olower=0; | 1667 | int edge=0, upper=0, lower=0, oedge=0, oupper=0, olower=0; |