zzag added a comment.
Restricted Application edited projects, added Plasma; removed KWin.


  In https://phabricator.kde.org/D9638#195979, @graesslin wrote:
  
  > What you could try is using the PaintClipper to perform clipping. But I 
don't know whether it's still fully functional on OpenGL.
  
  
  So, adding
  
    PaintClipper pc(QRegion(
      QPoint(0, 0),
      effects->virtualScreenSize()
    ));
  
  in `SlideEffect::paintScreen` would be enough? Doesn't KWin do something like 
that somewhere else? I've just realized, maybe, this effect doesn't need to 
clip...
  
  ---
  
  Also, I've noticed that there is no blur behind docks when docks are painted 
above all windows(`Slide docks` checkbox is unchecked).
  
  F5674581: 2018-01-25 17-55-02.mp4 <https://phabricator.kde.org/F5674581>
  
  Effect chain positions:
  
  - slide effect: 50
  - blur: 75
  - background contrast: 76
  
  Docks are drawn above all windows by the following code:
  
    for (EffectWindow* w : windows) {
        if (! w->isDock()) {
            continue;
        }
        WindowPaintData dockData(w);
        int dockMask = mask
            | (w->hasAlpha() ? PAINT_WINDOW_TRANSLUCENT
                             : PAINT_WINDOW_OPAQUE);
        effects->drawWindow(w, dockMask, infiniteRegion(), dockData);
    }
  
  (`WindowForceBackgroundContrastRole` and `WindowForceBlurRole` are set at the 
beginning of the slide animation)
  
  Am I missing something?
  
  ---
  
  Quick side note: when the `Slide docks` checkbox is unchecked, docks are 
drawn above other windows so they can properly animate themselves if an user 
enters or leaves a virtual desktop with a window in full screen mode.

REPOSITORY
  R108 KWin

REVISION DETAIL
  https://phabricator.kde.org/D9638

To: zzag, #vdg, #kwin, #plasma
Cc: mart, graesslin, abetts, ngraham, plasma-devel, kwin, ZrenBot, progwolff, 
lesliezhai, ali-mohamed, jensreuterberg, sebas, apol

Reply via email to