Hello community,
here is the log from the commit of package oxygen-gtk2 for openSUSE:Factory checked in at 2012-03-01 17:21:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-01-19 16:56:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.oxygen-gtk2.new/oxygen-gtk2.changes 2012-03-01 17:21:54.000000000 +0100
@@ -1,0 +2,12 @@
+Fri Feb 17 20:44:42 UTC 2012 - asterios.dramis@gmail.com
+
+- Update to 1.2.1:
+ Fixes include:
+ * Crash in metacity.
+ * Display issue for widgets with custom background.
+ * High memory allocation for cached pixmaps.
+ * Navigation between tabs in some application.
+- Split the package into gtk2-engine-oxygen and gtk2-theme-oxygen subpackages
+ for consistency with other gtk engines and themes (bnc#747107).
+
+-------------------------------------------------------------------
Old:
----
oxygen-gtk2-1.2.0.tar.bz2
New:
----
oxygen-gtk2-1.2.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ oxygen-gtk2.spec ++++++
--- /var/tmp/diff_new_pack.sbAVll/_old 2012-03-01 17:21:55.000000000 +0100
+++ /var/tmp/diff_new_pack.sbAVll/_new 2012-03-01 17:21:55.000000000 +0100
@@ -17,7 +17,7 @@
Name: oxygen-gtk2
-Version: 1.2.0
+Version: 1.2.1
Release: 0
Summary: A Port of the default KDE Widget Theme (Oxygen), to GTK 2.x
License: LGPL-2.1+
@@ -30,12 +30,52 @@
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(gtk+-2.0)
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+
+%description
+Oxygen-Gtk2 is a port of the default KDE widget theme (Oxygen), to gtk 2.x.
+
+It's primary goal is to ensure visual consistency between gtk-based and qt-based
+applications running under KDE. A secondary objective is to also have a
+stand-alone nice looking gtk theme that would behave well on other Desktop
+Environments.
+
+Unlike other attempts made to port the KDE oxygen theme to gtk, this attempt does
+not depend on Qt (via some Qt to Gtk conversion engine), nor does render the
+widget appearance via hard coded pixmaps, which otherwise breaks everytime some
+setting is changed in KDE.
+
+%package -n gtk2-engine-oxygen
+Summary: Oxygen GTK 2.x Theme Engine
+Group: System/GUI/Other
+
+%description -n gtk2-engine-oxygen
+Oxygen-Gtk2 is a port of the default KDE widget theme (Oxygen), to gtk 2.x.
+
+It's primary goal is to ensure visual consistency between gtk-based and qt-based
+applications running under KDE. A secondary objective is to also have a
+stand-alone nice looking gtk theme that would behave well on other Desktop
+Environments.
+
+Unlike other attempts made to port the KDE oxygen theme to gtk, this attempt does
+not depend on Qt (via some Qt to Gtk conversion engine), nor does render the
+widget appearance via hard coded pixmaps, which otherwise breaks everytime some
+setting is changed in KDE.
+
+This package contains the Oxygen gtk 2.x theme engine.
+
+%package -n gtk2-theme-oxygen
+Summary: Oxygen GTK 2.x Theme
+Group: System/GUI/Other
+Requires: gtk2-engine-oxygen = %{version}
# oxygen-gtk was last used at version 1.1.6 in openSUSE 12.1
Provides: oxygen-gtk = %{version}
Obsoletes: oxygen-gtk < %{version}
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+# oxygen-gtk2 was last used at version 1.2.0 in K:D:F
+Provides: oxygen-gtk2 = %{version}
+Obsoletes: oxygen-gtk2 < %{version}
-%description
+%description -n gtk2-theme-oxygen
Oxygen-Gtk2 is a port of the default KDE widget theme (Oxygen), to gtk 2.x.
It's primary goal is to ensure visual consistency between gtk-based and qt-based
@@ -48,6 +88,8 @@
widget appearance via hard coded pixmaps, which otherwise breaks everytime some
setting is changed in KDE.
+This package contains the Oxygen gtk 2.x theme.
+
%prep
%setup -q
@@ -71,12 +113,16 @@
%make_install
popd
-%files
+%files -n gtk2-engine-oxygen
+%defattr(-,root,root,-)
+%doc AUTHORS COPYING README TODO
+%{_libdir}/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
+
+%files -n gtk2-theme-oxygen
%defattr(-,root,root,-)
%doc AUTHORS COPYING README TODO
%{_bindir}/oxygen-gtk-deco
%{_bindir}/oxygen-gtk-demo
-%{_libdir}/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
%dir %{_datadir}/themes/oxygen-gtk
%{_datadir}/themes/oxygen-gtk/gtk-2.0/
++++++ oxygen-gtk2-1.2.0.tar.bz2 -> oxygen-gtk2-1.2.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/CMakeLists.txt new/oxygen-gtk2-1.2.1/CMakeLists.txt
--- old/oxygen-gtk2-1.2.0/CMakeLists.txt 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/CMakeLists.txt 2012-02-15 10:22:29.000000000 +0100
@@ -13,7 +13,7 @@
set( CPACK_PACKAGE_VENDOR "hugo@oxygen-icons.org" )
set( CPACK_PACKAGE_VERSION_MAJOR "1" )
set( CPACK_PACKAGE_VERSION_MINOR "2" )
-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.2.0/metacity.patch new/oxygen-gtk2-1.2.1/metacity.patch
--- old/oxygen-gtk2-1.2.0/metacity.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/metacity.patch 2012-02-15 10:22:29.000000000 +0100
@@ -0,0 +1,21 @@
+diff --git a/src/oxygenqtsettings.cpp b/src/oxygenqtsettings.cpp
+index 4ed5401..9422996 100644
+--- a/src/oxygenqtsettings.cpp
++++ b/src/oxygenqtsettings.cpp
+@@ -449,8 +449,14 @@ namespace Oxygen
+ gchar** gtkSearchPath;
+ int nElements;
+ gtk_icon_theme_get_search_path( gtk_icon_theme_get_default(), >kSearchPath, &nElements );
+- for( int i=0; i
+*
+* 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 "oxygenflatwidgetengine.h"
+#include "../oxygengtktypenames.h"
+#include "../oxygengtkutils.h"
+#include "../config.h"
+
+#include <string>
+
+namespace Oxygen
+{
+ //_________________________________________________________
+ bool FlatWidgetEngine::registerWidget( GtkWidget* widget )
+ {
+ if( contains( widget ) ) return false;
+ _data.insert( widget );
+ BaseEngine::registerWidget( widget );
+ return true;
+ }
+
+ //_________________________________________________________
+ GtkWidget* FlatWidgetEngine::flatParent( GtkWidget* widget )
+ {
+
+ for( GtkWidget* parent = widget; parent; parent = gtk_widget_get_parent( parent ) )
+ { if( contains( parent ) ) return parent; }
+
+ return 0L;
+ }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/animations/oxygenflatwidgetengine.h new/oxygen-gtk2-1.2.1/src/animations/oxygenflatwidgetengine.h
--- old/oxygen-gtk2-1.2.0/src/animations/oxygenflatwidgetengine.h 1970-01-01 01:00:00.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/animations/oxygenflatwidgetengine.h 2012-02-15 10:22:29.000000000 +0100
@@ -0,0 +1,71 @@
+#ifndef oxygenflatwidgetengine_h
+#define oxygenflatwidgetengine_h
+/*
+* this file is part of the oxygen gtk engine
+* Copyright (c) 2010 Hugo Pereira Da Costa
+*
+* 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 "oxygenbaseengine.h"
+
+#include
+#include <set>
+
+namespace Oxygen
+{
+ //! forward declaration
+ class Animations;
+
+ //! associates widgets with some type of data
+ class FlatWidgetEngine: public BaseEngine
+ {
+
+ public:
+
+ //! constructor
+ FlatWidgetEngine( Animations* widget ):
+ BaseEngine( widget )
+ {}
+
+ //! destructor
+ virtual ~FlatWidgetEngine( void )
+ {}
+
+ //! register widget
+ virtual bool registerWidget( GtkWidget* );
+
+ //! unregister widget
+ virtual void unregisterWidget( GtkWidget* widget )
+ { _data.erase( widget ); }
+
+ //! true if widget is included
+ virtual bool contains( GtkWidget* widget )
+ { return _data.find( widget ) != _data.end(); }
+
+ //! true if one of widgets parent is included
+ virtual GtkWidget* flatParent( GtkWidget* );
+
+ private:
+
+ //! store registered widgets
+ std::set _data;
+
+ };
+
+}
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/animations/oxygentabwidgetdata.cpp new/oxygen-gtk2-1.2.1/src/animations/oxygentabwidgetdata.cpp
--- old/oxygen-gtk2-1.2.0/src/animations/oxygentabwidgetdata.cpp 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/animations/oxygentabwidgetdata.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -130,6 +130,18 @@
}
//________________________________________________________________________________
+ bool TabWidgetData::isInTab( int x, int y ) const
+ {
+
+ // loop over tab rectangles and check.
+ for( RectangleList::const_iterator iter = _tabRects.begin(); iter != _tabRects.end(); ++iter )
+ { if( Gtk::gdk_rectangle_contains( &(*iter), x, y ) ) return true; }
+
+ return false;
+
+ }
+
+ //________________________________________________________________________________
void TabWidgetData::setHoveredTab( GtkWidget* widget, int index )
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/animations/oxygentabwidgetdata.h new/oxygen-gtk2-1.2.1/src/animations/oxygentabwidgetdata.h
--- old/oxygen-gtk2-1.2.0/src/animations/oxygentabwidgetdata.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/animations/oxygentabwidgetdata.h 2012-02-15 10:22:29.000000000 +0100
@@ -91,6 +91,9 @@
bool isDirty( void ) const
{ return _dirty; }
+ //! returns true if provided point is in one tab of the widget
+ bool isInTab( int x, int y ) const;
+
//@]
protected:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/animations/oxygentabwidgetengine.h new/oxygen-gtk2-1.2.1/src/animations/oxygentabwidgetengine.h
--- old/oxygen-gtk2-1.2.0/src/animations/oxygentabwidgetengine.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/animations/oxygentabwidgetengine.h 2012-02-15 10:22:29.000000000 +0100
@@ -90,6 +90,10 @@
int hoveredTab( GtkWidget* widget )
{ return data().value( widget ).hoveredTab(); }
+ //! returns true if provided point is in one tab of the widget
+ bool isInTab( GtkWidget* widget, int x, int y )
+ { return data().value( widget ).isInTab( x, y ); }
+
//! true when drag is in progress
bool dragInProgress( GtkWidget* widget )
{ return data().value( widget ).dragInProgress(); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/animations/oxygentimeline.cpp new/oxygen-gtk2-1.2.1/src/animations/oxygentimeline.cpp
--- old/oxygen-gtk2-1.2.0/src/animations/oxygentimeline.cpp 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/animations/oxygentimeline.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -27,6 +27,9 @@
{
//_________________________________________________
+ int TimeLine::_steps = 0;
+
+ //_________________________________________________
TimeLine::TimeLine( int duration ):
_duration( duration ),
_enabled( true ),
@@ -131,9 +134,13 @@
assert( _time < _duration );
assert( _time <= elapsed );
- _value = ( _value*double(_duration - elapsed) + end*double(elapsed - _time) )/double(_duration - _time);
+ double oldValue( _value );
+ _value = digitize( ( _value*double(_duration - elapsed) + end*double(elapsed - _time) )/double(_duration - _time) );
_time = elapsed;
- trigger();
+
+ // trigger callback if value is actually changed
+ if( _value != oldValue ) trigger();
+
return true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/animations/oxygentimeline.h new/oxygen-gtk2-1.2.1/src/animations/oxygentimeline.h
--- old/oxygen-gtk2-1.2.0/src/animations/oxygentimeline.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/animations/oxygentimeline.h 2012-02-15 10:22:29.000000000 +0100
@@ -23,6 +23,7 @@
#include
#include <cassert>
+#include <cmath>
namespace Oxygen
{
@@ -114,12 +115,24 @@
//@}
+ //! steps
+ static void setSteps( int value )
+ { _steps = value; }
+
protected:
//! run callback
void trigger( void ) const
{ if( _func ) (_func)(_data); }
+ //! digitize value, based on steps
+ double digitize( const double& value ) const
+ {
+ if( _steps > 0 ) return std::floor( value*_steps )/_steps;
+ else return value;
+ }
+
+
private:
//! duration
@@ -149,6 +162,9 @@
//! data
gpointer _data;
+ //! steps
+ static int _steps;
+
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/animations/oxygentoolbarstatedata.cpp new/oxygen-gtk2-1.2.1/src/animations/oxygentoolbarstatedata.cpp
--- old/oxygen-gtk2-1.2.0/src/animations/oxygentoolbarstatedata.cpp 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/animations/oxygentoolbarstatedata.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -325,6 +325,7 @@
if( data._target )
{
+ data.setDirty( true );
const GdkRectangle rect( data.dirtyRect() );
Gtk::gtk_widget_queue_draw( data._target, &rect );
}
@@ -344,6 +345,7 @@
data.updateAnimatedRect();
+ data.setDirty( true );
GdkRectangle rect( data.dirtyRect() );
Gtk::gtk_widget_queue_draw( data._target, &rect );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/animations/oxygentoolbarstatedata.h new/oxygen-gtk2-1.2.1/src/animations/oxygentoolbarstatedata.h
--- old/oxygen-gtk2-1.2.0/src/animations/oxygentoolbarstatedata.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/animations/oxygentoolbarstatedata.h 2012-02-15 10:22:29.000000000 +0100
@@ -41,7 +41,8 @@
//! constructor
ToolBarStateData( void ):
_target( 0L ),
- _dirtyRect( Gtk::gdk_rectangle() )
+ _dirtyRect( Gtk::gdk_rectangle() ),
+ _dirty( false )
{}
//! destructor
@@ -83,6 +84,10 @@
_previous._timeLine.setDuration( value );
}
+ //! dirty state
+ void setDirty( bool value )
+ { _dirty = value; }
+
//@}
//!@name accessors
@@ -117,6 +122,10 @@
bool isLocked( void ) const
{ return _timer.isRunning(); }
+ //! dirty state
+ bool isDirty( void ) const
+ { return _dirty; }
+
//@}
protected:
@@ -241,7 +250,13 @@
//! additional dirty rect
GdkRectangle _dirtyRect;
+ //! dirty state
+ bool _dirty;
+
+ //! previous button animation data
Data _previous;
+
+ //! current button animation data
Data _current;
//@}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/animations/oxygentoolbarstateengine.h new/oxygen-gtk2-1.2.1/src/animations/oxygentoolbarstateengine.h
--- old/oxygen-gtk2-1.2.0/src/animations/oxygentoolbarstateengine.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/animations/oxygentoolbarstateengine.h 2012-02-15 10:22:29.000000000 +0100
@@ -122,6 +122,10 @@
return true;
}
+ //! dirty state
+ void setDirty( GtkWidget* widget, bool value )
+ { data().value( widget ).setDirty( value ); }
+
//@}
//!@name accessors
@@ -168,6 +172,10 @@
bool isLocked( GtkWidget* widget )
{ return data().value( widget ).isLocked(); }
+ //! dirty state
+ bool isDirty( GtkWidget* widget )
+ { return data().value( widget ).isDirty(); }
+
//@}
private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/log new/oxygen-gtk2-1.2.1/src/log
--- old/oxygen-gtk2-1.2.0/src/log 1970-01-01 01:00:00.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/log 2012-02-15 10:22:29.000000000 +0100
@@ -0,0 +1,141 @@
+
+
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,32,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar/GtkImageMenuItem
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x8918778 rect: ( 0,0,14,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8918778 rect: ( 0,0,181,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8918778 rect: ( 0,0,188,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8918778 rect: ( 0,0,193,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8918778 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8918778 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8918778 rect: ( 0,42,596,187) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 0,0,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 14,0,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 195,0,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 383,0,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 576,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 586,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 0,21,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 14,21,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 195,21,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 383,21,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 576,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8918778 rect: ( 586,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8917000 rect: ( -4,-6,172,177) path: /GtkWindow/GtkMenu
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,172,177) path: /GtkWindow/GtkMenu
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x891fc10 rect: ( 0,0,14,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x891fc10 rect: ( 0,0,181,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x891fc10 rect: ( 0,0,188,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x891fc10 rect: ( 0,0,193,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x891fc10 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x891fc10 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x891fc10 rect: ( 0,42,596,187) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 0,0,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 14,0,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 195,0,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 383,0,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 576,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 586,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 0,21,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 14,21,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 195,21,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 383,21,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 576,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x891fc10 rect: ( 586,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x8920360 rect: ( 0,0,14,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920360 rect: ( 0,0,181,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920360 rect: ( 0,0,188,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920360 rect: ( 0,0,193,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920360 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920360 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920360 rect: ( 0,42,596,187) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 0,0,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 14,0,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 195,0,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 383,0,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 576,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 586,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 0,21,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 14,21,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 195,21,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 383,21,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 576,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 586,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920360 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x8920a10 rect: ( 0,0,14,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920a10 rect: ( 0,0,181,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920a10 rect: ( 0,0,188,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920a10 rect: ( 0,0,193,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920a10 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920a10 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8920a10 rect: ( 0,42,596,187) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 0,0,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 14,0,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 195,0,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 383,0,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 576,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 586,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 0,21,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 14,21,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 195,21,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 383,21,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 576,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8920a10 rect: ( 586,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,32,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar/GtkImageMenuItem
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,28,31) path: /GtkWindow/GtkVBox/GtkHBox/GtkHBox/GtkButton
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,17) path: /GtkWindow/GtkVBox/GtkHBox/GtkMenuBar
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x8925420 rect: ( 0,0,14,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8925420 rect: ( 0,0,181,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8925420 rect: ( 0,0,188,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8925420 rect: ( 0,0,193,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8925420 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8925420 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8925420 rect: ( 0,42,596,187) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 0,0,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 14,0,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 195,0,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 383,0,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 576,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 586,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 0,21,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 14,21,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 195,21,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 383,21,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 576,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8925420 rect: ( 586,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
+Oxygen::render_background - context: 0x8924748 rect: ( 0,0,14,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8924748 rect: ( 0,0,181,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8924748 rect: ( 0,0,188,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8924748 rect: ( 0,0,193,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8924748 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8924748 rect: ( 0,0,10,20) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView/GtkButton
+Oxygen::render_background - context: 0x8924748 rect: ( 0,42,596,187) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 0,0,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 14,0,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 195,0,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 383,0,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 576,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 586,0,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 0,21,14,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 14,21,181,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 195,21,188,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 383,21,193,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 576,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8924748 rect: ( 586,21,10,21) path: /GtkWindow/GtkVBox/GtkHBox/GtkAlignment/GtkNotebook/GtkScrolledWindow/GtkTreeView
+Oxygen::render_background - context: 0x8917000 rect: ( 0,0,600,400) path: /GtkWindow
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygencairosurfacecache.h new/oxygen-gtk2-1.2.1/src/oxygencairosurfacecache.h
--- old/oxygen-gtk2-1.2.0/src/oxygencairosurfacecache.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygencairosurfacecache.h 2012-02-15 10:22:29.000000000 +0100
@@ -37,7 +37,8 @@
public:
//! constructor
- CairoSurfaceCache( void )
+ CairoSurfaceCache( size_t size = 100 ):
+ Cache( size )
{}
//! destructor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygengtkutils.cpp new/oxygen-gtk2-1.2.1/src/oxygengtkutils.cpp
--- old/oxygen-gtk2-1.2.0/src/oxygengtkutils.cpp 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygengtkutils.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -34,6 +34,7 @@
namespace Oxygen
{
+ GQuark Gtk::Quarks::_rcStyle = 0L;
//____________________________________________________________
void Gtk::gtk_container_adjust_buttons_state(GtkContainer* container,gpointer data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygengtkutils.h new/oxygen-gtk2-1.2.1/src/oxygengtkutils.h
--- old/oxygen-gtk2-1.2.0/src/oxygengtkutils.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygengtkutils.h 2012-02-15 10:22:29.000000000 +0100
@@ -415,6 +415,44 @@
//! returns a widget which has response_id as response id for dialog
GtkWidget* gtk_dialog_find_button( GtkDialog*, gint );
+
+ //! store quarks
+ class Quarks
+ {
+ public:
+
+ //! parent class
+ inline static GQuark rcStyle( void )
+ {
+
+ // try initialize
+ if( !_rcStyle )
+ { _rcStyle = g_quark_try_string( "gtk-rc-style" ); }
+
+ return _rcStyle;
+
+ }
+
+
+ private:
+
+ //! RC style quark
+ /*!
+ used to check whether an RCStyle was installed on a given widget or not.
+ See gtkwidet::gtk_widget_get_modifier_style()
+ */
+ static GQuark _rcStyle;
+
+ };
+
+ //! returns true if widget style color is modified
+ inline bool gtk_widget_style_is_modified( GtkWidget* widget, GtkStateType state, GtkRcFlags flag )
+ {
+ const bool hasRCStyle( g_object_get_qdata (G_OBJECT (widget), Quarks::rcStyle() ) );
+ return ( hasRCStyle && gtk_widget_get_modifier_style(widget)->color_flags[state]&flag );
+ }
+
+
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygenobjectcounter.cpp new/oxygen-gtk2-1.2.1/src/oxygenobjectcounter.cpp
--- old/oxygen-gtk2-1.2.0/src/oxygenobjectcounter.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygenobjectcounter.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -0,0 +1,51 @@
+/*
+* this file is part of the oxygen gtk engine
+* Copyright (c) 2012 Hugo Pereira Da Costa
+*
+* 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 "oxygenobjectcounter.h"
+#include "oxygenobjectcountermap.h"
+
+namespace Oxygen
+{
+ //____________________________________________________________
+ ObjectCounter::ObjectCounter( const std::string& name ):
+ count_( 0 )
+ {
+ count_ = ObjectCounterMap::get().counter( name );
+ ObjectCounterMap::get().increment( *count_ );
+ return;
+ }
+
+ //____________________________________________________________
+ ObjectCounter::ObjectCounter( const ObjectCounter& counter ):
+ count_( counter.count_ )
+ {
+ ObjectCounterMap::get().increment( *count_ );
+ return;
+ }
+
+ //____________________________________________________________
+ ObjectCounter::~ObjectCounter( void )
+ { if( count_ ) ObjectCounterMap::get().decrement( *count_ ); }
+
+ //____________________________________________________________
+ int ObjectCounter::count( void ) const
+ { return (count_) ? *count_:0; }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygenobjectcounter.h new/oxygen-gtk2-1.2.1/src/oxygenobjectcounter.h
--- old/oxygen-gtk2-1.2.0/src/oxygenobjectcounter.h 1970-01-01 01:00:00.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygenobjectcounter.h 2012-02-15 10:22:29.000000000 +0100
@@ -0,0 +1,61 @@
+#ifndef Counter_h
+#define Counter_h
+
+/*
+* this file is part of the oxygen gtk engine
+* Copyright (c) 2012 Hugo Pereira Da Costa
+*
+* 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 <string>
+#include <map>
+
+
+namespace Oxygen
+{
+
+ class ObjectCounter
+ {
+
+ public:
+
+ //! counter name and counts pair
+ typedef std::pair Pair;
+
+ //! constructor
+ ObjectCounter( const std::string& name );
+
+ //! constructor
+ ObjectCounter( const ObjectCounter& counter );
+
+ //! destructor
+ virtual ~ObjectCounter( void );
+
+ //! retrieves counter count
+ int count( void ) const;
+
+ private:
+
+ //! pointer to integer counter
+ int* count_;
+
+ };
+
+}
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygenobjectcountermap.cpp new/oxygen-gtk2-1.2.1/src/oxygenobjectcountermap.cpp
--- old/oxygen-gtk2-1.2.0/src/oxygenobjectcountermap.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygenobjectcountermap.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -0,0 +1,33 @@
+/*
+* this file is part of the oxygen gtk engine
+* Copyright (c) 2012 Hugo Pereira Da Costa
+*
+* 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 "oxygenobjectcountermap.h"
+
+namespace Oxygen
+{
+
+ //___________________________________________________
+ ObjectCounterMap& ObjectCounterMap::get( void )
+ {
+ static ObjectCounterMap singleton;
+ return singleton;
+ }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygenobjectcountermap.h new/oxygen-gtk2-1.2.1/src/oxygenobjectcountermap.h
--- old/oxygen-gtk2-1.2.0/src/oxygenobjectcountermap.h 1970-01-01 01:00:00.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygenobjectcountermap.h 2012-02-15 10:22:29.000000000 +0100
@@ -0,0 +1,68 @@
+#ifndef ObjectCounterMap_h
+#define ObjectCounterMap_h
+
+/*
+* this file is part of the oxygen gtk engine
+* Copyright (c) 2012 Hugo Pereira Da Costa
+*
+* 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 <map>
+#include <string>
+
+//! thread-safe Object counter storage map
+namespace Oxygen
+{
+ class ObjectCounterMap: public std::map
+ {
+
+ public:
+
+ //! singleton
+ static ObjectCounterMap& get( void );
+
+ //! get counter for a given name
+ /*!
+ if the name is found, returns adress of the existing counter
+ creates new counter otherwise and returns adress
+ */
+ int* counter( const std::string& name )
+ {
+ iterator iter = find( name );
+ if( iter == end() ) return &(insert( std::make_pair( name, 0 ) ).first->second);
+ else return &(iter->second);
+ }
+
+ //! increment
+ void increment( int& counter )
+ { counter++; }
+
+ //! increment
+ void decrement( int& counter )
+ { counter--; }
+
+ private:
+
+ //! constructor
+ ObjectCounterMap( void )
+ {}
+
+ };
+
+}
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygenqtsettings.cpp new/oxygen-gtk2-1.2.1/src/oxygenqtsettings.cpp
--- old/oxygen-gtk2-1.2.0/src/oxygenqtsettings.cpp 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygenqtsettings.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -25,6 +25,7 @@
#include "oxygenfontinfo.h"
#include "oxygengtkicons.h"
#include "oxygengtkrc.h"
+#include "oxygentimeline.h"
#include "config.h"
#include
@@ -444,12 +445,7 @@
// 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; ibg[GTK_STATE_NORMAL] ) );
+
+ } else {
+
+ cairo_set_source( context, settings().palette().color( Palette::Window ) );
- // add hole if required (this can be done before translating the context)
- Cairo::Context context( window, clipRect );
- renderHoleMask( context, x, y, w, h, tiles, sideMargin );
+ }
+
+ cairo_rectangle( context, x, y, w, h );
+ cairo_fill( context );
+
+ } else {
// normal window background
renderWindowBackground( context, window, 0L, clipRect, x, y, w, h, options, tiles);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygenstylewrapper.cpp new/oxygen-gtk2-1.2.1/src/oxygenstylewrapper.cpp
--- old/oxygen-gtk2-1.2.0/src/oxygenstylewrapper.cpp 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygenstylewrapper.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -50,7 +50,6 @@
GtkStyleClass* StyleWrapper::_parentClass = 0L;
GTypeInfo StyleWrapper::_typeInfo;
GType StyleWrapper::_type = 0L;
- GQuark StyleWrapper::_quarkRCStyle = 0L;
XulInfo StyleWrapper::_xulInfo = XulInfo();
//___________________________________________________________________________________________________________
@@ -69,7 +68,7 @@
ToolBarStateEngine& engine( Style::instance().animations().toolBarStateEngine() );
engine.registerWidget(widget);
-
+ engine.setDirty( widget, false );
if( engine.animatedRectangleIsValid( widget ) )
{
@@ -154,9 +153,9 @@
- register the widgets to the relevant engines as below
- pass the modified color to renderWindowBackground
*/
- const bool hasRCStyle( g_object_get_qdata (G_OBJECT (widget), StyleWrapper::quarkRCStyle() ) );
- if( hasRCStyle && gtk_widget_get_modifier_style(widget)->color_flags[state]>K_RC_BG )
+ if( Gtk::gtk_widget_style_is_modified( widget, state, GTK_RC_BG ) )
{
+ Style::instance().animations().flatWidgetEngine().registerWidget( widget );
Style::instance().fill( window, clipRect, x, y, w, h, Gtk::gdk_get_color( style->bg[state] ) );
return;
}
@@ -179,7 +178,9 @@
{ Style::instance().animations().dialogEngine().registerWidget( toplevel ); }
// render background gradient
- const bool success( Style::instance().renderWindowBackground( window, clipRect, x, y, w, h ) );
+ StyleOptions options;
+ options._customColors.insert( Palette::Window, Gtk::gdk_get_color( style->bg[state] ) );
+ const bool success( Style::instance().renderWindowBackground( window, clipRect, x, y, w, h, options ) );
// register to window manager
if( success &&
@@ -194,7 +195,10 @@
// possible groupbox background
if( d.isEventBox() && Gtk::gtk_parent_groupbox( widget ) )
- { Style::instance().renderGroupBoxBackground( window, widget, clipRect, x, y, w, h, Blend ); }
+ {
+ options |= Blend;
+ Style::instance().renderGroupBoxBackground( window, widget, clipRect, x, y, w, h, options );
+ }
// also draw possible animated tool button
draw_animated_button( window, clipRect, widget );
@@ -207,8 +211,7 @@
if( Gtk::gtk_widget_is_applet( widget ) ) return;
// for modified bg, fill with flat custom color
- const bool hasRCStyle( g_object_get_qdata (G_OBJECT (widget), StyleWrapper::quarkRCStyle() ) );
- if( hasRCStyle && gtk_widget_get_modifier_style(widget)->color_flags[state]>K_RC_BG )
+ if( Gtk::gtk_widget_style_is_modified( widget, state, GTK_RC_BG ) )
{
Style::instance().fill( window, clipRect, x, y, w, h, Gtk::gdk_get_color( style->bg[state] ) );
@@ -309,8 +312,7 @@
bool drawTreeLines( true );
ColorUtils::Rgba background;
- const bool hasRCStyle( g_object_get_qdata (G_OBJECT (widget), StyleWrapper::quarkRCStyle() ) );
- if( hasRCStyle && gtk_widget_get_modifier_style(widget)->color_flags[GTK_STATE_NORMAL]>K_RC_BASE )
+ if( Gtk::gtk_widget_style_is_modified( widget, GTK_STATE_NORMAL, GTK_RC_BASE ) )
{
/*
@@ -1041,7 +1043,7 @@
toolPalette=Gtk::gtk_widget_find_parent( widget, GTK_TYPE_TOOL_PALETTE );
#endif
- if( !toolPalette && (parent = engine.findParent( widget ) ) )
+ if( !toolPalette && (parent = engine.findParent( widget ) ) && !engine.isDirty( parent ) )
{
// register child
@@ -3527,6 +3529,15 @@
pango_cairo_show_layout( context, layout );
+ } else if( GtkWidget* parent = Gtk::gtk_parent_button( widget ) ) {
+
+ // for flat buttons, do not use PRELIGHT color, since there is no PRELIGHT background rendered.
+ if( Gtk::gtk_button_is_flat( parent ) && ( state == GTK_STATE_PRELIGHT || state == GTK_STATE_ACTIVE ) ) state = GTK_STATE_NORMAL;
+ StyleWrapper::parentClass()->draw_layout(
+ style, window, state, use_text,
+ clipRect, widget, detail, x, y, layout );
+
+
} else {
// in all other cases, fallback on default rendering, for now
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygenstylewrapper.h new/oxygen-gtk2-1.2.1/src/oxygenstylewrapper.h
--- old/oxygen-gtk2-1.2.0/src/oxygenstylewrapper.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygenstylewrapper.h 2012-02-15 10:22:29.000000000 +0100
@@ -51,18 +51,6 @@
inline static GtkStyleClass* parentClass( void )
{ return _parentClass; }
- //! parent class
- inline static GQuark quarkRCStyle( void )
- {
-
- // try initialize
- if( !_quarkRCStyle )
- { _quarkRCStyle = g_quark_try_string( "gtk-rc-style" ); }
-
- return _quarkRCStyle;
-
- }
-
//! xul info
inline static XulInfo& xulInfo( void )
{ return _xulInfo; }
@@ -86,13 +74,6 @@
//! registered type
static GType _type;
- //! RC style quark
- /*!
- used to check whether an RCStyle was installed on a given widget or not.
- See gtkwidet::gtk_widget_get_modifier_style()
- */
- static GQuark _quarkRCStyle;
-
//! xul info, needed to properly render focus in checkboxes and radio buttons
static XulInfo _xulInfo;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygentileset.cpp new/oxygen-gtk2-1.2.1/src/oxygentileset.cpp
--- old/oxygen-gtk2-1.2.0/src/oxygentileset.cpp 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygentileset.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -95,37 +95,6 @@
}
//______________________________________________________________
- TileSet::TileSet( const TileSet& other ):
- _surfaces( other._surfaces ),
- _w1( other._w1 ),
- _h1( other._h1 ),
- _w3( other._w3 ),
- _h3( other._h3 )
- {
-
- // increase ref counter
- for( SurfaceList::iterator iter = _surfaces.begin(); iter != _surfaces.end(); ++iter )
- { cairo_surface_reference( *iter ); }
-
- }
-
- //______________________________________________________________
- TileSet& TileSet::operator = ( const TileSet& other )
- {
-
- _w1 = other._w1;
- _h1 = other._h1;
- _w3 = other._w3;
- _h3 = other._h3;
-
- // copy pixmap list
- _surfaces = other._surfaces;
-
- return *this;
-
- }
-
- //______________________________________________________________
TileSet::~TileSet( void )
{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygentileset.h new/oxygen-gtk2-1.2.1/src/oxygentileset.h
--- old/oxygen-gtk2-1.2.0/src/oxygentileset.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygentileset.h 2012-02-15 10:22:29.000000000 +0100
@@ -74,12 +74,6 @@
//! destructor
virtual ~TileSet();
- //! copy constructor
- TileSet( const TileSet& );
-
- //! assignment operator
- TileSet& operator = ( const TileSet& );
-
/*!
Flags specifying what sides to draw in ::render. Corners are drawn when
the sides forming that corner are drawn, e.g. Top|Left draws the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygentilesetcache.h new/oxygen-gtk2-1.2.1/src/oxygentilesetcache.h
--- old/oxygen-gtk2-1.2.0/src/oxygentilesetcache.h 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygentilesetcache.h 2012-02-15 10:22:29.000000000 +0100
@@ -36,7 +36,8 @@
public:
//! constructor
- TileSetCache( size_t size = 100 )
+ TileSetCache( size_t size = 100 ):
+ Cache( size )
{}
//! destructor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oxygen-gtk2-1.2.0/src/oxygenwindowmanager.cpp new/oxygen-gtk2-1.2.1/src/oxygenwindowmanager.cpp
--- old/oxygen-gtk2-1.2.0/src/oxygenwindowmanager.cpp 2012-01-16 09:39:27.000000000 +0100
+++ new/oxygen-gtk2-1.2.1/src/oxygenwindowmanager.cpp 2012-02-15 10:22:29.000000000 +0100
@@ -376,6 +376,7 @@
//_________________________________________________
bool WindowManager::isWindowDragWidget( GtkWidget* widget, GdkEventButton* event )
{
+
if( _mode == Disabled ) return false;
else if( (!_drag) && withinWidget(widget, event ) && useEvent( widget, event ) )
{
@@ -434,8 +435,14 @@
const GtkAllocation local( Gtk::gtk_widget_get_allocation( widget ) );
Gtk::gtk_notebook_get_tabbar_rect( GTK_NOTEBOOK( widget ), &allocation );
- allocation.x += wx - local.x;
- allocation.y += wy - local.y;
+
+ const int xLocal = int(event->x_root) - wx + local.x;
+ const int yLocal = int(event->y_root) - wy + local.y;
+
+ // compare to event root position
+ if( !Gtk::gdk_rectangle_contains( &allocation, xLocal, yLocal ) ) return false;
+ else if( !Style::instance().animations().tabWidgetEngine().contains( widget ) ) return false;
+ else return !Style::instance().animations().tabWidgetEngine().isInTab( widget, xLocal, yLocal );
} else {
@@ -443,10 +450,10 @@
allocation.x = wx;
allocation.y = wy;
- }
+ // compare to event root position
+ return Gtk::gdk_rectangle_contains( &allocation, int(event->x_root), int(event->y_root) );
- // compare to event root position
- return Gtk::gdk_rectangle_contains( &allocation, int(event->x_root), int(event->y_root) );
+ }
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org