Author: dquintana Date: Thu Dec 18 17:34:46 2014 New Revision: 65740 URL: http://svn.reactos.org/svn/reactos?rev=65740&view=rev Log: [RSHELL] * Fix the focus manager to properly close the shell menus when clicking outside the menu area. * Close the shell menus when activating a context menu action. * Open the shell menus without activating. Fixes titlebar color changing to inactive for the Favorites menu.
[RSHELL] [SHELL32] [BROWSEUI] * Remove a few DbgPrints and downgrade some others into TRACEs. CORE-8836 #resolve Modified: trunk/reactos/base/shell/explorer/taskswnd.cpp trunk/reactos/base/shell/rshell/CMenuBand.cpp trunk/reactos/base/shell/rshell/CMenuBand.h trunk/reactos/base/shell/rshell/CMenuDeskBar.cpp trunk/reactos/base/shell/rshell/CMenuFocusManager.cpp trunk/reactos/base/shell/rshell/CMenuFocusManager.h trunk/reactos/base/shell/rshell/CMenuToolbars.cpp trunk/reactos/base/shell/rshell/CMenuToolbars.h trunk/reactos/base/shell/rshell/ShellDDE.cpp trunk/reactos/dll/win32/shell32/CDefView.cpp trunk/reactos/dll/win32/shell32/CDesktopBrowser.cpp trunk/reactos/dll/win32/shell32/dde.cpp Modified: trunk/reactos/base/shell/explorer/taskswnd.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/taskswnd.cpp?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/base/shell/explorer/taskswnd.cpp [iso-8859-1] (original) +++ trunk/reactos/base/shell/explorer/taskswnd.cpp [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -1131,7 +1131,6 @@ if (Horizontal) { - DbgPrint("HORIZONTAL!\n"); TBMETRICS tbm = { 0 }; tbm.cbSize = sizeof(tbm); tbm.dwMask = TBMF_BUTTONSPACING; @@ -1145,7 +1144,6 @@ } else { - DbgPrint("VERTICAL!\n"); uiBtnsPerLine = 1; uiRows = m_ButtonCount; } Modified: trunk/reactos/base/shell/rshell/CMenuBand.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/rshell/CMenuBand.cpp?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/base/shell/rshell/CMenuBand.cpp [iso-8859-1] (original) +++ trunk/reactos/base/shell/rshell/CMenuBand.cpp [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -439,7 +439,7 @@ if (m_subMenuChild) { - DbgPrint("Child object should have removed itself.\n"); + TRACE("Child object should have removed itself.\n"); } ShowDW(FALSE); @@ -781,6 +781,10 @@ { HRESULT hr; UINT uCommand; + + // Ensure that the menu doesn't disappear on us + CComPtr<IContextMenu> ctxMenu = contextMenu; + HMENU popup = CreatePopupMenu(); if (popup == NULL) @@ -806,12 +810,15 @@ if (uCommand != 0) { + _MenuItemSelect(MPOS_FULLCANCEL); + TRACE("Before InvokeCommand\n"); CMINVOKECOMMANDINFO cmi = { 0 }; cmi.cbSize = sizeof(cmi); cmi.lpVerb = MAKEINTRESOURCEA(uCommand); cmi.hwnd = hwnd; hr = contextMenu->InvokeCommand(&cmi); + TRACE("InvokeCommand returned hr=%08x\n", hr); } else { @@ -843,7 +850,7 @@ if (m_staticToolbar) m_staticToolbar->ChangeHotItem(tb, id, dwFlags); if (m_SFToolbar) m_SFToolbar->ChangeHotItem(tb, id, dwFlags); - _MenuItemHotTrack(MPOS_CHILDTRACKING); + _MenuItemSelect(MPOS_CHILDTRACKING); return S_OK; @@ -904,7 +911,7 @@ return tb->KeyboardItemChange(change == VK_DOWN ? VK_HOME : VK_END); } -HRESULT CMenuBand::_MenuItemHotTrack(DWORD changeType) +HRESULT CMenuBand::_MenuItemSelect(DWORD changeType) { CComPtr<CMenuBand> safeThis = this; HRESULT hr; @@ -959,7 +966,7 @@ } case MPOS_SELECTLEFT: if (m_parentBand && m_parentBand->_IsPopup()==S_FALSE) - return m_parentBand->_MenuItemHotTrack(VK_LEFT); + return m_parentBand->_MenuItemSelect(VK_LEFT); if (m_subMenuChild) return m_subMenuChild->OnSelect(MPOS_CANCELLEVEL); if (!m_subMenuParent) @@ -970,7 +977,7 @@ if (m_hotBar && m_hotItem >= 0 && m_hotBar->PopupItem(m_hotItem, TRUE) == S_OK) return S_FALSE; if (m_parentBand) - return m_parentBand->_MenuItemHotTrack(VK_RIGHT); + return m_parentBand->_MenuItemSelect(VK_RIGHT); if (!m_subMenuParent) return S_OK; return m_subMenuParent->OnSelect(MPOS_SELECTRIGHT); @@ -1093,12 +1100,12 @@ return hr; } -HRESULT CMenuBand::_MenuBarMouseDown(HWND hwnd, INT item) +HRESULT CMenuBand::_MenuBarMouseDown(HWND hwnd, INT item, BOOL isLButton) { if (m_staticToolbar && m_staticToolbar->IsWindowOwner(hwnd) == S_OK) - m_staticToolbar->MenuBarMouseDown(item); + m_staticToolbar->MenuBarMouseDown(item, isLButton); if (m_SFToolbar && m_SFToolbar->IsWindowOwner(hwnd) == S_OK) - m_SFToolbar->MenuBarMouseDown(item); + m_SFToolbar->MenuBarMouseDown(item, isLButton); return S_OK; } Modified: trunk/reactos/base/shell/rshell/CMenuBand.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/rshell/CMenuBand.h?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/base/shell/rshell/CMenuBand.h [iso-8859-1] (original) +++ trunk/reactos/base/shell/rshell/CMenuBand.h [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -186,7 +186,7 @@ HRESULT _GetTopLevelWindow(HWND*topLevel); HRESULT _ChangeHotItem(CMenuToolbarBase * tb, INT id, DWORD dwFlags); HRESULT _ChangePopupItem(CMenuToolbarBase * tb, INT id); - HRESULT _MenuItemHotTrack(DWORD changeType); + HRESULT _MenuItemSelect(DWORD changeType); HRESULT _CancelCurrentPopup(); HRESULT _OnPopupSubMenu(IShellMenu * childShellMenu, POINTL * pAt, RECTL * pExclude, BOOL mouseInitiated); HRESULT _BeforeCancelPopup(); @@ -196,7 +196,7 @@ HRESULT _IsPopup(); HRESULT _IsTracking(); HRESULT _KillPopupTimers(); - HRESULT _MenuBarMouseDown(HWND hwnd, INT item); + HRESULT _MenuBarMouseDown(HWND hwnd, INT item, BOOL isLButton); HRESULT _MenuBarMouseUp(HWND hwnd, INT item); HRESULT _HasSubMenu(); Modified: trunk/reactos/base/shell/rshell/CMenuDeskBar.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/rshell/CMenuDeskBar.cpp?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/base/shell/rshell/CMenuDeskBar.cpp [iso-8859-1] (original) +++ trunk/reactos/base/shell/rshell/CMenuDeskBar.cpp [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -372,7 +372,9 @@ y = rcWorkArea.bottom - cy; } - this->SetWindowPos(HWND_TOPMOST, x, y, cx, cy, SWP_SHOWWINDOW); + int flags = SWP_SHOWWINDOW | SWP_NOACTIVATE; + + this->SetWindowPos(HWND_TOPMOST, x, y, cx, cy, flags); m_ShowFlags = dwFlags; m_Shown = true; Modified: trunk/reactos/base/shell/rshell/CMenuFocusManager.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/rshell/CMenuFocusManager.cpp?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/base/shell/rshell/CMenuFocusManager.cpp [iso-8859-1] (original) +++ trunk/reactos/base/shell/rshell/CMenuFocusManager.cpp [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -163,7 +163,8 @@ m_isLButtonDown(FALSE), m_movedSinceDown(FALSE), m_windowAtDown(NULL), - m_bandCount(0) + m_bandCount(0), + m_menuDepth(0) { m_ptPrev.x = 0; m_ptPrev.y = 0; @@ -207,7 +208,7 @@ m_mouseTrackDisabled = lastDisable; } -void CMenuFocusManager::SetCapture(HWND child) +void CMenuFocusManager::SetMenuCapture(HWND child) { if (m_captureHwnd != child) { @@ -215,13 +216,13 @@ { ::SetCapture(child); m_captureHwnd = child; - TRACE("MouseTrack is now capturing %p\n", child); + TRACE("Capturing %p\n", child); } else { ::ReleaseCapture(); m_captureHwnd = NULL; - TRACE("MouseTrack is now off\n"); + TRACE("Capture is now off\n"); } } @@ -305,7 +306,6 @@ if (cCapture && cCapture != m_captureHwnd && m_current->type != TrackedMenuEntry) return TRUE; - m_movedSinceDown = TRUE; m_ptPrev = pt; @@ -344,8 +344,6 @@ { m_entryUnderMouse->mb->_ChangeHotItem(NULL, -1, HICF_MOUSE); } - if (cCapture == m_captureHwnd) - SetCapture(NULL); } if (m_hwndUnderMouse != child) @@ -373,7 +371,7 @@ return TRUE; } -LRESULT CMenuFocusManager::ProcessMouseDown(MSG* msg) +LRESULT CMenuFocusManager::ProcessMouseDown(MSG* msg, BOOL isLButton) { HWND child; int iHitTestResult = -1; @@ -418,7 +416,7 @@ if (iHitTestResult >= 0) { TRACE("MouseDown send %d\n", iHitTestResult); - entry->mb->_MenuBarMouseDown(child, iHitTestResult); + entry->mb->_MenuBarMouseDown(child, iHitTestResult, isLButton); } } @@ -521,13 +519,13 @@ case VK_LEFT: if (m_current->hmenu == m_selectedMenu) { - m_parent->mb->_MenuItemHotTrack(VK_LEFT); + m_parent->mb->_MenuItemSelect(VK_LEFT); } break; case VK_RIGHT: if (m_selectedItem < 0 || !(m_selectedItemFlags & MF_POPUP)) { - m_parent->mb->_MenuItemHotTrack(VK_RIGHT); + m_parent->mb->_MenuItemSelect(VK_RIGHT); } break; } @@ -555,9 +553,18 @@ switch (msg->message) { + case WM_CAPTURECHANGED: + if (m_captureHwnd) + { + TRACE("Capture lost.\n"); + m_captureHwnd = NULL; + } + break; + case WM_NCLBUTTONDOWN: case WM_LBUTTONDOWN: isLButton = TRUE; + TRACE("LB\n"); // fallthrough; case WM_NCRBUTTONDOWN: @@ -569,7 +576,7 @@ BOOL hoveringMenuBar = m_menuBar->mb->IsWindowOwner(child) == S_OK; if (hoveringMenuBar) { - m_current->mb->_MenuItemHotTrack(MPOS_FULLCANCEL); + m_current->mb->_MenuItemSelect(MPOS_FULLCANCEL); break; } } @@ -580,16 +587,13 @@ if (IsTrackedWindowOrParent(child) != S_OK) { - SetCapture(NULL); - m_current->mb->_MenuItemHotTrack(MPOS_FULLCANCEL); + m_current->mb->_MenuItemSelect(MPOS_FULLCANCEL); break; } } - - if (isLButton) - { - ProcessMouseDown(msg); - } + + ProcessMouseDown(msg, isLButton); + break; case WM_NCLBUTTONUP: case WM_LBUTTONUP: @@ -613,22 +617,22 @@ case VK_MENU: case VK_LMENU: case VK_RMENU: - m_current->mb->_MenuItemHotTrack(MPOS_FULLCANCEL); + m_current->mb->_MenuItemSelect(MPOS_FULLCANCEL); break; case VK_RETURN: - m_current->mb->_MenuItemHotTrack(MPOS_EXECUTE); + m_current->mb->_MenuItemSelect(MPOS_EXECUTE); break; case VK_LEFT: - m_current->mb->_MenuItemHotTrack(VK_LEFT); + m_current->mb->_MenuItemSelect(VK_LEFT); break; case VK_RIGHT: - m_current->mb->_MenuItemHotTrack(VK_RIGHT); + m_current->mb->_MenuItemSelect(VK_RIGHT); break; case VK_UP: - m_current->mb->_MenuItemHotTrack(VK_UP); + m_current->mb->_MenuItemSelect(VK_UP); break; case VK_DOWN: - m_current->mb->_MenuItemHotTrack(VK_DOWN); + m_current->mb->_MenuItemSelect(VK_DOWN); break; } msg->message = WM_NULL; @@ -672,13 +676,18 @@ HRESULT CMenuFocusManager::RemoveHooks() { - TRACE("Removing all hooks...\n"); if (m_hMsgFilterHook) + { + TRACE("Removing MSGFILTER hook...\n"); UnhookWindowsHookEx(m_hMsgFilterHook); + m_hMsgFilterHook = NULL; + } if (m_hGetMsgHook) + { + TRACE("Removing GETMESSAGE hook...\n"); UnhookWindowsHookEx(m_hGetMsgHook); - m_hMsgFilterHook = NULL; - m_hGetMsgHook = NULL; + m_hGetMsgHook = NULL; + } return S_OK; } @@ -688,15 +697,15 @@ StackEntry * old = m_current; TRACE("UpdateFocus\n"); - - if (old) - SetCapture(NULL); if (m_bandCount > 0) m_current = &(m_bandStack[m_bandCount - 1]); else m_current = NULL; + if (!m_current || m_current->type != MenuPopupEntry) + SetMenuCapture(NULL); + if (m_current && m_current->type != TrackedMenuEntry) { hr = m_current->mb->_GetTopLevelWindow(&(m_current->hwnd)); @@ -747,24 +756,42 @@ DisableMouseTrack(m_parent->hwnd, TRUE); } - if ((m_current && m_current->type == MenuPopupEntry) && - (!m_parent || m_parent->type == MenuBarEntry)) - { - // When the mouse moves, it should set itself to the proper band - SetCapture(m_current->hwnd); - - if (old && old->type == TrackedMenuEntry) - { - // FIXME: Debugging code, probably not right - POINT pt2; - RECT rc2; - GetCursorPos(&pt2); - ScreenToClient(m_current->hwnd, &pt2); - GetClientRect(m_current->hwnd, &rc2); - if (PtInRect(&rc2, pt2)) - SendMessage(m_current->hwnd, WM_MOUSEMOVE, 0, MAKELPARAM(pt2.x, pt2.y)); - else - SendMessage(m_current->hwnd, WM_MOUSELEAVE, 0, 0); + if (m_current && m_current->type == MenuPopupEntry) + { + if (m_captureHwnd == NULL) + { + // We need to restore the capture after a non-shell submenu or context menu is shown + StackEntry * topMenu = m_bandStack; + if (topMenu->type == MenuBarEntry) + topMenu++; + + // Get the top-level window from the top popup + CComPtr<IServiceProvider> bandSite; + CComPtr<IOleWindow> deskBar; + hr = topMenu->mb->GetSite(IID_PPV_ARG(IServiceProvider, &bandSite)); + hr = bandSite->QueryService(SID_SMenuBandParent, IID_PPV_ARG(IOleWindow, &deskBar)); + + // Get the HWND of the top-level window + HWND hWndSite; + hr = deskBar->GetWindow(&hWndSite); + SetMenuCapture(hWndSite); + } + + if (!m_parent || m_parent->type == MenuBarEntry) + { + if (old && old->type == TrackedMenuEntry) + { + // FIXME: Debugging code, probably not right + POINT pt2; + RECT rc2; + GetCursorPos(&pt2); + ScreenToClient(m_current->hwnd, &pt2); + GetClientRect(m_current->hwnd, &rc2); + if (PtInRect(&rc2, pt2)) + SendMessage(m_current->hwnd, WM_MOUSEMOVE, 0, MAKELPARAM(pt2.x, pt2.y)); + else + SendMessage(m_current->hwnd, WM_MOUSELEAVE, 0, 0); + } } } @@ -775,7 +802,7 @@ HRESULT CMenuFocusManager::PushMenuBar(CMenuBand * mb) { - DbgPrint("PushMenuBar %p\n", mb); + TRACE("PushMenuBar %p\n", mb); mb->AddRef(); @@ -790,7 +817,7 @@ HRESULT CMenuFocusManager::PushMenuPopup(CMenuBand * mb) { - DbgPrint("PushTrackedPopup %p\n", mb); + TRACE("PushTrackedPopup %p\n", mb); mb->AddRef(); @@ -802,6 +829,8 @@ hr = UpdateFocus(); + m_menuDepth++; + if (m_parent && m_parent->type != TrackedMenuEntry) { m_parent->mb->_SetChildBand(mb); @@ -813,7 +842,7 @@ HRESULT CMenuFocusManager::PushTrackedPopup(HMENU popup) { - DbgPrint("PushTrackedPopup %p\n", popup); + TRACE("PushTrackedPopup %p\n", popup); _ASSERT(m_bandCount > 0); _ASSERT(!m_current || m_current->type != TrackedMenuEntry); @@ -822,7 +851,7 @@ if (FAILED_UNEXPECTEDLY(hr)) return hr; - DbgPrint("PushTrackedPopup %p\n", popup); + TRACE("PushTrackedPopup %p\n", popup); m_selectedMenu = popup; m_selectedItem = -1; m_selectedItemFlags = 0; @@ -836,7 +865,7 @@ CMenuBand * mbc; HRESULT hr; - DbgPrint("PopMenuBar %p\n", mb); + TRACE("PopMenuBar %p\n", mb); if (m_current == m_entryUnderMouse) { @@ -880,12 +909,14 @@ CMenuBand * mbc; HRESULT hr; - DbgPrint("PopMenuPopup %p\n", mb); + TRACE("PopMenuPopup %p\n", mb); if (m_current == m_entryUnderMouse) { m_entryUnderMouse = NULL; } + + m_menuDepth--; hr = PopFromArray(&type, &mbc, NULL); if (FAILED_UNEXPECTEDLY(hr)) @@ -924,7 +955,7 @@ HMENU hmenu; HRESULT hr; - DbgPrint("PopTrackedPopup %p\n", popup); + TRACE("PopTrackedPopup %p\n", popup); hr = PopFromArray(&type, NULL, &hmenu); if (FAILED_UNEXPECTEDLY(hr)) Modified: trunk/reactos/base/shell/rshell/CMenuFocusManager.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/rshell/CMenuFocusManager.h?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/base/shell/rshell/CMenuFocusManager.h [iso-8859-1] (original) +++ trunk/reactos/base/shell/rshell/CMenuFocusManager.h [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -85,6 +85,7 @@ #define MAX_RECURSE 20 StackEntry m_bandStack[MAX_RECURSE]; int m_bandCount; + int m_menuDepth; HRESULT PushToArray(StackEntryType type, CMenuBand * mb, HMENU hmenu); HRESULT PopFromArray(StackEntryType * pType, CMenuBand ** pMb, HMENU * pHmenu); @@ -110,10 +111,10 @@ HRESULT IsTrackedWindowOrParent(HWND hWnd); void DisableMouseTrack(HWND parent, BOOL disableThis); - void SetCapture(HWND child); + void SetMenuCapture(HWND child); LRESULT ProcessMouseMove(MSG* msg); - LRESULT ProcessMouseDown(MSG* msg); + LRESULT ProcessMouseDown(MSG* msg, BOOL isLButton); LRESULT ProcessMouseUp(MSG* msg); public: HRESULT PushMenuBar(CMenuBand * mb); Modified: trunk/reactos/base/shell/rshell/CMenuToolbars.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/rshell/CMenuToolbars.cpp?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/base/shell/rshell/CMenuToolbars.cpp [iso-8859-1] (original) +++ trunk/reactos/base/shell/rshell/CMenuToolbars.cpp [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -73,9 +73,6 @@ //return OnHotItemChange(reinterpret_cast<LPNMTBHOTITEM>(hdr), theResult); return S_OK; - case NM_RCLICK: - return OnContextMenu(reinterpret_cast<LPNMMOUSE>(hdr)); - case NM_CUSTOMDRAW: return OnCustomDraw(reinterpret_cast<LPNMTBCUSTOMDRAW>(hdr), theResult); @@ -770,7 +767,7 @@ HRESULT CMenuToolbarBase::BeforeCancelPopup() { m_cancelingPopup = TRUE; - DbgPrint("BeforeCancelPopup\n"); + TRACE("BeforeCancelPopup\n"); return S_OK; } @@ -797,12 +794,29 @@ TRACE("Executing...\n"); - return m_menuBand->_MenuItemHotTrack(MPOS_EXECUTE); -} - -HRESULT CMenuToolbarBase::MenuBarMouseDown(INT iIndex) + return m_menuBand->_MenuItemSelect(MPOS_EXECUTE); +} + +HRESULT CMenuToolbarBase::ProcessContextMenu(INT iItem) +{ + INT index; + DWORD_PTR data; + + GetDataFromId(iItem, &index, &data); + + DWORD pos = GetMessagePos(); + POINT pt = { GET_X_LPARAM(pos), GET_Y_LPARAM(pos) }; + + return InternalContextMenu(iItem, index, data, pt); +} + +HRESULT CMenuToolbarBase::MenuBarMouseDown(INT iIndex, BOOL isLButton) { TBBUTTON btn; + + GetButton(iIndex, &btn); + if (!isLButton) + return ProcessContextMenu(btn.idCommand); if ((m_initFlags & SMINIT_VERTICAL) || m_popupBar @@ -812,23 +826,22 @@ return S_OK; } + return ProcessClick(btn.idCommand); +} + +HRESULT CMenuToolbarBase::MenuBarMouseUp(INT iIndex) +{ + TBBUTTON btn; + + m_cancelingPopup = FALSE; + + if (!(m_initFlags & SMINIT_VERTICAL)) + return S_OK; + GetButton(iIndex, &btn); return ProcessClick(btn.idCommand); } -HRESULT CMenuToolbarBase::MenuBarMouseUp(INT iIndex) -{ - TBBUTTON btn; - - m_cancelingPopup = FALSE; - - if (!(m_initFlags & SMINIT_VERTICAL)) - return S_OK; - - GetButton(iIndex, &btn); - return ProcessClick(btn.idCommand); -} - HRESULT CMenuToolbarBase::PrepareExecuteItem(INT iItem) { this->m_menuBand->_KillPopupTimers(); @@ -840,17 +853,6 @@ HRESULT CMenuToolbarBase::ExecuteItem() { return InternalExecuteItem(m_executeItem, m_executeItem, m_executeData); -} - -HRESULT CMenuToolbarBase::OnContextMenu(NMMOUSE * rclick) -{ - INT iItem = rclick->dwItemSpec; - INT index = rclick->dwHitInfo; - DWORD_PTR data = rclick->dwItemData; - - GetDataFromId(iItem, &index, &data); - - return InternalContextMenu(iItem, index, data, rclick->pt); } HRESULT CMenuToolbarBase::KeyboardItemChange(DWORD dwSelectType) Modified: trunk/reactos/base/shell/rshell/CMenuToolbars.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/rshell/CMenuToolbars.h?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/base/shell/rshell/CMenuToolbars.h [iso-8859-1] (original) +++ trunk/reactos/base/shell/rshell/CMenuToolbars.h [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -96,9 +96,10 @@ HRESULT KillPopupTimer(); - HRESULT MenuBarMouseDown(INT iIndex); + HRESULT MenuBarMouseDown(INT iIndex, BOOL isLButton); HRESULT MenuBarMouseUp(INT iIndex); HRESULT ProcessClick(INT iItem); + HRESULT ProcessContextMenu(INT iItem); HRESULT BeforeCancelPopup(); protected: @@ -121,7 +122,6 @@ HRESULT UpdateImageLists(); HRESULT OnPagerCalcSize(LPNMPGCALCSIZE csize); - HRESULT OnContextMenu(NMMOUSE * rclick); HRESULT OnCustomDraw(LPNMTBCUSTOMDRAW cdraw, LRESULT * theResult); HRESULT OnGetInfoTip(NMTBGETINFOTIP * tip); Modified: trunk/reactos/base/shell/rshell/ShellDDE.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/rshell/ShellDDE.cpp?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/base/shell/rshell/ShellDDE.cpp [iso-8859-1] (original) +++ trunk/reactos/base/shell/rshell/ShellDDE.cpp [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -56,7 +56,7 @@ DdeQueryStringW(dwDDEInst, hszTopic, szTopic, _countof(szTopic), CP_WINUNICODE); DdeQueryStringW(dwDDEInst, hszService, szService, _countof(szService), CP_WINUNICODE); - DbgPrint("Dde_OnConnect: topic=%S, service=%S\n", szTopic, szService); + TRACE("Dde_OnConnect: topic=%S, service=%S\n", szTopic, szService); return TRUE; } @@ -69,7 +69,7 @@ DdeQueryStringW(dwDDEInst, hszTopic, szTopic, _countof(szTopic), CP_WINUNICODE); DdeQueryStringW(dwDDEInst, hszService, szService, _countof(szService), CP_WINUNICODE); - DbgPrint("Dde_OnConnectConfirm: hconv=%p, topic=%S, service=%S\n", hconv, szTopic, szService); + TRACE("Dde_OnConnectConfirm: hconv=%p, topic=%S, service=%S\n", hconv, szTopic, szService); } static BOOL Dde_OnWildConnect(HSZ hszTopic, HSZ hszService) @@ -80,7 +80,7 @@ DdeQueryStringW(dwDDEInst, hszTopic, szTopic, _countof(szTopic), CP_WINUNICODE); DdeQueryStringW(dwDDEInst, hszService, szService, _countof(szService), CP_WINUNICODE); - DbgPrint("Dde_OnWildConnect: topic=%S, service=%S\n", szTopic, szService); + TRACE("Dde_OnWildConnect: topic=%S, service=%S\n", szTopic, szService); return FALSE; } @@ -93,7 +93,7 @@ DdeQueryStringW(dwDDEInst, hszTopic, szTopic, _countof(szTopic), CP_WINUNICODE); DdeQueryStringW(dwDDEInst, hszItem, szItem, _countof(szItem), CP_WINUNICODE); - DbgPrint("Dde_OnRequest: uFmt=%d, hconv=%p, topic=%S, item=%S\n", hconv, szTopic, szItem); + TRACE("Dde_OnRequest: uFmt=%d, hconv=%p, topic=%S, item=%S\n", hconv, szTopic, szItem); return NULL; } @@ -140,7 +140,7 @@ DdeUnaccessData(hdata); - DbgPrint("Dde_OnExecute: hconv=%p, topic=%S, command=%S\n", hconv, szTopic, pszCommand); + TRACE("Dde_OnExecute: hconv=%p, topic=%S, command=%S\n", hconv, szTopic, pszCommand); /* [ViewFolder("%l", %I, %S)] -- Open a folder in standard mode @@ -261,7 +261,7 @@ UnknownParameter = StrToIntW(cmd); } - DbgPrint("Parse end: cmd=%S, S=%d, pidl=%p, path=%S\n", Command, UnknownParameter, IdList, Path); + TRACE("Parse end: cmd=%S, S=%d, pidl=%p, path=%S\n", Command, UnknownParameter, IdList, Path); // Find handler in list for (int i = 0; i < HandlerListLength; i++) @@ -280,7 +280,7 @@ static void Dde_OnDisconnect(HCONV hconv) { - DbgPrint("Dde_OnDisconnect: hconv=%p\n", hconv); + TRACE("Dde_OnDisconnect: hconv=%p\n", hconv); } static HDDEDATA CALLBACK DdeCallback( @@ -312,7 +312,7 @@ case XTYP_REGISTER: return NULL; default: - DbgPrint("DdeCallback: unknown uType=%d\n", uType); + TRACE("DdeCallback: unknown uType=%d\n", uType); return NULL; } } @@ -330,7 +330,7 @@ */ EXTERN_C void WINAPI ShellDDEInit(BOOL bInit) { - DbgPrint("ShellDDEInit bInit = %s\n", bInit ? "TRUE" : "FALSE"); + TRACE("ShellDDEInit bInit = %s\n", bInit ? "TRUE" : "FALSE"); if (bInit && !bInitialized) { Modified: trunk/reactos/dll/win32/shell32/CDefView.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CDefView.cpp?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/dll/win32/shell32/CDefView.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/CDefView.cpp [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -1898,14 +1898,14 @@ MENUITEMINFOW mii = { 0 }; HMENU hSubmenu = (HMENU) wParam; - DbgPrint("OnInitMenuPopup lParam=%d\n", lParam); + TRACE("OnInitMenuPopup lParam=%d\n", lParam); mii.cbSize = sizeof(mii); mii.fMask = MIIM_ID | MIIM_SUBMENU; if (!GetMenuItemInfoW(this->m_hMenu, lParam, TRUE, &mii)) { - DbgPrint("OnInitMenuPopup GetMenuItemInfoW failed!\n"); + TRACE("OnInitMenuPopup GetMenuItemInfoW failed!\n"); return FALSE; } @@ -1913,11 +1913,11 @@ if (mii.hSubMenu != hSubmenu) { - DbgPrint("OnInitMenuPopup submenu does not match!!!!\n"); + TRACE("OnInitMenuPopup submenu does not match!!!!\n"); return FALSE; } - DbgPrint("OnInitMenuPopup id=%d\n", menuItemId); + TRACE("OnInitMenuPopup id=%d\n", menuItemId); switch (menuItemId) { Modified: trunk/reactos/dll/win32/shell32/CDesktopBrowser.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CDesktopBrowser.cpp?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/dll/win32/shell32/CDesktopBrowser.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/CDesktopBrowser.cpp [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -519,7 +519,7 @@ } case WM_EXPLORER_OPEN_NEW_WINDOW: - DbgPrint("Proxy Desktop message 1035 received.\n"); + TRACE("Proxy Desktop message 1035 received.\n"); SHOnCWMCommandLine((HANDLE)lParam); break; Modified: trunk/reactos/dll/win32/shell32/dde.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/dde.cpp?rev=65740&r1=65739&r2=65740&view=diff ============================================================================== --- trunk/reactos/dll/win32/shell32/dde.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/dde.cpp [iso-8859-1] Thu Dec 18 17:34:46 2014 @@ -55,7 +55,7 @@ DdeQueryStringW(dwDDEInst, hszTopic, szTopic, _countof(szTopic), CP_WINUNICODE); DdeQueryStringW(dwDDEInst, hszService, szService, _countof(szService), CP_WINUNICODE); - DbgPrint("Dde_OnConnect: topic=%S, service=%S\n", szTopic, szService); + TRACE("Dde_OnConnect: topic=%S, service=%S\n", szTopic, szService); return TRUE; } @@ -68,7 +68,7 @@ DdeQueryStringW(dwDDEInst, hszTopic, szTopic, _countof(szTopic), CP_WINUNICODE); DdeQueryStringW(dwDDEInst, hszService, szService, _countof(szService), CP_WINUNICODE); - DbgPrint("Dde_OnConnectConfirm: hconv=%p, topic=%S, service=%S\n", hconv, szTopic, szService); + TRACE("Dde_OnConnectConfirm: hconv=%p, topic=%S, service=%S\n", hconv, szTopic, szService); } static BOOL Dde_OnWildConnect(HSZ hszTopic, HSZ hszService) @@ -79,7 +79,7 @@ DdeQueryStringW(dwDDEInst, hszTopic, szTopic, _countof(szTopic), CP_WINUNICODE); DdeQueryStringW(dwDDEInst, hszService, szService, _countof(szService), CP_WINUNICODE); - DbgPrint("Dde_OnWildConnect: topic=%S, service=%S\n", szTopic, szService); + TRACE("Dde_OnWildConnect: topic=%S, service=%S\n", szTopic, szService); return FALSE; } @@ -92,7 +92,7 @@ DdeQueryStringW(dwDDEInst, hszTopic, szTopic, _countof(szTopic), CP_WINUNICODE); DdeQueryStringW(dwDDEInst, hszItem, szItem, _countof(szItem), CP_WINUNICODE); - DbgPrint("Dde_OnRequest: uFmt=%d, hconv=%p, topic=%S, item=%S\n", hconv, szTopic, szItem); + TRACE("Dde_OnRequest: uFmt=%d, hconv=%p, topic=%S, item=%S\n", hconv, szTopic, szItem); return NULL; } @@ -139,7 +139,7 @@ DdeUnaccessData(hdata); - DbgPrint("Dde_OnExecute: hconv=%p, topic=%S, command=%S\n", hconv, szTopic, pszCommand); + TRACE("Dde_OnExecute: hconv=%p, topic=%S, command=%S\n", hconv, szTopic, pszCommand); /* [ViewFolder("%l", %I, %S)] -- Open a folder in standard mode @@ -260,7 +260,7 @@ UnknownParameter = StrToIntW(cmd); } - DbgPrint("Parse end: cmd=%S, S=%d, pidl=%p, path=%S\n", Command, UnknownParameter, IdList, Path); + TRACE("Parse end: cmd=%S, S=%d, pidl=%p, path=%S\n", Command, UnknownParameter, IdList, Path); // Find handler in list for (int i = 0; i < HandlerListLength; i++) @@ -279,7 +279,7 @@ static void Dde_OnDisconnect(HCONV hconv) { - DbgPrint("Dde_OnDisconnect: hconv=%p\n", hconv); + TRACE("Dde_OnDisconnect: hconv=%p\n", hconv); } static HDDEDATA CALLBACK DdeCallback( @@ -311,7 +311,7 @@ case XTYP_REGISTER: return NULL; default: - DbgPrint("DdeCallback: unknown uType=%d\n", uType); + WARN("DdeCallback: unknown uType=%d\n", uType); return NULL; } } @@ -329,7 +329,7 @@ */ EXTERN_C void WINAPI ShellDDEInit(BOOL bInit) { - DbgPrint("ShellDDEInit bInit = %s\n", bInit ? "TRUE" : "FALSE"); + TRACE("ShellDDEInit bInit = %s\n", bInit ? "TRUE" : "FALSE"); if (bInit && !bInitialized) {