Bug 434323 - Calamares window doesn't get a separator line drawn below the titlebar
Summary: Calamares window doesn't get a separator line drawn below the titlebar
Status: RESOLVED DOWNSTREAM
Alias: None
Product: Breeze
Classification: Plasma
Component: QStyle (other bugs)
Version First Reported In: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-03-12 15:34 UTC by Harald Sitter
Modified: 2022-02-23 19:50 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
screenshot of calamares (168.86 KB, image/png)
2021-03-12 15:34 UTC, Harald Sitter
Details
calamares in 5.20 times (1.27 MB, image/png)
2021-03-12 15:39 UTC, Harald Sitter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Harald Sitter 2021-03-12 15:34:33 UTC
SUMMARY
Kind of relates to breeze light and kind of relates to the drawing code. Because with Breeze light the window decoration color is now a shade of grey, different from the shade of grey that is the main window there is a super disturbing visual clash between the decoration and the window, when the window has no tool areas that. Such as: calamares, kcolorchooser.

STEPS TO REPRODUCE
1. start kcolorchooser

OBSERVED RESULT
Looks bad.

EXPECTED RESULT
Looks good

SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.21.80
KDE Frameworks Version: 5.80.0
Qt Version: 5.15.2
Kernel Version: 5.8.0-36-generic (64-bit)
Graphics Platform: X11
Processors: 12 × AMD Ryzen 5 3600X 6-Core Processor
Memory: 31,3 GiB of RAM
Graphics Processor: AMD Radeon RX 5700 XT
Comment 1 Harald Sitter 2021-03-12 15:34:54 UTC
Created attachment 136611 [details]
screenshot of calamares
Comment 2 Harald Sitter 2021-03-12 15:39:09 UTC
Created attachment 136613 [details]
calamares in 5.20 times

I'm also adding a 5.20 screenshot to see how the visuals were before
Comment 3 Nate Graham 2021-03-16 02:50:40 UTC
There's supposed to be a separator line drawn below the titlebar in this circumstance, as there is in, for example, Spectacle and the open/save dialogs.
Comment 4 Nate Graham 2021-03-16 02:51:40 UTC
What UI toolkit is Calamares written in? Qt with QWidgets or QML? Something else?
Comment 5 Harald Sitter 2021-03-16 12:00:49 UTC
qwidgets
Comment 6 Nate Graham 2021-03-16 12:14:38 UTC
In that case there's a bug here, and we can fix it.
Comment 7 Janet Blackquill 2022-02-23 17:58:27 UTC
This happens whenever an app uses 100% of the window's surface area; leaving none for the style to use. We previously used to set a contents margins on windows without tools areas, but this was buggy and broke some apps. There's no other mechanisms for us to ensure that the window will have necessary blank space for the separator, so this is sort of unfixable from the Breeze side. This is generally fine for apps that use standard layouting and controls, but highly custom apps like Calamares that do large amounts of custom drawing and layouting won't work, because their customisation is overriding what the QStyle has to work with.

If a highly custom app like this wants to fit into our visual design, the highly custom app needs to either use a more standard layout that QStyles are capable of working with, or explicitly hardcode their custom styling for Breeze.

Either way, this isn't something we're capable of fixing in Breeze, due to aforementioned app breakage when we tried to carve out a pixel row for us to draw a separator in the higly custom app case.
Comment 8 Nate Graham 2022-02-23 18:11:45 UTC
Could we put the line on the bottom of the window decoration titlebar?
Comment 9 Janet Blackquill 2022-02-23 19:45:49 UTC
That was a long discussion we had when implementing the feature initially. The short summary is "no."
Comment 10 Nate Graham 2022-02-23 19:50:42 UTC
Do you remember more than that? Why can't we make the window decoration communicate with the rest of the theme? When the window under it is not being Breeze-themed, then it could draw the line. Why won't that work? IIRC Oxygen did something like that.