mirror of
https://github.com/reactos/reactos.git
synced 2024-10-02 07:26:47 +00:00
[RSHELL]
* Workaround for the exec issue. Ros currently seems to send a bogus WM_ACTIVATE message when clicking while the window is already active. Proper fix may come later if I can figure out why this happens. CORE-7586 svn path=/branches/shell-experiments/; revision=62475
This commit is contained in:
parent
683375abdb
commit
905eb2bdce
|
@ -2610,7 +2610,7 @@ HandleTrayContextMenu:
|
|||
}
|
||||
|
||||
if (This->TrayBandSite == NULL ||
|
||||
!SUCCEEDED(ITrayBandSite_ProcessMessage(This->TrayBandSite,
|
||||
FAILED(ITrayBandSite_ProcessMessage(This->TrayBandSite,
|
||||
hwnd,
|
||||
uMsg,
|
||||
wParam,
|
||||
|
|
|
@ -491,7 +491,7 @@ HRESULT CMenuDeskBar::_CloseBar()
|
|||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
SetWindowPos(m_hWnd, 0, 0, 0, 0, SWP_HIDEWINDOW | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER);
|
||||
SetWindowPos(NULL, 0, 0, 0, 0, SWP_HIDEWINDOW | SWP_NOACTIVATE | SWP_NOMOVE);
|
||||
|
||||
return UIActivateIO(FALSE, NULL);
|
||||
}
|
||||
|
@ -609,8 +609,13 @@ LRESULT CMenuDeskBar::_OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bH
|
|||
|
||||
LRESULT CMenuDeskBar::_OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
|
||||
{
|
||||
if (wParam != 0)
|
||||
DbgPrint("BaseBar %08p (de)activated (%08x, %08x).\n", m_hWnd, wParam, lParam);
|
||||
|
||||
// BUG in ReactOS: WM_ACTIVATE/WA_INACTIVE makes no sense with lParam==hWnd
|
||||
if (LOWORD(wParam) != 0 || reinterpret_cast<HWND>(lParam) == m_hWnd)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// HACK! I just want it to work !!!
|
||||
CComPtr<IDeskBar> db;
|
||||
|
|
|
@ -622,7 +622,10 @@ HRESULT CMenuToolbarBase::OnCommand(WPARAM wParam, LPARAM lParam, LRESULT *theRe
|
|||
PopupItem(wParam);
|
||||
return S_FALSE;
|
||||
}
|
||||
return m_menuBand->_MenuItemHotTrack(MPOS_EXECUTE);
|
||||
HRESULT hr = m_menuBand->_MenuItemHotTrack(MPOS_EXECUTE);
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
return S_OK; // filter out a possible S_FALSE from here.
|
||||
}
|
||||
|
||||
HRESULT CMenuToolbarBase::ChangeHotItem(DWORD dwSelectType)
|
||||
|
@ -938,7 +941,10 @@ HRESULT CMenuStaticToolbar::OnCommand(WPARAM wParam, LPARAM lParam, LRESULT *the
|
|||
|
||||
// in case the clicked item has a submenu, we do not need to execute the item
|
||||
if (hr == S_FALSE)
|
||||
{
|
||||
DbgPrint("CMenuToolbarBase::OnCommand told us to cancel.\n");
|
||||
return hr;
|
||||
}
|
||||
|
||||
return m_menuBand->_CallCBWithItemId(wParam, SMC_EXEC, 0, 0);
|
||||
}
|
||||
|
@ -1102,7 +1108,10 @@ HRESULT CMenuSFToolbar::OnCommand(WPARAM wParam, LPARAM lParam, LRESULT *theResu
|
|||
|
||||
// in case the clicked item has a submenu, we do not need to execute the item
|
||||
if (hr == S_FALSE)
|
||||
{
|
||||
DbgPrint("CMenuToolbarBase::OnCommand told us to cancel.\n");
|
||||
return hr;
|
||||
}
|
||||
|
||||
DWORD_PTR data;
|
||||
GetDataFromId(wParam, NULL, &data);
|
||||
|
|
|
@ -267,8 +267,10 @@ public:
|
|||
case SMC_GETOBJECT:
|
||||
return OnGetObject(psmd, *reinterpret_cast<IID *>(wParam), reinterpret_cast<void **>(lParam));
|
||||
case SMC_EXEC:
|
||||
DbgPrint("SMC_EXEC\n");
|
||||
return OnExec(psmd);
|
||||
case SMC_SFEXEC:
|
||||
DbgPrint("SMC_SFEXEC\n");
|
||||
m_pTrayPriv->Execute(psmd->psf, psmd->pidlItem);
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue