Hello community, here is the log from the commit of package oxygen-gtk for openSUSE:Factory checked in at Tue Aug 9 16:34:19 CEST 2011.
-------- --- KDE/oxygen-gtk/oxygen-gtk.changes 2011-08-01 20:17:25.000000000 +0200 +++ /mounts/work_src_done/STABLE/oxygen-gtk/oxygen-gtk.changes 2011-08-08 17:41:24.000000000 +0200 @@ -1,0 +2,6 @@ +Mon Aug 8 15:40:49 UTC 2011 - [email protected] + +- Add firefox-menu-corruption.patch, fix menu corruption seen in + Firefox, bko #277613 + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- firefox-menu-corruption.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ oxygen-gtk.spec ++++++ --- /var/tmp/diff_new_pack.NZW3YB/_old 2011-08-09 16:34:03.000000000 +0200 +++ /var/tmp/diff_new_pack.NZW3YB/_new 2011-08-09 16:34:03.000000000 +0200 @@ -19,13 +19,14 @@ Name: oxygen-gtk Version: 1.1.1 -Release: 1 +Release: 2 License: GNU LGPL v2 or later Summary: A Port of the default KDE Widget Theme (Oxygen), to GTK Url: https://projects.kde.org/projects/playground/artwork/oxygen-gtk Group: System/GUI/KDE Source0: ftp://ftp.kde.org/pub/kde/stable/oxygen-gtk/%{version}/src/%{name}-%{version}.tar.bz2 Source100: baselibs.conf +Patch1: firefox-menu-corruption.patch BuildRequires: cairo-devel BuildRequires: cmake BuildRequires: dbus-1-glib-devel @@ -48,6 +49,7 @@ %prep %setup -q +%patch1 -p1 %build ++++++ firefox-menu-corruption.patch ++++++ commit e9f836bf20edbf45926f13fa681400d56e4275d9 Author: Hugo Pereira Da Costa <[email protected]> Date: Mon Aug 8 15:38:16 2011 +0200 Added checks on Screen, Display, and Visual before allocating the pixmaps needed for shadows. CCBUG: 277613 diff --git a/src/oxygenshadowhelper.cpp b/src/oxygenshadowhelper.cpp index f7027ca..d12099a 100644 --- a/src/oxygenshadowhelper.cpp +++ b/src/oxygenshadowhelper.cpp @@ -206,9 +206,32 @@ namespace Oxygen // create atom if( !_atom ) { + + // get screen and check GdkScreen* screen = gdk_screen_get_default(); + if( !screen ) + { + + #if OXYGEN_DEBUG + std::cerr << "ShadowHelper::createPixmapHandles - screen is NULL" << std::endl; + #endif + + return; + } + + // get display and check Display* display( GDK_DISPLAY_XDISPLAY( gdk_screen_get_display( screen ) ) ); - _atom = XInternAtom( display, "_KDE_NET_WM_SHADOW", False); + if( !display ) + { + + #if OXYGEN_DEBUG + std::cerr << "ShadowHelper::createPixmapHandles - display is NULL" << std::endl; + #endif + + return; + } + + _atom = XInternAtom( display, "_KDE_NET_WM_SHADOW", False); } // make sure size is valid @@ -217,11 +240,29 @@ namespace Oxygen // opacity const int shadowOpacity = 150; + if( _roundPixmaps.empty() || _squarePixmaps.empty() ) + { + // get screen, display, visual and check + // no need to check screen and display, since was already done for ATOM + GdkScreen* screen = gdk_screen_get_default(); + Display* display( GDK_DISPLAY_XDISPLAY( gdk_screen_get_display( screen ) ) ); + if( !gdk_screen_get_rgba_visual( screen ) ) + { + + #if OXYGEN_DEBUG + std::cerr << "ShadowHelper::createPixmapHandles - no valid RGBA visual found." << std::endl; + #endif + + return; + + } + } + // make sure pixmaps are not already initialized if( _roundPixmaps.empty() ) { - _roundPixmaps.push_back( createPixmap( _roundTiles.surface( 1 ), shadowOpacity ) ); + _roundPixmaps.push_back( createPixmap( _roundTiles.surface( 1 ), shadowOpacity ) ); _roundPixmaps.push_back( createPixmap( _roundTiles.surface( 2 ), shadowOpacity ) ); _roundPixmaps.push_back( createPixmap( _roundTiles.surface( 5 ), shadowOpacity ) ); _roundPixmaps.push_back( createPixmap( _roundTiles.surface( 8 ), shadowOpacity ) ); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
