summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorPetr Mladek <pmladek@suse.cz>2011-04-06 19:25:25 +0200
committerPetr Mladek <pmladek@suse.cz>2011-04-06 19:25:25 +0200
commita3cb4701f3f88ff1e94588eb4a993a77bb6f1547 (patch)
treea21bc8ecbf67e0e887f3d1b4fe1854d6a6830bbf /vcl
parent0e94340f897a98837d4ccdee0de8061a5d7ee949 (diff)
parent42f7c95c0250268c075adcc9b7100ac0923135d8 (diff)
Merge remote-tracking branch 'origin/libreoffice-3-4'
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/gdi/gdimtf.cxx2
-rw-r--r--vcl/unx/gtk/a11y/atkutil.cxx5
-rw-r--r--vcl/unx/kde4/KDESalGraphics.cxx2
-rw-r--r--vcl/unx/kde4/KDEXLib.cxx10
-rw-r--r--vcl/unx/source/gdi/salgdi3.cxx2
5 files changed, 20 insertions, 1 deletions
diff --git a/vcl/source/gdi/gdimtf.cxx b/vcl/source/gdi/gdimtf.cxx
index 79b8f417891b..849750ea20a9 100644
--- a/vcl/source/gdi/gdimtf.cxx
+++ b/vcl/source/gdi/gdimtf.cxx
@@ -439,6 +439,8 @@ void GDIMetaFile::Play( GDIMetaFile& rMtf, sal_uLong nPos )
rMtf.UseCanvas( rMtf.GetUseCanvas() || bUseCanvas );
+ rMtf.UseCanvas( rMtf.GetUseCanvas() || bUseCanvas );
+
if( nPos > nObjCount )
nPos = nObjCount;
diff --git a/vcl/unx/gtk/a11y/atkutil.cxx b/vcl/unx/gtk/a11y/atkutil.cxx
index 57380897c71e..f7e849e44e87 100644
--- a/vcl/unx/gtk/a11y/atkutil.cxx
+++ b/vcl/unx/gtk/a11y/atkutil.cxx
@@ -597,6 +597,7 @@ static void handle_menu_highlighted(::VclMenuEvent const * pEvent)
long WindowEventHandler(void *, ::VclSimpleEvent const * pEvent)
{
+ try {
switch (pEvent->GetId())
{
case VCLEVENT_WINDOW_SHOW:
@@ -663,6 +664,10 @@ long WindowEventHandler(void *, ::VclSimpleEvent const * pEvent)
default:
break;
}
+ } catch(lang::IndexOutOfBoundsException e)
+ {
+ g_warning("Focused object has invalid index in parent");
+ }
return 0;
}
diff --git a/vcl/unx/kde4/KDESalGraphics.cxx b/vcl/unx/kde4/KDESalGraphics.cxx
index 95a913e6d5dd..c2ac0c76e3e3 100644
--- a/vcl/unx/kde4/KDESalGraphics.cxx
+++ b/vcl/unx/kde4/KDESalGraphics.cxx
@@ -433,6 +433,8 @@ sal_Bool KDESalGraphics::drawNativeControl( ControlType type, ControlPart part,
const int width = kapp->style()->pixelMetric(QStyle::PM_ToolBarHandleExtent);
QRect rect( 0, 0, width, widgetRect.height());
clipRegion = new QRegion( widgetRect.x(), widgetRect.y(), width, widgetRect.height());
+ XRectangle xRect = { widgetRect.x(), widgetRect.y(), width, widgetRect.height() };
+ XUnionRectWithRegion( &xRect, pTempClipRegion, pTempClipRegion );
QStyleOption option;
option.state = QStyle::State_Horizontal;
diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx
index ce4ea14dadb5..03bcfca8e47e 100644
--- a/vcl/unx/kde4/KDEXLib.cxx
+++ b/vcl/unx/kde4/KDEXLib.cxx
@@ -219,6 +219,16 @@ static bool qt_event_filter( void* m )
return false;
}
+static bool ( *old_qt_event_filter )( void* );
+static bool qt_event_filter( void* m )
+{
+ if( old_qt_event_filter != NULL && old_qt_event_filter( m ))
+ return true;
+ if( SalKDEDisplay::self() && SalKDEDisplay::self()->checkDirectInputEvent( static_cast< XEvent* >( m )))
+ return true;
+ return false;
+}
+
void KDEXLib::setupEventLoop()
{
old_qt_event_filter = QAbstractEventDispatcher::instance()->setEventFilter( qt_event_filter );
diff --git a/vcl/unx/source/gdi/salgdi3.cxx b/vcl/unx/source/gdi/salgdi3.cxx
index 8f3c89a78c24..6d77f66662e4 100644
--- a/vcl/unx/source/gdi/salgdi3.cxx
+++ b/vcl/unx/source/gdi/salgdi3.cxx
@@ -1238,7 +1238,7 @@ X11SalGraphics::GetKernPairs( sal_uLong nPairs, ImplKernPairData *pKernPairs )
sal_Bool X11SalGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect )
{
int nLevel = nGlyphIndex >> GF_FONTSHIFT;
- if( nLevel >= MAX_FALLBACK )
+ if( nLevel < 0 || nLevel >= MAX_FALLBACK )
return sal_False;
ServerFont* pSF = mpServerFont[ nLevel ];