Fix disappearing software cursor in overview and zoom effect

The overview and the zoom effect repaint the whole screen every frame.
But the problem is that there are cases when there's nothing to repaint.
I'm not quite sure why it happens. Maybe overview and other effects
should honor the repaint region, but on the other hand, they don't need
to because of the fullscreen effect api promises.

This change forces overview and zoom effect to use "generic paint" code
path in the workspace scene to force infiniteRegion() repaint regions.

BUG: 481523
wilder/Plasma/6.2
Vlad Zahorodnii 2 years ago
parent b2450cfe14
commit bb8b51a3ab
  1. 2
      src/effect/quickeffect.cpp
  2. 1
      src/plugins/zoom/zoom.cpp

@ -366,6 +366,8 @@ void QuickSceneEffect::activateView(QuickSceneView *view)
// Screen views are repainted just before kwin performs its compositing cycle to avoid stalling for vblank
void QuickSceneEffect::prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime)
{
data.mask |= PAINT_SCREEN_TRANSFORMED;
if (effects->waylandDisplay()) {
const auto it = d->views.find(data.screen);
if (it != d->views.end() && it->second->isDirty()) {

@ -244,6 +244,7 @@ void ZoomEffect::reconfigure(ReconfigureFlags)
void ZoomEffect::prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime)
{
data.mask |= PAINT_SCREEN_TRANSFORMED;
if (zoom != target_zoom) {
int time = 0;
if (lastPresentTime.count()) {

Loading…
Cancel
Save