View Issue Details

IDProjectCategoryView StatusLast Update
0017923ScribusUser Interfacepublic2026-09-04 13:14
Reporterqirat Assigned Tojghali  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformLinuxOSFedora WorkstationOS Version44
Product Version1.7.4.svn 
Fixed in Version1.7.4.svn 
Summary0017923: Dark theme: dock panel title bar/tab strip shows white patches instead of dark
DescriptionA long standing issue for me. I am surprised how tiny the fix was (1kb).

With Dark theme active, the inactive tab and filler area in a docked panel's tab strip (e.g. Layers/Arrange Pages) render white. Panel content itself is themed correctly.
Steps To Reproduce- Set theme to Dark.
- Dock two panels into the same tab group (e.g. Layers + Arrange Pages).
- Inactive tab / strip beside tabs shows white instead of dark.
Additional InformationAs explained by AI

#Root Cause
ScribusProxyStyle::createDarkPalette() (scribusproxystyle.cpp) never sets QPalette::Light/Midlight/Dark/Mid. Qt doesn't auto-derive these, so they default to light. Docking stylesheets use palette(mid/light/dark) for the tab strip background, producing white.

#Fix
Derive Light/Midlight/Dark/Mid from Window in createDarkPalette().

File: scribus/ui/factories/scribusproxystyle.cpp
Patch: scribus-dark-theme-palette-fix-r27771-p0.01.patch (1 file, +8 lines)
Tags#please_test
Attached Files
scribus-dark-theme-palette-fix-r27771-p0.01.patch (1,004 bytes)   
Index: scribus/ui/factories/scribusproxystyle.cpp
===================================================================
--- scribus/ui/factories/scribusproxystyle.cpp	(revision 27771)
+++ scribus/ui/factories/scribusproxystyle.cpp	(working copy)
@@ -52,6 +52,14 @@
 	darkPalette.setColor(QPalette::HighlightedText, Qt::black);
 	darkPalette.setColor(QPalette::Shadow, Qt::black);
 
+	// Derive Light/Midlight/Dark/Mid from Window so palette(mid)/
+	// palette(light)/palette(dark) lookups in style sheets stay dark.
+	const QColor windowColor = darkPalette.color(QPalette::Window);
+	darkPalette.setColor(QPalette::Light, windowColor.lighter(150));
+	darkPalette.setColor(QPalette::Midlight, windowColor.lighter(120));
+	darkPalette.setColor(QPalette::Dark, windowColor.darker(150));
+	darkPalette.setColor(QPalette::Mid, windowColor.darker(120));
+
 	darkPalette.setColor(QPalette::Disabled, QPalette::Text, Qt::darkGray);
 	darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, Qt::darkGray);
 
PatchYes

Activities

qirat

2026-08-15 10:21

reporter   ~0054208

Here is some screenshots to show what the issue was.

The 1.7.2 (flatpak) did not have the issue it is just for example (see filename)
bad-dark-theme-1.7.4.png (12,922 bytes)   
bad-dark-theme-1.7.4.png (12,922 bytes)   
bad-dark-theme-1.7.4 (2).png (14,504 bytes)   
bad-dark-theme-1.7.4 (2).png (14,504 bytes)   

qirat

2026-08-15 11:01

reporter   ~0054209

WAIT!
Here is a better one that fixes placeholder text in dark theme too. Since it is just one more line in the same file, I combined it.
dark-theme-palette-and-placeholder-text-fix-v1.1.patch (1,437 bytes)   
Index: scribus/ui/factories/scribusproxystyle.cpp
===================================================================
--- scribus/ui/factories/scribusproxystyle.cpp	(revision 27771)
+++ scribus/ui/factories/scribusproxystyle.cpp	(working copy)
@@ -44,6 +44,7 @@
 	darkPalette.setColor(QPalette::ToolTipBase, Qt::white);
 	darkPalette.setColor(QPalette::ToolTipText, Qt::black);
 	darkPalette.setColor(QPalette::Text, Qt::white);
+	darkPalette.setColor(QPalette::PlaceholderText, QColor(127, 127, 127));
 	darkPalette.setColor(QPalette::Button, QColor(53, 53, 53));
 	darkPalette.setColor(QPalette::ButtonText, Qt::white);
 	darkPalette.setColor(QPalette::BrightText, Qt::red);
@@ -52,6 +53,14 @@
 	darkPalette.setColor(QPalette::HighlightedText, Qt::black);
 	darkPalette.setColor(QPalette::Shadow, Qt::black);
 
