aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfluxgen <fluxgen>2004-01-16 18:07:40 (GMT)
committerfluxgen <fluxgen>2004-01-16 18:07:40 (GMT)
commit2e5776733219a5f3c6ab3acd0f4f369be76b764a (patch)
tree2e9c4415a4a60ea8de8f59f39835ff4087a4f8c7
parent5a24731d3af68f376db099d8bb8ee4d7cb581124 (diff)
downloadfluxbox_paul-2e5776733219a5f3c6ab3acd0f4f369be76b764a.zip
fluxbox_paul-2e5776733219a5f3c6ab3acd0f4f369be76b764a.tar.bz2
fixed minor issue with keyboard navigation in menus
-rw-r--r--src/fluxbox.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index c37e4b8..5d7f53b 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.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: fluxbox.cc,v 1.224 2004/01/16 11:38:30 fluxgen Exp $ 25// $Id: fluxbox.cc,v 1.225 2004/01/16 18:07:40 fluxgen Exp $
26 26
27#include "fluxbox.hh" 27#include "fluxbox.hh"
28 28
@@ -756,9 +756,14 @@ void Fluxbox::handleEvent(XEvent * const e) {
756 // we need to check focus out for menus before 756 // we need to check focus out for menus before
757 // we call FbTk eventhandler 757 // we call FbTk eventhandler
758 // so we can get FbTk::Menu::focused() before it sets to 0 758 // so we can get FbTk::Menu::focused() before it sets to 0
759
759 if (e->type == FocusOut && 760 if (e->type == FocusOut &&
761 e->xfocus.mode != NotifyGrab &&
762 e->xfocus.detail != NotifyPointer &&
763 e->xfocus.detail != NotifyInferior &&
760 FbTk::Menu::focused() != 0 && 764 FbTk::Menu::focused() != 0 &&
761 FbTk::Menu::focused()->window() == e->xfocus.window) { 765 FbTk::Menu::focused()->window() == e->xfocus.window) {
766
762 // find screen num 767 // find screen num
763 BScreen *screen = 0; 768 BScreen *screen = 0;
764 ScreenList::iterator it = m_screen_list.begin(); 769 ScreenList::iterator it = m_screen_list.begin();
@@ -770,8 +775,9 @@ void Fluxbox::handleEvent(XEvent * const e) {
770 break; // found the screen, no more search 775 break; // found the screen, no more search
771 } 776 }
772 } 777 }
778
773 if (screen != 0) 779 if (screen != 0)
774 revertFocus(*screen); 780 revertFocus(*screen);
775 } 781 }
776 782
777 // try FbTk::EventHandler first 783 // try FbTk::EventHandler first
@@ -923,7 +929,6 @@ void Fluxbox::handleEvent(XEvent * const e) {
923 e->xfocus.detail == NotifyPointer || 929 e->xfocus.detail == NotifyPointer ||
924 e->xfocus.detail == NotifyInferior) 930 e->xfocus.detail == NotifyInferior)
925 break; 931 break;
926
927 WinClient *winclient = searchWindow(e->xfocus.window); 932 WinClient *winclient = searchWindow(e->xfocus.window);
928 if (winclient && m_focused_window != winclient) 933 if (winclient && m_focused_window != winclient)
929 setFocusedWindow(winclient); 934 setFocusedWindow(winclient);