#7924 closed enhancement (invalid)
Enable optional Z-Snake functionality.
Reported by: | KarmaMechanic | Owned by: | stippi |
---|---|---|---|
Priority: | low | Milestone: | Unscheduled |
Component: | User Interface | Version: | R1/alpha3 |
Keywords: | z-snake menu snake tracker deskbar | Cc: | |
Blocked By: | Blocking: | ||
Platform: | All |
Description
Add an option to enable Snaking menu highlights("Z-snake"), such as those seen in BeOS R5.1d0
Change History (6)
comment:1 by , 13 years ago
Milestone: | R1 → Unscheduled |
---|---|
Priority: | normal → low |
follow-up: 3 comment:2 by , 13 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:3 by , 13 years ago
Replying to axeld:
What would be the use of that, anyway? It didn't even look good, besides that it doesn't add any other value.
While the visual implementation left some to be desired, it was quite useful when browsing deep directory hierarchies in Tracker context menus, since it let you follow the path you'd gone to arrive at the menu you're currently at, which can get a little confusing when a menu needs to be located to the left of the current one due to space constraints.
follow-up: 6 comment:4 by , 13 years ago
Not a key feature desired by everyone, I did find it useful when adding drivers to the old dano system I used to have on real hardware. Figured it might be a semi-easy gui task for a newer developer, and set to off by default. I guess this gives me a good reason to learn something more than generic c++ lol.
comment:5 by , 13 years ago
Hey now, don't be down on the snake. I loved z-snake and would love to have the option for it.
comment:6 by , 13 years ago
Replying to KarmaMechanic:
Not a key feature desired by everyone, I did find it useful when adding drivers to the old dano system I used to have on real hardware. Figured it might be a semi-easy gui task for a newer developer, and set to off by default. I guess this gives me a good reason to learn something more than generic c++ lol.
I would advise against that, one of the many reasons it hasn't been done is because it's actually quite hard to do correctly. You'll notice even Dano didn't manage, seeing as Z-snake has visual artifacts in a lot of situations. Path computation for it is non-trivial since you have to figure out a path that looks good regardless of where the next menu window is ultimately positioned, bearing in mind that could be above, below and to either side of your current window.
Furthermore, as implemented in Dano it's currently impossible in Haiku since it requires non-rectangular window support in the app_server, which Haiku doesn't currently have, and which would require pretty significant effort to implement (especially in a way that actually performs well). To add to the complexity, the menu code is quite complex/messy as is, partly due to the BeOS API design for them being horrible, which makes it even harder to implement than it otherwise would be. None of the above is something I'd advise attempting without very deep knowledge of the involved components.
What would be the use of that, anyway? It didn't even look good, besides that it doesn't add any other value.