summaryrefslogtreecommitdiff
path: root/app-misc/golly/files/golly-3.2-mouse-1.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-12-24 14:11:38 +0000
committerV3n3RiX <venerix@redcorelinux.org>2018-12-24 14:11:38 +0000
commitde49812990871e1705b64051c35161d5e6400269 (patch)
tree5e1e8fcb0ff4579dbd22a1bfee28a6b97dc8aaeb /app-misc/golly/files/golly-3.2-mouse-1.patch
parent536c3711867ec947c1738f2c4b96f22e4863322d (diff)
gentoo resync : 24.12.2018
Diffstat (limited to 'app-misc/golly/files/golly-3.2-mouse-1.patch')
-rw-r--r--app-misc/golly/files/golly-3.2-mouse-1.patch63
1 files changed, 63 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
+