Skip to content

Commit d0cc394

Browse files
authored
Merge pull request #20778 from anntzer/macosmousebutton
Dedupe handling of mouse buttons in macos backend.
2 parents 2c3bc26 + 48c0c4e commit d0cc394

File tree

1 file changed

+6
-121
lines changed

1 file changed

+6
-121
lines changed

src/_macosx.m

Lines changed: 6 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -1885,127 +1885,12 @@ - (void)mouseDragged:(NSEvent *)event
18851885
PyGILState_Release(gstate);
18861886
}
18871887

1888-
- (void)rightMouseDown:(NSEvent *)event
1889-
{
1890-
int x, y;
1891-
int num = 3;
1892-
int dblclick = 0;
1893-
PyObject* result;
1894-
PyGILState_STATE gstate;
1895-
NSPoint location = [event locationInWindow];
1896-
location = [self convertPoint: location fromView: nil];
1897-
x = location.x * device_scale;
1898-
y = location.y * device_scale;
1899-
gstate = PyGILState_Ensure();
1900-
if ([event clickCount] == 2) {
1901-
dblclick = 1;
1902-
}
1903-
result = PyObject_CallMethod(canvas, "button_press_event", "iiii", x, y, num, dblclick);
1904-
if(result)
1905-
Py_DECREF(result);
1906-
else
1907-
PyErr_Print();
1908-
1909-
PyGILState_Release(gstate);
1910-
}
1911-
1912-
- (void)rightMouseUp:(NSEvent *)event
1913-
{
1914-
int x, y;
1915-
int num = 3;
1916-
PyObject* result;
1917-
PyGILState_STATE gstate;
1918-
NSPoint location = [event locationInWindow];
1919-
location = [self convertPoint: location fromView: nil];
1920-
x = location.x * device_scale;
1921-
y = location.y * device_scale;
1922-
gstate = PyGILState_Ensure();
1923-
result = PyObject_CallMethod(canvas, "button_release_event", "iii", x, y, num);
1924-
if(result)
1925-
Py_DECREF(result);
1926-
else
1927-
PyErr_Print();
1928-
1929-
PyGILState_Release(gstate);
1930-
}
1931-
1932-
- (void)rightMouseDragged:(NSEvent *)event
1933-
{
1934-
int x, y;
1935-
NSPoint location = [event locationInWindow];
1936-
location = [self convertPoint: location fromView: nil];
1937-
x = location.x * device_scale;
1938-
y = location.y * device_scale;
1939-
PyGILState_STATE gstate = PyGILState_Ensure();
1940-
PyObject* result = PyObject_CallMethod(canvas, "motion_notify_event", "ii", x, y);
1941-
if(result)
1942-
Py_DECREF(result);
1943-
else
1944-
PyErr_Print();
1945-
1946-
PyGILState_Release(gstate);
1947-
}
1948-
1949-
- (void)otherMouseDown:(NSEvent *)event
1950-
{
1951-
int x, y;
1952-
int num = 2;
1953-
int dblclick = 0;
1954-
PyObject* result;
1955-
PyGILState_STATE gstate;
1956-
NSPoint location = [event locationInWindow];
1957-
location = [self convertPoint: location fromView: nil];
1958-
x = location.x * device_scale;
1959-
y = location.y * device_scale;
1960-
gstate = PyGILState_Ensure();
1961-
if ([event clickCount] == 2) {
1962-
dblclick = 1;
1963-
}
1964-
result = PyObject_CallMethod(canvas, "button_press_event", "iiii", x, y, num, dblclick);
1965-
if(result)
1966-
Py_DECREF(result);
1967-
else
1968-
PyErr_Print();
1969-
1970-
PyGILState_Release(gstate);
1971-
}
1972-
1973-
- (void)otherMouseUp:(NSEvent *)event
1974-
{
1975-
int x, y;
1976-
int num = 2;
1977-
PyObject* result;
1978-
PyGILState_STATE gstate;
1979-
NSPoint location = [event locationInWindow];
1980-
location = [self convertPoint: location fromView: nil];
1981-
x = location.x * device_scale;
1982-
y = location.y * device_scale;
1983-
gstate = PyGILState_Ensure();
1984-
result = PyObject_CallMethod(canvas, "button_release_event", "iii", x, y, num);
1985-
if(result)
1986-
Py_DECREF(result);
1987-
else
1988-
PyErr_Print();
1989-
1990-
PyGILState_Release(gstate);
1991-
}
1992-
1993-
- (void)otherMouseDragged:(NSEvent *)event
1994-
{
1995-
int x, y;
1996-
NSPoint location = [event locationInWindow];
1997-
location = [self convertPoint: location fromView: nil];
1998-
x = location.x * device_scale;
1999-
y = location.y * device_scale;
2000-
PyGILState_STATE gstate = PyGILState_Ensure();
2001-
PyObject* result = PyObject_CallMethod(canvas, "motion_notify_event", "ii", x, y);
2002-
if(result)
2003-
Py_DECREF(result);
2004-
else
2005-
PyErr_Print();
2006-
2007-
PyGILState_Release(gstate);
2008-
}
1888+
- (void)rightMouseDown:(NSEvent *)event { [self mouseDown: event]; }
1889+
- (void)rightMouseUp:(NSEvent *)event { [self mouseUp: event]; }
1890+
- (void)rightMouseDragged:(NSEvent *)event { [self mouseDragged: event]; }
1891+
- (void)otherMouseDown:(NSEvent *)event { [self mouseDown: event]; }
1892+
- (void)otherMouseUp:(NSEvent *)event { [self mouseUp: event]; }
1893+
- (void)otherMouseDragged:(NSEvent *)event { [self mouseDragged: event]; }
20091894

20101895
- (void)setRubberband:(NSRect)rect
20111896
{

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy