diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java b/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java index 402d88cef38a..92eed9582fd2 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java +++ b/platform/platform-impl/src/com/intellij/openapi/vcs/changes/issueLinks/LinkMouseListenerBase.java @@ -27,18 +27,24 @@ import java.awt.event.MouseMotionListener; public abstract class LinkMouseListenerBase<T> extends ClickListener implements MouseMotionListener { public static void installSingleTagOn(@NotNull SimpleColoredComponent component) { - new LinkMouseListenerBase<Consumer<MouseEvent>>() { + new LinkMouseListenerBase<Object>() { @Nullable @Override - protected Consumer<MouseEvent> getTagAt(@NotNull MouseEvent e) { + protected Object getTagAt(@NotNull MouseEvent e) { //noinspection unchecked - return (Consumer<MouseEvent>)((SimpleColoredComponent)e.getSource()).getFragmentTagAt(e.getX()); + return ((SimpleColoredComponent)e.getSource()).getFragmentTagAt(e.getX()); } @Override - protected void handleTagClick(@Nullable Consumer<MouseEvent> tag, @NotNull MouseEvent event) { + protected void handleTagClick(@Nullable Object tag, @NotNull MouseEvent event) { if (tag != null) { - tag.consume(event); + if (tag instanceof Consumer) { + //noinspection unchecked + ((Consumer<MouseEvent>)tag).consume(event); + } + else { + ((Runnable)tag).run(); + } } } }.installOn(component); |