diff options
author | fluxgen <fluxgen> | 2004-01-16 18:07:40 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2004-01-16 18:07:40 (GMT) |
commit | 2e5776733219a5f3c6ab3acd0f4f369be76b764a (patch) | |
tree | 2e9c4415a4a60ea8de8f59f39835ff4087a4f8c7 /src | |
parent | 5a24731d3af68f376db099d8bb8ee4d7cb581124 (diff) | |
download | fluxbox_pavel-2e5776733219a5f3c6ab3acd0f4f369be76b764a.zip fluxbox_pavel-2e5776733219a5f3c6ab3acd0f4f369be76b764a.tar.bz2 |
fixed minor issue with keyboard navigation in menus
Diffstat (limited to 'src')
-rw-r--r-- | src/fluxbox.cc | 11 |
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); |