What a coincidence?!? This bug was bothering me today
and I wanted to report it, but another guy also
reported something at,
"StartMenu plugin drawing bug"
http://sourceforge.net/tracker/index.php?
func=detail&aid=1447934&group_id=22049&atid=373085
I know why it happens and I use a workaround for NSIS
2.15, but would like a new version of NSIS to fix this.
-----------------------
Error:
-----------------------
The MUI_PAGE_CUSTOMFUNCTION_SHOW function is not
executed when the MUI_PAGE_STARTMENU window is opened.
-----------------------
Script that generates the error:
-----------------------
!define MUI_PAGE_CUSTOMFUNCTION_PRE MyStartPre
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyStartShow ;
ignored
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE MyStartLeave
!insertmacro MUI_PAGE_STARTMENU "App" MyVar
!define MUI_PAGE_CUSTOMFUNCTION_PRE MyDirPre
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyDirShow ; works
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE MyDirLeave
!insertmacro MUI_PAGE_DIRECTORY
-----------------------
Location of error in NSIS build:
-----------------------
In the file 'System.nsh', we have,
!insertmacro MUI_FUNCTION_STARTMENUPAGE
${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.StartmenuPre_${MUI_UNIQUEID}
${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.StartmenuLeave_${MUI_UNIQUEID}
!insertmacro MUI_FUNCTION_DIRECTORYPAGE
${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.DirectoryPre_${MUI_UNIQUEID}
${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.DirectoryShow_${MUI_UNIQUEID}
${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.DirectoryLeave_${MUI_UNIQUEID}
Notice that the information for show is missing from
the startmenupage.
-----------------------
Workaround
-----------------------
Add the show information in 'system.nsh' so the
startmenupage and directorypage are similar.
Logged In: YES
user_id=1077586
In the file 'System.nsh', we also have,
!macro MUI_FUNCTION_STARTMENUPAGE PRE LEAVE
!macro MUI_FUNCTION_DIRECTORYPAGE PRE SHOW LEAVE
Logged In: YES
user_id=1077586
In the file, 'System.nsh', we also have,
PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.StartmenuPre_${MUI_UNIQUEID}
${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.StartmenuLeave_${MUI_UNIQUEID}
PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.DirectoryPre_${MUI_UNIQUEID}
${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.DirectoryShow_${MUI_UNIQUEID}
${MUI_PAGE_UNINSTALLER_FUNCPREFIX}
mui.DirectoryLeave_${MUI_UNIQUEID}
Logged In: YES
user_id=1077586
Shoot !
From the tutorial:
4.5.3 Callbacks
A custom page only has two callback functions, one that
creates it which is mandatory, and one leave-function that
acts just like the leave-function for built-in pages. (No
show function)
Logged In: YES
user_id=1077586
Now what do I do ?
Logged In: YES
user_id=1077586
See my solution, at,
Default directory
http://forums.winamp.com/showthread.php?
s=4f02cb5f0283172b5d8e6fe7dc5dced7&postid=1886051#post188605
1
You may use it in future versions of NSIS if it works as
you expect.
Logged In: YES
user_id=584402
Implemented MUI start menu page show function for 2.16.
Logged In: YES
user_id=1077586
Thanks. I will wait for your new version.