DrewNaylor / guinget

Unofficial GUI for Microsoft's Windows Package Manager (winget). Kinda like Synaptic, but for Windows. Not associated with either Microsoft or the Synaptic project, and Microsoft does not endorse this software.
Apache License 2.0
136 stars 3 forks source link

Allow using KDE-style fast resize so that resizing the window is smooth when there are a lot of items in the package list. #125

Closed DrewNaylor closed 3 years ago

DrewNaylor commented 3 years ago

KDE-style fast resize takes a screenshot of the window you're resizing and stretches it to cover the whole window until "yer dun" (sorry, I had to) resizing it, at which point it shows the real window again. In this case, we take a screenshot of the package list area, hide the package list, and show the screenshot in a picturebox. This picturebox shows windows on top of it such as the cache update progress dialog, but I think it's good enough and I don't want to overcomplicate things. This fast resize feature is on by default (since it makes things so much more responsive), but it can be turned off by unchecking the Use KDE-style fast resize for the package list so that resizing the window is smooth when there are a lot of packages listed checkbox under Tools>Options...>Package List + Details.

One side effect of fast resizing is that moving the window will cause the package list to redraw itself. Not sure how to stop it from doing that and only make it redraw on resize, maximize, or restore.

Something else that's different now is that the Package Details tab in the Options window is now Package List + Details to accommodate the fast resizing feature's checkbox without having to add more tabs that would be redundant. Additionally, the checkboxes on that tab have their own groupboxes to keep them visually separate.

Fixes #71.