Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-themes/oxygen-gtk/files/, x11-themes/oxygen-gtk/
Date: Sat, 24 Jun 2017 14:15:58
Message-Id: 1498313729.cb8343823acdb727ff27c341d39d4ca5c369f736.asturm@gentoo
1 commit: cb8343823acdb727ff27c341d39d4ca5c369f736
2 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jun 24 13:58:44 2017 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Sat Jun 24 14:15:29 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cb834382
7
8 x11-themes/oxygen-gtk: EAPI 6, multilib, fix tabstyle, gtk-3.14 spinner
9
10 Fix HOMEPAGE.
11
12 Reported-by: Yichao Zhou <broken.zhou <AT> gmail.com>
13 Thanks-to: Alexey Kharlamov <derlafff <AT> ya.ru>
14 Gentoo-bug: 562274, 563802
15
16 Package-Manager: Portage-2.3.6, Repoman-2.3.1
17
18 .../files/oxygen-gtk-1.4.1-gtk-3.14.patch | 151 ++++++++++++++
19 .../files/oxygen-gtk-1.4.6-demo-optional.patch | 35 ++++
20 .../files/oxygen-gtk-1.4.6-eclipse.patch | 228 +++++++++++++++++++++
21 .../files/oxygen-gtk-1.4.6-qtpaths.patch | 19 ++
22 .../files/oxygen-gtk-1.4.6-tabstyle.patch | 16 ++
23 .../files/oxygen-gtk-1.4.6-warning.patch | 24 +++
24 .../oxygen-gtk/files/oxygen-gtk-1.4.6-xul.patch | 113 ++++++++++
25 x11-themes/oxygen-gtk/oxygen-gtk-1.4.1-r1.ebuild | 66 ++++++
26 x11-themes/oxygen-gtk/oxygen-gtk-1.4.6-r1.ebuild | 69 +++++++
27 9 files changed, 721 insertions(+)
28
29 diff --git a/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.1-gtk-3.14.patch b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.1-gtk-3.14.patch
30 new file mode 100644
31 index 00000000000..3f6d323a94c
32 --- /dev/null
33 +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.1-gtk-3.14.patch
34 @@ -0,0 +1,151 @@
35 +From 75d1884df6740c268b665935af909a9a1e1ef6be Mon Sep 17 00:00:00 2001
36 +From: Hugo Pereira Da Costa <hugo.pereira@××××.fr>
37 +Date: Fri, 14 Nov 2014 18:37:33 +0100
38 +Subject: update spinner code (copied from Adwaita) to have working spinner for
39 + gtk+-3.14 BUG: 340901
40 +
41 +---
42 + rc/gtk-spinner.css | 128 +++++++++--------------------------------------------
43 + 1 file changed, 20 insertions(+), 108 deletions(-)
44 +
45 +diff --git a/rc/gtk-spinner.css b/rc/gtk-spinner.css
46 +index f90a8d4..d20264f 100644
47 +--- a/rc/gtk-spinner.css
48 ++++ b/rc/gtk-spinner.css
49 +@@ -1,114 +1,26 @@
50 +-/* spinners */
51 +-/*
52 +-this is copied from Adwaita.
53 +-cannot be implemented in the code because of the 'new' way gtk3 renders spinners
54 +-*/
55 +-@keyframes spinner {
56 +- 0.00% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
57 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)),
58 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)),
59 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)),
60 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)),
61 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)),
62 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)),
63 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)); }
64 +-
65 +- 12.5% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)),
66 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)),
67 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)),
68 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)),
69 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)),
70 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)),
71 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)),
72 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)); }
73 +-
74 +- 25.0% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)),
75 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)),
76 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)),
77 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)),
78 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)),
79 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)),
80 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
81 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)); }
82 +-
83 +- 37.5% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)),
84 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)),
85 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)),
86 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)),
87 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)),
88 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
89 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)),
90 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)); }
91 +-
92 +- 50.0% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)),
93 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)),
94 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)),
95 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)),
96 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
97 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)),
98 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)),
99 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)); }
100 +-
101 +- 62.5% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)),
102 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)),
103 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)),
104 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
105 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)),
106 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)),
107 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)),
108 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)); }
109 +-
110 +- 75.0% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)),
111 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)),
112 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
113 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)),
114 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)),
115 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)),
116 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)),
117 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)); }
118 +-
119 +- 87.5% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)),
120 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
121 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)),
122 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)),
123 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)),
124 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)),
125 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)),
126 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)); }
127 ++/*********************
128 ++ * Spinner Animation *
129 ++ *********************/
130 ++@keyframes spin
131 ++{
132 ++ to { -gtk-icon-transform: rotate(1turn); }
133 ++}
134 +
135 +- 100% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
136 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)),
137 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)),
138 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)),
139 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)),
140 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)),
141 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)),
142 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)); }
143 ++.spinner
144 ++{
145 ++ background-image: none;
146 ++ background-color: blue;
147 ++ opacity: 0;
148 ++ -gtk-icon-source: -gtk-icontheme("process-working-symbolic");
149 + }
150 +
151 +-.spinner {
152 +- background-color: transparent;
153 +- background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
154 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
155 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
156 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
157 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
158 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
159 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
160 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent));
161 +- background-position: 14% 14%, 0% 50%, 14% 86%, 50% 100%, 86% 86%, 100% 50%, 86% 14%, 50% 0%;
162 +- background-size: 20% 20%;
163 +- background-repeat: no-repeat;
164 ++.spinner:active
165 ++{
166 ++ opacity: 1;
167 ++ animation: spin 1s linear infinite;
168 + }
169 +
170 +-.spinner:active {
171 +- background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)),
172 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)),
173 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)),
174 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)),
175 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)),
176 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)),
177 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)),
178 +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent));
179 +- animation: spinner 1s infinite linear;
180 ++.spinner:active:insensitive
181 ++{
182 ++ opacity: 0.5;
183 + }
184 +--
185 +cgit v0.11.2
186
187 diff --git a/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-demo-optional.patch b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-demo-optional.patch
188 new file mode 100644
189 index 00000000000..b49620b2e22
190 --- /dev/null
191 +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-demo-optional.patch
192 @@ -0,0 +1,35 @@
193 +From d5e9122133ad01da8cdbb27fe8e9f83e9a5097d4 Mon Sep 17 00:00:00 2001
194 +From: Pino Toscano <pino@×××.org>
195 +Date: Sat, 25 Oct 2014 16:27:10 +0200
196 +Subject: cmake: add an option to disable the build of the demo
197 +
198 +Useful when building only the style; the default behaviour is unchanged
199 +(i.e. the demo is built).
200 +---
201 + CMakeLists.txt | 6 +++++-
202 + 1 file changed, 5 insertions(+), 1 deletion(-)
203 +
204 +diff --git a/CMakeLists.txt b/CMakeLists.txt
205 +index 1f576d2..5ab1ee1 100644
206 +--- a/CMakeLists.txt
207 ++++ b/CMakeLists.txt
208 +@@ -36,6 +36,8 @@ include( CPack )
209 + # Package specific flags
210 + ########################
211 +
212 ++option(ENABLE_DEMO "Build the demo." ON)
213 ++
214 + # Set to 1 to enable debugging information
215 + if( NOT DEFINED OXYGEN_DEBUG )
216 + set( OXYGEN_DEBUG 0 )
217 +@@ -200,5 +202,7 @@ configure_file( config.h.cmake ${CMAKE_BINARY_DIR}/config.h )
218 + add_subdirectory( src )
219 + add_subdirectory( rc )
220 + add_subdirectory( special-icons )
221 +-add_subdirectory( demo )
222 ++if( ENABLE_DEMO )
223 ++ add_subdirectory( demo )
224 ++endif( ENABLE_DEMO )
225 +
226 +--
227 +cgit v0.11.2
228
229 diff --git a/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-eclipse.patch b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-eclipse.patch
230 new file mode 100644
231 index 00000000000..54fa572bc6b
232 --- /dev/null
233 +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-eclipse.patch
234 @@ -0,0 +1,228 @@
235 +From ef3c0cdfa18a6f612e5ba84e42bcd288374669fb Mon Sep 17 00:00:00 2001
236 +From: Hugo Pereira Da Costa <hugo.pereira.da.costa@×××××.com>
237 +Date: Thu, 6 Apr 2017 17:32:51 +0200
238 +Subject: Patch from Matt Whitlock to fix crash in ecclipse about invalid
239 + columns. BUG: 338012
240 +
241 +---
242 + src/oxygengtkcellinfo.cpp | 78 +++++++++++++++++++----------------------------
243 + src/oxygengtkcellinfo.h | 22 ++++++++-----
244 + 2 files changed, 46 insertions(+), 54 deletions(-)
245 +
246 +diff --git a/src/oxygengtkcellinfo.cpp b/src/oxygengtkcellinfo.cpp
247 +index 52e0d34..8118143 100644
248 +--- a/src/oxygengtkcellinfo.cpp
249 ++++ b/src/oxygengtkcellinfo.cpp
250 +@@ -31,38 +31,41 @@ namespace Oxygen
251 + //____________________________________________________________________________
252 + Gtk::CellInfo::CellInfo( GtkTreeView* treeView, int x, int y, int w, int h ):
253 + _path(0L),
254 +- _column(0L)
255 ++ _column(-1)
256 + {
257 ++ GtkTreeViewColumn *column( 0L );
258 +
259 + /*
260 + four attempts are made to get the path from any corner of the rectangle passed in arguments.
261 + This is necessary to handle half-hidden cells
262 + */
263 +- gtk_tree_view_get_path_at_pos( treeView, (gint)x+1, (gint)y+1, &_path, &_column, 0L, 0L );
264 +-
265 +- if( !_path ) gtk_tree_view_get_path_at_pos( treeView, (gint)x+1, (gint)y+h-1, &_path, &_column, 0L, 0L );
266 +- else return;
267 +-
268 +- if( !_path ) gtk_tree_view_get_path_at_pos( treeView, (gint)x+w-1, (gint)y+1, &_path, &_column, 0L, 0L );
269 +- else return;
270 +-
271 +- if( !_path ) gtk_tree_view_get_path_at_pos( treeView, (gint)x+w-1, (gint)y+h-1, &_path, &_column, 0L, 0L );
272 +- else return;
273 ++ gtk_tree_view_get_path_at_pos( treeView, (gint)x+1, (gint)y+1, &_path, &column, 0L, 0L );
274 ++ if( !_path ) {
275 ++ gtk_tree_view_get_path_at_pos( treeView, (gint)x+1, (gint)y+h-1, &_path, &column, 0L, 0L );
276 ++ if( !_path ) {
277 ++ gtk_tree_view_get_path_at_pos( treeView, (gint)x+w-1, (gint)y+1, &_path, &column, 0L, 0L );
278 ++ if( !_path ) {
279 ++ gtk_tree_view_get_path_at_pos( treeView, (gint)x+w-1, (gint)y+h-1, &_path, &column, 0L, 0L );
280 ++ if( !_path ) return;
281 ++ }
282 ++ }
283 ++ }
284 +
285 ++ _column = indexOfColumn( treeView, column );
286 + }
287 +
288 + //____________________________________________________________________________
289 + bool Gtk::CellInfo::isLastVisibleColumn( GtkTreeView* treeView ) const
290 + {
291 +- bool isLast( false );
292 ++ bool isLast( true );
293 + GList* columns( gtk_tree_view_get_columns( treeView ) );
294 +- for( GList *child = g_list_last( columns ); child; child = g_list_previous( child ) )
295 ++ for( GList *child = g_list_nth( columns, _column ); ( child = g_list_next( child ) ); )
296 + {
297 + if( !GTK_IS_TREE_VIEW_COLUMN( child->data ) ) continue;
298 + GtkTreeViewColumn* column( GTK_TREE_VIEW_COLUMN( child->data ) );
299 + if( gtk_tree_view_column_get_visible( column ) )
300 + {
301 +- isLast = (_column == column );
302 ++ isLast = false;
303 + break;
304 + }
305 +
306 +@@ -75,15 +78,15 @@ namespace Oxygen
307 + //____________________________________________________________________________
308 + bool Gtk::CellInfo::isFirstVisibleColumn( GtkTreeView* treeView ) const
309 + {
310 +- bool isFirst( false );
311 ++ bool isFirst( true );
312 + GList* columns( gtk_tree_view_get_columns( treeView ) );
313 +- for( GList *child = g_list_first( columns ); child; child = g_list_next( child ) )
314 ++ for( GList *child = g_list_nth( columns, _column ); ( child = g_list_previous( child ) ); )
315 + {
316 + if( !GTK_IS_TREE_VIEW_COLUMN( child->data ) ) continue;
317 + GtkTreeViewColumn* column( GTK_TREE_VIEW_COLUMN( child->data ) );
318 + if( gtk_tree_view_column_get_visible( column ) )
319 + {
320 +- isFirst= (_column == column );
321 ++ isFirst = false;
322 + break;
323 + }
324 +
325 +@@ -98,34 +101,7 @@ namespace Oxygen
326 + {
327 + // check expander column
328 + GtkTreeViewColumn* expanderColumn( gtk_tree_view_get_expander_column( treeView ) );
329 +- if( !expanderColumn || _column == expanderColumn ) return false;
330 +-
331 +- bool found( false );
332 +- bool isLeft( false );
333 +-
334 +- // get all columns
335 +- GList* columns( gtk_tree_view_get_columns( treeView ) );
336 +- for( GList *child = g_list_first( columns ); child; child = g_list_next( child ) )
337 +- {
338 +- if( !GTK_IS_TREE_VIEW_COLUMN( child->data ) ) continue;
339 +- GtkTreeViewColumn* column( GTK_TREE_VIEW_COLUMN( child->data ) );
340 +- if( column == expanderColumn )
341 +- {
342 +- if( found )
343 +- {
344 +-
345 +- isLeft = true;
346 +- break;
347 +-
348 +- } else break;
349 +-
350 +- } else if( found ) break;
351 +- else if( column == _column ) found = true;
352 +-
353 +- }
354 +-
355 +- if( columns ) g_list_free( columns );
356 +- return isLeft;
357 ++ return expanderColumn && _column < indexOfColumn( treeView, expanderColumn );
358 +
359 + }
360 +
361 +@@ -203,13 +179,23 @@ namespace Oxygen
362 + {
363 + GdkRectangle out( Gtk::gdk_rectangle() );
364 + if( treeView && isValid() )
365 +- { gtk_tree_view_get_background_area( treeView, _path, _column, &out ); }
366 ++ { gtk_tree_view_get_background_area( treeView, _path, gtk_tree_view_get_column( treeView, _column ), &out ); }
367 +
368 + return out;
369 +
370 + }
371 +
372 + //____________________________________________________________________________
373 ++ gint Gtk::CellInfo::indexOfColumn( GtkTreeView* treeView, GtkTreeViewColumn* column )
374 ++ {
375 ++ GList* columns( gtk_tree_view_get_columns( treeView ) );
376 ++ if( !columns ) return -1;
377 ++ gint index( g_list_index( columns, column ) );
378 ++ g_list_free( columns );
379 ++ return index;
380 ++ }
381 ++
382 ++ //____________________________________________________________________________
383 + Gtk::CellInfoFlags::CellInfoFlags( GtkTreeView* treeView, const CellInfo& cellInfo ):
384 + _depth( cellInfo.depth() ),
385 + _expanderSize(0),
386 +diff --git a/src/oxygengtkcellinfo.h b/src/oxygengtkcellinfo.h
387 +index 919d020..58dd441 100644
388 +--- a/src/oxygengtkcellinfo.h
389 ++++ b/src/oxygengtkcellinfo.h
390 +@@ -47,7 +47,7 @@ namespace Oxygen
391 + //! empty constructor
392 + explicit CellInfo( void ):
393 + _path( 0L ),
394 +- _column( 0L )
395 ++ _column( -1 )
396 + {}
397 +
398 + //! copy constructor
399 +@@ -60,8 +60,12 @@ namespace Oxygen
400 + /*! unfortunately the path retrieval does not always work because x and y must be positive */
401 + explicit CellInfo( GtkTreeView* treeView, int x, int y ):
402 + _path(0L),
403 +- _column(0L)
404 +- { gtk_tree_view_get_path_at_pos( treeView, x, y, &_path, &_column, 0L, 0L ); }
405 ++ _column(-1)
406 ++ {
407 ++ GtkTreeViewColumn *column( 0L );
408 ++ gtk_tree_view_get_path_at_pos( treeView, x, y, &_path, &column, 0L, 0L );
409 ++ _column = indexOfColumn( treeView, column );
410 ++ }
411 +
412 + //! construct from tree view and rectangle
413 + explicit CellInfo( GtkTreeView* treeView, int x, int y, int w, int h );
414 +@@ -92,7 +96,7 @@ namespace Oxygen
415 + {
416 + if( _path ) gtk_tree_path_free( _path );
417 + _path = 0L;
418 +- _column = 0L;
419 ++ _column = -1;
420 + }
421 +
422 + //!@name accessors
423 +@@ -100,7 +104,7 @@ namespace Oxygen
424 +
425 + //! true if valid
426 + bool isValid( void ) const
427 +- { return _path && _column; }
428 ++ { return _path && _column >= 0; }
429 +
430 + //! returns true if column is the last one
431 + bool isLastVisibleColumn( GtkTreeView* ) const;
432 +@@ -110,7 +114,7 @@ namespace Oxygen
433 +
434 + //! returns true if column is the one that contains expander
435 + bool isExpanderColumn( GtkTreeView* treeView ) const
436 +- { return _column == gtk_tree_view_get_expander_column( treeView ); }
437 ++ { return _column >= 0 && _column == indexOfColumn( treeView, gtk_tree_view_get_expander_column( treeView ) ); }
438 +
439 + //! returs true if column is let of expander column
440 + bool isLeftOfExpanderColumn( GtkTreeView* ) const;
441 +@@ -152,8 +156,8 @@ namespace Oxygen
442 + //! path
443 + GtkTreePath* _path;
444 +
445 +- //! column
446 +- GtkTreeViewColumn* _column;
447 ++ //! column index
448 ++ gint _column;
449 +
450 + //! streamer
451 + friend std::ostream& operator << (std::ostream& out, const CellInfo& info )
452 +@@ -168,6 +172,8 @@ namespace Oxygen
453 + return out;
454 + }
455 +
456 ++ static gint indexOfColumn( GtkTreeView*, GtkTreeViewColumn* );
457 ++
458 + };
459 +
460 + //! cell info flags
461 +--
462 +cgit v0.11.2
463
464 diff --git a/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-qtpaths.patch b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-qtpaths.patch
465 new file mode 100644
466 index 00000000000..87e5197e90d
467 --- /dev/null
468 +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-qtpaths.patch
469 @@ -0,0 +1,19 @@
470 +Patch kindly borrowed from openSUSE
471 +
472 +Gentoo-bug: 563802
473 +
474 +--- a/src/oxygenqtsettings.cpp
475 ++++ b/src/oxygenqtsettings.cpp
476 +@@ -277,7 +277,11 @@
477 +
478 + // load icon install prefix
479 + gchar* path = 0L;
480 +- if( runCommand( "kde4-config --path config", path ) && path )
481 ++ if( runCommand( "qtpaths --paths ConfigLocation", path ) && path )
482 ++ {
483 ++ out.split( path );
484 ++ g_free( path );
485 ++ } else if( runCommand( "kde4-config --path config", path ) && path )
486 + {
487 +
488 + out.split( path );
489
490 diff --git a/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-tabstyle.patch b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-tabstyle.patch
491 new file mode 100644
492 index 00000000000..7f19434bef8
493 --- /dev/null
494 +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-tabstyle.patch
495 @@ -0,0 +1,16 @@
496 +TS_SINGLE tab style has been deprecated in oxygen qt style,
497 +which should be replaced by TS_PLAIN.
498 +
499 +Gentoo-bug: 563802
500 +
501 +--- a/rc/oxygenrc 2014-01-17 14:47:36.000000000 +0100
502 ++++ b/rc/oxygenrc 2017-06-24 15:49:36.607616582 +0200
503 +@@ -31,7 +31,7 @@
504 + ScrollBarBevel=true
505 + ProgressBarAnimated=true
506 + MenuHighlightMode=MM_DARK
507 +-TabStyle=TS_SINGLE
508 ++TabStyle=TS_PLAIN
509 +
510 + WindowDragEnabled=true
511 + WindowDragMode=WD_FULL
512
513 diff --git a/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-warning.patch b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-warning.patch
514 new file mode 100644
515 index 00000000000..0f0b92aaaae
516 --- /dev/null
517 +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-warning.patch
518 @@ -0,0 +1,24 @@
519 +From 7a5425d86e8fd5327091ce736a9680317a0c3747 Mon Sep 17 00:00:00 2001
520 +From: Hugo Pereira Da Costa <hugo.pereira.da.costa@×××××.com>
521 +Date: Thu, 6 Apr 2017 19:18:13 +0200
522 +Subject: fixed compiler warning
523 +
524 +---
525 + src/oxygenstyle.cpp | 2 +-
526 + 1 file changed, 1 insertion(+), 1 deletion(-)
527 +
528 +diff --git a/src/oxygenstyle.cpp b/src/oxygenstyle.cpp
529 +index 75e0fcc..374810f 100644
530 +--- a/src/oxygenstyle.cpp
531 ++++ b/src/oxygenstyle.cpp
532 +@@ -2171,7 +2171,7 @@ namespace Oxygen
533 + {
534 +
535 + // do nothing if not selected nor hovered
536 +- if( !options & (Hover|Selected ) ) return;
537 ++ if( !(options & (Hover|Selected )) ) return;
538 +
539 + Palette::Group group( (options & Focus) ? Palette::Active : Palette::Inactive );
540 + ColorUtils::Rgba base( _settings.palette().color( group, Palette::Selected ) );
541 +--
542 +cgit v0.11.2
543
544 diff --git a/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-xul.patch b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-xul.patch
545 new file mode 100644
546 index 00000000000..b2308bdd4d2
547 --- /dev/null
548 +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-xul.patch
549 @@ -0,0 +1,113 @@
550 +From b1ee5fb80c44c6c8a625333af1cfdc997d408805 Mon Sep 17 00:00:00 2001
551 +From: Hugo Pereira Da Costa <hugo.pereira@××××.fr>
552 +Date: Sat, 18 Jul 2015 20:09:28 +0200
553 +Subject: moved xul application names to dedicated header file, added a number
554 + of xul applications to prevent crash for these CCBUG: 341181
555 +
556 +---
557 + src/oxygenapplicationname.cpp | 18 ++-----------
558 + src/oxygenxulapplicationnames.h | 56 +++++++++++++++++++++++++++++++++++++++++
559 + 2 files changed, 58 insertions(+), 16 deletions(-)
560 + create mode 100644 src/oxygenxulapplicationnames.h
561 +
562 +diff --git a/src/oxygenapplicationname.cpp b/src/oxygenapplicationname.cpp
563 +index feb5a23..17c8a1a 100644
564 +--- a/src/oxygenapplicationname.cpp
565 ++++ b/src/oxygenapplicationname.cpp
566 +@@ -25,6 +25,7 @@
567 +
568 + #include "oxygenapplicationname.h"
569 + #include "oxygengtkutils.h"
570 ++#include "oxygenxulapplicationnames.h"
571 + #include "config.h"
572 +
573 + #include <cstdlib>
574 +@@ -79,23 +80,8 @@ namespace Oxygen
575 + gtkAppName == "chromium" ||
576 + gtkAppName == "chromium-browser" ||
577 + gtkAppName == "google-chrome" ) _name = GoogleChrome;
578 +- else {
579 +
580 +- // tag all mozilla-like applications (XUL)
581 +- static const std::string XulAppNames[] =
582 +- {
583 +- "firefox",
584 +- "thunderbird",
585 +- "seamonkey",
586 +- "iceweasel",
587 +- "icecat",
588 +- "icedove",
589 +- "xulrunner",
590 +- "komodo",
591 +- "aurora",
592 +- "zotero",
593 +- ""
594 +- };
595 ++ else {
596 +
597 + for( unsigned int index = 0; !XulAppNames[index].empty(); ++index )
598 + {
599 +diff --git a/src/oxygenxulapplicationnames.h b/src/oxygenxulapplicationnames.h
600 +new file mode 100644
601 +index 0000000..252a1fc
602 +--- /dev/null
603 ++++ b/src/oxygenxulapplicationnames.h
604 +@@ -0,0 +1,56 @@
605 ++#ifndef oxygenxulapplicationname_h
606 ++#define oxygenxulapplicationname_h
607 ++/*
608 ++* this file is part of the oxygen gtk engine
609 ++* Copyright (c) 2010 Hugo Pereira Da Costa <hugo.pereira@××××.fr>
610 ++*
611 ++* inspired notably from kdelibs/kdeui/color/kcolorutils.h
612 ++* Copyright (C) 2007 Matthew Woehlke <mw_triad@×××××××××××××××××.net>
613 ++* Copyright (C) 2007 Thomas Zander <zander@×××.org>
614 ++* Copyright (C) 2007 Zack Rusin <zack@×××.org>
615 ++*
616 ++* This library is free software; you can redistribute it and/or
617 ++* modify it under the terms of the GNU Lesser General Public
618 ++* License as published by the Free Software Foundation; either
619 ++* version 2 of the License, or( at your option ) any later version.
620 ++*
621 ++* This library is distributed in the hope that it will be useful,
622 ++* but WITHOUT ANY WARRANTY; without even the implied warranty of
623 ++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
624 ++* Lesser General Public License for more details.
625 ++*
626 ++* You should have received a copy of the GNU Lesser General Public
627 ++* License along with this library; if not, write to the Free
628 ++* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
629 ++* MA 02110-1301, USA.
630 ++*/
631 ++
632 ++#include <string>
633 ++
634 ++namespace Oxygen
635 ++{
636 ++
637 ++ // tag all mozilla-like applications (XUL)
638 ++ static const std::string XulAppNames[] =
639 ++ {
640 ++ "aurora",
641 ++ "earlybird",
642 ++ "icecat",
643 ++ "icedove",
644 ++ "iceweasel",
645 ++ "instantbird",
646 ++ "firefox",
647 ++ "fossamail",
648 ++ "komodo",
649 ++ "newmoon",
650 ++ "palemoon",
651 ++ "seamonkey",
652 ++ "thunderbird",
653 ++ "xulrunner",
654 ++ "zotero",
655 ++ ""
656 ++ };
657 ++
658 ++}
659 ++
660 ++#endif
661 +--
662 +cgit v0.11.2
663
664 diff --git a/x11-themes/oxygen-gtk/oxygen-gtk-1.4.1-r1.ebuild b/x11-themes/oxygen-gtk/oxygen-gtk-1.4.1-r1.ebuild
665 new file mode 100644
666 index 00000000000..02320b30c31
667 --- /dev/null
668 +++ b/x11-themes/oxygen-gtk/oxygen-gtk-1.4.1-r1.ebuild
669 @@ -0,0 +1,66 @@
670 +# Copyright 1999-2017 Gentoo Foundation
671 +# Distributed under the terms of the GNU General Public License v2
672 +
673 +EAPI=6
674 +
675 +MY_PN=${PN}3
676 +MY_P=${MY_PN}-${PV}
677 +
678 +inherit cmake-multilib
679 +
680 +DESCRIPTION="Official GTK+:3 port of KDE's Oxygen widget style"
681 +HOMEPAGE="https://store.kde.org/content/show.php/?content=136216"
682 +SRC_URI="mirror://kde/stable/${MY_PN}/${PV}/src/${MY_P}.tar.bz2"
683 +
684 +LICENSE="LGPL-2.1"
685 +KEYWORDS="~amd64 ~ppc ~x86"
686 +SLOT="3"
687 +IUSE="debug doc"
688 +
689 +COMMON_DEPEND="
690 + dev-libs/dbus-glib[${MULTILIB_USEDEP}]
691 + dev-libs/glib:2[${MULTILIB_USEDEP}]
692 + x11-libs/cairo[${MULTILIB_USEDEP}]
693 + x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}]
694 + x11-libs/gtk+:3[${MULTILIB_USEDEP}]
695 + x11-libs/libX11[${MULTILIB_USEDEP}]
696 + x11-libs/pango[${MULTILIB_USEDEP}]
697 +"
698 +DEPEND="${COMMON_DEPEND}
699 + virtual/pkgconfig
700 + doc? ( app-doc/doxygen )
701 +"
702 +RDEPEND="${COMMON_DEPEND}
703 + !x11-themes/oxygen-gtk:0
704 +"
705 +
706 +PATCHES=(
707 + "${FILESDIR}/${P}-gtk-3.14.patch"
708 + "${FILESDIR}/${PN}-1.4.6-demo-optional.patch"
709 + "${FILESDIR}/${PN}-1.4.6-tabstyle.patch"
710 +)
711 +
712 +S=${WORKDIR}/${MY_P}
713 +
714 +multilib_src_configure() {
715 + if ! multilib_is_native_abi; then
716 + local mycmakeargs=(
717 + -DENABLE_DEMO=OFF
718 + )
719 + fi
720 + cmake-utils_src_configure
721 +}
722 +
723 +src_install() {
724 + if use doc; then
725 + doxygen Doxyfile || die "Generating documentation failed"
726 + HTML_DOCS=( doc/html/. )
727 + fi
728 +
729 + cmake-multilib_src_install
730 +
731 + cat <<-EOF > 99oxygen-gtk3
732 +CONFIG_PROTECT="${EPREFIX}/usr/share/themes/oxygen-gtk/gtk-3.0"
733 +EOF
734 + doenvd 99oxygen-gtk3
735 +}
736
737 diff --git a/x11-themes/oxygen-gtk/oxygen-gtk-1.4.6-r1.ebuild b/x11-themes/oxygen-gtk/oxygen-gtk-1.4.6-r1.ebuild
738 new file mode 100644
739 index 00000000000..f85a3ad9618
740 --- /dev/null
741 +++ b/x11-themes/oxygen-gtk/oxygen-gtk-1.4.6-r1.ebuild
742 @@ -0,0 +1,69 @@
743 +# Copyright 1999-2017 Gentoo Foundation
744 +# Distributed under the terms of the GNU General Public License v2
745 +
746 +EAPI=6
747 +
748 +MY_PN=${PN}2
749 +MY_P=${MY_PN}-${PV}
750 +
751 +inherit cmake-multilib
752 +
753 +DESCRIPTION="Official GTK+:2 port of KDE's Oxygen widget style"
754 +HOMEPAGE="https://store.kde.org/content/show.php/?content=136216"
755 +SRC_URI="mirror://kde/stable/${MY_PN}/${PV}/src/${MY_P}.tar.bz2"
756 +
757 +LICENSE="LGPL-2.1"
758 +KEYWORDS="~amd64 ~ppc ~x86"
759 +SLOT="2"
760 +IUSE="debug doc"
761 +
762 +COMMON_DEPEND="
763 + dev-libs/dbus-glib[${MULTILIB_USEDEP}]
764 + dev-libs/glib:2[${MULTILIB_USEDEP}]
765 + x11-libs/cairo[${MULTILIB_USEDEP}]
766 + x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}]
767 + x11-libs/gtk+:2[${MULTILIB_USEDEP}]
768 + x11-libs/libX11[${MULTILIB_USEDEP}]
769 + x11-libs/pango[${MULTILIB_USEDEP}]
770 +"
771 +DEPEND="${COMMON_DEPEND}
772 + virtual/pkgconfig
773 + doc? ( app-doc/doxygen )
774 +"
775 +RDEPEND="${COMMON_DEPEND}
776 + !x11-themes/oxygen-gtk:0
777 +"
778 +
779 +PATCHES=(
780 + "${FILESDIR}/${P}-xul.patch"
781 + "${FILESDIR}/${P}-eclipse.patch"
782 + "${FILESDIR}/${P}-qtpaths.patch"
783 + "${FILESDIR}/${P}-warning.patch"
784 + "${FILESDIR}/${P}-demo-optional.patch"
785 + "${FILESDIR}/${P}-tabstyle.patch"
786 +)
787 +
788 +S=${WORKDIR}/${MY_P}
789 +
790 +multilib_src_configure() {
791 + if ! multilib_is_native_abi; then
792 + local mycmakeargs=(
793 + -DENABLE_DEMO=OFF
794 + )
795 + fi
796 + cmake-utils_src_configure
797 +}
798 +
799 +src_install() {
800 + if use doc; then
801 + doxygen Doxyfile || die "Generating documentation failed"
802 + HTML_DOCS=( doc/html/. )
803 + fi
804 +
805 + cmake-multilib_src_install
806 +
807 + cat <<-EOF > 99oxygen-gtk2
808 +CONFIG_PROTECT="${EPREFIX}/usr/share/themes/oxygen-gtk/gtk-2.0"
809 +EOF
810 + doenvd 99oxygen-gtk2
811 +}