Bug 361371 - Desktop Grid: invisible windows during drag operations
Summary: Desktop Grid: invisible windows during drag operations
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-desktop-grid (show other bugs)
Version: 5.6.1
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-04 10:11 UTC by abulak
Modified: 2018-10-26 08:36 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.14.3


Attachments
qdbus org.kde.KWin /KWin supportInformation (6.07 KB, text/plain)
2016-04-04 15:07 UTC, abulak
Details

Note You need to log in before you can comment on or make changes to this bug.
Description abulak 2016-04-04 10:11:57 UTC
If I activate Desktop Grid effect and drag a widows to move it to other Desktop it becomes invisible;
On mouse release at the end it appears on the correct desktop (with zoom-animation, like a newly created window? not sure).

definitely not critical, but a little bit annoying; 

Reproducible: Always

Steps to Reproduce:
1. create a window
2. Activate DesktopGrid
3. drag the window to a different desktop

Actual Results:  
the dragged window becomes invisible to appear on the right desktop after mouse release 

Expected Results:  
the dragged windows is visible during drag (to provide visual feedback to the user, blah, blah...)

happens both on gentoo with fglrx and arch with intel graphics;
started on 5.6.0
Comment 1 Martin Flöser 2016-04-04 15:02:16 UTC
I cannot reproduce locally. Can you please post the output of:
qdbus org.kde.KWin /KWin supportInformation
Comment 2 abulak 2016-04-04 15:07:15 UTC
Created attachment 98246 [details]
qdbus org.kde.KWin /KWin supportInformation
Comment 3 Thomas Lübking 2016-04-04 15:43:12 UTC
Try to deactivate one screen...
Comment 4 abulak 2016-04-04 15:49:33 UTC
Still the same;

this happens on OpenGL(2/3.1) Rendering backend;
on XRender I don't observe the bug
Comment 5 Thomas Lübking 2016-04-04 16:12:41 UTC
try to disable blur & contrast effect and set the scaling precision to "smooth", not "accurate".
If that still doesn't help, we'll need to rule out any other effect kicking in (mudding the shader traits), so you'll unfortunately have to disable them all (but the desktop grid, of course).

Save your ~/.config/kwinrc so you'll have an easy restore path ;-)
Comment 6 abulak 2016-04-04 17:59:51 UTC
ok, it's Present Windows ;-)

The window doesn't disappear, yet it crosses the border between desktops in a jerky way :
first only part of the windows visible on the initial desktop and nothing on the one You move to, 
then (when cursor crosses the border) the windows disappears from the initial desktop and appears on the second. 
Is it an intended behaviour?

(Just to be extra sure I tried with only DesktopGrid and PresentWindows enabled and all enabled but PresentWindows disabled -- thanks for the kwinrc tip ;-)
Comment 7 Martin Flöser 2016-04-05 06:11:58 UTC
yeah that sounds like intended behavior. When dropping the window on a different desktop it starts to get animated to the new position in the present windows grid. This doesn't happen from the position on dropped from. If that's the problem you are seeing, it's not really a bug.
Comment 8 Fabian Vogt 2016-07-19 16:59:53 UTC
I just hit this bug as well, but it started to work again after disabling and re-enabling the present windows effect.
Comment 9 Fabian Vogt 2016-09-02 19:13:54 UTC
Still happens with KWin 5.7.3. Weirdly only some windows are affected.
To clear up possible misunderstandings, I recorded a short video for demonstration: https://www.youtube.com/watch?v=_m1lnX1lKqw
Comment 10 Stephan Burkhardt 2017-02-21 21:23:32 UTC
I still see this bug on Plasma 5.9.2 on Arch linux with Intel graphics.
Comment 11 Szymon Łągiewka 2017-06-04 18:38:11 UTC
Reproducible for me with Plasma 5.10/Qt 5.8.

From what I can tell (already said) - does not happen on XRender. Everything is great there.

