SHA256
1
0
forked from pool/breeze-gtk
breeze-gtk/0001-Revert-GTK3-Revert-checkbox-recolouring.patch
Luca Beltrame b91218c495 Accepting request 749068 from home:Vogtinator:plasma5.17
- Add patch to enable checkbox recoloring again, fixed in librsvg:
  * 0001-Revert-GTK3-Revert-checkbox-recolouring.patch

OBS-URL: https://build.opensuse.org/request/show/749068
OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/breeze-gtk?expand=0&rev=104
2019-11-16 19:11:24 +00:00

184 lines
7.4 KiB
Diff

From 6c70cac5e4d6566eded5893e34ac356e29deaff6 Mon Sep 17 00:00:00 2001
From: Carson Black <uhhadd@gmail.com>
Date: Sat, 16 Nov 2019 10:36:29 -0500
Subject: [PATCH] Revert "[GTK3] Revert checkbox recolouring"
Summary:
This reverts commit b1649126c8c6d1af746a8472939fcda40a260095, as an upstream librsvg bug was fixed, allowing checkboxes and radiobuttons to recolour properly.
https://gitlab.gnome.org/GNOME/librsvg/issues/525
Test Plan: See that checkbox recolouring works as expected.
Reviewers: #breeze, #vdg, ngraham
Reviewed By: #breeze, #vdg, ngraham
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D25336
---
src/gtk3/widgets/_checkboxes.scss | 92 ++++++++++++-------------------
src/gtk3/widgets/_menus.scss | 29 +++++++---
2 files changed, 55 insertions(+), 66 deletions(-)
diff --git a/src/gtk3/widgets/_checkboxes.scss b/src/gtk3/widgets/_checkboxes.scss
index 3f398ae..b9fa4bd 100644
--- a/src/gtk3/widgets/_checkboxes.scss
+++ b/src/gtk3/widgets/_checkboxes.scss
@@ -3,20 +3,6 @@
/*************************
* Check and Radio items *
*************************/
-@each $s,$as in ('','-unchecked'),
- (':hover', '-unchecked-hover'),
- (':active', '-unchecked-active'),
- (':backdrop', '-unchecked-backdrop'),
- (':checked', '-checked-active'),
- (':checked:hover', '-checked-hover'),
- (':checked:active', '-checked-active'),
- (':backdrop:checked', '-checked-backdrop') {
- .view.content-view.check#{$s}:not(list) {
- -gtk-icon-shadow: none;
- -gtk-icon-source: -gtk-scaled(url("../assets/check-selectionmode#{$as}.png"), url("../assets/check-selectionmode#{$as}@2.png"));
- background-color: transparent;
- }
-}
checkbutton.text-button, radiobutton.text-button {
// this is for a nice focus on check and radios text
@@ -32,53 +18,43 @@ checkbutton.text-button, radiobutton.text-button {
}
}
-@each $a in ('check','radio') {
+check, radio {
+ margin: 0 4px;
- #{$a} {
- margin: 0 4px;
+ &:only-child { margin: 0; }
- &:only-child { margin: 0; }
+ min-height: 18px;
+ min-width: 18px;
+ //border: none;
+ animation: none;
+ background-color: transparent;
+ -gtk-icon-palette: error gtk("@theme_button_decoration_focus"), success gtk("@borders"), warning gtk("@theme_button_background_normal");
+ -gtk-icon-shadow: 1px 1px rgba(35,38,41,0.2);
- min-height: 18px;
- min-width: 18px;
- //border: none;
- animation: none;
- background-color: transparent;
- -gtk-icon-source: -gtk-scaled(url("../assets/#{$a}-unchecked.png"), url("../assets/#{$a}-unchecked@2.png"));
+ &:hover {
+ -gtk-icon-palette: error gtk("@theme_button_decoration_focus"), success gtk("@theme_button_decoration_focus"), warning gtk("@theme_button_background_normal");
+ }
+ &:disabled {
+ -gtk-icon-palette: error gtk("@theme_button_decoration_focus_insensitive"), success gtk("@insensitive_borders"), warning gtk("@theme_button_background_insensitive");
+ }
- @each $s,$as in ('hover','-hover'),
- ('active','-active'),
- ('disabled','-insensitive'),
- ('backdrop','-backdrop'),
- ('backdrop:disabled','-backdrop-insensitive') {
- &:#{$s} { -gtk-icon-source: -gtk-scaled(url("../assets/#{$a}-unchecked#{$as}.png"), url("../assets/#{$a}-unchecked#{$as}@2.png")); }
- &:checked {
- -gtk-icon-source: -gtk-scaled(url("../assets/#{$a}-checked-active.png"), url("../assets/#{$a}-checked-active@2.png"));
- &:#{$s} { -gtk-icon-source: -gtk-scaled(url("../assets/#{$a}-checked#{$as}.png"), url("../assets/#{$a}-checked#{$as}@2.png")); }
- }
- &:indeterminate {
- -gtk-icon-source: -gtk-scaled(url("../assets/#{$a}-mixed-active.png"), url("../assets/#{$a}-mixed-active@2.png"));
- &:#{$s} { -gtk-icon-source: -gtk-scaled(url("../assets/#{$a}-mixed#{$as}.png"), url("../assets/#{$a}-mixed#{$as}@2.png")); }
- }
+ menu menuitem & {
+ margin: 0; // this is a workaround for a menu check/radio size allocation issue
+ min-height: 18px;
+ min-width: 18px;
+ background-color: transparent;
+ box-shadow: none;
+ -gtk-icon-shadow: none;
+ animation: none;
}
-
- menu menuitem & {
- margin: 0; // this is a workaround for a menu check/radio size allocation issue
- min-height: 18px;
- min-width: 18px;
- background-color: transparent;
- box-shadow: none;
- -gtk-icon-shadow: none;
- animation: none;
- &:hover {
- -gtk-icon-source: -gtk-scaled(url("../assets/#{$a}-unchecked.png"), url("../assets/#{$a}-unchecked@2.png"));
- }
- &:checked:hover {
- -gtk-icon-source: -gtk-scaled(url("../assets/#{$a}-checked-active.png"), url("../assets/#{$a}-checked-active@2.png"));
- }
- &:indeterminate:hover {
- -gtk-icon-source: -gtk-scaled(url("../assets/#{$a}-mixed-active.png"), url("../assets/#{$a}-mixed-active@2.png"));
- }
- }
+}
+@each $type in ('check', 'radio') {
+ #{$type} {
+ -gtk-icon-source: -gtk-recolor(url("../assets/breeze-#{$type}-unchecked-symbolic.svg"));
+ @each $state in ('checked', 'indeterminate') {
+ &:#{$state} {
+ -gtk-icon-source: -gtk-recolor(url("../assets/breeze-#{$type}-#{$state}-symbolic.svg"));
+ }
+ }
}
-}
\ No newline at end of file
+}
diff --git a/src/gtk3/widgets/_menus.scss b/src/gtk3/widgets/_menus.scss
index c241eab..7f6c40e 100644
--- a/src/gtk3/widgets/_menus.scss
+++ b/src/gtk3/widgets/_menus.scss
@@ -205,14 +205,27 @@ modelbutton.flat,
@extend %undecorated_button;
color: gtk("@theme_unfocused_fg_color");
}
- check:hover {-gtk-icon-source: -gtk-scaled(url("../assets/check-unchecked.png"), url("../assets/check-unchecked@2.png"));}
- radio:hover {-gtk-icon-source: -gtk-scaled(url("../assets/radio-unchecked.png"), url("../assets/radio-unchecked@2.png"));}
-
- check:checked:hover {-gtk-icon-source: -gtk-scaled(url("../assets/check-checked-active.png"), url("../assets/check-checked-active@2.png"));}
- radio:checked:hover {-gtk-icon-source: -gtk-scaled(url("../assets/radio-checked-active.png"), url("../assets/radio-checked-active@2.png"));}
-
- check:indeterminate:hover {-gtk-icon-source: -gtk-scaled(url("../assets/check-mixed.png"), url("../assets/check-mixed@2.png"));}
- radio:indeterminate:hover {-gtk-icon-source: -gtk-scaled(url("../assets/radio-mixed.png"), url("../assets/radio-mixed@2.png"));}
+ check, radio {
+ -gtk-icon-palette: error gtk("@theme_button_decoration_focus"), success gtk("@borders"), warning gtk("@theme_button_background_normal");
+ -gtk-icon-shadow: 1px 1px rgba(35,38,41,0.2);
+
+ &:hover {
+ -gtk-icon-palette: error gtk("@theme_button_decoration_focus"), success gtk("@theme_button_decoration_focus"), warning gtk("@theme_button_background_normal");
+ }
+ &:disabled {
+ -gtk-icon-palette: error gtk("@theme_button_decoration_focus_insensitive"), success gtk("@insensitive_borders"), warning gtk("@theme_button_background_insensitive");
+ }
+ }
+ @each $type in ('check', 'radio') {
+ #{$type} {
+ -gtk-icon-source: -gtk-recolor(url("../assets/breeze-#{$type}-unchecked-symbolic.svg"));
+ @each $state in ('checked', 'indeterminate') {
+ &:#{$state} {
+ -gtk-icon-source: -gtk-recolor(url("../assets/breeze-#{$type}-#{$state}-symbolic.svg"));
+ }
+ }
+ }
+ }
// FIXME: remove the following when the checks/radios rewrite lands
check:last-child,
--
2.23.0