Hello community, here is the log from the commit of package oxygen-gtk for openSUSE:Factory checked in at Mon Sep 19 21:41:37 CEST 2011.
-------- --- KDE/oxygen-gtk/oxygen-gtk.changes 2011-08-29 22:34:02.000000000 +0200 +++ /mounts/work_src_done/STABLE/oxygen-gtk/oxygen-gtk.changes 2011-09-16 21:00:47.000000000 +0200 @@ -1,0 +2,10 @@ +Fri Sep 16 18:54:05 UTC 2011 - asterios.dra...@gmail.com + +- Update to 1.1.3 + Several bug fixes and minor improvements, notably: + * Proper loading of locally installed icon themes (within KDE). + * Simpler compilation (via CMake) for non i386 architectures. + * Fix some crash due to the installation of inner shadows in some widgets. + * etc. + +------------------------------------------------------------------- Package does not exist at destination yet. Using Fallback KDE/oxygen-gtk Destination is oxygen-gtk calling whatdependson for head-i586 Old: ---- oxygen-gtk-1.1.2.tar.bz2 New: ---- oxygen-gtk-1.1.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ oxygen-gtk.spec ++++++ --- /var/tmp/diff_new_pack.xMGIj9/_old 2011-09-19 21:41:32.000000000 +0200 +++ /var/tmp/diff_new_pack.xMGIj9/_new 2011-09-19 21:41:32.000000000 +0200 @@ -18,7 +18,7 @@ Name: oxygen-gtk -Version: 1.1.2 +Version: 1.1.3 Release: 1 License: LGPL-2.0+ Summary: A Port of the default KDE Widget Theme (Oxygen), to GTK ++++++ oxygen-gtk-1.1.2.tar.bz2 -> oxygen-gtk-1.1.3.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/CMakeLists.txt new/oxygen-gtk-1.1.3/CMakeLists.txt --- old/oxygen-gtk-1.1.2/CMakeLists.txt 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/CMakeLists.txt 2011-09-15 08:53:01.000000000 +0200 @@ -13,9 +13,23 @@ set( CPACK_PACKAGE_VENDOR "h...@oxygen-icons.org" ) set( CPACK_PACKAGE_VERSION_MAJOR "1" ) set( CPACK_PACKAGE_VERSION_MINOR "1" ) -set( CPACK_PACKAGE_VERSION_PATCH "2" ) +set( CPACK_PACKAGE_VERSION_PATCH "3" ) set( CPACK_SOURCE_IGNORE_FILES "build" "^${PROJECT_SOURCE_DIR}.*/.git/" ) +################################## +# Define oxygen-gtk version string +################################## +if( EXISTS "${CMAKE_SOURCE_DIR}/.git" ) + execute_process(COMMAND sh -c "cd ${CMAKE_SOURCE_DIR} && git describe 2>/dev/null" + OUTPUT_VARIABLE OXYGEN_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif( EXISTS "${CMAKE_SOURCE_DIR}/.git" ) +STRING(COMPARE NOTEQUAL "${OXYGEN_VERSION}" "" OXYGEN_VERSION_DETECTED ) +if( NOT OXYGEN_VERSION_DETECTED ) + set( OXYGEN_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} ) +endif( NOT OXYGEN_VERSION_DETECTED ) +message( "Detected oxygen version string: ${OXYGEN_VERSION}" ) + set( CPACK_SOURCE_PACKAGE_FILE_NAME "oxygen-gtk-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}" ) include( CPack ) ######################## @@ -27,6 +41,11 @@ set( OXYGEN_DEBUG 0 ) endif( NOT DEFINED OXYGEN_DEBUG ) +# Set to 1 to enable debug logs regarding inner shadows +if( NOT DEFINED OXYGEN_DEBUG_INNERSHADOWS ) + set( OXYGEN_DEBUG_INNERSHADOWS 0 ) +endif( NOT DEFINED OXYGEN_DEBUG_INNERSHADOWS ) + # Set to 1 to replace gtk stock icons # with oxygen-icons if( NOT DEFINED OXYGEN_ICON_HACK ) @@ -68,10 +87,10 @@ ARGS --variable=prefix gtk+-2.0 OUTPUT_VARIABLE GTK_PREFIX ) + message( "Info: using PKGCONFIG_EXECUTABLE to set the installation prefix" ) set(CMAKE_INSTALL_PREFIX ${GTK_PREFIX} CACHE PATH "GTK install prefix" FORCE ) - endif() # X11 @@ -97,49 +116,65 @@ # installation directories ########################## exec_program( - ${PKGCONFIG_EXECUTABLE} - ARGS --variable=gtk_binary_version gtk+-2.0 - OUTPUT_VARIABLE GTK_BIN_VERSION ) + ${PKGCONFIG_EXECUTABLE} + ARGS --variable=gtk_binary_version gtk+-2.0 + OUTPUT_VARIABLE GTK_BIN_VERSION ) + +if( DEFINED LIB_SUFFIX OR NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ) + + message( "Info: using LIB_SUFFIX to set the theme engine installation path" ) + set( INSTALL_PATH_GTK_ENGINES "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/gtk-2.0/${GTK_BIN_VERSION}/engines" CACHE PATH "The directory in which to install the theme engine library( eg. /usr/lib/gtk-2.0/2.4.0/engines )" ) + +else() + + exec_program( + ${PKGCONFIG_EXECUTABLE} + ARGS --variable=libdir gtk+-2.0 + OUTPUT_VARIABLE GTK_LIBDIR_PREFIX ) + + message( "Info: using PKGCONFIG_EXECUTABLE to set the theme engine installation path" ) + set( INSTALL_PATH_GTK_ENGINES "${GTK_LIBDIR_PREFIX}/gtk-2.0/${GTK_BIN_VERSION}/engines" CACHE PATH "The directory in which to install the theme engine library( eg. /usr/lib/gtk-2.0/2.4.0/engines )" ) + +endif() -set( INSTALL_PATH_GTK_ENGINES "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/gtk-2.0/${GTK_BIN_VERSION}/engines" CACHE PATH "The directory in which to install the theme engine library( eg. /usr/lib/gtk-2.0/2.4.0/engines )" ) set( INSTALL_PATH_GTK_THEMES "${CMAKE_INSTALL_PREFIX}/share/themes" CACHE PATH "The directory in which to install the theme data( eg. /usr/share/themes )" ) set( GTK_THEME_DIR ${INSTALL_PATH_GTK_THEMES}/oxygen-gtk ) -# adjust flags based on gtk version +# First emit all warnings in one place +# Warn user if dbus-glib not found +if( NOT DBUS_FOUND ) + message( "Warning: dbus-glib-1 <http://dbus.freedesktop.org/releases/dbus-glib/> could not be found on your system.\nD-Bus is a simple inter-process communication system. It is used for GTK applications to be updated on the fly when KDE configuration is changed." ) +endif( NOT DBUS_FOUND ) + +# Adjust flags based on gtk version and warn user if needed if( ENABLE_INNER_SHADOWS_HACK AND GTK_VERSION VERSION_LESS 2.24.2 ) - message(" Disabling ENABLE_INNER_SHADOWS_HACK because Gtk version is too old (needed 2.24.2, found ${GTK_VERSION}) " ) + message( "Warning: disabling inner shadows hack because GTK version is too old (needed 2.24.2, found ${GTK_VERSION})" ) set( ENABLE_INNER_SHADOWS_HACK 0 ) -endif() +endif( ENABLE_INNER_SHADOWS_HACK AND GTK_VERSION VERSION_LESS 2.24.2 ) ######### # summary ######### -message( "" ) message( "Flags: " ) -message( " HAVE_DBUS ${HAVE_DBUS}" ) message( " OXYGEN_DEBUG ${OXYGEN_DEBUG}" ) +message( " OXYGEN_DEBUG_INNERSHADOWS ${OXYGEN_DEBUG_INNERSHADOWS}" ) +message( " HAVE_DBUS ${HAVE_DBUS}" ) message( " OXYGEN_ICON_HACK ${OXYGEN_ICON_HACK}" ) message( " OXYGEN_FORCE_KDE_ICONS_AND_FONTS ${OXYGEN_FORCE_KDE_ICONS_AND_FONTS}" ) message( " ENABLE_COMBOBOX_LIST_RESIZE ${ENABLE_COMBOBOX_LIST_RESIZE}" ) message( " ENABLE_INNER_SHADOWS_HACK ${ENABLE_INNER_SHADOWS_HACK}" ) message( " ENABLE_GROUPBOX_HACK ${ENABLE_GROUPBOX_HACK}" ) message( "" ) -message( "Path: " ) +message( "Paths: " ) message( " Installing the GTK theme engine library to: ${INSTALL_PATH_GTK_ENGINES}" ) message( " Installing the GTK theme engine data to: ${GTK_THEME_DIR}" ) message( "" ) -if( NOT DBUS_FOUND ) - message( "Warning: " ) - message( "dbus-glib-1 <http://dbus.freedesktop.org/releases/dbus-glib/> could not be found on your system. dbus is a simple inter process communication system. It is used for Gtk applications to be updated 'on fly' when KDE configuration is changed." ) - message( "" ) -endif( NOT DBUS_FOUND ) - ###################################################################### # Setup definitions and directories to be used for linking and include ###################################################################### link_directories( ${GTK_LIBRARY_DIRS} ${CAIRO_LIBRARY_DIRS} ${DBUS_LIBRARY_DIRS} ) -include_directories( ${GTK_INCLUDE_DIRS} ${CAIRO_INCLUDE_DIRD} ${DBUS_INCLUDE_DIRS} ${X11_X11_INCLUDE_PATH} ) +include_directories( ${GTK_INCLUDE_DIRS} ${CAIRO_INCLUDE_DIRS} ${DBUS_INCLUDE_DIRS} ${X11_X11_INCLUDE_PATH} ) ############################# # generate configuration file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/INSTALL new/oxygen-gtk-1.1.3/INSTALL --- old/oxygen-gtk-1.1.2/INSTALL 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/INSTALL 2011-09-15 08:53:01.000000000 +0200 @@ -15,9 +15,14 @@ cmake -DCMAKE_INSTALL_PREFIX=`pkg-config --variable=prefix gtk+-2.0` ../ -2/ on 64 bits machine an extra flag is needed at the CMake stage: +2/ when using the default installation prefix, the theme engine should also automatically get installed in +the correct location. However, if a custom CMAKE_INSTALL_PREFIX location is set, an extra flag is needed at +the CMake stage, to compile oxygen-gtk on a 64 bits machine (for instance): - cmake -DLIB_SUFFIX=64 ../ + cmake -DCMAKE_INSTALL_PREFIX=your_path -DLIB_SUFFIX=64 ../ + +For other types of architectures (except, notably, i386) it might also be necessary to set the proper value for LIB_SUFFIX. +It is left to the user to figure which value must be used. 3/ make -jX uses X parallel jobs so that compilation would speed up on SMP machines with X cores/CPUs/threads diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/README new/oxygen-gtk-1.1.3/README --- old/oxygen-gtk-1.1.2/README 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/README 2011-09-15 08:53:01.000000000 +0200 @@ -29,7 +29,9 @@ IV.2 Some details on some files in src IV.3 Some details on some files in animations -V. example configuration (aka: how to select the oxygen-gtk style) +V. Example configuration (aka: how to select the oxygen-gtk style) + +VI. How to determine oxygen-gtk version I. introduction --------------- @@ -238,7 +240,7 @@ oxygensignal: a convenience class to handle signal/callback connections and disconnections. -V. example configuration (aka: how to select the oxygen-gtk style) +V. Example configuration (aka: how to select the oxygen-gtk style) ------------------------------------------------------------------ Below is a 'sample' .gtkrc-2.0 file used to select oxygen-gtk for a style. For kde users this should be copied to $HOME/.gtkrc-2.0-kde @@ -258,3 +260,9 @@ gtk-theme-name="oxygen-gtk" gtk-font-name="Sans Serif 8" ----- end of file ----- + +VI. How to determine oxygen-gtk version +--------------------------------------- +If you have installed oxygen-gtk from source, then deleted the sources, you can still determine oxygen-gtk version when needed using either of these commands: +oxygen-gtk-demo --version +oxygen-gtk-deco --version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/config.h.cmake new/oxygen-gtk-1.1.3/config.h.cmake --- old/oxygen-gtk-1.1.2/config.h.cmake 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/config.h.cmake 2011-09-15 08:53:01.000000000 +0200 @@ -5,6 +5,9 @@ #ifndef OXYGEN_DEBUG # define OXYGEN_DEBUG @OXYGEN_DEBUG@ #endif +#ifndef OXYGEN_DEBUG_INNERSHADOWS +# define OXYGEN_DEBUG_INNERSHADOWS @OXYGEN_DEBUG_INNERSHADOWS@ +#endif #define OXYGEN_ICON_HACK @OXYGEN_ICON_HACK@ #define OXYGEN_FORCE_KDE_ICONS_AND_FONTS @OXYGEN_FORCE_KDE_ICONS_AND_FONTS@ #define HAVE_DBUS @HAVE_DBUS@ @@ -12,4 +15,6 @@ #define ENABLE_INNER_SHADOWS_HACK @ENABLE_INNER_SHADOWS_HACK@ #define ENABLE_GROUPBOX_HACK @ENABLE_GROUPBOX_HACK@ +#define OXYGEN_VERSION "@OXYGEN_VERSION@" + #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/demo/CMakeLists.txt new/oxygen-gtk-1.1.3/demo/CMakeLists.txt --- old/oxygen-gtk-1.1.2/demo/CMakeLists.txt 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/demo/CMakeLists.txt 2011-09-15 08:53:01.000000000 +0200 @@ -1,3 +1,6 @@ +# For config.h to be available +include_directories( ${CMAKE_BINARY_DIR} ) + ########### next target ############### set( oxygen_gtk_demo_SOURCES oxygenbuttondemowidget.cpp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/demo/oxygen_version.h new/oxygen-gtk-1.1.3/demo/oxygen_version.h --- old/oxygen-gtk-1.1.2/demo/oxygen_version.h 1970-01-01 01:00:00.000000000 +0100 +++ new/oxygen-gtk-1.1.3/demo/oxygen_version.h 2011-09-15 08:53:01.000000000 +0200 @@ -0,0 +1,39 @@ +/* +* this file is part of the oxygen gtk engine +* Copyright (c) 2010 Hugo Pereira Da Costa <h...@oxygen-icons.org> +* Copyright (c) 2010 Ruslan Kabatsayev <b7.10110...@gmail.com> +* +* based on the Null Theme Engine for Gtk+. +* Copyright (c) 2008 Robert Staudinger <robert.staudin...@gmail.com> +* +* 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 <iostream> +#include <cstdlib> +#include "config.h" + +inline void processCommandLine(int argc, char** argv) +{ + if(argc>1) + { + if(std::string(argv[1])=="--version") + { + std::cout << OXYGEN_VERSION << std::endl; + exit(0); + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/demo/oxygengtkdeco_main.cpp new/oxygen-gtk-1.1.3/demo/oxygengtkdeco_main.cpp --- old/oxygen-gtk-1.1.2/demo/oxygengtkdeco_main.cpp 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/demo/oxygengtkdeco_main.cpp 2011-09-15 08:53:01.000000000 +0200 @@ -25,6 +25,7 @@ #include <gtk/gtk.h> #include <dlfcn.h> #include <string> +#include "oxygen_version.h" enum WinDecoOptions { @@ -309,6 +310,8 @@ // initialize gtk gtk_init(&argc, &argv); + processCommandLine(argc,argv); + // draw mw0=gtk_window_new(GTK_WINDOW_TOPLEVEL); mw1=gtk_window_new(GTK_WINDOW_TOPLEVEL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/demo/oxygengtkdemo_main.cpp new/oxygen-gtk-1.1.3/demo/oxygengtkdemo_main.cpp --- old/oxygen-gtk-1.1.2/demo/oxygengtkdemo_main.cpp 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/demo/oxygengtkdemo_main.cpp 2011-09-15 08:53:01.000000000 +0200 @@ -21,6 +21,7 @@ * MA 02110-1301, USA. */ +#include "oxygen_version.h" #include "oxygendemodialog.h" //___________________________________________________________________ @@ -30,6 +31,8 @@ // initialize gtk gtk_init(&argc, &argv); + processCommandLine(argc,argv); + // dialog Oxygen::DemoDialog demoDialog; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/src/animations/oxygenhook.cpp new/oxygen-gtk-1.1.3/src/animations/oxygenhook.cpp --- old/oxygen-gtk-1.1.2/src/animations/oxygenhook.cpp 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/src/animations/oxygenhook.cpp 2011-09-15 08:53:01.000000000 +0200 @@ -42,7 +42,7 @@ std::cerr << "Oxygen::Hook::connect - typeId " << g_type_name(typeId) << " not yet installed" << std::endl; #endif - return false; + g_type_class_ref( typeId ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/src/animations/oxygeninnershadowdata.cpp new/oxygen-gtk-1.1.3/src/animations/oxygeninnershadowdata.cpp --- old/oxygen-gtk-1.1.2/src/animations/oxygeninnershadowdata.cpp 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/src/animations/oxygeninnershadowdata.cpp 2011-09-15 08:53:01.000000000 +0200 @@ -67,7 +67,6 @@ GtkAllocation allocation( Gtk::gdk_rectangle() ); gdk_window_get_geometry( window, &allocation.x, &allocation.y, &allocation.width, &allocation.height, 0L ); - // create context with clipping Cairo::Context context(gtk_widget_get_window(widget), &allocation ); @@ -79,7 +78,7 @@ gdk_cairo_set_source_window( context, window, allocation.x, allocation.y ); cairo_paint(context); - #if OXYGEN_DEBUG + #if OXYGEN_DEBUG_INNERSHADOWS // Show updated parts in random color cairo_rectangle(context,allocation.x,allocation.y,allocation.width,allocation.height); double red=((double)rand())/RAND_MAX; @@ -200,7 +199,7 @@ // store target _target = widget; - if(gdk_display_supports_composite(gdk_display_get_default()) + if(gdk_display_supports_composite(gdk_display_get_default()) && G_OBJECT_TYPE_NAME(widget) != std::string("GtkPizza") ) { _compositeEnabled = true; @@ -214,6 +213,7 @@ #if OXYGEN_DEBUG std::cerr << "Oxygen::InnerShadowData::connect -" + << " widget: " << widget << " (" << G_OBJECT_TYPE_NAME( widget ) << ")" << " child: " << child << " (" << G_OBJECT_TYPE_NAME( child ) << ")" << std::endl; #endif @@ -257,13 +257,18 @@ data._unrealizeId.connect( G_OBJECT(widget), "unrealize", G_CALLBACK( childUnrealizeNotifyEvent ), this ); GdkWindow* window(gtk_widget_get_window(widget)); - if(window && gdk_display_supports_composite(gdk_display_get_default())) + if( + // check window + ( window && gdk_display_supports_composite( gdk_display_get_default() ) ) && + + // check widget type (might move to blacklist method) + ( G_OBJECT_TYPE_NAME(widget) != std::string("GtkPizza") ) && + + // make sure widget is scrollable + ( GTK_WIDGET_GET_CLASS( widget )->set_scroll_adjustments_signal ) ) { - if(G_OBJECT_TYPE_NAME(widget) != std::string("GtkPizza")) - { - data.initiallyComposited=gdk_window_get_composited(window); - gdk_window_set_composited(window,TRUE); - } + data.initiallyComposited=gdk_window_get_composited(window); + gdk_window_set_composited(window,TRUE); } _childrenData.insert( std::make_pair( widget, data ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/src/oxygenpathlist.h new/oxygen-gtk-1.1.3/src/oxygenpathlist.h --- old/oxygen-gtk-1.1.2/src/oxygenpathlist.h 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/src/oxygenpathlist.h 2011-09-15 08:53:01.000000000 +0200 @@ -26,12 +26,15 @@ */ #include <iostream> +#include <set> #include <string> #include <vector> namespace Oxygen { + typedef std::set<std::string> PathSet; + //! utility class to handle path list //! path list class PathList: public std::vector<std::string> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/src/oxygenqtsettings.cpp new/oxygen-gtk-1.1.3/src/oxygenqtsettings.cpp --- old/oxygen-gtk-1.1.2/src/oxygenqtsettings.cpp 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/src/oxygenqtsettings.cpp 2011-09-15 08:53:01.000000000 +0200 @@ -84,6 +84,7 @@ _toolBarAnimationsDuration( 50 ), _buttonSize( ButtonDefault ), _frameBorder( BorderDefault ), + _windecoBlendType( FollowStyleHint ), _activeShadowConfiguration( Palette::Active ), _inactiveShadowConfiguration( Palette::Inactive ), _argbEnabled( true ), @@ -436,12 +437,42 @@ void QtSettings::loadKdeIcons( void ) { + // update icon search path + // put existing default path in a set + PathSet searchPath; + gchar** gtkSearchPath; + int nElements; + gtk_icon_theme_get_search_path( gtk_icon_theme_get_default(), >kSearchPath, &nElements ); + for( int i=0; i<nElements; i++ ) { searchPath.insert( gtkSearchPath[i] ); } + g_free( gtkSearchPath ); + + // add kde's path. Loop is reversed because added path must be prepended. + for( PathList::const_reverse_iterator iter = _kdeIconPathList.rbegin(); iter != _kdeIconPathList.rend(); ++iter ) + { + + // remove trailing backslash, if any + std::string path( *iter ); + if( path.empty() ) continue; + if( path[path.size()-1] == '/' ) path = path.substr( 0, path.size()-1 ); + + // check if already present and prepend if not + if( searchPath.find( path ) == searchPath.end() ) + { gtk_icon_theme_prepend_search_path(gtk_icon_theme_get_default(), path.c_str() ); } + } + + #if OXYGEN_DEBUG + gtk_icon_theme_get_search_path( gtk_icon_theme_get_default(), >kSearchPath, &nElements ); + for( int i=0; i<nElements; i++ ) + { std::cerr << "Oxygen::QtSettings::loadKdeIcons - icon theme search path: " << gtkSearchPath[i] << std::endl; } + #endif + // load icon theme and path to gtk _iconThemes.clear(); _kdeIconTheme = _kdeGlobals.getOption( "[Icons]", "Theme" ).toVariant<std::string>("oxygen"); // store to settings GtkSettings* settings( gtk_settings_get_default() ); + gtk_settings_set_string_property( settings, "gtk-icon-theme-name", _kdeIconTheme.c_str(), "oxygen-gtk" ); gtk_settings_set_string_property( settings, "gtk-fallback-icon-theme-name", _kdeFallbackIconTheme.c_str(), "oxygen-gtk" ); @@ -906,6 +937,13 @@ else if( titleAlign == "Right" ) _titleAlignment = PANGO_ALIGN_RIGHT; else _titleAlignment = PANGO_ALIGN_CENTER; + // Windeco radial gradient enable option + std::string wdBlendType( oxygen.getValue( "[Windeco]", "BlendColor", "Follow Style Hint" ) ); + if( wdBlendType == "Follow Style Hint" ) _windecoBlendType=FollowStyleHint; + else if( wdBlendType == "Radial Gradient" ) _windecoBlendType=RadialGradient; + else if( wdBlendType == "Solid Color" ) _windecoBlendType=SolidColor; + else _windecoBlendType=FollowStyleHint; + // shadow configurations _activeShadowConfiguration.initialize( oxygen ); _inactiveShadowConfiguration.initialize( oxygen ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/src/oxygenqtsettings.h new/oxygen-gtk-1.1.3/src/oxygenqtsettings.h --- old/oxygen-gtk-1.1.2/src/oxygenqtsettings.h 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/src/oxygenqtsettings.h 2011-09-15 08:53:01.000000000 +0200 @@ -283,6 +283,15 @@ FrameBorder frameBorder( void ) const { return _frameBorder; } + enum WindecoBlendType { + SolidColor, + RadialGradient, + FollowStyleHint + }; + + WindecoBlendType windecoBlendType( void ) const + { return _windecoBlendType; } + //! shadow configuration const ShadowConfiguration& shadowConfiguration( Palette::Group group ) const { @@ -502,6 +511,9 @@ //! frame border FrameBorder _frameBorder; + //! Window decoration blend type + WindecoBlendType _windecoBlendType; + //! active shadows ShadowConfiguration _activeShadowConfiguration; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/src/oxygenstyle.cpp new/oxygen-gtk-1.1.3/src/oxygenstyle.cpp --- old/oxygen-gtk-1.1.2/src/oxygenstyle.cpp 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/src/oxygenstyle.cpp 2011-09-15 08:53:01.000000000 +0200 @@ -2402,7 +2402,12 @@ // enable gradient if XID is not passed bool gradient=true; - if( windowStrings && windowStrings[2] ) + QtSettings::WindecoBlendType blendType(settings().windecoBlendType()); + if( blendType==QtSettings::SolidColor ) + { + gradient=false; + } + else if( blendType==QtSettings::FollowStyleHint && windowStrings && windowStrings[2] ) { Window window((Window)windowStrings[2]); Display* display( GDK_DISPLAY_XDISPLAY(gdk_display_get_default()) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk-1.1.2/src/oxygenwindowmanager.cpp new/oxygen-gtk-1.1.3/src/oxygenwindowmanager.cpp --- old/oxygen-gtk-1.1.2/src/oxygenwindowmanager.cpp 2011-08-13 18:32:33.000000000 +0200 +++ new/oxygen-gtk-1.1.3/src/oxygenwindowmanager.cpp 2011-09-15 08:53:01.000000000 +0200 @@ -566,6 +566,7 @@ _blackList.push_back( "GladeDesignLayout" ); _blackList.push_back( "SPHRuler" ); _blackList.push_back( "SPVRuler" ); + _blackList.push_back( "GooCanvas" ); } //________________________________________________________________________________ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org