Partial fix for building bridges

This commit is contained in:
pelya
2017-03-27 00:19:28 +03:00
committed by Sergii Pylypenko
parent 94fb054554
commit bb71a37ab3
3 changed files with 10 additions and 7 deletions

View File

@@ -276,13 +276,14 @@ bool ConfirmationWindowShown()
bool BuildConfirmationWindowProcessViewportClick()
{
if (!BuildConfirmationWindow::shown) return false;
Window *w = FindWindowById(WC_BUILD_CONFIRMATION, 0);
if (w != NULL && IsInsideBS(_cursor.pos.x, w->left, w->width) && IsInsideBS(_cursor.pos.y, w->top, w->height)) {
Point pt;
pt.x = _cursor.pos.x - w->left;
pt.y = _cursor.pos.y - w->top;
w->OnClick(pt, WID_BC_OK, 1);
if (_settings_client.gui.windows_titlebars || !_left_button_down) {
Point pt;
pt.x = _cursor.pos.x - w->left;
pt.y = _cursor.pos.y - w->top;
w->OnClick(pt, WID_BC_OK, 1);
}
return true;
}

View File

@@ -2587,7 +2587,7 @@ static EventState HandleViewportScroll()
if (_left_button_down) {
oldDx += _cursor.delta.x;
oldDy += _cursor.delta.y;
if (!_left_button_dragged && abs(oldDx) + abs(oldDy) > 20) {
if (!_left_button_dragged && (abs(oldDx) + abs(oldDy)) * 2 > (int)GetMinSizing(NWST_STEP, 10)) {
_left_button_dragged = true;
}
} else {
@@ -3080,6 +3080,8 @@ static void MouseLoop(MouseClick click, int mousewheel)
if (!_left_button_dragged && mouse_down_on_viewport) {
HandleViewportMouseUp(vp, x, y);
MoveAllHiddenWindowsBackToScreen();
} else if (_left_button_dragged && mouse_down_on_viewport) {
BuildConfirmationWindowProcessViewportClick();
}
_left_button_dragged = false;
mouse_down_on_viewport = false;

View File

@@ -17,4 +17,4 @@
- Drag&drop is broken.
- Bridges dialog is broken.
- Cancelling bridge building still sohws the dialog.