cppuhelper/source/primeweak.cxx | 2 +- vcl/aqua/source/gdi/salnativewidgets.cxx | 7 ++----- vcl/aqua/source/window/salframeview.mm | 8 +++++++- vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx | 2 +- vcl/unx/kde/salnativewidgets-kde.cxx | 6 +++--- vcl/win/source/gdi/salnativewidgets-luna.cxx | 2 +- 6 files changed, 15 insertions(+), 12 deletions(-)
New commits: commit d2fde1d34c3c28572b1b6b4780269c15dd4c2bef Author: Herbert Dürr <[email protected]> Date: Thu Mar 21 15:27:40 2013 +0000 check native widget's control value type before converting to SpinbuttonValue or ScrollbarValue Else problems like #i112873# or even crashes can and do happen. diff --git a/vcl/aqua/source/gdi/salnativewidgets.cxx b/vcl/aqua/source/gdi/salnativewidgets.cxx index 634bf10..294396c 100644 --- a/vcl/aqua/source/gdi/salnativewidgets.cxx +++ b/vcl/aqua/source/gdi/salnativewidgets.cxx @@ -816,7 +816,7 @@ sal_Bool AquaSalGraphics::drawNativeControl(ControlType nType, case CTRL_SCROLLBAR: { - ScrollbarValue* pScrollbarVal = (ScrollbarValue *)&aValue; + const ScrollbarValue* pScrollbarVal = (aValue.getType() == CTRL_SCROLLBAR) ? static_cast<const ScrollbarValue*>(&aValue) : NULL; if( nPart == PART_DRAW_BACKGROUND_VERT || nPart == PART_DRAW_BACKGROUND_HORZ ) @@ -1085,16 +1085,13 @@ sal_Bool AquaSalGraphics::drawNativeControl(ControlType nType, if(nState & CTRL_STATE_FOCUSED) HIThemeDrawFocusRect(&rc, true, mrContext, kHIThemeOrientationNormal); //buttons: - SpinbuttonValue* pSpinButtonVal = (SpinbuttonValue *)&aValue; + const SpinbuttonValue* pSpinButtonVal = (aValue.getType() == CTRL_SPINBUTTONS) ? static_cast<const SpinbuttonValue*>(&aValue) : NULL; ControlState nUpperState = CTRL_STATE_ENABLED;//state of the upper button ControlState nLowerState = CTRL_STATE_ENABLED;//and of the lower button if(pSpinButtonVal) {//pSpinButtonVal is sometimes null nUpperState = (ControlState) pSpinButtonVal->mnUpperState; nLowerState = (ControlState) pSpinButtonVal->mnLowerState; - } - if( pSpinButtonVal ) - { HIThemeButtonDrawInfo aSpinInfo; aSpinInfo.kind = kThemeIncDecButton; aSpinInfo.state = kThemeStateActive; diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx index 3e265d5..1ecc667 100644 --- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx @@ -1375,7 +1375,7 @@ sal_Bool GtkSalGraphics::NWPaintGTKScrollbar( ControlType, ControlPart nPart, const OUString& ) { OSL_ASSERT( aValue.getType() == CTRL_SCROLLBAR ); - const ScrollbarValue* pScrollbarVal = static_cast<const ScrollbarValue *>(&aValue); + const ScrollbarValue* pScrollbarVal = (aValue.getType() == CTRL_SCROLLBAR) ? static_cast<const ScrollbarValue*>(&aValue) : NULL; GdkPixmap* pixmap = NULL; Rectangle pixmapRect, scrollbarRect; GtkStateType stateType; diff --git a/vcl/unx/kde/salnativewidgets-kde.cxx b/vcl/unx/kde/salnativewidgets-kde.cxx index 3d81f10..dedf0b3 100644 --- a/vcl/unx/kde/salnativewidgets-kde.cxx +++ b/vcl/unx/kde/salnativewidgets-kde.cxx @@ -514,7 +514,7 @@ sal_Bool WidgetPainter::drawStyledWidget( QWidget *pWidget, } else if ( strcmp( "QSpinWidget", pClassName ) == 0 ) { - const SpinbuttonValue *pValue = static_cast<const SpinbuttonValue *> ( &aValue ); + const SpinbuttonValue* pValue = (aValue.getType() == CTRL_SPINBUTTONS) ? static_cast<const SpinbuttonValue*>(&aValue) : NULL; // Is any of the buttons pressed? QStyle::SCFlags eActive = QStyle::SC_None; @@ -603,7 +603,7 @@ sal_Bool WidgetPainter::drawStyledWidget( QWidget *pWidget, } else if ( strcmp( "QScrollBar", pClassName ) == 0 ) { - const ScrollbarValue *pValue = static_cast<const ScrollbarValue *> ( &aValue ); + const ScrollbarValue* pScrollbarVal = (aValue.getType() == CTRL_SCROLLBAR) ? static_cast<const ScrollbarValue*>(&aValue) : NULL; QStyle::SCFlags eActive = QStyle::SC_None; if ( pValue ) @@ -1008,7 +1008,7 @@ QScrollBar *WidgetPainter::scrollBar( const Rectangle& rControlRegion, m_pScrollBar->resize( qRect.size() ); m_pScrollBar->setOrientation( bHorizontal? Qt::Horizontal: Qt::Vertical ); - const ScrollbarValue *pValue = static_cast<const ScrollbarValue *> ( &aValue ); + const ScrollbarValue* pScrollbarVal = (aValue.getType() == CTRL_SCROLLBAR) ? static_cast<const ScrollbarValue*>(&aValue) : NULL; if ( pValue ) { m_pScrollBar->setMinValue( pValue->mnMin ); diff --git a/vcl/win/source/gdi/salnativewidgets-luna.cxx b/vcl/win/source/gdi/salnativewidgets-luna.cxx index c24fc76..db7dc49 100644 --- a/vcl/win/source/gdi/salnativewidgets-luna.cxx +++ b/vcl/win/source/gdi/salnativewidgets-luna.cxx @@ -570,7 +570,7 @@ sal_Bool ImplDrawNativeControl( HDC hDC, HTHEME hTheme, RECT rc, { if( aValue.getType() == CTRL_SPINBUTTONS ) { - const SpinbuttonValue *pValue = static_cast<const SpinbuttonValue*>(&aValue); + const SpinbuttonValue* pValue = (aValue.getType() == CTRL_SPINBUTTONS) ? static_cast<const SpinbuttonValue*>(&aValue) : NULL; sal_Bool bOk = sal_False; RECT rect; commit feb1be19817d10e0ed1a18bada9c917f2a4532db Author: Herbert Dürr <[email protected]> Date: Thu Mar 21 15:01:35 2013 +0000 protect SalFrameView's isOpaque() method by an isAlive() check diff --git a/vcl/aqua/source/window/salframeview.mm b/vcl/aqua/source/window/salframeview.mm index d056436..b9d3a19 100644 --- a/vcl/aqua/source/window/salframeview.mm +++ b/vcl/aqua/source/window/salframeview.mm @@ -478,7 +478,13 @@ static AquaSalFrame* getMouseContainerFrame() -(BOOL)isOpaque { - return mpFrame ? (mpFrame->getClipPath() != 0 ? NO : YES) : YES; + if( !mpFrame) + return YES; + if( !AquaSalFrame::isAlive( mpFrame)) + return YES; + if( !mpFrame->getClipPath()) + return YES; + return NO; } // helper class similar to a vos::OGuard for the SalYieldMutex commit 12d33dd664568614df83c87929cd1b39f080478f Author: Herbert Dürr <[email protected]> Date: Thu Mar 21 05:32:46 2013 +0000 fix case mismatch in include path diff --git a/cppuhelper/source/primeweak.cxx b/cppuhelper/source/primeweak.cxx index c3bf7a9..97d3acc 100644 --- a/cppuhelper/source/primeweak.cxx +++ b/cppuhelper/source/primeweak.cxx @@ -47,7 +47,7 @@ #include "cppuhelper/com/sun/star/lang/XSingleServiceFactory.hpp" #include "cppuhelper/com/sun/star/lang/XSingleComponentFactory.hpp" #include "cppuhelper/com/sun/star/lang/XMultiServiceFactory.hpp" -#include "cppuhelper/com/sun/star/lang/XMulticomponentFactory.hpp" +#include "cppuhelper/com/sun/star/lang/XMultiComponentFactory.hpp" #include "cppuhelper/com/sun/star/lang/XServiceInfo.hpp" #include "cppuhelper/com/sun/star/lang/XEventListener.hpp" #include "cppuhelper/com/sun/star/lang/XTypeProvider.hpp"
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
