diff options
Diffstat (limited to 'app-misc/golly/files')
-rw-r--r-- | app-misc/golly/files/golly-3.2-mouse-1.patch | 63 | ||||
-rw-r--r-- | app-misc/golly/files/golly-3.2-mouse-2.patch | 45 |
2 files changed, 108 insertions, 0 deletions
diff --git a/app-misc/golly/files/golly-3.2-mouse-1.patch b/app-misc/golly/files/golly-3.2-mouse-1.patch new file mode 100644 index 000000000000..ab4fc703f507 --- /dev/null +++ b/app-misc/golly/files/golly-3.2-mouse-1.patch @@ -0,0 +1,63 @@ +From e22d1534d486a7b46612ca6f6cd693b8fa4635d2 Mon Sep 17 00:00:00 2001 +From: Chris Rowett <rowett@yahoo.com> +Date: Tue, 10 Jul 2018 23:22:20 +0100 +Subject: [PATCH] bugfix: do not process other mouse buttons until current + button released + +--- + gui-wx/wxview.cpp | 15 +++++++++++++++ + gui-wx/wxview.h | 2 ++ + 2 files changed, 17 insertions(+) + +--- a/gui-wx/wxview.cpp ++++ b/gui-wx/wxview.cpp +@@ -2801,6 +2801,13 @@ void PatternView::OnMouseDown(wxMouseEvent& event) + int button = event.GetButton(); + int modifiers = GetMouseModifiers(event); + ++ // ignore if a mouse button is already down ++ if (mouseisdown) return; ++ ++ // flag that a mouse button is down ++ mouseisdown = true; ++ whichbuttondown = button; ++ + if (waitingforclick && button == wxMOUSE_BTN_LEFT) { + // save paste location + pastex = x; +@@ -2870,6 +2877,13 @@ void PatternView::OnMouseDown(wxMouseEvent& event) + + void PatternView::OnMouseUp(wxMouseEvent& event) + { ++ // if the button released was not the first held down then ignore ++ int button = event.GetButton(); ++ if (button != whichbuttondown) return; ++ ++ // same button released so process ++ mouseisdown = false; ++ + if (drawingcells || selectingcells || movingview || clickedcontrol > NO_CONTROL) { + StopDraggingMouse(); + } else if (mainptr->draw_pending) { +@@ -3273,6 +3287,7 @@ PatternView::PatternView(wxWindow* parent, wxCoord x, wxCoord y, int wd, int ht, + selectingcells = false; // not selecting cells + movingview = false; // not moving view + waitingforclick = false; // not waiting for user to click ++ mouseisdown = false; // mouse button is not down + nopattupdate = false; // enable pattern updates + showcontrols = false; // not showing translucent controls + oldcursor = NULL; // for toggling cursor via shift key +--- a/gui-wx/wxview.h ++++ b/gui-wx/wxview.h +@@ -102,6 +102,8 @@ public: + bool movingview; // moving view due to dragging mouse? + bool nopattupdate; // disable pattern updates? + bool showcontrols; // draw translucent controls? ++ bool mouseisdown; // mouse button held down? ++ int whichbuttondown; // which mouse button is down + wxRect controlsrect; // location of translucent controls + wxRect pasterect; // area to be pasted + wxCursor* oldcursor; // non-NULL if shift key has toggled cursor +-- +2.19.2 + diff --git a/app-misc/golly/files/golly-3.2-mouse-2.patch b/app-misc/golly/files/golly-3.2-mouse-2.patch new file mode 100644 index 000000000000..b2655ba6212b --- /dev/null +++ b/app-misc/golly/files/golly-3.2-mouse-2.patch @@ -0,0 +1,45 @@ +From 746f5f6f0c29867ac97516d00fdf58d3496a6687 Mon Sep 17 00:00:00 2001 +From: Chris Rowett <rowett@yahoo.com> +Date: Wed, 11 Jul 2018 12:44:22 +0100 +Subject: [PATCH] bugfix: clear mousedown flag in mousecapturelost event + handler + +--- + gui-wx/wxview.cpp | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +--- a/gui-wx/wxview.cpp ++++ b/gui-wx/wxview.cpp +@@ -81,9 +81,7 @@ EVT_MIDDLE_DCLICK ( PatternView::OnMouseDown) + EVT_LEFT_UP ( PatternView::OnMouseUp) + EVT_RIGHT_UP ( PatternView::OnMouseUp) + EVT_MIDDLE_UP ( PatternView::OnMouseUp) +-#if wxCHECK_VERSION(2, 8, 0) + EVT_MOUSE_CAPTURE_LOST ( PatternView::OnMouseCaptureLost) +-#endif + EVT_MOTION ( PatternView::OnMouseMotion) + EVT_ENTER_WINDOW ( PatternView::OnMouseEnter) + EVT_LEAVE_WINDOW ( PatternView::OnMouseExit) +@@ -2901,18 +2899,15 @@ void PatternView::OnMouseUp(wxMouseEvent& event) + + // ----------------------------------------------------------------------------- + +-#if wxCHECK_VERSION(2, 8, 0) +- + // mouse capture can be lost on Windows before mouse-up event + void PatternView::OnMouseCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event)) + { ++ mouseisdown = false; + if (drawingcells || selectingcells || movingview || clickedcontrol > NO_CONTROL) { + StopDraggingMouse(); + } + } + +-#endif +- + // ----------------------------------------------------------------------------- + + void PatternView::OnMouseMotion(wxMouseEvent& event) +-- +2.19.2 + |