+	// Derive Light/Midlight/Dark/Mid from Window so palette(mid)/
+	// palette(light)/palette(dark) lookups in style sheets stay dark.
+	const QColor windowColor = darkPalette.color(QPalette::Window);
+	darkPalette.setColor(QPalette::Light, windowColor.lighter(150));
+	darkPalette.setColor(QPalette::Midlight, windowColor.lighter(120));
+	darkPalette.setColor(QPalette::Dark, windowColor.darker(150));
+	darkPalette.setColor(QPalette::Mid, windowColor.darker(120));
+
 	darkPalette.setColor(QPalette::Disabled, QPalette::Text, Qt::darkGray);
 	darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, Qt::darkGray);
 

qirat

2026-08-15 11:01

reporter   ~0054210

Placeholder text before and after (screenshots)

qirat

2026-08-29 03:26

reporter   ~0054363

Here is a new improved version: adds proper placeholder/shading palette roles; avoids inherited light-theme colours.

The initial number in the filename suggests the order it is to go while testing my four dark theme fixes (tickets in order: 0017923, 0017924, 0017925, and 0017926).
1_dark-theme-palette-and-placeholder-text-fix-v1.13.patch (1,483 bytes)   
Index: scribus/ui/factories/scribusproxystyle.cpp
===================================================================
--- scribus/ui/factories/scribusproxystyle.cpp	(revision 27791)
+++ scribus/ui/factories/scribusproxystyle.cpp	(working copy)
@@ -44,6 +44,9 @@
 	darkPalette.setColor(QPalette::ToolTipBase, Qt::white);
 	darkPalette.setColor(QPalette::ToolTipText, Qt::black);
 	darkPalette.setColor(QPalette::Text, Qt::white);
+	QColor placeholderTextColor = darkPalette.color(QPalette::Text);
+	placeholderTextColor.setAlpha(128);
+	darkPalette.setColor(QPalette::PlaceholderText, placeholderTextColor);
 	darkPalette.setColor(QPalette::Button, QColor(53, 53, 53));
 	darkPalette.setColor(QPalette::ButtonText, Qt::white);
 	darkPalette.setColor(QPalette::BrightText, Qt::red);
@@ -52,6 +55,13 @@
 	darkPalette.setColor(QPalette::HighlightedText, Qt::black);
 	darkPalette.setColor(QPalette::Shadow, Qt::black);
 
+	// Keep the palette's shading roles consistent with dark button surfaces.
+	const QColor buttonColor = darkPalette.color(QPalette::Button);
+	darkPalette.setColor(QPalette::Light, buttonColor.lighter(150));
+	darkPalette.setColor(QPalette::Midlight, buttonColor.lighter(120));
+	darkPalette.setColor(QPalette::Dark, buttonColor.darker(150));
+	darkPalette.setColor(QPalette::Mid, buttonColor.darker(120));
+
 	darkPalette.setColor(QPalette::Disabled, QPalette::Text, Qt::darkGray);
 	darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, Qt::darkGray);
 

jghali

2026-09-04 13:14

administrator   ~0054412

My Fedora VM is currently broken, so I could not test your patch in Fedora. However it appears it also fixes issues when using KDE Breeze Qt theme in OpenSuse Tumbleweed, so I applied it. Thanks!

Issue History

Date Modified Username Field Change
2026-08-15 10:19 qirat New Issue
2026-08-15 10:19 qirat File Added: scribus-dark-theme-palette-fix-r27771-p0.01.patch
2026-08-15 10:21 qirat Note Added: 0054208
2026-08-15 10:21 qirat File Added: good-dark-theme-1.7.2-flatpack.png
2026-08-15 10:21 qirat File Added: bad-dark-theme-1.7.4.png
2026-08-15 10:21 qirat File Added: bad-dark-theme-1.7.4 (2).png
2026-08-15 11:01 qirat Note Added: 0054209
2026-08-15 11:01 qirat File Added: dark-theme-palette-and-placeholder-text-fix-v1.1.patch
2026-08-15 11:01 qirat Note Added: 0054210
2026-08-15 11:01 qirat File Added: placeholder-text-fix-action-search-after.png
2026-08-29 03:26 qirat Note Added: 0054363
2026-08-29 03:26 qirat File Added: 1_dark-theme-palette-and-placeholder-text-fix-v1.13.patch
2026-08-29 03:30 qirat Tag Attached: #please_test
2026-09-04 13:12 jghali Summary [PATCH] Dark theme: dock panel title bar/tab strip shows white patches instead of dark => Dark theme: dock panel title bar/tab strip shows white patches instead of dark
2026-09-04 13:14 jghali Note Added: 0054412
2026-09-04 13:14 jghali Assigned To => jghali
2026-09-04 13:14 jghali Status new => resolved
2026-09-04 13:14 jghali Resolution open => fixed
2026-09-04 13:14 jghali Fixed in Version => 1.7.4.svn