Skyfire76 wrote:
If this (wishlist) is still being looked at
:
- ability to add the standard language toolbar (which allows a quick switching of region and keyboard layout) to the Winstep taskbar
Yes, this wishlist is still being looked at.
I've gone one step further than capturing the Windows language bar to the Winstep taskbar: I completely emulated what it does. So in v15.9 (upcoming new release) you have a new 'Language bar' internal command which you can add to the taskbar, docks, menus, Shelf, hotspot buttons, etc...
Skyfire76 wrote:
- ability to add a shortcut the the metro UI on Windows 8
As for shortcuts to Metro apps, v15.7 already does that but only under Windows 10, since MS finally added the bare minimum support necessary for something like that. Windows 8 is hopeless.
Skyfire76 wrote:
EDIT3 : I can confirm it's the taskbar which is the source of focus/z-order problems. If I disable it, but only activate the shelf (and even docks and desktop modules with the settings described above), the problems disappear. So, unless someone has a solution, I'll have to get rid of it, which is sad as I really liked it (and I don't have much use for the shelf, actually)
The problem is the taskbar coming forward on the z-order when it detects a mouse bump on the screen edge it's attached to. It doesn't do that if it thinks a full screen game or application is running, but some games must be 'special' and fool NextSTART (and WorkShelf) into thinking a full screen application is NOT running (which explains why you only had this problem on some games).
Anyway, for v15.9 I just added a new 'Bring taskbar forward when the mouse pointer bumps screen edge' setting to the Taskbar Advanced Settings dialog to control if the taskbar is given focus when the mouse pointer bumps the
associated screen edge or not. This should solve your problem.
As for the other z-order problems you had, with docks sometimes coming to the foreground when they shouldn't because they're set to 'Always on bottom', I know why this happens and it's a tough one to crack.
The problem is related to WIN+D (Show Desktop) and detecting when Show Desktop is active, because you want the docks, taskbar, etc, to remain visible when the user presses WIN+D.
Windows deliberately does not send applications any notification that 'Show Desktop' is in effect. Instead it silently raises the desktop window above all other windows, and everything behind is thus 'hidden from view'. For the docks to remain visible, they must detect when this happens and 'transfer' themselves (in the z-order stack) to the top of this desktop window.
So, the problem is detecting when Show Desktop is active. Before Windows 7 there was one way, the Desktop window (usually ProgMan) would become owned by a full screen window with a 'Worker_w' class. So, when this happened you would know Show Desktop was active and do the necessary work to make the docks come up as well.
Windows 7 itself already put a wrench in this: when wallpaper slideshow is active, Progman becomes a permanent guest of that Worker_W window. At least under Windows 7 this only happens in that case, under 8 and 10 it's worse.
So, even when 'Show Desktop' is not active, if you click on the desktop (say, to launch a shortcut in it), Progman becomes the active window. Winstep goes to look if it is owned by Worker_w (which it is when slide show is active, or almost every time in 8 and 10) and thinks that Show Desktop is active, thus raising all the docks in the z-order, including Always on Bottom docks. They are sent back as soon as you click somewhere else, but in the mean time the user has already seen confusing behavior.
Unfortunately I still haven't found another reliable way to detect when 'Show Desktop' is active, so I am left with this problem: either the docks become hidden when you press Show Desktop *OR* you see unexpected z-order behavior from time to time.
Still working on solving this, as I mentioned.
toniostarcevic wrote:
Option 1: The swipe time is set to 150 ms for example. And the travel distance to 210 pixels. So when you just touch the edge of the screen, nothing happens yet. When you move the cursor slowly along the edge, it still doesn't activate it. Only when you travel a distance of at least 210 pixels in less than 150 ms, then the shelf/dock will be activated. So you will need to make a swipe at the edge to activate it.
Option 2: Activation delay is set to 500 ms. Travel distance is set to 5 pixels. Moving the cursor along the edge will not activate the shelf/dock. You will need to stay inside an aera of 5 pixels for at least 500 ms to activate the shelf/dock. Traveling more than 5 pixels will reset the timer. You need to keep still to activate it.
Option 3 then would be the normal edge bump activation as it's available right now, with only the delay time setting.
I hope you like the idea.
I liked it so much that I implemented all that in v15.9. You can now activate docks by either bumping or swiping, and you can control swiping distance, timeout for a swipe to be recognized as such, and also limit the distance the mouse pointer can travel in the opposite axis for an edge bump to be detected as such.
This should help immensely with accidental dock activation.
toniostarcevic wrote:
All activation settings should be per shelf/dock, and not global.
I would like to have an auto-hiding dock at the left edge of the screen, that only shows running applications. As a task bar replacement.
This dock should appear as fast as possible. For task switching.
But when i set an activation delay of 100 ms, the setting applies to all hidden docks and shelfs. This is not quite optimal.
Alas, unfortunately this cannot be done, because edge bumps, swipes, etc, are not detected by the docks themselves but by a global monitoring routine running in the background. It is this routine that dispatches edge bumps etc to all the docks that will respond to it. Because this routine is global, so are the timings that rule it.
This said, whether a dock now responds to a swipe or an edge bump is an individual dock setting. So you can have some docks being activated by a swipe and others by an edge bump. Limiting the distance the mouse can travel when bumping a screen edge should already help a lot with bringing down the number of accidental activations.
You just have to be careful in not using very low values, as edge and swipe detection then become a bit unreliable from what I am observing here (this seems to be a limitation of the mouse driver itself, not Winstep). For instance, imagine you do a quick horizontal swipe of the top screen edge: instead of returning a pretty linear progression of the mouse pointer coordinates, the mouse driver returns something like this for the x coordinate: 0,0,0,0,0,0, 11, 37, 83, 159, 246, 321, 380, 408, 422.
Even though I was moving the mouse pointer the whole time, notice how, in the first 60 ms (coordinates are fetched every 10 ms) the mouse pointer (according to Windows) was standing still, and then quickly accelerated. There seems to be some kind of interpolation being done on the mouse driver level.
So, if you set the swipe time limit in this case to, say, 60 ms (the software will not let you go that low because of this issue), the swipe would fail because, as far as Windows was concerned, the mouse pointer wasn't even moving during that time (even though it was).