Ticket #400 (Fixed)Mon Jan 12 13:32:32 UTC 2015
Holding shift while entering desktop prevents boot sequence from completing correctly
Reported by: | Jeffrey Lee (213) | Severity: | Normal |
Part: | RISC OS: Boot sequence | Release: | |
Milestone: | Status | Fixed |
Details by Jeffrey Lee (213):
Due to the fact the boot sequence uses Filer_Run to start wimp tasks, if you hold down shift while entering the desktop you’ll end up with all of the runnable files from !Boot.Choices.Tasks opening in a text editor instead of being run. This could cause confusion for people who were trying to shift-boot their machine (to cut out the boot sequence entirely), or if someone had pressed their shift key by accident.
Searching the boot sequence for all uses of Filer_Run and adding the -NoShift option will presumably fix the issue, although care will be needed in order to maintain compatibility with older OS versions. Configure will also need updating to make sure -NoShift is used when the configure plugin is used to add to the list of apps to run on startup.
Changelog:
Modified by Sprow (202) Wed, January 14 2015 - 08:33:41 GMT
In my view, the ‘-NoShift’ switch ranks highly amongst the badly thought out additions to RISC OS, primarily because earlier versions of the Filer fault it when OS_ReadArgs tries to chew the command. As a result, every situation where it might have been useful needs to be bracketed by detecting if it can be used.
See
https://www.riscosopen.org/forum/forums/4/topic…
for one such situation when trying to work out how !Alarm might use it.
You rightly point out that catching all the things that have ever been written that put Filer_Run containing obey files into !Boot is probably not possible, since it includes 3rd party plugins and updates.
I think a much simpler solution is to change the switch to ‘-Shift’ as I think the only time you actually want to inspect the shift key is when navigating filer windows when the filer sends itself a command, therefore only 1 place to change.
All the other situations (during !Boot, from a task alarm in !Alarm, during shutdown, etc) then gain the desired behaviour for free.
The ‘-NoShift’ switch would probably need to be retained (but ignored) as it appears in the ROL fork so there could be some people using it.
Modified by Jeffrey Lee (213) Wed, January 14 2015 - 13:24:57 GMT
Yes, adding a ‘-Shift’ switch (‘-AllowShift’?) and changing the default behaviour to NoShift sounds like a better solution. Probably something best left until 5.23, as I’d guess there’ll be at least one third-party app where the shift behaviour is desirable.
Modified by Sprow (202) Thu, July 30 2015 - 07:30:06 GMT
- Status changed from Open to Fixed
Fixed in Filer-2_40.
I went with -Shift since there are serveral other pairs of the form Lib/NoLib, Dir/NoDir, Boot/NoBoot so that seems in keeping even if it’s not the clearest of english. -NoScanShift and -ScanShift would be better, but ROL picked -NoShift and I guess we’re stuck with it.