mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 00:45:24 +00:00
[SHELL32] CDefView: Improve the context menu positioning
Previously we would always show a menu on the focused item, but this should only be done when it is also selected.
This commit is contained in:
parent
7464241ada
commit
c96ba1aff2
1 changed files with 9 additions and 5 deletions
|
@ -1443,15 +1443,19 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
|
|||
/* There is no position requested, so try to find one */
|
||||
if (lParam == ~0)
|
||||
{
|
||||
int lvIndex;
|
||||
HWND hFocus = ::GetFocus();
|
||||
int lvIndex = -1;
|
||||
POINT pt;
|
||||
|
||||
/* Do we have a focused item, */
|
||||
if ((lvIndex = m_ListView.GetNextItem(-1, LVIS_FOCUSED)) < 0)
|
||||
if (hFocus == m_ListView.m_hWnd || m_ListView.IsChild(hFocus))
|
||||
{
|
||||
/* or a selected item? */
|
||||
lvIndex = m_ListView.GetNextItem(-1, LVIS_SELECTED);
|
||||
/* Is there an item focused and selected? */
|
||||
lvIndex = m_ListView.GetNextItem(-1, LVIS_SELECTED|LVIS_FOCUSED);
|
||||
/* If not, find the first selected item */
|
||||
if (lvIndex < 0)
|
||||
lvIndex = m_ListView.GetNextItem(-1, LVIS_SELECTED);
|
||||
}
|
||||
|
||||
/* We got something */
|
||||
if (lvIndex > -1)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue