PB170
Well-known member
Wonderful! I hope my comments will make sense.
First of all: the algorithm for moving the windows, as well as the overall functionality, is already spot on – behaves just like the original! Really amazing work!
My impressions after some further testing:
Now that I see it in action, the animation quickly gets pretty messy with more than a few windows open. I’m wondering, would it be an easy thing to add some temporary interface elements to the control panel (or variables that can be accessed through ResEdit) to control the number of rects and how many of them are displayed together, so that I can play around with it a bit? That would be great In general though, I think it would look better with fewer rects and fewer of them on the screen at the same time, maybe with some extra logic added.
By the way, the already pretty snappy animation and more or less instant window hiding makes you realize how slow redrawing the desktop and windows actually is Already, it’s sort of the main thing that drags down the snappiness of it.
I’ve done a lot of switching back and forth between hiding the windows from an app and from the Finder to try to evaluate which of the two implementations work best (completely ignoring the technical difficulties for the moment ) and I feel the best solution would be one that lies between the two.
In the Finder, there’s a quite substantial delay until the desktop icons are redrawn when there are many windows open. Since the focus during normal use will be on what one is trying to access on the desktop, redrawing the desktop I feel should be the top priority. At the same time, the delay between when the windows are hidden and when the animation starts in apps makes the process feel less snappy. With this in mind, I’m wondering if it would be possible to do it in this order universally:
This would hopefully make the animation feel snappy while still displaying the icons reasonably fast, saving the slow redrawing of windows till the end.
As and aside, do you think it would be feasible to add an option to speed up the redrawing of the desktop by using a screen buffer like you mentioned earlier, or would that just add more overhead? If the desktop redrawing could be removed/hidden, it would make a huge difference. But of course, the way it works now is in line with the system in general, so I have no problem with that. But more speed is always nice
On a related note, is it possible to somehow have the active application redraw its windows before the desktop and the Finder’s windows are redrawn? At the moment, the Finder’s windows are redrawn first followed by the application’s, even if the windows in the application cover all of the Finder’s windows.
A few quirks I’ve found (present also with all other extensions removed):
Main things:
– Activating while dragging an icon doesn’t work on my setup (nothing happens)
– Windows minimized with WindowShade get redrawn un-minimized immediately after they are hidden (that is, while the other windows are still hidden)
– The active corners sometimes react slowly or doesn’t respond at all until after several attempts. Seem to happen mostly/only after repeated use over a short time frame, but I’m not sure. The keyboard shortcut is always instant, as is clicking the screen edges to bring back the windows.
Strange stuff:
– The resize handle in open windows sometimes gets distorted in various ways when windows are brought back (standard window on the left):
Small things:
– Windows on the left side sometimes are drawn four pixels into the screen and sometimes three (would prefer three here). (Also, could we bring the windows at the bottom of the screen one pixel up? )
Smaller things:
– The CDEV’s icon isn’t displayed in the Finder (only a generic document icon)
Probably tricky stuff:
– Sometimes the contents of windows is not updated when they are brought back (has only happened two or three times during my testing – and only initially it seems…)
– The keyboard shortcut didn’t have any effect at first so I assumed it didn’t work, but soon after it started working without problem. Might have been after the first restart, not sure.
Exotic stuff:
– Clicking the window’s zoom area in ClarisWorks sometimes moves the window to its previously ’hidden’ position. Doesn’t seem to happen in any other app
On the control panel:
– Really cool that the desktop representation displays the actual desktop pattern! Great addition!
– The live preview of the keyboard shortcut in the dialog box was also a cool surprise! Really responsive, and impressive from a programming point of view! I have to say though, that I feel that it adds an unnecessary extra step, and it’s also quite uncommon to do it this way, so I would prefer it the way I designed the dialog box. Perhaps you would save the nifty implementation for some future project? (Or, if not, maybe you could make a separate version just for me? )
– The control panel already looks very good, but do you think you could bring it closer to my design later on? I spent quite a bit of time designing and tweaking the elements of the control panel and dialog box, and went through lots of standard and third party control panels and settings menus for reference in the process, both on classic Mac OS, OS X and even Windows and Linux. So pretty much every element in the layout is a conscious decision (such as ”Hot corners” (more common on classic Mac OS) vs. ”Active screen corners” (on Mac OS X), having an ”On” checkbox or not, etc. I’m not saying it can’t be improved, but at least there’s thought behind it I’d be happy to help fine tune the parts that are editable in ResEdit.
That’s all for now Sorry about the long post!
Again, amazing work!
This, I feel, will be the best birthday/Christmas present this year
First of all: the algorithm for moving the windows, as well as the overall functionality, is already spot on – behaves just like the original! Really amazing work!
My impressions after some further testing:
Now that I see it in action, the animation quickly gets pretty messy with more than a few windows open. I’m wondering, would it be an easy thing to add some temporary interface elements to the control panel (or variables that can be accessed through ResEdit) to control the number of rects and how many of them are displayed together, so that I can play around with it a bit? That would be great In general though, I think it would look better with fewer rects and fewer of them on the screen at the same time, maybe with some extra logic added.
By the way, the already pretty snappy animation and more or less instant window hiding makes you realize how slow redrawing the desktop and windows actually is Already, it’s sort of the main thing that drags down the snappiness of it.
I’ve done a lot of switching back and forth between hiding the windows from an app and from the Finder to try to evaluate which of the two implementations work best (completely ignoring the technical difficulties for the moment ) and I feel the best solution would be one that lies between the two.
In the Finder, there’s a quite substantial delay until the desktop icons are redrawn when there are many windows open. Since the focus during normal use will be on what one is trying to access on the desktop, redrawing the desktop I feel should be the top priority. At the same time, the delay between when the windows are hidden and when the animation starts in apps makes the process feel less snappy. With this in mind, I’m wondering if it would be possible to do it in this order universally:
- Hide all windows
- Display the animation
- Redraw the desktop
- Draw the windows in their new positions
This would hopefully make the animation feel snappy while still displaying the icons reasonably fast, saving the slow redrawing of windows till the end.
As and aside, do you think it would be feasible to add an option to speed up the redrawing of the desktop by using a screen buffer like you mentioned earlier, or would that just add more overhead? If the desktop redrawing could be removed/hidden, it would make a huge difference. But of course, the way it works now is in line with the system in general, so I have no problem with that. But more speed is always nice
On a related note, is it possible to somehow have the active application redraw its windows before the desktop and the Finder’s windows are redrawn? At the moment, the Finder’s windows are redrawn first followed by the application’s, even if the windows in the application cover all of the Finder’s windows.
A few quirks I’ve found (present also with all other extensions removed):
Main things:
– Activating while dragging an icon doesn’t work on my setup (nothing happens)
– Windows minimized with WindowShade get redrawn un-minimized immediately after they are hidden (that is, while the other windows are still hidden)
– The active corners sometimes react slowly or doesn’t respond at all until after several attempts. Seem to happen mostly/only after repeated use over a short time frame, but I’m not sure. The keyboard shortcut is always instant, as is clicking the screen edges to bring back the windows.
Strange stuff:
– The resize handle in open windows sometimes gets distorted in various ways when windows are brought back (standard window on the left):
Small things:
– Windows on the left side sometimes are drawn four pixels into the screen and sometimes three (would prefer three here). (Also, could we bring the windows at the bottom of the screen one pixel up? )
Smaller things:
– The CDEV’s icon isn’t displayed in the Finder (only a generic document icon)
Probably tricky stuff:
– Sometimes the contents of windows is not updated when they are brought back (has only happened two or three times during my testing – and only initially it seems…)
– The keyboard shortcut didn’t have any effect at first so I assumed it didn’t work, but soon after it started working without problem. Might have been after the first restart, not sure.
Exotic stuff:
– Clicking the window’s zoom area in ClarisWorks sometimes moves the window to its previously ’hidden’ position. Doesn’t seem to happen in any other app
On the control panel:
– Really cool that the desktop representation displays the actual desktop pattern! Great addition!
– The live preview of the keyboard shortcut in the dialog box was also a cool surprise! Really responsive, and impressive from a programming point of view! I have to say though, that I feel that it adds an unnecessary extra step, and it’s also quite uncommon to do it this way, so I would prefer it the way I designed the dialog box. Perhaps you would save the nifty implementation for some future project? (Or, if not, maybe you could make a separate version just for me? )
– The control panel already looks very good, but do you think you could bring it closer to my design later on? I spent quite a bit of time designing and tweaking the elements of the control panel and dialog box, and went through lots of standard and third party control panels and settings menus for reference in the process, both on classic Mac OS, OS X and even Windows and Linux. So pretty much every element in the layout is a conscious decision (such as ”Hot corners” (more common on classic Mac OS) vs. ”Active screen corners” (on Mac OS X), having an ”On” checkbox or not, etc. I’m not saying it can’t be improved, but at least there’s thought behind it I’d be happy to help fine tune the parts that are editable in ResEdit.
That’s all for now Sorry about the long post!
Again, amazing work!
This, I feel, will be the best birthday/Christmas present this year