diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/Window.cc b/src/Window.cc index 0fb8673..0db3b80 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1930,6 +1930,9 @@ void FluxboxWindow::setFocusFlag(bool focus) { | |||
1930 | m_focussig.notify(); | 1930 | m_focussig.notify(); |
1931 | if (m_client) | 1931 | if (m_client) |
1932 | m_client->focusSig().notify(); | 1932 | m_client->focusSig().notify(); |
1933 | WindowCmd<void>::setClient(m_client); | ||
1934 | Fluxbox::instance()->keys()->doAction(focus ? FocusIn : FocusOut, 0, 0, | ||
1935 | Keys::ON_WINDOW); | ||
1933 | } | 1936 | } |
1934 | } | 1937 | } |
1935 | 1938 | ||
@@ -2942,6 +2945,12 @@ void FluxboxWindow::enterNotifyEvent(XCrossingEvent &ev) { | |||
2942 | return; | 2945 | return; |
2943 | } | 2946 | } |
2944 | 2947 | ||
2948 | if (ev.window == frame().window()) { | ||
2949 | WindowCmd<void>::setWindow(this); | ||
2950 | Fluxbox::instance()->keys()->doAction(ev.type, ev.state, 0, | ||
2951 | Keys::ON_WINDOW); | ||
2952 | } | ||
2953 | |||
2945 | WinClient *client = 0; | 2954 | WinClient *client = 0; |
2946 | if (screen().focusControl().isMouseTabFocus()) { | 2955 | if (screen().focusControl().isMouseTabFocus()) { |
2947 | // determine if we're in a label button (tab) | 2956 | // determine if we're in a label button (tab) |
@@ -2984,6 +2993,23 @@ void FluxboxWindow::enterNotifyEvent(XCrossingEvent &ev) { | |||
2984 | } | 2993 | } |
2985 | 2994 | ||
2986 | void FluxboxWindow::leaveNotifyEvent(XCrossingEvent &ev) { | 2995 | void FluxboxWindow::leaveNotifyEvent(XCrossingEvent &ev) { |
2996 | |||
2997 | // ignore grab activates, or if we're not visible | ||
2998 | if (ev.mode == NotifyGrab || ev.mode == NotifyUngrab || | ||
2999 | !isVisible()) { | ||
3000 | return; | ||
3001 | } | ||
3002 | |||
3003 | // still inside? | ||
3004 | if (ev.x_root > frame().x() && ev.y_root > frame().y() && | ||
3005 | ev.x_root <= (int)(frame().x() + frame().width()) && | ||
3006 | ev.y_root <= (int)(frame().y() + frame().height())) | ||
3007 | return; | ||
3008 | |||
3009 | WindowCmd<void>::setWindow(this); | ||
3010 | Fluxbox::instance()->keys()->doAction(ev.type, ev.state, 0, | ||
3011 | Keys::ON_WINDOW); | ||
3012 | |||
2987 | // I hope commenting this out is right - simon 21jul2003 | 3013 | // I hope commenting this out is right - simon 21jul2003 |
2988 | //if (ev.window == frame().window()) | 3014 | //if (ev.window == frame().window()) |
2989 | //installColormap(false); | 3015 | //installColormap(false); |