From cb8343823acdb727ff27c341d39d4ca5c369f736 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Sat, 24 Jun 2017 15:58:44 +0200 Subject: x11-themes/oxygen-gtk: EAPI 6, multilib, fix tabstyle, gtk-3.14 spinner Fix HOMEPAGE. Reported-by: Yichao Zhou Thanks-to: Alexey Kharlamov Gentoo-bug: 562274, 563802 Package-Manager: Portage-2.3.6, Repoman-2.3.1 --- .../files/oxygen-gtk-1.4.1-gtk-3.14.patch | 151 ++++++++++++++ .../files/oxygen-gtk-1.4.6-demo-optional.patch | 35 ++++ .../files/oxygen-gtk-1.4.6-eclipse.patch | 228 +++++++++++++++++++++ .../files/oxygen-gtk-1.4.6-qtpaths.patch | 19 ++ .../files/oxygen-gtk-1.4.6-tabstyle.patch | 16 ++ .../files/oxygen-gtk-1.4.6-warning.patch | 24 +++ .../oxygen-gtk/files/oxygen-gtk-1.4.6-xul.patch | 113 ++++++++++ x11-themes/oxygen-gtk/oxygen-gtk-1.4.1-r1.ebuild | 66 ++++++ x11-themes/oxygen-gtk/oxygen-gtk-1.4.6-r1.ebuild | 69 +++++++ 9 files changed, 721 insertions(+) create mode 100644 x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.1-gtk-3.14.patch create mode 100644 x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-demo-optional.patch create mode 100644 x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-eclipse.patch create mode 100644 x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-qtpaths.patch create mode 100644 x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-tabstyle.patch create mode 100644 x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-warning.patch create mode 100644 x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-xul.patch create mode 100644 x11-themes/oxygen-gtk/oxygen-gtk-1.4.1-r1.ebuild create mode 100644 x11-themes/oxygen-gtk/oxygen-gtk-1.4.6-r1.ebuild (limited to 'x11-themes') 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 new file mode 100644 index 000000000000..3f6d323a94c3 --- /dev/null +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.1-gtk-3.14.patch @@ -0,0 +1,151 @@ +From 75d1884df6740c268b665935af909a9a1e1ef6be Mon Sep 17 00:00:00 2001 +From: Hugo Pereira Da Costa +Date: Fri, 14 Nov 2014 18:37:33 +0100 +Subject: update spinner code (copied from Adwaita) to have working spinner for + gtk+-3.14 BUG: 340901 + +--- + rc/gtk-spinner.css | 128 +++++++++-------------------------------------------- + 1 file changed, 20 insertions(+), 108 deletions(-) + +diff --git a/rc/gtk-spinner.css b/rc/gtk-spinner.css +index f90a8d4..d20264f 100644 +--- a/rc/gtk-spinner.css ++++ b/rc/gtk-spinner.css +@@ -1,114 +1,26 @@ +-/* spinners */ +-/* +-this is copied from Adwaita. +-cannot be implemented in the code because of the 'new' way gtk3 renders spinners +-*/ +-@keyframes spinner { +- 0.00% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)); } +- +- 12.5% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)); } +- +- 25.0% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)); } +- +- 37.5% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)); } +- +- 50.0% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)); } +- +- 62.5% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)); } +- +- 75.0% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)); } +- +- 87.5% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)); } ++/********************* ++ * Spinner Animation * ++ *********************/ ++@keyframes spin ++{ ++ to { -gtk-icon-transform: rotate(1turn); } ++} + +- 100% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)); } ++.spinner ++{ ++ background-image: none; ++ background-color: blue; ++ opacity: 0; ++ -gtk-icon-source: -gtk-icontheme("process-working-symbolic"); + } + +-.spinner { +- background-color: transparent; +- background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)); +- background-position: 14% 14%, 0% 50%, 14% 86%, 50% 100%, 86% 86%, 100% 50%, 86% 14%, 50% 0%; +- background-size: 20% 20%; +- background-repeat: no-repeat; ++.spinner:active ++{ ++ opacity: 1; ++ animation: spin 1s linear infinite; + } + +-.spinner:active { +- background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.875)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.750)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.625)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.500)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.375)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.250)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.125)), to(transparent)), +- -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)); +- animation: spinner 1s infinite linear; ++.spinner:active:insensitive ++{ ++ opacity: 0.5; + } +-- +cgit v0.11.2 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 new file mode 100644 index 000000000000..b49620b2e22f --- /dev/null +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-demo-optional.patch @@ -0,0 +1,35 @@ +From d5e9122133ad01da8cdbb27fe8e9f83e9a5097d4 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Sat, 25 Oct 2014 16:27:10 +0200 +Subject: cmake: add an option to disable the build of the demo + +Useful when building only the style; the default behaviour is unchanged +(i.e. the demo is built). +--- + CMakeLists.txt | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1f576d2..5ab1ee1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -36,6 +36,8 @@ include( CPack ) + # Package specific flags + ######################## + ++option(ENABLE_DEMO "Build the demo." ON) ++ + # Set to 1 to enable debugging information + if( NOT DEFINED OXYGEN_DEBUG ) + set( OXYGEN_DEBUG 0 ) +@@ -200,5 +202,7 @@ configure_file( config.h.cmake ${CMAKE_BINARY_DIR}/config.h ) + add_subdirectory( src ) + add_subdirectory( rc ) + add_subdirectory( special-icons ) +-add_subdirectory( demo ) ++if( ENABLE_DEMO ) ++ add_subdirectory( demo ) ++endif( ENABLE_DEMO ) + +-- +cgit v0.11.2 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 new file mode 100644 index 000000000000..54fa572bc6b3 --- /dev/null +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-eclipse.patch @@ -0,0 +1,228 @@ +From ef3c0cdfa18a6f612e5ba84e42bcd288374669fb Mon Sep 17 00:00:00 2001 +From: Hugo Pereira Da Costa +Date: Thu, 6 Apr 2017 17:32:51 +0200 +Subject: Patch from Matt Whitlock to fix crash in ecclipse about invalid + columns. BUG: 338012 + +--- + src/oxygengtkcellinfo.cpp | 78 +++++++++++++++++++---------------------------- + src/oxygengtkcellinfo.h | 22 ++++++++----- + 2 files changed, 46 insertions(+), 54 deletions(-) + +diff --git a/src/oxygengtkcellinfo.cpp b/src/oxygengtkcellinfo.cpp +index 52e0d34..8118143 100644 +--- a/src/oxygengtkcellinfo.cpp ++++ b/src/oxygengtkcellinfo.cpp +@@ -31,38 +31,41 @@ namespace Oxygen + //____________________________________________________________________________ + Gtk::CellInfo::CellInfo( GtkTreeView* treeView, int x, int y, int w, int h ): + _path(0L), +- _column(0L) ++ _column(-1) + { ++ GtkTreeViewColumn *column( 0L ); + + /* + four attempts are made to get the path from any corner of the rectangle passed in arguments. + This is necessary to handle half-hidden cells + */ +- gtk_tree_view_get_path_at_pos( treeView, (gint)x+1, (gint)y+1, &_path, &_column, 0L, 0L ); +- +- if( !_path ) gtk_tree_view_get_path_at_pos( treeView, (gint)x+1, (gint)y+h-1, &_path, &_column, 0L, 0L ); +- else return; +- +- if( !_path ) gtk_tree_view_get_path_at_pos( treeView, (gint)x+w-1, (gint)y+1, &_path, &_column, 0L, 0L ); +- else return; +- +- if( !_path ) gtk_tree_view_get_path_at_pos( treeView, (gint)x+w-1, (gint)y+h-1, &_path, &_column, 0L, 0L ); +- else return; ++ gtk_tree_view_get_path_at_pos( treeView, (gint)x+1, (gint)y+1, &_path, &column, 0L, 0L ); ++ if( !_path ) { ++ gtk_tree_view_get_path_at_pos( treeView, (gint)x+1, (gint)y+h-1, &_path, &column, 0L, 0L ); ++ if( !_path ) { ++ gtk_tree_view_get_path_at_pos( treeView, (gint)x+w-1, (gint)y+1, &_path, &column, 0L, 0L ); ++ if( !_path ) { ++ gtk_tree_view_get_path_at_pos( treeView, (gint)x+w-1, (gint)y+h-1, &_path, &column, 0L, 0L ); ++ if( !_path ) return; ++ } ++ } ++ } + ++ _column = indexOfColumn( treeView, column ); + } + + //____________________________________________________________________________ + bool Gtk::CellInfo::isLastVisibleColumn( GtkTreeView* treeView ) const + { +- bool isLast( false ); ++ bool isLast( true ); + GList* columns( gtk_tree_view_get_columns( treeView ) ); +- for( GList *child = g_list_last( columns ); child; child = g_list_previous( child ) ) ++ for( GList *child = g_list_nth( columns, _column ); ( child = g_list_next( child ) ); ) + { + if( !GTK_IS_TREE_VIEW_COLUMN( child->data ) ) continue; + GtkTreeViewColumn* column( GTK_TREE_VIEW_COLUMN( child->data ) ); + if( gtk_tree_view_column_get_visible( column ) ) + { +- isLast = (_column == column ); ++ isLast = false; + break; + } + +@@ -75,15 +78,15 @@ namespace Oxygen + //____________________________________________________________________________ + bool Gtk::CellInfo::isFirstVisibleColumn( GtkTreeView* treeView ) const + { +- bool isFirst( false ); ++ bool isFirst( true ); + GList* columns( gtk_tree_view_get_columns( treeView ) ); +- for( GList *child = g_list_first( columns ); child; child = g_list_next( child ) ) ++ for( GList *child = g_list_nth( columns, _column ); ( child = g_list_previous( child ) ); ) + { + if( !GTK_IS_TREE_VIEW_COLUMN( child->data ) ) continue; + GtkTreeViewColumn* column( GTK_TREE_VIEW_COLUMN( child->data ) ); + if( gtk_tree_view_column_get_visible( column ) ) + { +- isFirst= (_column == column ); ++ isFirst = false; + break; + } + +@@ -98,34 +101,7 @@ namespace Oxygen + { + // check expander column + GtkTreeViewColumn* expanderColumn( gtk_tree_view_get_expander_column( treeView ) ); +- if( !expanderColumn || _column == expanderColumn ) return false; +- +- bool found( false ); +- bool isLeft( false ); +- +- // get all columns +- GList* columns( gtk_tree_view_get_columns( treeView ) ); +- for( GList *child = g_list_first( columns ); child; child = g_list_next( child ) ) +- { +- if( !GTK_IS_TREE_VIEW_COLUMN( child->data ) ) continue; +- GtkTreeViewColumn* column( GTK_TREE_VIEW_COLUMN( child->data ) ); +- if( column == expanderColumn ) +- { +- if( found ) +- { +- +- isLeft = true; +- break; +- +- } else break; +- +- } else if( found ) break; +- else if( column == _column ) found = true; +- +- } +- +- if( columns ) g_list_free( columns ); +- return isLeft; ++ return expanderColumn && _column < indexOfColumn( treeView, expanderColumn ); + + } + +@@ -203,13 +179,23 @@ namespace Oxygen + { + GdkRectangle out( Gtk::gdk_rectangle() ); + if( treeView && isValid() ) +- { gtk_tree_view_get_background_area( treeView, _path, _column, &out ); } ++ { gtk_tree_view_get_background_area( treeView, _path, gtk_tree_view_get_column( treeView, _column ), &out ); } + + return out; + + } + + //____________________________________________________________________________ ++ gint Gtk::CellInfo::indexOfColumn( GtkTreeView* treeView, GtkTreeViewColumn* column ) ++ { ++ GList* columns( gtk_tree_view_get_columns( treeView ) ); ++ if( !columns ) return -1; ++ gint index( g_list_index( columns, column ) ); ++ g_list_free( columns ); ++ return index; ++ } ++ ++ //____________________________________________________________________________ + Gtk::CellInfoFlags::CellInfoFlags( GtkTreeView* treeView, const CellInfo& cellInfo ): + _depth( cellInfo.depth() ), + _expanderSize(0), +diff --git a/src/oxygengtkcellinfo.h b/src/oxygengtkcellinfo.h +index 919d020..58dd441 100644 +--- a/src/oxygengtkcellinfo.h ++++ b/src/oxygengtkcellinfo.h +@@ -47,7 +47,7 @@ namespace Oxygen + //! empty constructor + explicit CellInfo( void ): + _path( 0L ), +- _column( 0L ) ++ _column( -1 ) + {} + + //! copy constructor +@@ -60,8 +60,12 @@ namespace Oxygen + /*! unfortunately the path retrieval does not always work because x and y must be positive */ + explicit CellInfo( GtkTreeView* treeView, int x, int y ): + _path(0L), +- _column(0L) +- { gtk_tree_view_get_path_at_pos( treeView, x, y, &_path, &_column, 0L, 0L ); } ++ _column(-1) ++ { ++ GtkTreeViewColumn *column( 0L ); ++ gtk_tree_view_get_path_at_pos( treeView, x, y, &_path, &column, 0L, 0L ); ++ _column = indexOfColumn( treeView, column ); ++ } + + //! construct from tree view and rectangle + explicit CellInfo( GtkTreeView* treeView, int x, int y, int w, int h ); +@@ -92,7 +96,7 @@ namespace Oxygen + { + if( _path ) gtk_tree_path_free( _path ); + _path = 0L; +- _column = 0L; ++ _column = -1; + } + + //!@name accessors +@@ -100,7 +104,7 @@ namespace Oxygen + + //! true if valid + bool isValid( void ) const +- { return _path && _column; } ++ { return _path && _column >= 0; } + + //! returns true if column is the last one + bool isLastVisibleColumn( GtkTreeView* ) const; +@@ -110,7 +114,7 @@ namespace Oxygen + + //! returns true if column is the one that contains expander + bool isExpanderColumn( GtkTreeView* treeView ) const +- { return _column == gtk_tree_view_get_expander_column( treeView ); } ++ { return _column >= 0 && _column == indexOfColumn( treeView, gtk_tree_view_get_expander_column( treeView ) ); } + + //! returs true if column is let of expander column + bool isLeftOfExpanderColumn( GtkTreeView* ) const; +@@ -152,8 +156,8 @@ namespace Oxygen + //! path + GtkTreePath* _path; + +- //! column +- GtkTreeViewColumn* _column; ++ //! column index ++ gint _column; + + //! streamer + friend std::ostream& operator << (std::ostream& out, const CellInfo& info ) +@@ -168,6 +172,8 @@ namespace Oxygen + return out; + } + ++ static gint indexOfColumn( GtkTreeView*, GtkTreeViewColumn* ); ++ + }; + + //! cell info flags +-- +cgit v0.11.2 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 new file mode 100644 index 000000000000..87e5197e90d5 --- /dev/null +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-qtpaths.patch @@ -0,0 +1,19 @@ +Patch kindly borrowed from openSUSE + +Gentoo-bug: 563802 + +--- a/src/oxygenqtsettings.cpp ++++ b/src/oxygenqtsettings.cpp +@@ -277,7 +277,11 @@ + + // load icon install prefix + gchar* path = 0L; +- if( runCommand( "kde4-config --path config", path ) && path ) ++ if( runCommand( "qtpaths --paths ConfigLocation", path ) && path ) ++ { ++ out.split( path ); ++ g_free( path ); ++ } else if( runCommand( "kde4-config --path config", path ) && path ) + { + + out.split( path ); 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 new file mode 100644 index 000000000000..7f19434bef8b --- /dev/null +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-tabstyle.patch @@ -0,0 +1,16 @@ +TS_SINGLE tab style has been deprecated in oxygen qt style, +which should be replaced by TS_PLAIN. + +Gentoo-bug: 563802 + +--- a/rc/oxygenrc 2014-01-17 14:47:36.000000000 +0100 ++++ b/rc/oxygenrc 2017-06-24 15:49:36.607616582 +0200 +@@ -31,7 +31,7 @@ + ScrollBarBevel=true + ProgressBarAnimated=true + MenuHighlightMode=MM_DARK +-TabStyle=TS_SINGLE ++TabStyle=TS_PLAIN + + WindowDragEnabled=true + WindowDragMode=WD_FULL 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 new file mode 100644 index 000000000000..0f0b92aaaaef --- /dev/null +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-warning.patch @@ -0,0 +1,24 @@ +From 7a5425d86e8fd5327091ce736a9680317a0c3747 Mon Sep 17 00:00:00 2001 +From: Hugo Pereira Da Costa +Date: Thu, 6 Apr 2017 19:18:13 +0200 +Subject: fixed compiler warning + +--- + src/oxygenstyle.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/oxygenstyle.cpp b/src/oxygenstyle.cpp +index 75e0fcc..374810f 100644 +--- a/src/oxygenstyle.cpp ++++ b/src/oxygenstyle.cpp +@@ -2171,7 +2171,7 @@ namespace Oxygen + { + + // do nothing if not selected nor hovered +- if( !options & (Hover|Selected ) ) return; ++ if( !(options & (Hover|Selected )) ) return; + + Palette::Group group( (options & Focus) ? Palette::Active : Palette::Inactive ); + ColorUtils::Rgba base( _settings.palette().color( group, Palette::Selected ) ); +-- +cgit v0.11.2 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 new file mode 100644 index 000000000000..b2308bdd4d22 --- /dev/null +++ b/x11-themes/oxygen-gtk/files/oxygen-gtk-1.4.6-xul.patch @@ -0,0 +1,113 @@ +From b1ee5fb80c44c6c8a625333af1cfdc997d408805 Mon Sep 17 00:00:00 2001 +From: Hugo Pereira Da Costa +Date: Sat, 18 Jul 2015 20:09:28 +0200 +Subject: moved xul application names to dedicated header file, added a number + of xul applications to prevent crash for these CCBUG: 341181 + +--- + src/oxygenapplicationname.cpp | 18 ++----------- + src/oxygenxulapplicationnames.h | 56 +++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 58 insertions(+), 16 deletions(-) + create mode 100644 src/oxygenxulapplicationnames.h + +diff --git a/src/oxygenapplicationname.cpp b/src/oxygenapplicationname.cpp +index feb5a23..17c8a1a 100644 +--- a/src/oxygenapplicationname.cpp ++++ b/src/oxygenapplicationname.cpp +@@ -25,6 +25,7 @@ + + #include "oxygenapplicationname.h" + #include "oxygengtkutils.h" ++#include "oxygenxulapplicationnames.h" + #include "config.h" + + #include +@@ -79,23 +80,8 @@ namespace Oxygen + gtkAppName == "chromium" || + gtkAppName == "chromium-browser" || + gtkAppName == "google-chrome" ) _name = GoogleChrome; +- else { + +- // tag all mozilla-like applications (XUL) +- static const std::string XulAppNames[] = +- { +- "firefox", +- "thunderbird", +- "seamonkey", +- "iceweasel", +- "icecat", +- "icedove", +- "xulrunner", +- "komodo", +- "aurora", +- "zotero", +- "" +- }; ++ else { + + for( unsigned int index = 0; !XulAppNames[index].empty(); ++index ) + { +diff --git a/src/oxygenxulapplicationnames.h b/src/oxygenxulapplicationnames.h +new file mode 100644 +index 0000000..252a1fc +--- /dev/null ++++ b/src/oxygenxulapplicationnames.h +@@ -0,0 +1,56 @@ ++#ifndef oxygenxulapplicationname_h ++#define oxygenxulapplicationname_h ++/* ++* this file is part of the oxygen gtk engine ++* Copyright (c) 2010 Hugo Pereira Da Costa ++* ++* inspired notably from kdelibs/kdeui/color/kcolorutils.h ++* Copyright (C) 2007 Matthew Woehlke ++* Copyright (C) 2007 Thomas Zander ++* Copyright (C) 2007 Zack Rusin ++* ++* This library is free software; you can redistribute it and/or ++* modify it under the terms of the GNU Lesser General Public ++* License as published by the Free Software Foundation; either ++* version 2 of the License, or( at your option ) any later version. ++* ++* This library is distributed in the hope that it will be useful, ++* but WITHOUT ANY WARRANTY; without even the implied warranty of ++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++* Lesser General Public License for more details. ++* ++* You should have received a copy of the GNU Lesser General Public ++* License along with this library; if not, write to the Free ++* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, ++* MA 02110-1301, USA. ++*/ ++ ++#include ++ ++namespace Oxygen ++{ ++ ++ // tag all mozilla-like applications (XUL) ++ static const std::string XulAppNames[] = ++ { ++ "aurora", ++ "earlybird", ++ "icecat", ++ "icedove", ++ "iceweasel", ++ "instantbird", ++ "firefox", ++ "fossamail", ++ "komodo", ++ "newmoon", ++ "palemoon", ++ "seamonkey", ++ "thunderbird", ++ "xulrunner", ++ "zotero", ++ "" ++ }; ++ ++} ++ ++#endif +-- +cgit v0.11.2 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 new file mode 100644 index 000000000000..02320b30c319 --- /dev/null +++ b/x11-themes/oxygen-gtk/oxygen-gtk-1.4.1-r1.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +MY_PN=${PN}3 +MY_P=${MY_PN}-${PV} + +inherit cmake-multilib + +DESCRIPTION="Official GTK+:3 port of KDE's Oxygen widget style" +HOMEPAGE="https://store.kde.org/content/show.php/?content=136216" +SRC_URI="mirror://kde/stable/${MY_PN}/${PV}/src/${MY_P}.tar.bz2" + +LICENSE="LGPL-2.1" +KEYWORDS="~amd64 ~ppc ~x86" +SLOT="3" +IUSE="debug doc" + +COMMON_DEPEND=" + dev-libs/dbus-glib[${MULTILIB_USEDEP}] + dev-libs/glib:2[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}] + x11-libs/gtk+:3[${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/pango[${MULTILIB_USEDEP}] +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig + doc? ( app-doc/doxygen ) +" +RDEPEND="${COMMON_DEPEND} + !x11-themes/oxygen-gtk:0 +" + +PATCHES=( + "${FILESDIR}/${P}-gtk-3.14.patch" + "${FILESDIR}/${PN}-1.4.6-demo-optional.patch" + "${FILESDIR}/${PN}-1.4.6-tabstyle.patch" +) + +S=${WORKDIR}/${MY_P} + +multilib_src_configure() { + if ! multilib_is_native_abi; then + local mycmakeargs=( + -DENABLE_DEMO=OFF + ) + fi + cmake-utils_src_configure +} + +src_install() { + if use doc; then + doxygen Doxyfile || die "Generating documentation failed" + HTML_DOCS=( doc/html/. ) + fi + + cmake-multilib_src_install + + cat <<-EOF > 99oxygen-gtk3 +CONFIG_PROTECT="${EPREFIX}/usr/share/themes/oxygen-gtk/gtk-3.0" +EOF + doenvd 99oxygen-gtk3 +} 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 new file mode 100644 index 000000000000..f85a3ad96185 --- /dev/null +++ b/x11-themes/oxygen-gtk/oxygen-gtk-1.4.6-r1.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +MY_PN=${PN}2 +MY_P=${MY_PN}-${PV} + +inherit cmake-multilib + +DESCRIPTION="Official GTK+:2 port of KDE's Oxygen widget style" +HOMEPAGE="https://store.kde.org/content/show.php/?content=136216" +SRC_URI="mirror://kde/stable/${MY_PN}/${PV}/src/${MY_P}.tar.bz2" + +LICENSE="LGPL-2.1" +KEYWORDS="~amd64 ~ppc ~x86" +SLOT="2" +IUSE="debug doc" + +COMMON_DEPEND=" + dev-libs/dbus-glib[${MULTILIB_USEDEP}] + dev-libs/glib:2[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}] + x11-libs/gtk+:2[${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/pango[${MULTILIB_USEDEP}] +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig + doc? ( app-doc/doxygen ) +" +RDEPEND="${COMMON_DEPEND} + !x11-themes/oxygen-gtk:0 +" + +PATCHES=( + "${FILESDIR}/${P}-xul.patch" + "${FILESDIR}/${P}-eclipse.patch" + "${FILESDIR}/${P}-qtpaths.patch" + "${FILESDIR}/${P}-warning.patch" + "${FILESDIR}/${P}-demo-optional.patch" + "${FILESDIR}/${P}-tabstyle.patch" +) + +S=${WORKDIR}/${MY_P} + +multilib_src_configure() { + if ! multilib_is_native_abi; then + local mycmakeargs=( + -DENABLE_DEMO=OFF + ) + fi + cmake-utils_src_configure +} + +src_install() { + if use doc; then + doxygen Doxyfile || die "Generating documentation failed" + HTML_DOCS=( doc/html/. ) + fi + + cmake-multilib_src_install + + cat <<-EOF > 99oxygen-gtk2 +CONFIG_PROTECT="${EPREFIX}/usr/share/themes/oxygen-gtk/gtk-2.0" +EOF + doenvd 99oxygen-gtk2 +} -- cgit v1.2.3-65-gdbad