Summary: | Windows of lower screen shrink when always visible taskbar is placed on upper screen in vertical dual screen setup | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Ike <fancyname+kdebugtracking> |
Component: | platform-x11-standalone | Assignee: | Vlad Zahorodnii <vlad.zahorodnii> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | nate |
Priority: | NOR | Flags: | vlad.zahorodnii:
ReviewRequest+
|
Version First Reported In: | 5.15.4 | ||
Target Milestone: | --- | ||
Platform: | Debian testing | ||
OS: | Linux | ||
URL: | https://phabricator.kde.org/D20987 | ||
Latest Commit: | https://commits.kde.org/kwin/67b2746ecdfd4c343db9d3fca088ae86d80a57f0 | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: |
The window on the lower screen is normal before moving the taskbar
The window on the lower screen is shrunk after moving the taskbar Screenshot!!! |
Description
Ike
2019-04-15 17:48:47 UTC
Created attachment 119423 [details]
The window on the lower screen is normal before moving the taskbar
Created attachment 119424 [details]
The window on the lower screen is shrunk after moving the taskbar
Please provide xprop of the panels. (In reply to Martin Flöser from comment #3) > Please provide xprop of the panels. Thanks for the quick reply! Here the xprop outputs of the panels (hope, that's what you wanted): 1) The xprop output of the panel (in "Always visible" mode) on the lower monitor corresponding to my first attachment: _KDE_NET_WM_ACTIVITIES(STRING) = "00000000-0000-0000-0000-000000000000" _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CHANGE_DESKTOP WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_STATE(ATOM) = _NET_WM_USER_TIME(CARDINAL) = 591040 _KDE_SLIDE(_KDE_SLIDE) = 0xffffffff, 0x1 _NET_WM_STRUT(CARDINAL) = 0, 0, 1126, 0 _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 1126, 0, 0, 0, 0, 0, 0, 1919, 0, 0 _NET_WM_DESKTOP(CARDINAL) = 4294967295 _KDE_NET_WM_BACKGROUND_CONTRAST_REGION(_KDE_NET_WM_BACKGROUND_CONTRAST_REGION) = 0x3f16e617, 0xbd67a2a7, 0xbd67a2a7, 0x0, 0xbe42cf1c, 0x3ee958f5, 0xbe42cf1c, 0x0, 0xbc9d543a, 0xbc9d543a, 0x3f2075a0, 0x0, 0x3f428f5d, 0x3f428f5d, 0x3f428f5d, 0x3f800000 _KDE_NET_WM_BLUR_BEHIND_REGION(CARDINAL) = _KDE_NET_WM_SHADOW(CARDINAL) = 39846142, 39846143, 39846144, 39846145, 39846146, 39846147, 39846148, 39846149, 1, 1, 6, 1 _KDE_NET_WM_DESKTOP_FILE(UTF8_STRING) = "org.kde.plasmashell" XdndAware(ATOM) = BITMAP _KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 170711 WM_NAME(STRING) = _NET_WM_NAME(UTF8_STRING) = "Plasma" _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x4, 0x0, 0x0, 0x0 _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DOCK _XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1 WM_CLIENT_LEADER(WINDOW): window id # 0x260000e WM_HINTS(WM_HINTS): Client accepts input or input focus: False Initial state is Normal State. _NET_WM_PID(CARDINAL) = 995 _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 39845989 WM_CLASS(STRING) = "plasmashell", "plasmashell" WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 0, 1080 user specified size: 1920 by 46 program specified minimum size: 1920 by 46 program specified maximum size: 1920 by 46 window gravity: Static ------------------------------------------------------------------ ------------------------------------------------------------------ 2) The xprop output of the panel (in "Always visible" mode) on the upper monitor corresponding to my second attachment: _KDE_NET_WM_ACTIVITIES(STRING) = "00000000-0000-0000-0000-000000000000" _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CHANGE_DESKTOP WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_STATE(ATOM) = _NET_WM_USER_TIME(CARDINAL) = 510988 _KDE_SLIDE(_KDE_SLIDE) = 0xffffffff, 0x3 _NET_WM_STRUT(CARDINAL) = 0, 0, 0, 1126 _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 1126, 0, 0, 0, 0, 0, 0, 0, 1919 _NET_WM_DESKTOP(CARDINAL) = 4294967295 _KDE_NET_WM_BACKGROUND_CONTRAST_REGION(_KDE_NET_WM_BACKGROUND_CONTRAST_REGION) = 0x3f16e617, 0xbd67a2a7, 0xbd67a2a7, 0x0, 0xbe42cf1c, 0x3ee958f5, 0xbe42cf1c, 0x0, 0xbc9d543a, 0xbc9d543a, 0x3f2075a0, 0x0, 0x3f428f5d, 0x3f428f5d, 0x3f428f5d, 0x3f800000 _KDE_NET_WM_BLUR_BEHIND_REGION(CARDINAL) = _KDE_NET_WM_SHADOW(CARDINAL) = 39845934, 39845959, 39845960, 39845961, 39845962, 39845963, 39845964, 39845965, 6, 1, 1, 1 _KDE_NET_WM_DESKTOP_FILE(UTF8_STRING) = "org.kde.plasmashell" XdndAware(ATOM) = BITMAP _KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 170711 WM_NAME(STRING) = _NET_WM_NAME(UTF8_STRING) = "Plasma" _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x4, 0x0, 0x0, 0x0 _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DOCK _XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1 WM_CLIENT_LEADER(WINDOW): window id # 0x260000e WM_HINTS(WM_HINTS): Client accepts input or input focus: False Initial state is Normal State. _NET_WM_PID(CARDINAL) = 995 _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 39845989 WM_CLASS(STRING) = "plasmashell", "plasmashell" WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 0, 1034 user specified size: 1920 by 46 program specified minimum size: 1920 by 46 program specified maximum size: 1920 by 46 window gravity: Static ------------------------------------------------------------------ ------------------------------------------------------------------ 3) Additionally, the xprop output of another panel (in "Windows can cover" mode) placed on the upper monitor in the same spot as the one in my second attachment: _KDE_NET_WM_ACTIVITIES(STRING) = "00000000-0000-0000-0000-000000000000" _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CHANGE_DESKTOP WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_STATE(ATOM) = _NET_WM_USER_TIME(CARDINAL) = 171049 _KDE_SLIDE(_KDE_SLIDE) = 0xffffffff, 0x3 _NET_WM_STRUT(CARDINAL) = 0, 0, 0, 0 _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 _NET_WM_DESKTOP(CARDINAL) = 4294967295 _KDE_NET_WM_BACKGROUND_CONTRAST_REGION(_KDE_NET_WM_BACKGROUND_CONTRAST_REGION) = 0x3f16e617, 0xbd67a2a7, 0xbd67a2a7, 0x0, 0xbe42cf1c, 0x3ee958f5, 0xbe42cf1c, 0x0, 0xbc9d543a, 0xbc9d543a, 0x3f2075a0, 0x0, 0x3f428f5d, 0x3f428f5d, 0x3f428f5d, 0x3f800000 _KDE_NET_WM_BLUR_BEHIND_REGION(CARDINAL) = _KDE_NET_WM_SHADOW(CARDINAL) = 39845934, 39845959, 39845960, 39845961, 39845962, 39845963, 39845964, 39845965, 6, 1, 1, 1 _KDE_NET_WM_DESKTOP_FILE(UTF8_STRING) = "org.kde.plasmashell" XdndAware(ATOM) = BITMAP _KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 170711 WM_NAME(STRING) = _NET_WM_NAME(UTF8_STRING) = "Plasma" _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x4, 0x0, 0x0, 0x0 _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DOCK _XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1 WM_CLIENT_LEADER(WINDOW): window id # 0x260000e WM_HINTS(WM_HINTS): Client accepts input or input focus: False Initial state is Normal State. _NET_WM_PID(CARDINAL) = 995 _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 39845989 WM_CLASS(STRING) = "plasmashell", "plasmashell" WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 0, 1034 user specified size: 1920 by 46 program specified minimum size: 1920 by 46 program specified maximum size: 1920 by 46 window gravity: Static Created attachment 119823 [details]
Screenshot!!!
BTW, while investigating this bug I found yet another issue. Struts are messed up when running plasma with PLASMA_USE_QT_SCALING=1.
Most likely, plasmashell needs fixing.
Git commit 67b2746ecdfd4c343db9d3fca088ae86d80a57f0 by Vlad Zagorodniy. Committed on 15/05/2019 at 08:07. Pushed by vladz into branch 'master'. Compute correct boundaries in checkWorkspacePosition Summary: When a client sets a strut, checkWorkspacePosition will be called to bump clients that touch corresponding screen edge. In order to do that, checkWorkspacePosition needs to calculate client boundaries before and after the restricted move area was changed. As it turns out, if the client reserves space "between" screens, calculated boundaries can be incorrect, which may lead to some funky results, e.g. shrunken clients. For example, let's say that there is a dual-monitor setup. If a client reserves some amount of space at the right border of the left screen, then clients on the right monitor will have rightMax which is equal to the x coordinate of screenArea. To fix that, this change ensures that only restricted areas belonging to the same screen as the client are taken into account when computing the boundaries. Related: bug 404837 Reviewers: #kwin, davidedmundson Reviewed By: #kwin, davidedmundson Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D20987 M +4 -9 geometry.cpp https://commits.kde.org/kwin/67b2746ecdfd4c343db9d3fca088ae86d80a57f0 |