Description: Only register menubar to animation engine if the widget is actually valid.
Origin:      backport [https://bugs.kde.org/show_bug.cgi?id=331020]
Author:      Hugo Pereira Da Costa
Reviewed-by: Enrique Hernández Bello <ehbello@gmail.com>
Last-Update: 2016-04-28
Index: oxygen-gtk3-1.0.2/src/oxygenthemingengine.cpp
===================================================================
--- oxygen-gtk3-1.0.2.orig/src/oxygenthemingengine.cpp	2016-04-28 14:00:13.240694400 +0100
+++ oxygen-gtk3-1.0.2/src/oxygenthemingengine.cpp	2016-04-28 14:09:59.178368300 +0100
@@ -937,23 +937,28 @@
             if( Gtk::gtk_widget_path_has_type( path, GTK_TYPE_FRAME ) )
             { Style::instance().renderGroupBoxBackground( context, widget, x, y, w, h, Blend ); }
 
-            MenuBarStateEngine& engine( Style::instance().animations().menuBarStateEngine() );
-            engine.registerWidget(widget);
+			if( widget )
+			{
 
-            // draw animated or fade-out rect
-            if( engine.animatedRectangleIsValid( widget ) )
-            {
+				// animation
+				MenuBarStateEngine& engine( Style::instance().animations().menuBarStateEngine() );
+				engine.registerWidget(widget);
 
-                const GdkRectangle& rect( engine.animatedRectangle( widget ) );
-                Style::instance().renderMenuItemRect( context, 0L, engine.widget( widget, AnimationCurrent ), rect.x, rect.y, rect.width, rect.height, Hover|Blend );
+				// draw animated or fade-out rect
+				if( engine.animatedRectangleIsValid( widget ) )
+				{
 
-            } else if( engine.isAnimated( widget, AnimationPrevious ) ) {
+					const GdkRectangle& rect( engine.animatedRectangle( widget ) );
+					Style::instance().renderMenuItemRect( context, 0L, engine.widget( widget, AnimationCurrent ), rect.x, rect.y, rect.width, rect.height, Hover|Blend );
 
-                const AnimationData data( engine.animationData( widget, AnimationPrevious ) );
-                const GdkRectangle& rect( engine.rectangle( widget, AnimationPrevious ) );
-                Style::instance().renderMenuItemRect( context, 0L, engine.widget( widget, AnimationPrevious ), rect.x, rect.y, rect.width, rect.height, Hover|Blend, data );
+				} else if( engine.isAnimated( widget, AnimationPrevious ) ) {
 
-            }
+					const AnimationData data( engine.animationData( widget, AnimationPrevious ) );
+					const GdkRectangle& rect( engine.rectangle( widget, AnimationPrevious ) );
+					Style::instance().renderMenuItemRect( context, 0L, engine.widget( widget, AnimationPrevious ), rect.x, rect.y, rect.width, rect.height, Hover|Blend, data );
+				}
+
+			}
             return;
 
         } else if( gtk_widget_path_is_type( path, GTK_TYPE_MENU ) ) {
