aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsimonb <simonb>2006-04-19 06:55:14 (GMT)
committersimonb <simonb>2006-04-19 06:55:14 (GMT)
commit853b0340373b81110c151e97189dea16938d3dd9 (patch)
tree6358647bc2057d40fa0fe93a99dec32088e37091 /src
parent759ca9e6b5103c5589d4d5db3883fd34801cb1bf (diff)
downloadfluxbox-853b0340373b81110c151e97189dea16938d3dd9.zip
fluxbox-853b0340373b81110c151e97189dea16938d3dd9.tar.bz2
mouse focus fixes - thanks Scott Kuhl: skuhl AT cs utah edu
Diffstat (limited to 'src')
-rw-r--r--src/FocusControl.hh1
-rw-r--r--src/Window.cc4
2 files changed, 3 insertions, 2 deletions
diff --git a/src/FocusControl.hh b/src/FocusControl.hh
index 0d9cd05..65363dd 100644
--- a/src/FocusControl.hh
+++ b/src/FocusControl.hh
@@ -82,6 +82,7 @@ public:
82 void dirFocus(FluxboxWindow &win, FocusDir dir); 82 void dirFocus(FluxboxWindow &win, FocusDir dir);
83 bool isMouseFocus() const { return focusModel() == MOUSEFOCUS; } 83 bool isMouseFocus() const { return focusModel() == MOUSEFOCUS; }
84 bool isMouseTabFocus() const { return tabFocusModel() == MOUSETABFOCUS; } 84 bool isMouseTabFocus() const { return tabFocusModel() == MOUSETABFOCUS; }
85 bool isCycling() const { return m_cycling_focus; }
85 void addFocusFront(WinClient &client); 86 void addFocusFront(WinClient &client);
86 void addFocusBack(WinClient &client); 87 void addFocusBack(WinClient &client);
87 88
diff --git a/src/Window.cc b/src/Window.cc
index e766cab..4ced1c6 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -2662,7 +2662,7 @@ void FluxboxWindow::buttonPressEvent(XButtonEvent &be) {
2662 frame().buttonPressEvent(be); 2662 frame().buttonPressEvent(be);
2663 2663
2664 if (be.button == 1 || (be.button == 3 && be.state == Mod1Mask)) { 2664 if (be.button == 1 || (be.button == 3 && be.state == Mod1Mask)) {
2665 if ((! focused) && (! screen().focusControl().isMouseFocus())) { //check focus 2665 if ( (! focused) ) { //check focus
2666 setInputFocus(); 2666 setInputFocus();
2667 } 2667 }
2668 2668
@@ -3024,7 +3024,7 @@ void FluxboxWindow::enterNotifyEvent(XCrossingEvent &ev) {
3024 sa.enter = sa.leave = False; 3024 sa.enter = sa.leave = False;
3025 XCheckIfEvent(display, &dummy, queueScanner, (char *) &sa); 3025 XCheckIfEvent(display, &dummy, queueScanner, (char *) &sa);
3026 3026
3027 if ((!sa.leave || sa.inferior)) { 3027 if ((!sa.leave || sa.inferior) && !screen().focusControl().isCycling() ) {
3028 setInputFocus(); 3028 setInputFocus();
3029 } 3029 }
3030 } 3030 }