diff --git a/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java b/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java index 21af65a93552..885a152a02a0 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/PopupFactoryImpl.java @@ -470,7 +470,7 @@ public class PopupFactoryImpl extends JBPopupFactory { for (int index : selectedIndices) { if (firstVisibleIndex <= index && index <= lastVisibleIndex) { Rectangle cellBounds = list.getCellBounds(index, index); - popupMenuPoint = new Point(visibleRect.x + visibleRect.width / 4, cellBounds.y + cellBounds.height); + popupMenuPoint = new Point(visibleRect.x + visibleRect.width / 4, cellBounds.y + cellBounds.height - 1); break; } } diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/GithubPullRequestsList.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/GithubPullRequestsList.kt index 3a4510f7b1a4..dbc5492aba25 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/GithubPullRequestsList.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/GithubPullRequestsList.kt @@ -8,10 +8,7 @@ import com.intellij.ui.ScrollingUtil import com.intellij.ui.components.JBLabel import com.intellij.ui.components.JBList import com.intellij.util.text.DateFormatUtil -import com.intellij.util.ui.JBDimension -import com.intellij.util.ui.JBUI -import com.intellij.util.ui.JBValue -import com.intellij.util.ui.UIUtil +import com.intellij.util.ui.* import icons.GithubIcons import net.miginfocom.layout.CC import net.miginfocom.layout.LC @@ -23,6 +20,7 @@ import org.jetbrains.plugins.github.util.GithubUIUtil import java.awt.Color import java.awt.Component import java.awt.FlowLayout +import java.awt.event.MouseAdapter import java.awt.event.MouseEvent import javax.swing.* @@ -35,6 +33,7 @@ internal class GithubPullRequestsList(avatarIconsProviderFactory: CachingGithubA init { selectionModel.selectionMode = ListSelectionModel.SINGLE_SELECTION + addMouseListener(RightClickSelectionListener()) val renderer = PullRequestsListCellRenderer() cellRenderer = renderer @@ -131,4 +130,13 @@ internal class GithubPullRequestsList(avatarIconsProviderFactory: CachingGithubA return this } } + + private inner class RightClickSelectionListener : MouseAdapter() { + override fun mousePressed(e: MouseEvent) { + if (JBSwingUtilities.isRightMouseButton(e)) { + val row = locationToIndex(e.point) + if (row != -1) selectionModel.setSelectionInterval(row, row) + } + } + } } \ No newline at end of file