Hello community, here is the log from the commit of package oxygen-gtk2 for openSUSE:Factory checked in at 2012-10-05 18:38:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/oxygen-gtk2 (Old) and /work/SRC/openSUSE:Factory/.oxygen-gtk2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oxygen-gtk2", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/oxygen-gtk2/oxygen-gtk2.changes 2012-07-24 17:20:16.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.oxygen-gtk2.new/oxygen-gtk2.changes 2012-10-06 18:40:02.000000000 +0200 @@ -1,0 +2,10 @@ +Fri Oct 5 08:22:12 UTC 2012 - [email protected] + +- Update to version 1.3.1 + * Thread-proof timers used for transitions and animations (kde#306671) + * Safer code for Groupbox appearance + * Proper rendering of flat GtkEntries + * Honor custom color for menu background (kde#304063) + * More testing options for the demo application + +------------------------------------------------------------------- Old: ---- oxygen-gtk2-1.3.0.tar.bz2 New: ---- oxygen-gtk2-1.3.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ oxygen-gtk2.spec ++++++ --- /var/tmp/diff_new_pack.UoUVLZ/_old 2012-10-06 18:40:03.000000000 +0200 +++ /var/tmp/diff_new_pack.UoUVLZ/_new 2012-10-06 18:40:03.000000000 +0200 @@ -17,7 +17,7 @@ Name: oxygen-gtk2 -Version: 1.3.0 +Version: 1.3.1 Release: 0 Summary: A Port of the default KDE Widget Theme (Oxygen), to GTK 2.x License: LGPL-2.1+ ++++++ oxygen-gtk2-1.3.0.tar.bz2 -> oxygen-gtk2-1.3.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/CMakeLists.txt new/oxygen-gtk2-1.3.1/CMakeLists.txt --- old/oxygen-gtk2-1.3.0/CMakeLists.txt 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/CMakeLists.txt 2012-10-03 09:50:32.000000000 +0200 @@ -13,7 +13,7 @@ set( CPACK_PACKAGE_VENDOR "[email protected]" ) set( CPACK_PACKAGE_VERSION_MAJOR "1" ) set( CPACK_PACKAGE_VERSION_MINOR "3" ) -set( CPACK_PACKAGE_VERSION_PATCH "0" ) +set( CPACK_PACKAGE_VERSION_PATCH "1" ) set( CPACK_SOURCE_IGNORE_FILES "build" "^${PROJECT_SOURCE_DIR}.*/.git/" ) ################################## diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/demo/oxygeninputdemowidget.cpp new/oxygen-gtk2-1.3.1/demo/oxygeninputdemowidget.cpp --- old/oxygen-gtk2-1.3.0/demo/oxygeninputdemowidget.cpp 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/demo/oxygeninputdemowidget.cpp 2012-10-03 09:50:32.000000000 +0200 @@ -68,6 +68,8 @@ gtk_entry_set_text( GTK_ENTRY( lineEditor ), "Example text" ); gtk_widget_show( lineEditor ); + _entries.push_back( lineEditor ); + // invisible line editor gtk_table_attach( GTK_TABLE( table ), label = gtk_label_new( "Password editor: " ), 0, 1, 1, 2, GTK_FILL, GTK_FILL, 2, 0 ); gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 ); @@ -78,6 +80,8 @@ gtk_entry_set_visibility( GTK_ENTRY( lineEditor ), false ); gtk_widget_show( lineEditor ); + _entries.push_back( lineEditor ); + // combobox gtk_table_attach( GTK_TABLE( table ), label = gtk_label_new( "Editable combobox: " ), 0, 1, 2, 3, GTK_FILL, GTK_FILL, 2, 0 ); gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 ); @@ -123,6 +127,17 @@ gtk_table_attach( GTK_TABLE( table ), spinButton = gtk_spin_button_new_with_range( 0, 100, 1 ), 1, 2, 3, 4, GTK_FILL, GTK_FILL, 2, 0 ); gtk_widget_show( spinButton ); + _entries.push_back( spinButton ); + + // flat widget button + GtkWidget* checkbutton; + gtk_table_attach( GTK_TABLE( table ), checkbutton = gtk_check_button_new_with_label( "Use flat widgets" ), 0, 2, 4, 5, GTK_FILL, GTK_FILL, 2, 0 ); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( checkbutton ), false ); + gtk_widget_show( checkbutton ); + + _flatModeChangedId.connect( G_OBJECT( checkbutton ), "toggled", G_CALLBACK( flatModeChanged ), this ); + + // separator GtkWidget* separator( gtk_hseparator_new() ); gtk_box_pack_start( GTK_BOX( mainWidget ), separator, false, true, 0 ); @@ -172,7 +187,6 @@ gtk_box_pack_start( GTK_BOX( mainWidget ), scrolledWindow, true, true, 0 ); gtk_widget_show( scrolledWindow ); - GtkWidget* checkbutton; gtk_box_pack_start( GTK_BOX( mainWidget ), checkbutton = gtk_check_button_new_with_label( "Wrap words" ), false, true, 0 ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( checkbutton ), true ); gtk_widget_show( checkbutton ); @@ -186,9 +200,17 @@ {} //____________________________________________________ - void InputDemoWidget::wrapModeChanged( GtkToggleButton* button, gpointer data ) + void InputDemoWidget::flatModeChanged( GtkToggleButton* button, gpointer data ) { + WidgetList entries( static_cast<InputDemoWidget*>( data )->_entries ); + bool state( gtk_toggle_button_get_active( button ) ); + for( WidgetList::const_iterator iter = entries.begin(); iter != entries.end(); iter++ ) + { gtk_entry_set_has_frame( GTK_ENTRY( *iter ), !state ); } + } + //____________________________________________________ + void InputDemoWidget::wrapModeChanged( GtkToggleButton* button, gpointer data ) + { GtkTextView* textView( GTK_TEXT_VIEW( static_cast<InputDemoWidget*>( data )->_textView ) ); bool state( gtk_toggle_button_get_active( button ) ); gtk_text_view_set_wrap_mode( textView, (state ? GTK_WRAP_WORD:GTK_WRAP_NONE) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/demo/oxygeninputdemowidget.h new/oxygen-gtk2-1.3.1/demo/oxygeninputdemowidget.h --- old/oxygen-gtk2-1.3.0/demo/oxygeninputdemowidget.h 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/demo/oxygeninputdemowidget.h 2012-10-03 09:50:32.000000000 +0200 @@ -28,6 +28,7 @@ #include "oxygensignal.h" #include <gtk/gtk.h> +#include <vector> namespace Oxygen { @@ -46,13 +47,23 @@ protected: //! wrap mode changed + static void flatModeChanged( GtkToggleButton*, gpointer ); + + //! wrap mode changed static void wrapModeChanged( GtkToggleButton*, gpointer ); private: + //! list of gtk entries + typedef std::vector<GtkWidget*> WidgetList; + WidgetList _entries; + //! text editor GtkWidget* _textView; + //! flat mode changed + Signal _flatModeChangedId; + //! toggle wrap mode Signal _wrapModeChangedId; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/demo/oxygentimer.cpp new/oxygen-gtk2-1.3.1/demo/oxygentimer.cpp --- old/oxygen-gtk2-1.3.0/demo/oxygentimer.cpp 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/demo/oxygentimer.cpp 2012-10-03 09:50:32.000000000 +0200 @@ -20,6 +20,7 @@ #include "oxygentimer.h" +#include <gdk/gdk.h> #include <iostream> namespace Oxygen @@ -34,7 +35,7 @@ _func = func; _data = data; - _timerId = g_timeout_add( delay, (GSourceFunc)timeOut, this ); + _timerId = gdk_threads_add_timeout( delay, (GSourceFunc)timeOut, this ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/oxygen-gtk3.patch new/oxygen-gtk2-1.3.1/oxygen-gtk3.patch --- old/oxygen-gtk2-1.3.0/oxygen-gtk3.patch 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/oxygen-gtk3.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,43 +0,0 @@ -diff --git a/src/animations/oxygenanimations.cpp b/src/animations/oxygenanimations.cpp -index 7cdfaa4..4c06baf 100644 ---- a/src/animations/oxygenanimations.cpp -+++ b/src/animations/oxygenanimations.cpp -@@ -216,6 +216,21 @@ namespace Oxygen - // check type - if( !GTK_IS_WIDGET( widget ) ) return FALSE; - -+ // comboboxes -+ /* -+ need to force the wrap-width property to 0, -+ otherwise the "appears-as-list" flag is not respected, which additionally breaks the widget rendering. -+ This has to be done soon enoug to avoid crash with latest gtk3 versions -+ */ -+ if( -+ GTK_IS_COMBO_BOX( widget ) && -+ Gtk::gtk_combobox_appears_as_list( widget ) && -+ !gtk_combo_box_get_has_entry( GTK_COMBO_BOX( widget ) ) ) -+ { -+ gtk_combo_box_set_wrap_width( GTK_COMBO_BOX( widget ), 0 ); -+ return TRUE; -+ } -+ - // groupbox labels - #if ENABLE_GROUPBOX_HACK - if( static_cast<Animations*>( data )->groupBoxLabelEngine().contains( widget ) ) -diff --git a/src/animations/oxygencomboboxdata.cpp b/src/animations/oxygencomboboxdata.cpp -index 87b75b7..a28c146 100644 ---- a/src/animations/oxygencomboboxdata.cpp -+++ b/src/animations/oxygencomboboxdata.cpp -@@ -47,12 +47,6 @@ namespace Oxygen - // initialize cell view - initializeCellView( widget ); - -- /* -- need to force the wrap-width property to 0, -- otherwise the "appears-as-list" flag is not respected, which additionally breaks the widget rendering. -- */ -- gtk_combo_box_set_wrap_width( GTK_COMBO_BOX( widget ), 0 ); -- - } - - //________________________________________________________________________________ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/src/animations/oxygengroupboxlabeldata.h new/oxygen-gtk2-1.3.1/src/animations/oxygengroupboxlabeldata.h --- old/oxygen-gtk2-1.3.0/src/animations/oxygengroupboxlabeldata.h 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/src/animations/oxygengroupboxlabeldata.h 2012-10-03 09:50:32.000000000 +0200 @@ -57,8 +57,9 @@ if( allocation.height > 1 ) { - gtk_widget_set_size_request( widget, allocation.width, allocation.height+14 ); + // Save resized state before actually resizing to prevent infinite recursion (bug 305833) _resized = true; + gtk_widget_set_size_request( widget, allocation.width, allocation.height+14 ); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/src/animations/oxygentimelineserver.cpp new/oxygen-gtk2-1.3.1/src/animations/oxygentimelineserver.cpp --- old/oxygen-gtk2-1.3.0/src/animations/oxygentimelineserver.cpp 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/src/animations/oxygentimelineserver.cpp 2012-10-03 09:50:32.000000000 +0200 @@ -22,6 +22,7 @@ #include "oxygentimeline.h" #include "../config.h" +#include <gdk/gdk.h> #include <iostream> namespace Oxygen @@ -69,7 +70,7 @@ { if( !_timerId ) - { _timerId = g_timeout_add( updateInterval, (GSourceFunc)update, this ); } + { _timerId = gdk_threads_add_timeout( updateInterval, (GSourceFunc)update, this ); } return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/src/animations/oxygentimer.cpp new/oxygen-gtk2-1.3.1/src/animations/oxygentimer.cpp --- old/oxygen-gtk2-1.3.0/src/animations/oxygentimer.cpp 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/src/animations/oxygentimer.cpp 2012-10-03 09:50:32.000000000 +0200 @@ -21,6 +21,7 @@ #include "oxygentimer.h" #include "../config.h" +#include <gdk/gdk.h> #include <iostream> namespace Oxygen @@ -35,7 +36,7 @@ _func = func; _data = data; - _timerId = g_timeout_add( delay, (GSourceFunc)timeOut, this ); + _timerId = gdk_threads_add_timeout( delay, (GSourceFunc)timeOut, this ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/src/oxygenstyle.cpp new/oxygen-gtk2-1.3.1/src/oxygenstyle.cpp --- old/oxygen-gtk2-1.3.0/src/oxygenstyle.cpp 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/src/oxygenstyle.cpp 2012-10-03 09:50:32.000000000 +0200 @@ -505,7 +505,7 @@ bool Style::renderMenuBackground( GdkWindow* window, Cairo::Context& context, gint x, gint y, gint w, gint h, const StyleOptions& options ) const { // define colors - ColorUtils::Rgba base(settings().palette().color( Palette::Window ) ); + ColorUtils::Rgba base( color( Palette::Window, options ) ); ColorUtils::Rgba top( ColorUtils::backgroundTopColor( base ) ); ColorUtils::Rgba bottom( ColorUtils::backgroundBottomColor( base ) ); @@ -2484,6 +2484,10 @@ // enable gradient if XID is not passed bool gradient=true; + const int buttonSpacing(WinDeco::getMetric(WinDeco::ButtonSpacing)); + titleIndentLeft+=2*buttonSpacing; + titleIndentRight+=2*buttonSpacing; + QtSettings::WindecoBlendType blendType(settings().windecoBlendType()); if( blendType==QtSettings::SolidColor ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.3.0/src/oxygenstylewrapper.cpp new/oxygen-gtk2-1.3.1/src/oxygenstylewrapper.cpp --- old/oxygen-gtk2-1.3.0/src/oxygenstylewrapper.cpp 2012-07-16 19:09:24.000000000 +0200 +++ new/oxygen-gtk2-1.3.1/src/oxygenstylewrapper.cpp 2012-10-03 09:50:32.000000000 +0200 @@ -555,6 +555,10 @@ } else if( GTK_IS_SPIN_BUTTON( widget ) ) { + // do nothing for frameless entries + if( !gtk_entry_get_has_frame( GTK_ENTRY( widget ) ) ) + { return; } + const int yOffset( style->ythickness + 1 ); // there is no need to render anything if both offsets are larger than 4 @@ -601,6 +605,10 @@ } else { + // do nothing for frameless entries + if( GTK_IS_ENTRY( widget ) && !gtk_entry_get_has_frame( GTK_ENTRY( widget ) ) ) + { return; } + const int yOffset( style->ythickness + 1 ); // there is no need to render anything if both offsets are larger than 4 @@ -736,6 +744,7 @@ // Don't draw anything for OpenOffice or steppers will look like slabs. if( d.isStepper() && Style::instance().settings().applicationName().isOpenOffice( widget )) { return; } + // Don't render window bg here because it's redundant and leads to problems with bg gradient behind buttons if( GTK_IS_WINDOW(widget) && Style::instance().settings().applicationName().isOpenOffice( widget )) { return; } @@ -1131,8 +1140,13 @@ !Gtk::gtk_widget_is_applet( widget ) ) { + StyleOptions options; + + if( style ) + { options._customColors.insert( Palette::Window, Gtk::gdk_get_color( style->bg[state] ) ); } + // window background - Style::instance().renderWindowBackground( window, clipRect, x, y, w, h ); + Style::instance().renderWindowBackground( window, clipRect, x, y, w, h, options ); // possible groupbox background if( Gtk::gtk_parent_groupbox( widget ) ) @@ -1235,6 +1249,9 @@ options |= Round; if( Gtk::gtk_widget_has_rgba( widget ) ) options |= Alpha; + if( style ) + { options._customColors.insert( Palette::Window, Gtk::gdk_get_color( style->bg[state] ) ); } + // add mask if needed if( GTK_IS_MENU(widget) ) { -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
