Created attachment 188061 [details] pause the video at the right moment to observe how the window looks like "in-between" SUMMARY Any change to the input field triggers a complete rebuild of the UI, which is very well visible due to the window being seemingly repositioned for one frame or so. This is very disruptive. STEPS TO REPRODUCE 1. type something into the krunner text field OBSERVED RESULT Each keystroke repositions the window for a frame or so to then return to the correct window size/position a frame or so after, which causes a disruptive blinking effect. EXPECTED RESULT No visual repositioning. SOFTWARE/OS VERSIONS Operating System: Fedora Linux 43 KDE Plasma Version: 6.5.4 KDE Frameworks Version: 6.21.0 Qt Version: 6.10.1 Kernel Version: 6.17.12-300.fc43.x86_64 (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 5700X 8-Core Processor Memory: 32 GiB of RAM (31.3 GiB usable) Graphics Processor: NVIDIA GeForce GTX 1660 SUPER
I can reproduce this and did some testing. It's specific to krunner and its use of a layershell window and does not happen in e.g. the search widget, which also uses Milou's ResultsView like p-w krunner's RunCommand. When the model gets new data from the runners, the layershell window resizes well in advance of the actual view being updated. (When recording using Spectacle, it tends to happen 1-2 video frames before that). After the model's itemsAdded signal, but before the ListView's countChanged signal (which is on the same frame as all the qml sizes being updated, including the QQuickWindow). When the layershell window resizes, one of three possible things seems to happen, and I could not find a pattern in which one happens: - the view stays where it is at the size it has, but the window size is increased at the bottom. This one is generally not noticeable, it's just a bit of extra empty space. - the view stays the size it has, but is shifted down (and in rarer cases up, somehow) by the changed size. This is creates a momentary graphic artifact - the view stays where it is, but is scaled to the new size. This creates a momentary graphic artifact that also looks very bad, but a little different to the first one I don't know enough about layershell to track this further, and my attempts haven't gone very far. If it helps, I have a bunch of videos, I can reproduce it rather consistently on this computer.