Fix regressions introduced by previous commit.
- Conditionally enable and disable event masks as needed when we detect the mouse entering/exiting the deskbar area. This is necessary because otherwise the app_server appears to eat mouse messages due to the ctrl+cmd+ resize shortcut. Also change some conditionals slightly to better deal with differing combinations of autohide and/or autoraise.
This commit is contained in:
@@ -250,11 +250,19 @@ TBarView::MouseMoved(BPoint where, uint32 transit, const BMessage* dragMessage)
|
|||||||
bool autoRaise = settings->autoRaise;
|
bool autoRaise = settings->autoRaise;
|
||||||
bool autoHide = settings->autoHide;
|
bool autoHide = settings->autoHide;
|
||||||
|
|
||||||
if (!autoRaise && !autoHide)
|
if (DragRegion()->IsDragging()) {
|
||||||
|
DragRegion()->MouseMoved(where, transit, dragMessage);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (DragRegion()->IsDragging())
|
if (transit == B_ENTERED_VIEW && EventMask() == 0)
|
||||||
|
SetEventMask(B_POINTER_EVENTS, B_NO_POINTER_HISTORY);
|
||||||
|
|
||||||
|
if (!autoRaise && !autoHide) {
|
||||||
|
if (transit == B_EXITED_VIEW || transit == B_OUTSIDE_VIEW)
|
||||||
|
SetEventMask(0);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bool isTopMost = Window()->Feel() == B_FLOATING_ALL_WINDOW_FEEL;
|
bool isTopMost = Window()->Feel() == B_FLOATING_ALL_WINDOW_FEEL;
|
||||||
|
|
||||||
@@ -266,13 +274,12 @@ TBarView::MouseMoved(BPoint where, uint32 transit, const BMessage* dragMessage)
|
|||||||
&& Window()->Frame().Contains(where)) {
|
&& Window()->Frame().Contains(where)) {
|
||||||
// cursor is on a screen edge within the window frame
|
// cursor is on a screen edge within the window frame
|
||||||
|
|
||||||
if (!alwaysOnTop && autoRaise && !isTopMost) {
|
if (!alwaysOnTop && autoRaise && !isTopMost)
|
||||||
RaiseDeskbar(true);
|
RaiseDeskbar(true);
|
||||||
SetEventMask(B_POINTER_EVENTS, B_NO_POINTER_HISTORY);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (autoHide && IsHidden())
|
if (autoHide && IsHidden())
|
||||||
HideDeskbar(false);
|
HideDeskbar(false);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
TBarWindow* window = (TBarWindow*)Window();
|
TBarWindow* window = (TBarWindow*)Window();
|
||||||
if (window->IsShowingMenu())
|
if (window->IsShowingMenu())
|
||||||
|
|||||||
Reference in New Issue
Block a user