From f763669af945705b2a3ac97241b14c0d588d091e Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Fri, 24 Oct 2014 00:52:37 +0200 Subject: [PATCH] welcome screen: VCS popup shows at left under the label --- .../openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java | 9 ++++++++- .../wm/impl/welcomeScreen/WelcomePopupAction.java | 9 +++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java index f4bf58990d02..564206931b40 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java @@ -429,7 +429,14 @@ public class FlatWelcomeFrame extends JFrame implements IdeFrame { public void keyPressed(KeyEvent e) { final JList list = UIUtil.findComponentOfType(FlatWelcomeFrame.this.getComponent(), JList.class); if (e.getKeyCode() == KeyEvent.VK_ENTER) { - action.actionPerformed(new AnActionEvent(e, + InputEvent event = e; + if (e.getComponent() instanceof JComponent) { + ActionLink link = UIUtil.findComponentOfType((JComponent)e.getComponent(), ActionLink.class); + if (link != null) { + event = new MouseEvent(link, MouseEvent.MOUSE_CLICKED, e.getWhen(), e.getModifiers(), 0, 0, 1, false, MouseEvent.BUTTON1); + } + } + action.actionPerformed(new AnActionEvent(event, DataManager.getInstance().getDataContext(), ActionPlaces.WELCOME_SCREEN, action.getTemplatePresentation().clone(), diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomePopupAction.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomePopupAction.java index d1f6ecd3c4f4..7e407a63f03b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomePopupAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/WelcomePopupAction.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.openapi.ui.popup.ListPopup; import com.intellij.openapi.wm.ex.WindowManagerEx; +import com.intellij.ui.popup.PopupFactoryImpl; import javax.swing.*; import java.awt.*; @@ -92,7 +93,11 @@ public abstract class WelcomePopupAction extends AnAction implements DumbAware { protected void showPopup(DataContext context, ListPopup popup, JComponent contextComponent) { Component focusedComponent = contextComponent != null ? contextComponent : PlatformDataKeys.CONTEXT_COMPONENT.getData(context); if (focusedComponent != null) { - popup.showUnderneathOf(focusedComponent); + if (popup instanceof PopupFactoryImpl.ActionGroupPopup && focusedComponent instanceof JLabel) { + ((PopupFactoryImpl.ActionGroupPopup)popup).showUnderneathOfLabel((JLabel)focusedComponent); + } else { + popup.showUnderneathOf(focusedComponent); + } } else { Rectangle r; -- 2.23.3