But with OpenGL I've noticed that:
1. For maximized windows - drag is visible.
2. For full screen windows drag is not visible.
3. For windows strechted from side to side - drag is visible. The edges need to be opposite to each other. Top+bottom or left+right. Will not work for windows that touch i.e. left+top edges.
4. For windows not touching any edge - drag is not visible.
Comment 12 zohn.joidberg 2017-06-19 10:37:16 UTC
(In reply to Thomas Lübking from comment #5)
> try to disable blur & contrast effect and set the scaling precision to
> "smooth", not "accurate".

I encountered the same bug and this seems to have worked for me. Thanks.

Graphics card:
          *-display
                description: VGA compatible controller
                product: G98 [GeForce 8400 GS Rev. 2]
                vendor: NVIDIA Corporation
                physical id: 0
                bus info: pci@0000:01:00.0
                version: a1
                width: 64 bits
                clock: 33MHz
                capabilities: vga_controller bus_master cap_list rom
                configuration: driver=nvidia latency=0
                resources: irq:31 memory:fa000000-faffffff memory:d0000000-dfffffff memory:f8000000-f9ffffff ioport:e000(size=128) memory:c0000-dffff

Rendering backend: OpenGL 2.0
Scale method: smooth

$ plasmashell -v
plasmashell 5.9.4
$ kf5-config -v
Qt: 5.7.1
KDE Frameworks: 5.31.0
kf5-config: 1.0
$ uname -a
Linux ***** 4.10.0-22-generic #24-Ubuntu SMP Mon May 22 17:43:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 17.04
Release:        17.04
Codename:       zesty
Comment 13 David de Cos 2017-11-23 11:17:14 UTC
The bug persists in Plasma 5.11.3 / Qt 5.9.2. Setting the scaling precision to
"smooth", as Thomas suggested, worked for me.

I just want to add to Szymon's analysis (comment #11) that the behavior he found is kind of the opposite if you have a vertical panel. In that case:

- Maximized windows are not visible.
- Windows horizontally maximized are not visible.
- Windows vertically maximized are visible.
- Unmaximized windows are not visible (this is the only one that's common to both panel placements, if I'm not mistaken).
Comment 14 Vlad Zahorodnii 2018-10-26 08:25:26 UTC
Git commit 91b538105ad312ed035fb7a0e3d798e88a2ae6f7 by Vlad Zagorodniy, on behalf of Erik Kurzinger.
Committed on 26/10/2018 at 08:19.
Pushed by vladz into branch 'Plasma/5.14'.

[effects/desktopgrid] Specify screen projection matrix when drawing moving window

Summary:
Currently, when the user is moving a window in the desktop grid it is drawn from
the paintScreen function to ensure it appears above all other windows. However,
when drawing the window, the screenProjectionMatrix for the WindowPaintData structure
is never specified. Because of this, the window will not be visible if OpenGL
compositing along with Lanczos scaling are in use since its coordinates will never
be projected into screen-space (unless the window is maximized, in which case the
scaling code is bypassed).
Related: bug 364509

FIXED-IN: 5.14.3

Test Plan:
Ensure OpenGL compositing is enabled and the scaling method is set to "Accurate" on
hardware supporting this option. Additionally, ensure the desktop grid effect is
active and is configured to use Present Windows. Open a window and ensure is it not
maximized. Click on the window and drag it around - its contents should remain visible
the entire time and follow the mouse.

Reviewers: #kwin, zzag, graesslin, davidedmundson

Reviewed By: #kwin, zzag, davidedmundson

Subscribers: broulik, davidedmundson, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16430

M  +1    -1    effects/desktopgrid/desktopgrid.cpp

https://commits.kde.org/kwin/91b538105ad312ed035fb7a0e3d798e88a2ae6f7
Comment 15 Vlad Zahorodnii 2018-10-26 08:36:29 UTC
Git commit 408ed80604bb52870469a4f76704c224e15c02aa by Vlad Zagorodniy, on behalf of Erik Kurzinger.
Committed on 26/10/2018 at 08:30.
Pushed by vladz into branch 'Plasma/5.12'.

[effects/desktopgrid] Specify screen projection matrix when drawing moving window

Summary:
Currently, when the user is moving a window in the desktop grid it is drawn from
the paintScreen function to ensure it appears above all other windows. However,
when drawing the window, the screenProjectionMatrix for the WindowPaintData structure
is never specified. Because of this, the window will not be visible if OpenGL
compositing along with Lanczos scaling are in use since its coordinates will never
be projected into screen-space (unless the window is maximized, in which case the
scaling code is bypassed).
Related: bug 364509

FIXED-IN: 5.14.3

Test Plan:
Ensure OpenGL compositing is enabled and the scaling method is set to "Accurate" on
hardware supporting this option. Additionally, ensure the desktop grid effect is
active and is configured to use Present Windows. Open a window and ensure is it not
maximized. Click on the window and drag it around - its contents should remain visible
the entire time and follow the mouse.

Reviewers: #kwin, zzag, graesslin, davidedmundson

Reviewed By: #kwin, zzag, davidedmundson

Subscribers: broulik, davidedmundson, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16430

M  +1    -1    effects/desktopgrid/desktopgrid.cpp

https://commits.kde.org/kwin/408ed80604bb52870469a4f76704c224e15c02aa