mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-11 13:10:45 +00:00
(svn r19886) -Add [FS#3705]: Perform window callback during mouse dragging for the purpose of highlighting the destination (sbr).
This commit is contained in:
parent
0ccd755de6
commit
740185febd
@ -1382,6 +1382,24 @@ static bool HandleDragDrop()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool HandleMouseDrag()
|
||||||
|
{
|
||||||
|
if (_special_mouse_mode != WSM_DRAGDROP) return true;
|
||||||
|
if (!_left_button_down || (_cursor.delta.x == 0 && _cursor.delta.y == 0)) return true;
|
||||||
|
|
||||||
|
Window *w = GetCallbackWnd();
|
||||||
|
|
||||||
|
if (w != NULL) {
|
||||||
|
/* Send an event in client coordinates. */
|
||||||
|
Point pt;
|
||||||
|
pt.x = _cursor.pos.x - w->left;
|
||||||
|
pt.y = _cursor.pos.y - w->top;
|
||||||
|
w->OnMouseDrag(pt, GetWidgetFromPos(w, pt.x, pt.y));
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static bool HandleMouseOver()
|
static bool HandleMouseOver()
|
||||||
{
|
{
|
||||||
Window *w = FindWindowFromPt(_cursor.pos.x, _cursor.pos.y);
|
Window *w = FindWindowFromPt(_cursor.pos.x, _cursor.pos.y);
|
||||||
@ -2057,6 +2075,7 @@ static void MouseLoop(MouseClick click, int mousewheel)
|
|||||||
UpdateTileSelection();
|
UpdateTileSelection();
|
||||||
|
|
||||||
if (!VpHandlePlaceSizingDrag()) return;
|
if (!VpHandlePlaceSizingDrag()) return;
|
||||||
|
if (!HandleMouseDrag()) return;
|
||||||
if (!HandleDragDrop()) return;
|
if (!HandleDragDrop()) return;
|
||||||
if (!HandleWindowDragging()) return;
|
if (!HandleWindowDragging()) return;
|
||||||
if (!HandleScrollbarScrolling()) return;
|
if (!HandleScrollbarScrolling()) return;
|
||||||
|
@ -656,6 +656,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
virtual void OnRightClick(Point pt, int widget) {}
|
virtual void OnRightClick(Point pt, int widget) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An 'object' is being dragged at the provided position, highlight the target if possible.
|
||||||
|
* @param pt The point inside the window that the mouse hovers over.
|
||||||
|
* @param widget The widget the mouse hovers over.
|
||||||
|
*/
|
||||||
|
virtual void OnMouseDrag(Point pt, int widget) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A dragged 'object' has been released.
|
* A dragged 'object' has been released.
|
||||||
* @param pt the point inside the window where the release took place.
|
* @param pt the point inside the window where the release took place.
|
||||||
|
Loading…
Reference in New Issue
Block a user