So what happens is the following: the first time one tries to edit a layer using an external app in Windows, you may get the choose-an-app dialogue, but if the <[file extension] x [command type]> combination is already associated with an application, that application will open instead.
As that first selection will also associate the combination, you will get the choose-an-app dialogue at most once (the association is system-wide).
The tricky part is that you can’t just go to a png file, right-click properties and set the default application to open it with, because that will create an association for <“.png” x “open”> whereas the association mypaint uses is for <“.png” x “edit”>. Presumably one can reassign this association from MSPaint to whatever you want to use, though I don’t know how/where to do that (not a Windows user).
Quick fixes would be to either change ‘os.startfile(file_path, “edit”)’ in gui/externalapp.py to just ‘os.startfile(file_path)’ (which may have other consequences I don’t know about), or to figure out how to change the <“file type/extension” x “edit”> app-associations in Windows.
Regardless, if you want to use different external editors for different kind of edits in a flexible way, it seems Windows users are out of luck for the moment.
Update: it seems there is no way to easily make these associations except for adding/editing registry keys, specifically:
“Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations.png\Shell\Edit\Command”
or
"Computer\HKEY_CLASSES_ROOT\SystemFileAssociations.png\Shell\Edit\Command
Setting the command key to an empty string does not retrigger the app selection dialogue, and removing the keys simply makes it open mspaint again, so that must be set somewhere else.
Update 2: this is the commit that changed the behaviour: externalapp: use os.startfile on windows · mypaint/mypaint@abdaf83 · GitHub
In the message Andrew suggests setting the default edit association w. Explorer, so it might be possible without registry fiddling.
Update 3: I needed to reinstall my Win10 VM due to the 90 day expiration anyway (snapshots failing for some reason) so I tested this from a fresh install.
Even when selecting some other editing software in the list and toggling the “Always use this…” option, windows persists in assigning the <“png” x “edit”> combination to MSPaint - the selected software is opened the first time, but subsequent runs will always use MSPaint unless you modify the relevant registry keys in one way or another.