From eb0d2daa7e538823162e2fe06b2a47e87e379737 Mon Sep 17 00:00:00 2001 From: "cmanske%netscape.com" Date: Tue, 29 Sep 1998 05:10:58 +0000 Subject: [PATCH] Fixed bug 123391 git-svn-id: svn://10.0.0.236/trunk@11321 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/cmd/winfe/edframe.cpp | 10 ++++++---- mozilla/cmd/winfe/edview.h | 3 ++- mozilla/cmd/winfe/edview2.cpp | 11 +++++++---- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/mozilla/cmd/winfe/edframe.cpp b/mozilla/cmd/winfe/edframe.cpp index b0d4be4a814..d0af5ddc73c 100644 --- a/mozilla/cmd/winfe/edframe.cpp +++ b/mozilla/cmd/winfe/edframe.cpp @@ -2248,14 +2248,16 @@ void CGenericFrame::OnMenuSelectComposer(UINT nItemID, UINT nFlags, HMENU hSysMe hSubMenu = GetSubMenu(hMenu, i); if( hSubMenu ) { - // We need to build recent files submenu only when that item is selected - if( i == ED_MENU_FILE && nItemID == ed_RECENTFILE_INDEX) + // Build recent files submenu when menu is opened so we can disable if empty + if( i == ED_MENU_FILE && nItemID == ED_MENU_FILE ) { - if( bInEditMenu ) + if( bInFileMenu ) return; bInFileMenu = TRUE; // Build a menu of recently-edited URL titles - ((CNetscapeEditView*)GetActiveView())->BuildEditHistoryMenu(::GetSubMenu(hSubMenu, ed_RECENTFILE_INDEX), 0); + int iCount = ((CNetscapeEditView*)GetActiveView())->BuildEditHistoryMenu(::GetSubMenu(hSubMenu, ed_RECENTFILE_INDEX), 0); + if( iCount == 0 ) + EnableMenuItem(hSubMenu, ed_RECENTFILE_INDEX, MF_BYPOSITION | MF_GRAYED); } // Checking nItemID assures we do stuff only when the popup opens first time else if( i == ED_MENU_EDIT && nItemID == ED_MENU_EDIT ) diff --git a/mozilla/cmd/winfe/edview.h b/mozilla/cmd/winfe/edview.h index a8ae8bcf8af..9e544f514d0 100644 --- a/mozilla/cmd/winfe/edview.h +++ b/mozilla/cmd/winfe/edview.h @@ -292,7 +292,8 @@ public: // Delete existing menu starting at iStartItem then // append a new menu with current recently-edited URLs - void BuildEditHistoryMenu(HMENU hMenu, int iStartItem); + // Returns number of items added to the menu + int BuildEditHistoryMenu(HMENU hMenu, int iStartItem); // Trigger a mouse-move message to update the cursor void UpdateCursor(); diff --git a/mozilla/cmd/winfe/edview2.cpp b/mozilla/cmd/winfe/edview2.cpp index 13cdecd9530..88d2d530f60 100644 --- a/mozilla/cmd/winfe/edview2.cpp +++ b/mozilla/cmd/winfe/edview2.cpp @@ -4365,17 +4365,18 @@ LRESULT CNetscapeEditView::OnImeChangeComposition(HGLOBAL p_global) #endif //_IME_COMPOSITION -void CNetscapeEditView::BuildEditHistoryMenu(HMENU hMenu, int iStartItem) +int CNetscapeEditView::BuildEditHistoryMenu(HMENU hMenu, int iStartItem) { if( !hMenu ) - return; - int nCount = GetMenuItemCount(hMenu); + return 0; + int iCount = GetMenuItemCount(hMenu); int i; // Delete existing menu - for( i = nCount - 1; i >= iStartItem; i-- ) + for( i = iCount - 1; i >= iStartItem; i-- ) DeleteMenu(hMenu, i, MF_BYPOSITION); + iCount = 0; char * pUrl = NULL; char * pMenuItem = NULL; for( i = 0; i < MAX_EDIT_HISTORY_LOCATIONS; i++ ) @@ -4402,9 +4403,11 @@ void CNetscapeEditView::BuildEditHistoryMenu(HMENU hMenu, int iStartItem) { AppendMenu(hMenu, MF_STRING, ID_EDIT_HISTORY_BASE+i, pMenuItem); XP_FREE(pMenuItem); + iCount++; } } } + return iCount; } void CNetscapeEditView::OnCheckSpelling()