PythonScript icon indicating copy to clipboard operation
PythonScript copied to clipboard

Console window state not restored on startup if console.show() is used

Open alankilborn opened this issue 1 year ago • 2 comments

#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)

alankilborn avatar Jun 14 '24 12:06 alankilborn

Seems at startup console.show() behaves more like toggling. Needs to be further checked why.

chcg avatar Oct 08 '24 23:10 chcg

This is just to document what I think is happening:

  • Npp calls toogleConsole via the menu item
  • PS starts to initialize
  • startup.py is called
  • console.show() is executed
  • The creation of the console begins
  • PS sends PYSCR_SHOWCONSOLE to 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 calls toogleConsole via the menu item.

Ekopalypse avatar Jan 03 '25 07:01 Ekopalypse

Still a problem, as of today, in version: 3.0.21.0. :-(

alankilborn avatar Mar 19 '25 10:03 alankilborn