Bug 405687 - latte panels go haywire with display on the left
Summary: latte panels go haywire with display on the left
Status: RESOLVED FIXED
Alias: None
Product: lattedock
Classification: Plasma
Component: containment (show other bugs)
Version: git (master)
Platform: Kubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Michail Vourlakos
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-03-20 13:54 UTC by leftcrane
Modified: 2019-03-22 19:42 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
video illustration (2.11 MB, video/mp4)
2019-03-20 14:33 UTC, leftcrane
Details
another screenshot (602.83 KB, image/png)
2019-03-20 15:14 UTC, leftcrane
Details
behavior-tab-1 (239.79 KB, image/png)
2019-03-20 16:10 UTC, leftcrane
Details
behavior-tab-2 (189.84 KB, image/png)
2019-03-20 16:11 UTC, leftcrane
Details
latter debug output. (19.70 KB, text/plain)
2019-03-20 16:46 UTC, leftcrane
Details
latter dock conf (22.79 KB, text/plain)
2019-03-20 23:12 UTC, leftcrane
Details
latte debug 2 (18.62 KB, text/plain)
2019-03-21 10:44 UTC, leftcrane
Details

Note You need to log in before you can comment on or make changes to this bug.
Description leftcrane 2019-03-20 13:54:01 UTC
I have a secondary display attached to the left of the primary one. On disconnect, the panels from that display shift to the primary monitor (you can sort of see them as black bars the video - usually they have icons on them too). Furthermore, the screen edges are misinterpreted, and kwin thinks the screen is smaller than it actually is (as can be seen from the attempts to tile a window in the video).

What I do right now is to just restart latte dock and KWin every time I unplug. This fixes the problem, though the windows still get squished form the earlier size misconfiguration.

If you be able to reproduce this behavior with a secondary monitor positioned to the left.
Comment 1 Michail Vourlakos 2019-03-20 14:24:36 UTC
What video?
Comment 2 Michail Vourlakos 2019-03-20 14:24:51 UTC
What video?
Comment 3 Michail Vourlakos 2019-03-20 14:25:42 UTC
1. Send please your env output
2. Have you enabled any type of scaling?
Comment 4 leftcrane 2019-03-20 14:33:43 UTC
Created attachment 118937 [details]
video illustration
Comment 5 leftcrane 2019-03-20 14:36:38 UTC
GS_LIB=/home/username/.fonts
KDE_FULL_SESSION=true
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US.UTF-8
PROFILEHOME=
DISPLAY=:0
QT_STYLE_OVERRIDE=kvantum-dark
SHELL_SESSION_ID=d48c31d48a2b45778d9e430c4fd12cbc
KCRASH_AUTO_RESTARTED=1
GTK_CSD=0
COLORTERM=truecolor
QT_SCREEN_SCALE_FACTORS=eDP-1=1;DP-1=1;HDMI-1=1;DP-2=1;HDMI-2=1;
XDG_VTNR=1
MANDATORY_PATH=/usr/share/gconf/plasma.mandatory.path
XDG_SESSION_ID=3
USER=ml
DESKTOP_SESSION=plasma
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/username/.gtkrc-2.0:/home/username/.config/gtkrc-2.0
DEFAULTS_PATH=/usr/share/gconf/plasma.default.path
PWD=/home/username
HOME=/home/username
SSH_AGENT_PID=1607
XCURSOR_SIZE=0
QT_ACCESSIBILITY=1
LIBVIRT_DEFAULT_URI=qemu:///system
XDG_SESSION_TYPE=x11
XDG_DATA_DIRS=/usr/share/plasma:/home/username/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
KONSOLE_DBUS_SESSION=/Sessions/1
XDG_SESSION_DESKTOP=KDE
KONSOLE_DBUS_WINDOW=/Windows/1
GTK_MODULES=appmenu-gtk-module
UBUNTU_MENUPROXY=1
TERM=xterm-256color
SHELL=/bin/bash
KONSOLE_DBUS_SERVICE=:1.3365
XDG_SESSION_CLASS=user
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XCURSOR_THEME=cz-Viator (Black)
XDG_CURRENT_DESKTOP=KDE
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
KONSOLE_PROFILE_NAME=Profile 2
XDG_SEAT=seat0
SHLVL=1
COLORFGBG=15;0
LANGUAGE=en_US
GTK_RC_FILES=/etc/gtk/gtkrc:/home/username/.gtkrc:/home/username/.config/gtkrc
WINDOWID=148897799
LOGNAME=ml
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
XAUTHORITY=/tmp/xauth-1000-_0
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
QT_AUTO_SCREEN_SCALE_FACTOR=0
XDG_CONFIG_DIRS=/etc/xdg/xdg-plasma:/etc/xdg:/usr/share/kubuntu-default-settings/kf5-settings
PATH=/home/username/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
KDE_SESSION_UID=1000
KDE_SESSION_VERSION=5
LD_PRELOAD=libgtk3-nocsd.so.0
SESSION_MANAGER=local/username-machine:@/tmp/.ICE-unix/1663,unix/username-t440s:/tmp/.ICE-unix/1663
LESSOPEN=| /usr/bin/lesspipe %s
_=/usr/bin/env
Comment 6 leftcrane 2019-03-20 14:37:25 UTC
1. see below.

