Skip to content

Commit a5d2259

Browse files
Copilotnightm4re94
andcommitted
Fix macOS right-click crash: use isPopupTrigger() in both mousePressed and mouseReleased
Co-authored-by: nightm4re94 <26114385+nightm4re94@users.noreply.github.com> Agent-Logs-Url: https://github.com/gurkenlabs/litiengine/sessions/4db57302-960d-4666-a1c1-27f498cb79d2
1 parent 601eaa4 commit a5d2259

File tree

4 files changed

+21
-9
lines changed

4 files changed

+21
-9
lines changed

litiengine/src/main/java/de/gurkenlabs/litiengine/input/Mouse.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,6 @@ public void mousePressed(final MouseEvent e) {
227227
@Override
228228
public void mouseReleased(final MouseEvent e) {
229229
this.updateLocation(e);
230-
this.setPressed(false);
231230
final MouseEvent wrappedEvent = this.createEvent(e);
232231
this.mouseListeners.forEach(listener -> listener.mouseReleased(wrappedEvent));
233232

@@ -239,6 +238,10 @@ public void mouseReleased(final MouseEvent e) {
239238
this.isRightMouseButtonDown = false;
240239
}
241240

241+
if (!this.isLeftMouseButtonDown && !this.isRightMouseButtonDown) {
242+
this.setPressed(false);
243+
}
244+
242245
for (final MouseReleasedListener listener : this.mouseReleasedListeners) {
243246
listener.mouseReleased(wrappedEvent);
244247
}

utiliti/src/main/java/de/gurkenlabs/utiliti/controller/MapComponent.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1213,11 +1213,6 @@ private void handleMouseReleased(ComponentMouseEvent e) {
12131213

12141214
switch (this.transformMode) {
12151215
case CREATE -> {
1216-
if (SwingUtilities.isRightMouseButton(e.getEvent())) {
1217-
this.setTransformMode(TransformMode.NONE);
1218-
break;
1219-
}
1220-
12211216
IMapObject mo = this.createNewMapObject(UI.getInspector().getObjectType());
12221217

12231218
this.setFocus(mo, !Input.keyboard().isPressed(KeyEvent.VK_SHIFT));

utiliti/src/main/java/de/gurkenlabs/utiliti/view/components/MapList.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import javax.swing.JList;
1818
import javax.swing.JScrollPane;
1919
import javax.swing.ListSelectionModel;
20-
import javax.swing.SwingUtilities;
2120

2221
@SuppressWarnings("serial")
2322
public class MapList extends JScrollPane implements MapController {
@@ -74,9 +73,17 @@ private static void initPopupMenu() {
7473

7574
list.addMouseListener(
7675
new MouseAdapter() {
76+
@Override
77+
public void mousePressed(MouseEvent e) {
78+
if (e.isPopupTrigger()) {
79+
list.setSelectedIndex(list.locationToIndex(e.getPoint()));
80+
mapPopupMenu.show(list, e.getX(), e.getY());
81+
}
82+
}
83+
7784
@Override
7885
public void mouseReleased(MouseEvent e) {
79-
if (SwingUtilities.isRightMouseButton(e)) {
86+
if (e.isPopupTrigger()) {
8087
list.setSelectedIndex(list.locationToIndex(e.getPoint()));
8188
mapPopupMenu.show(list, e.getX(), e.getY());
8289
}

utiliti/src/main/java/de/gurkenlabs/utiliti/view/components/UI.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,15 @@ private static void initPopupMenu(Canvas canvas) {
312312
addOrphanComponent(canvasPopup);
313313

314314
canvas.addMouseListener(new MouseAdapter() {
315+
@Override public void mousePressed(MouseEvent e) {
316+
if (e.isPopupTrigger()) {
317+
Editor.instance().getMapComponent().setTransformMode(TransformMode.NONE);
318+
canvasPopup.show(canvas, e.getX(), e.getY());
319+
}
320+
}
321+
315322
@Override public void mouseReleased(MouseEvent e) {
316-
if (SwingUtilities.isRightMouseButton(e)) {
323+
if (e.isPopupTrigger()) {
317324
Editor.instance().getMapComponent().setTransformMode(TransformMode.NONE);
318325
canvasPopup.show(canvas, e.getX(), e.getY());
319326
}

0 commit comments

Comments
 (0)