From dc0f0d6fa178403080658887af3ca1a6c0e41188 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Wed, 18 Mar 2015 00:57:05 -0400 Subject: Map editor stops highlighting cursor when you scroll off editable map area --- tools/mapedit/src/widget.cpp | 22 ++++++++++++++++++++++ tools/mapedit/src/widget.h | 1 + 2 files changed, 23 insertions(+) diff --git a/tools/mapedit/src/widget.cpp b/tools/mapedit/src/widget.cpp index 41de4ca..7f90880 100644 --- a/tools/mapedit/src/widget.cpp +++ b/tools/mapedit/src/widget.cpp @@ -14,6 +14,7 @@ BEGIN_EVENT_TABLE(MapeditWidget, wxScrolledCanvas) EVT_LEFT_UP(MapeditWidget::OnMouseUp) EVT_MOTION(MapeditWidget::OnMouseMove) EVT_LEAVE_WINDOW(MapeditWidget::OnMouseOut) + EVT_SCROLLWIN(MapeditWidget::OnScroll) END_EVENT_TABLE() MapeditWidget::MapeditWidget() @@ -565,3 +566,24 @@ void MapeditWidget::RenderMap(Map* toRender, wxPaintDC& dc, wxMemoryDC& tiles_dc } } } + +void MapeditWidget::OnScroll(wxScrollWinEvent&) +{ + int vX, vY, vW, vH; + GetViewStart(&vX, &vY); + GetVirtualSize(&vW, &vH); + int vXX, vYX; + GetScrollPixelsPerUnit(&vXX, &vYX); + vX *= vXX; + vY *= vYX; + + if ((mousePos.x+vX >= EDITOR_SPACING_X*scale) && (mousePos.x+vX < (EDITOR_WIDTH-EDITOR_SPACING_X)*scale) + && (mousePos.y+vY >= EDITOR_SPACING_Y*scale) && (mousePos.y+vY < (EDITOR_HEIGHT-EDITOR_SPACING_Y)*scale)) + { + mouseIsIn = true; + } else { + mouseIsIn = false; + } + + Refresh(); +} diff --git a/tools/mapedit/src/widget.h b/tools/mapedit/src/widget.h index 12784f8..864e299 100644 --- a/tools/mapedit/src/widget.h +++ b/tools/mapedit/src/widget.h @@ -50,6 +50,7 @@ class MapeditWidget : public wxScrolledCanvas { void OnMouseMove(wxMouseEvent& event); void OnMouseUp(wxMouseEvent& event); void OnMouseOut(wxMouseEvent& event); + void OnScroll(wxScrollWinEvent& event); private: void SetTile(wxPoint pos); -- cgit 1.4.1