[greybird] Upstream fix for checkboxes and radios in gtk3.14

Kevin Fenzi kevin at fedoraproject.org
Sun Nov 9 20:03:35 UTC 2014


commit 53c07fa4aacdf119a52e72fccfad929a8f14e8fc
Author: Kevin Fenzi <kevin at scrye.com>
Date:   Sun Nov 9 13:03:21 2014 -0700

    Upstream fix for checkboxes and radios in gtk3.14
    
    - The "shadow" is re-enabled, the full size of the app menu in the system tray
      is resolved upstream - gtkmenu: fix unnecessary scroll buttons gtk-3-14
      https://git.gnome.org/browse/gtk+/commit/?h=gtk-3-14&id=695ff38
    - The same applies to the Shimmer Project Desktop Suites for Xfce as a whole,
      i.e. Greybird, Bluebird and Albatross.
    - With these two corrections bugs #1114161, #1139190 and #1139187
      are solved completely.

 fix-checkboxes-and-radios-in-gtk3.14.patch |  212 ++++++++++++++++++++++++++++
 greybird-1.4-gtk3-fixes.patch              |  146 -------------------
 greybird.spec                              |   17 ++-
 3 files changed, 227 insertions(+), 148 deletions(-)
---
diff --git a/fix-checkboxes-and-radios-in-gtk3.14.patch b/fix-checkboxes-and-radios-in-gtk3.14.patch
new file mode 100644
index 0000000..a1c700e
--- /dev/null
+++ b/fix-checkboxes-and-radios-in-gtk3.14.patch
@@ -0,0 +1,212 @@
+From 6f8013cf293f2484b1896bfaaa0a052c02b1f83b Mon Sep 17 00:00:00 2001
+From: Jiri Horner <laeqten at gmail.com>
+Date: Thu, 16 Oct 2014 17:46:04 +0200
+Subject: [PATCH] fix checkboxes and radios in gtk3.14
+
+* :active is now :checked
+* checkboxes and radios are now using -gtk-icon-source: instead of background-image property
+---
+ gtk-3.0/gtk-widgets-assets.css | 104 ++++++++++++++++++++---------------------
+ 1 file changed, 52 insertions(+), 52 deletions(-)
+
+diff --git a/gtk-3.0/gtk-widgets-assets.css b/gtk-3.0/gtk-widgets-assets.css
+index 48d3012..adfffe0 100644
+--- a/gtk-3.0/gtk-widgets-assets.css
++++ b/gtk-3.0/gtk-widgets-assets.css
+@@ -5,144 +5,144 @@
+ .check,
+ .check row:selected,
+ .check row:selected:focus {
+-    background-image: url("assets/checkbox-unchecked.png");
++    -gtk-icon-source: url("assets/checkbox-unchecked.png");
+ }
+ 
+ .check:insensitive,
+ .check row:selected:insensitive,
+ .check row:selected:focus:insensitive {
+-    background-image: url("assets/checkbox-unchecked-insensitive.png");
++    -gtk-icon-source: url("assets/checkbox-unchecked-insensitive.png");
+ }
+ 
+-.check:active,
+-.check row:selected:active,
+-.check row:selected:focus:active {
+-    background-image: url("assets/checkbox-checked.png");
++.check:active, .check:checked,
++.check row:selected:active, .check row:selected:checked,
++.check row:selected:focus:active, .check row:selected:focus:checked {
++    -gtk-icon-source: url("assets/checkbox-checked.png");
+ }
+ 
+-.check:active:hover,
+-.check row:selected:active:hover,
+-.check row:selected:focus:active:hover {
+-    background-image: url("assets/checkbox-checked-hover.png");
++.check:active:hover, .check:checked:hover,
++.check row:selected:active:hover, .check row:selected:checked:hover,
++.check row:selected:focus:active:hover, .check row:selected:focus:checked:hover {
++    -gtk-icon-source: url("assets/checkbox-checked-hover.png");
+ }
+ 
+-.check:active:insensitive,
+-.check row:selected:active:insensitive,
+-.check row:selected:focus:active:insensitive {
+-    background-image: url("assets/checkbox-checked-insensitive.png");
++.check:active:insensitive, .check:checked:insensitive,
++.check row:selected:active:insensitive, .check row:selected:checked:insensitive,
++.check row:selected:focus:active:insensitive, .check row:selected:focus:checked:insensitive {
++    -gtk-icon-source: url("assets/checkbox-checked-insensitive.png");
+ }
+ 
+ .check:inconsistent,
+ .check row:selected:inconsistent,
+ .check row:selected:focus:inconsistent {
+-    background-image: url("assets/checkbox-mixed.png");
++    -gtk-icon-source: url("assets/checkbox-mixed.png");
+ }
+ 
+ .check:inconsistent:hover,
+ .check row:selected:inconsistent:hover,
+ .check row:selected:focus:inconsistent:hover {
+-    background-image: url("assets/checkbox-mixed-hover.png");
++    -gtk-icon-source: url("assets/checkbox-mixed-hover.png");
+ }
+ 
+ .check:inconsistent:insensitive,
+ .check row:selected:inconsistent:insensitive,
+ .check row:selected:focus:inconsistent:insensitive {
+-    background-image: url("assets/checkbox-mixed-insensitive.png");
++    -gtk-icon-source: url("assets/checkbox-mixed-insensitive.png");
+ }
+ 
+ .radio,
+ .radio row:selected,
+ .radio row:selected:focus {
+-    background-image: url("assets/radio-unselected.png");
++    -gtk-icon-source: url("assets/radio-unselected.png");
+ }
+ 
+ .radio:insensitive,
+ .radio row:selected:insensitive,
+ .radio row:selected:focus:insensitive {
+-    background-image: url("assets/radio-unselected-insensitive.png");
++    -gtk-icon-source: url("assets/radio-unselected-insensitive.png");
+ }
+ 
+-.radio:active,
+-.radio row:selected:active,
+-.radio row:selected:focus:active {
+-    background-image: url("assets/radio-selected.png");
++.radio:active, .radio:checked,
++.radio row:selected:active, .radio row:selected:checked,
++.radio row:selected:focus:active, .radio row:selected:focus:checked {
++    -gtk-icon-source: url("assets/radio-selected.png");
+ }
+ 
+-.radio:active:hover,
+-.radio row:selected:active:hover,
+-.radio row:selected:focus:active:hover {
+-    background-image: url("assets/radio-selected-hover.png");
++.radio:active:hover, .radio:checked:hover,
++.radio row:selected:active:hover, .radio row:selected:checked:hover,
++.radio row:selected:focus:active:hover, .radio row:selected:focus:checked:hover {
++    -gtk-icon-source: url("assets/radio-selected-hover.png");
+ }
+ 
+-.radio:active:insensitive,
+-.radio row:selected:active:insensitive,
+-.radio row:selected:focus:active:insensitive {
+-    background-image: url("assets/radio-selected-insensitive.png");
++.radio:active:insensitive, .radio:checked:insensitive,
++.radio row:selected:active:insensitive, .radio row:selected:checked:insensitive,
++.radio row:selected:focus:active:insensitive, .radio row:selected:focus:checked:insensitive {
++    -gtk-icon-source: url("assets/radio-selected-insensitive.png");
+ }
+ 
+ .radio:inconsistent,
+ .radio row:selected:inconsistent,
+ .radio row:selected:focus:inconsistent {
+-    background-image: url("assets/radio-mixed.png");
++    -gtk-icon-source: url("assets/radio-mixed.png");
+ }
+ 
+ .radio:inconsistent:hover,
+ .radio row:selected:inconsistent:hover,
+ .radio row:selected:focus:inconsistent:hover {
+-    background-image: url("assets/radio-mixed-hover.png");
++    -gtk-icon-source: url("assets/radio-mixed-hover.png");
+ }
+ 
+ .radio:inconsistent:insensitive,
+ .radio row:selected:inconsistent:insensitive,
+ .radio row:selected:focus:inconsistent:insensitive {
+-    background-image: url("assets/radio-mixed-insensitive.png");
++    -gtk-icon-source: url("assets/radio-mixed-insensitive.png");
+ }
+ 
+-.menuitem.check:active {
+-    background-image: url("assets/menuitem-checkbox-checked.png");
++.menuitem.check:active, .menuitem.check:checked {
++    -gtk-icon-source: url("assets/menuitem-checkbox-checked.png");
+ }
+ 
+-.menuitem.check:active:hover {
+-    background-image: url("assets/menuitem-checkbox-checked-hover.png");
++.menuitem.check:active:hover, .menuitem.check:checked:hover {
++    -gtk-icon-source: url("assets/menuitem-checkbox-checked-hover.png");
+ }
+ 
+-.menuitem.check:active:insensitive {
+-    background-image: url("assets/menuitem-checkbox-checked-insensitive.png");
++.menuitem.check:active:insensitive, .menuitem.check:checked:insensitive {
++    -gtk-icon-source: url("assets/menuitem-checkbox-checked-insensitive.png");
+ }
+ 
+ .menuitem.check:inconsistent:hover,
+ .menuitem.radio:inconsistent:hover {
+-    background-image: url("assets/menuitem-checkbox-mixed-hover.png");
++    -gtk-icon-source: url("assets/menuitem-checkbox-mixed-hover.png");
+ }
+ 
+ .menuitem.check:inconsistent,
+ .menuitem.radio:inconsistent {
+-    background-image: url("assets/menuitem-checkbox-mixed.png");
++    -gtk-icon-source: url("assets/menuitem-checkbox-mixed.png");
+ }
+ 
+ .menuitem.check:inconsistent:insensitive,
+ .menuitem.radio:inconsistent:insensitive {
+-    background-image: url("assets/menuitem-checkbox-mixed-insensitive.png");
++    -gtk-icon-source: url("assets/menuitem-checkbox-mixed-insensitive.png");
+ }
+ 
+-.menuitem.radio:active {
+-    background-image: url("assets/menuitem-radio-checked.png");
++.menuitem.radio:active, .menuitem.radio:checked {
++    -gtk-icon-source: url("assets/menuitem-radio-checked.png");
+ }
+ 
+-.menuitem.radio:active:hover {
+-    background-image: url("assets/menuitem-radio-checked-hover.png");
++.menuitem.radio:active:hover, .menuitem.radio:checked:hover {
++    -gtk-icon-source: url("assets/menuitem-radio-checked-hover.png");
+ }
+ 
+-.menuitem.radio:active:insensitive {
+-    background-image: url("assets/menuitem-radio-checked-insensitive.png");
++.menuitem.radio:active:insensitive, .menuitem.radio:checked:insensitive {
++    -gtk-icon-source: url("assets/menuitem-radio-checked-insensitive.png");
+ }
+ 
+ GtkIconView.content-view.cell.check {
+-    background-image: url("assets/grid-selection-unchecked.png");
++    -gtk-icon-source: url("assets/grid-selection-unchecked.png");
+ }
+ 
+-GtkIconView.content-view.cell.check:active {
+-    background-image: url("assets/grid-selection-checked.png");
++GtkIconView.content-view.cell.check:active, GtkIconView.content-view.cell.check:checked {
++    -gtk-icon-source: url("assets/grid-selection-checked.png");
+ }
+ 
+ /***************
diff --git a/greybird.spec b/greybird.spec
index 347ab56..79887fb 100644
--- a/greybird.spec
+++ b/greybird.spec
@@ -2,13 +2,16 @@
 
 Name:           greybird
 Version:        1.4
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        A clean minimalistic theme for Xfce, GTK+ 2 and 3
 
 License:        GPLv2+ or CC-BY-SA
 URL:            http://shimmerproject.org/project/%{name}/ 
 Source0:        https://github.com/shimmerproject/%{theme_name}/archive/v%{version}.tar.gz
-Patch0:         greybird-1.4-gtk3-fixes.patch
+# fix checkboxes and radios in gtk3.14 
+# https://github.com/shimmerproject/Greybird/commit/6f8013c
+# https://github.com/shimmerproject/Greybird/commit/6f8013c.patch
+Patch0:         fix-checkboxes-and-radios-in-gtk3.14.patch
 
 BuildArch:      noarch      
 
@@ -109,6 +112,16 @@ cp -pr gtk-2.0/ gtk-3.0/ metacity-1/ xfwm4/ xfwm4_compact/ xfce-notify-4.0/ %{bu
 %{_datadir}/themes/%{theme_name}/xfce-notify-4.0/
 
 %changelog
+* Thu Nov 06 2014 poma <poma at gmail.com> 1.4-3
+- Upstream fix for checkboxes and radios in gtk3.14
+- The "shadow" is re-enabled, the full size of the app menu in the system tray
+  is resolved upstream - gtkmenu: fix unnecessary scroll buttons gtk-3-14
+  https://git.gnome.org/browse/gtk+/commit/?h=gtk-3-14&id=695ff38
+- The same applies to the Shimmer Project Desktop Suites for Xfce as a whole, 
+  i.e. Greybird, Bluebird and Albatross.
+- With these two corrections bugs #1114161, #1139190 and #1139187 
+  are solved completely.
+
 * Fri Oct 03 2014 Kevin Fenzi <kevin at scrye.com> 1.4-2
 - Add patch to fix gtk3 issues. Thanks poma
 - Fixes bug #1114161


More information about the scm-commits mailing list