Opened 17 years ago

Closed 16 years ago

#27 closed defect (fixed)

Dropping a new font on menus doesn't work correctly

Reported by: Gregg Young Owned by: Gregg Young
Priority: trivial Milestone: Release_3.9
Component: fm/2 base Version: 3.09
Keywords: Cc:

Description

When you drop a new font on the menu bar the font on the files and view menu don't change. The font changes on all the other menus and the "Files" and "View" on the bar change just not the menus.

Change History (5)

comment:1 Changed 17 years ago by Gregg Young

This appears to be the result of the way the menus are built (see below). Since SetConditionalCascade? is used the menus don't really exits until opened so the fonts are dropped on nothing and the menu can't be dropped on while open. Perhaps making a single files menu and a view menu containing all the items for all frame windows and then use MM_REMOVEITEM to change on fly for each different frame window would work. MM_REMOVEITEM should be use instead of MM_DELETEITEM because item can be added back easily in the case of changing between the drives container focus and directory container focus. MM_DELETEITEM could be used for other windows.

Misc.c near 1567 HWND CheckMenu?(HWND * hwndMenu, USHORT id) {

/* load and adjust menus as required */

if (!*hwndMenu
WinIsWindow((HAB) 0, *hwndMenu)) {

*hwndMenu = WinLoadMenu?(HWND_DESKTOP, FM3ModHandle, id); if (hwndMenu == &DirMenu?) {

WinSetWindowUShort(DirMenu?, QWS_ID, IDM_FILESMENU); SetConditionalCascade?(DirMenu?, IDM_COMMANDSMENU, IDM_DOITYOURSELF); SetConditionalCascade?(DirMenu?, IDM_COPYMENU, IDM_COPY); SetConditionalCascade?(DirMenu?, IDM_MOVEMENU, IDM_MOVE); SetConditionalCascade?(DirMenu?, IDM_SAVESUBMENU, IDM_SAVETOCLIP); SetConditionalCascade?(DirMenu?, IDM_VIEWSUBMENU, IDM_INFO); SetConditionalCascade?(DirMenu?, IDM_EDITSUBMENU, IDM_ATTRS); SetConditionalCascade?(DirMenu?, IDM_DELETESUBMENU,

(fDefaultDeletePerm) ? IDM_PERMDELETE : IDM_DELETE);

SetConditionalCascade?(DirMenu?, IDM_MISCSUBMENU, IDM_SIZES); SetConditionalCascade?(DirMenu?, IDM_OPENSUBMENU, IDM_OPENWINDOW); if (fWorkPlace) {

WinSendMsg?(DirMenu?, MM_DELETEITEM,

MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);

WinSendMsg?(DirMenu?, MM_DELETEITEM,

MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);

}

}

comment:2 Changed 17 years ago by Gregg Young

Owner: Gregg Young deleted

comment:3 Changed 17 years ago by Gregg Young

Ticket 150 is a different aspect of this problem

comment:4 Changed 16 years ago by Gregg Young

Milestone: Release_3.9
Owner: set to Gregg Young
Status: newassigned
Version: 3.09

comment:5 Changed 16 years ago by Gregg Young

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.