From 09a9f593fcbf7ff5979dbb76af65fb1525719f53 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 22 Feb 2012 20:37:52 +0100 Subject: [PATCH] finish list popups on mouse release. It's more natural, doesn't lead to stuck mouse cursor, and should fix IDEA-48927 (Mouse click in a pop up moves cursor and makes selection in underlying editor) --- .../com/intellij/openapi/ui/popup/PopupChooserBuilder.java | 4 ++-- .../src/com/intellij/ui/popup/list/ListPopupImpl.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/ui/popup/PopupChooserBuilder.java b/platform/platform-api/src/com/intellij/openapi/ui/popup/PopupChooserBuilder.java index bfb962865369..f82e36b483c3 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/popup/PopupChooserBuilder.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/popup/PopupChooserBuilder.java @@ -203,8 +203,8 @@ public class PopupChooserBuilder { (list != null ? list : myChooserComponent).addMouseListener(new MouseAdapter() { @Override - public void mousePressed(MouseEvent e) { - if (UIUtil.isActionClick(e) && !UIUtil.isSelectionButtonDown(e) && !e.isConsumed()) { + public void mouseReleased(MouseEvent e) { + if (UIUtil.isActionClick(e, MouseEvent.MOUSE_RELEASED) && !UIUtil.isSelectionButtonDown(e) && !e.isConsumed()) { closePopup(true, e, true); } } diff --git a/platform/platform-impl/src/com/intellij/ui/popup/list/ListPopupImpl.java b/platform/platform-impl/src/com/intellij/ui/popup/list/ListPopupImpl.java index dcbe7f23d7c6..64213cc37d00 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/list/ListPopupImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/list/ListPopupImpl.java @@ -379,7 +379,7 @@ public class ListPopupImpl extends WizardPopup implements ListPopup { } protected boolean isActionClick(MouseEvent e) { - return UIUtil.isActionClick(e, MouseEvent.MOUSE_PRESSED, true); + return UIUtil.isActionClick(e, MouseEvent.MOUSE_RELEASED, true); } public Object getSelectedValue() { @@ -389,7 +389,7 @@ public class ListPopupImpl extends WizardPopup implements ListPopup { private class MyMouseListener extends MouseAdapter { @Override - public void mousePressed(MouseEvent e) { + public void mouseReleased(MouseEvent e) { if (!isActionClick(e)) return; IdeEventQueue.getInstance().blockNextEvents(e); // sometimes, after popup close, MOUSE_RELEASE event delivers to other components final Object selectedValue = myList.getSelectedValue();