TRACE("MouseDown %d\n", m_isLButtonDown);
- BOOL isTracking = FALSE;
if (entry)
{
ScreenToClient(child, &pt);
iHitTestResult = SendMessageW(child, TB_HITTEST, 0, (LPARAM) &pt);
- isTracking = entry->mb->_IsTracking();
if (iHitTestResult >= 0)
{
TRACE("MouseUp %d\n", m_isLButtonDown);
- BOOL isTracking = FALSE;
if (entry)
{
ScreenToClient(child, &pt);
iHitTestResult = SendMessageW(child, TB_HITTEST, 0, (LPARAM) &pt);
- isTracking = entry->mb->_IsTracking();
if (iHitTestResult >= 0)
{
HRESULT CMenuFocusManager::PlaceHooks()
{
+ if (m_hMsgFilterHook)
+ {
+ WARN("GETMESSAGE hook already placed!\n");
+ return S_OK;
+ }
+ if (m_hMsgFilterHook)
+ {
+ WARN("MSGFILTER hook already placed!\n");
+ return S_OK;
+ }
if (m_current->type == TrackedMenuEntry)
{
TRACE("Entering MSGFILTER hook...\n");
HRESULT CMenuFocusManager::PushMenuBar(CMenuBand * mb)
{
- TRACE("PushTrackedPopup %p\n", mb);
+ DbgPrint("PushMenuBar %p\n", mb);
+
+ mb->AddRef();
_ASSERT(m_bandCount == 0);
HRESULT CMenuFocusManager::PushMenuPopup(CMenuBand * mb)
{
- TRACE("PushTrackedPopup %p\n", mb);
+ DbgPrint("PushTrackedPopup %p\n", mb);
+
+ mb->AddRef();
_ASSERT(!m_current || m_current->type != TrackedMenuEntry);
HRESULT CMenuFocusManager::PushTrackedPopup(HMENU popup)
{
- TRACE("PushTrackedPopup %p\n", popup);
+ DbgPrint("PushTrackedPopup %p\n", popup);
_ASSERT(m_bandCount > 0);
_ASSERT(!m_current || m_current->type != TrackedMenuEntry);
if (FAILED_UNEXPECTEDLY(hr))
return hr;
- TRACE("PushTrackedPopup %p\n", popup);
+ DbgPrint("PushTrackedPopup %p\n", popup);
m_selectedMenu = popup;
m_selectedItem = -1;
m_selectedItemFlags = 0;
CMenuBand * mbc;
HRESULT hr;
- TRACE("PopMenuBar %p\n", mb);
+ DbgPrint("PopMenuBar %p\n", mb);
+
+ if (m_current == m_entryUnderMouse)
+ {
+ m_entryUnderMouse = NULL;
+ }
hr = PopFromArray(&type, &mbc, NULL);
if (FAILED_UNEXPECTEDLY(hr))
mbc->_SetParentBand(NULL);
+ mbc->Release();
+
hr = UpdateFocus();
if (FAILED_UNEXPECTEDLY(hr))
return hr;
CMenuBand * mbc;
HRESULT hr;
- TRACE("PopMenuPopup %p\n", mb);
+ DbgPrint("PopMenuPopup %p\n", mb);
+
+ if (m_current == m_entryUnderMouse)
+ {
+ m_entryUnderMouse = NULL;
+ }
hr = PopFromArray(&type, &mbc, NULL);
if (FAILED_UNEXPECTEDLY(hr))
mbc->_SetParentBand(NULL);
+ mbc->Release();
+
hr = UpdateFocus();
if (FAILED_UNEXPECTEDLY(hr))
return hr;
HMENU hmenu;
HRESULT hr;
- TRACE("PopTrackedPopup %p\n", popup);
+ DbgPrint("PopTrackedPopup %p\n", popup);
hr = PopFromArray(&type, NULL, &hmenu);
if (FAILED_UNEXPECTEDLY(hr))