Console window state not restored on startup if console.show() is used
#312 introduced persistence of the console window. I think that code has problems.
Try this user startup.py:
try:
startup_already_ran
print('NOT running startup things a second time')
except:
startup_already_ran = True
print('running startup things...')
console.show()
(note that the try/except wrapper is because of this other bug: #339 )
Exit Notepad++ with the console window showing and restart. At restart the console window will NOT be shown. Removing the console.show() line in the script results in correct persistence behavior of the console window.
Notepad++ Debug Info:
Notepad++ v8.6.8 (64-bit)
Build time : Jun 4 2024 - 00:30:00
Path : C:\NotepadPlusPlus\Misc\_NoBackup\Releases\npp.8.6.8\npp.8.6.8.portable.x64\notepad++.exe
Command Line : -titleAdd="8.6.8 64-bit" -multiInst
Admin mode : OFF
Local Conf mode : ON
Cloud Config : OFF
Periodic Backup : ON
OS Name : Windows 11 Pro (64-bit)
OS Version : 23H2
OS Build : 22631.3737
Current ANSI codepage : 1252
Plugins :
mimeTools (3.1)
NppConverter (4.6)
NppExport (0.4)
PythonScript (3.0.18)
Seems at startup console.show() behaves more like toggling. Needs to be further checked why.
This is just to document what I think is happening:
- Npp calls
toogleConsolevia the menu item - PS starts to initialize
startup.pyis calledconsole.show()is executed- The creation of the console begins
- PS sends
PYSCR_SHOWCONSOLEto itself - which triggers a
g_console->showDialog(). - which in turn triggers a
mp_consoleDlg->doDialog(), - followed by a
display(true) - which then triggers a
SendMessage(_hParent, toShow ? NPPM_DMMSHOW : NPPM_DMMHIDE, 0, reinterpret_cast<LPARAM>(_hSelf));which means that Npp callstoogleConsolevia the menu item.
Still a problem, as of today, in version: 3.0.21.0. :-(