2. No.
Comment 7 Michail Vourlakos 2019-03-20 14:58:29 UTC
I think this is kwin related, nothing to do with Latte...

1. if you use a plasma panel instead dont you get the same results?
2. If you move your DP-2 screen up to have the same border with the Acer monitor is not that fixed?
Comment 8 leftcrane 2019-03-20 15:07:04 UTC
1. No, I've already checked that. I tried it with plasma panels and the panels stay on their monitor.

2. Yes. I am not sure why, but it just sometimes shifts a little to the left, creating a gap. But this behavior is observable regardless of whether or not this gap is created.

3. Do you have two monitors? Can you reproduce?
Comment 9 leftcrane 2019-03-20 15:14:37 UTC
Created attachment 118939 [details]
another screenshot
Comment 10 Michail Vourlakos 2019-03-20 15:16:32 UTC
your issue is that Latte panels are moving to another display?
Comment 11 leftcrane 2019-03-20 15:38:13 UTC
correct. They are assigned to DP-2, but when DP-2 is disconnected, they shift to the primary output. Also tiling is bugged, as you can see in the video.

To fix the problem, I press a hotkey to restart both Kwin and Latte. After I do that, the DP-2 panels disappear and tiling happens normally.
Comment 12 Michail Vourlakos 2019-03-20 15:41:06 UTC
(In reply to leftcrane from comment #11)
> correct. They are assigned to DP-2, but when DP-2 is disconnected, they
> shift to the primary output. Also tiling is bugged, as you can see in the
> video.
> 
> To fix the problem, I press a hotkey to restart both Kwin and Latte. After I
> do that, the DP-2 panels disappear and tiling happens normally.

Forget the tiling is a different issue and not related to Latte. 

Show me a screenshot of Behavior tab from the panels that are moved even though they should not
Comment 13 leftcrane 2019-03-20 15:52:35 UTC
The tiling behavior is just a symptom/consequence of the panels shifting to the wrong monitor. The latter behavior is the actual bug.

What's the "behavior tab"?
Comment 14 leftcrane 2019-03-20 16:10:50 UTC
Created attachment 118941 [details]
behavior-tab-1
Comment 15 leftcrane 2019-03-20 16:11:12 UTC
Created attachment 118942 [details]
behavior-tab-2
Comment 16 leftcrane 2019-03-20 16:11:25 UTC
ok here it is.
Comment 17 leftcrane 2019-03-20 16:12:52 UTC
tab-1 is the first half of the settings, tab-2 is the second half (I had to scroll to capture the entire tab)
Comment 18 Michail Vourlakos 2019-03-20 16:30:28 UTC
1.The monitor you unplug, do you do it from plasma settings or you just unplug the monitor cable?

2. Run Latte from command prompt with Latte-dock -d --with-window, take a screenshot of the debug window when the issue appears
Comment 19 leftcrane 2019-03-20 16:45:54 UTC
1. I've tried both - it doesn't matter.

2. See last attachment.
Comment 20 leftcrane 2019-03-20 16:46:15 UTC
Created attachment 118943 [details]
latter debug output.
Comment 21 Michail Vourlakos 2019-03-20 22:11:13 UTC
please send me your layout file to understand your configuration...

according to this:
[debug 19:39:09.609609] - PRIMARY SCREEN ::  "DP-1"
[debug 19:39:09.609609] - LATTEVIEWS MUST BE PRESENT AT ::  QHash(("DP-1", (Plasma::Types::Location(TopEdge), Plasma::Types::Location(RightEdge), Plasma::Types::Location(LeftEdge))))
[debug 19:39:09.609609] - FUTURESHOWNVIEWS MUST BE ::  (1, 192, 14)
[debug 19:39:09.6161] - syncLatteViewsToScreens: view must be deleted... for containment: 12  at screen: "DP-2"


at DP-1, after you disconnect DP-2, you should have 3 latteviews at top,right,left  isnt that the case?
and for DP-2, one latteview must be deleted which is deleted from:

[debug 19:39:09.622622] - syncGeometry() ended...
[debug 19:39:09.622622] - reconsiderScreen() ended...
[debug 19:39:09.622622] - end of, syncLatteViewsToScreens ....
[debug 19:39:09.623623] - dock view deleting...
[debug 19:39:09.623623] - VisibilityManager deleting...
[debug 19:39:09.623623] - WindowsTracker removing...
[debug 19:39:09.631631] - latte view qml source deleting...
Comment 22 leftcrane 2019-03-20 23:12:15 UTC
No, I should have two. I have two panels on DP-2, both assigned to DP-2.

Instead I get four (until I restart latte dock, then I get the correct number, which is 2)
Comment 23 leftcrane 2019-03-20 23:12:39 UTC
Created attachment 118952 [details]
latter dock conf
Comment 24 Michail Vourlakos 2019-03-21 06:24:46 UTC
(In reply to leftcrane from comment #23)
> Created attachment 118952 [details]
> latter dock conf

there are some issues in your layout file but I would like from you first to test new master. I uploaded a commit to make things a little more robust for multi-screen environments.

In case with latest master you still have the issue send me please the following:

1. from ~/.config/lattedockrc in section:ScreenConnectors what is the id for screen DP-2, is it 11?
2. if the issue is not fixed please send me again a new latte-dock -d output that contains the moment that the issue is created
Comment 25 leftcrane 2019-03-21 10:43:43 UTC
Unfortunately, the issue persists.

1. [ScreenConnectors]
10=DP-1
11=DP-2
12=eDP-1
13=HDMI-1

2. just uploaded.
Comment 26 leftcrane 2019-03-21 10:44:07 UTC
Created attachment 118957 [details]
latte debug 2
Comment 27 Michail Vourlakos 2019-03-21 12:01:58 UTC
I want all your latte configuration... something doesnt fit in your debug outputs...

Latte -> Layouts Editor->Export->choose filter:Latte full configuration

and export the file...

Send me please that file...
Comment 28 Michail Vourlakos 2019-03-21 13:17:44 UTC
I managed to reproduce in my system with your layout file!!!

strange... let me investigate...
Comment 29 Michail Vourlakos 2019-03-21 13:48:47 UTC
Git commit d8c04e805c3cf2184368cf8d915cd8a4af252fd2 by Michail Vourlakos.
Committed on 21/03/2019 at 13:48.
Pushed by mvourlakos into branch 'master'.

multi-screen: find view::screen id in better way

--when monitor from an explicit screen was closed there
were cases that docks were moved at another monitor from
the window manager and that was preventing them to be
delete properly. This patch fixes this by considering
as valid explicit screen only the one provided by the
view

M  +24   -6    app/layout/layout.cpp

https://commits.kde.org/latte-dock/d8c04e805c3cf2184368cf8d915cd8a4af252fd2
Comment 30 Michail Vourlakos 2019-03-21 13:51:22 UTC
(In reply to leftcrane from comment #5)
>

ok... now it should be fixed...
very good catch! thank you very much for your participation!!!

I would like one favor please! Because multi-screens experience is very important feature for Latte if you manage to find something that is broken or strange please report it back.

I will wait for a few days in order to confirm me that now this is ok for you in order to merge this important patch to v0.8 branch also...
Comment 31 leftcrane 2019-03-21 18:49:16 UTC
Thanks for all the work! The bug is indeed fixed.

I also got it working alongside a KWin rule to force all windows to the primary display. I had to make sure to negate lattedock in the rule, because otherwise it will eventually start grabbing DP-2 panels and putting them on DP-1 when both monitors are connected.

Just dropping this here cause it's relevant to the multihead workflow with a latte dock and a secondary monitor on the left. KWin pushes most your windows to monitor on the left, regardless of whether it's primary, cause that's where the origin is.
Comment 32 Michail Vourlakos 2019-03-22 19:42:19 UTC
Git commit b9aabb7b1c927320f34b5220d336e53de99a585b by Michail Vourlakos.
Committed on 22/03/2019 at 19:34.
Pushed by mvourlakos into branch 'v0.8'.

multi-screen: find view::screen id in better way

--when monitor from an explicit screen was closed there
were cases that docks were moved at another monitor from
the window manager and that was preventing them to be
delete properly. This patch fixes this by considering
as valid explicit screen only the one provided by the
view

M  +24   -6    app/layout.cpp

https://commits.kde.org/latte-dock/b9aabb7b1c927320f34b5220d336e53de99a585b