diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/Window.cc b/src/Window.cc index edc2b8e..b2bfcf7 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1213,6 +1213,9 @@ void FluxboxWindow::moveResize(int new_x, int new_y, | |||
1213 | if (!moving) { | 1213 | if (!moving) { |
1214 | m_last_resize_x = new_x; | 1214 | m_last_resize_x = new_x; |
1215 | m_last_resize_y = new_y; | 1215 | m_last_resize_y = new_y; |
1216 | |||
1217 | /* Ignore all EnterNotify events until the pointer actually moves */ | ||
1218 | screen().focusControl().ignoreAtPointer(); | ||
1216 | } | 1219 | } |
1217 | 1220 | ||
1218 | } | 1221 | } |
@@ -1670,6 +1673,10 @@ void FluxboxWindow::lower() { | |||
1670 | #ifdef DEBUG | 1673 | #ifdef DEBUG |
1671 | cerr<<"FluxboxWindow("<<title()<<")::lower()"<<endl; | 1674 | cerr<<"FluxboxWindow("<<title()<<")::lower()"<<endl; |
1672 | #endif // DEBUG | 1675 | #endif // DEBUG |
1676 | |||
1677 | /* Ignore all EnterNotify events until the pointer actually moves */ | ||
1678 | screen().focusControl().ignoreAtPointer(); | ||
1679 | |||
1673 | // get root window | 1680 | // get root window |
1674 | WinClient *client = getRootTransientFor(m_client); | 1681 | WinClient *client = getRootTransientFor(m_client); |
1675 | 1682 | ||
@@ -2684,13 +2691,17 @@ void FluxboxWindow::enterNotifyEvent(XCrossingEvent &ev) { | |||
2684 | sa.enter = sa.leave = False; | 2691 | sa.enter = sa.leave = False; |
2685 | XCheckIfEvent(display, &dummy, queueScanner, (char *) &sa); | 2692 | XCheckIfEvent(display, &dummy, queueScanner, (char *) &sa); |
2686 | 2693 | ||
2687 | if ((!sa.leave || sa.inferior) && !screen().focusControl().isCycling() ) { | 2694 | if ((!sa.leave || sa.inferior) && |
2695 | !screen().focusControl().isCycling() && | ||
2696 | !screen().focusControl().isIgnored(ev.x_root, ev.y_root) ) { | ||
2688 | focus(); | 2697 | focus(); |
2689 | } | 2698 | } |
2690 | } | 2699 | } |
2691 | } | 2700 | } |
2692 | 2701 | ||
2693 | if (screen().focusControl().isMouseTabFocus() && client && client != m_client) { | 2702 | if (screen().focusControl().isMouseTabFocus() && |
2703 | client && client != m_client && | ||
2704 | !screen().focusControl().isIgnored(ev.x_root, ev.y_root) ) { | ||
2694 | setCurrentClient(*client, isFocused()); | 2705 | setCurrentClient(*client, isFocused()); |
2695 | } | 2706 | } |
2696 | 2707 | ||