parent
4e0da48e82
commit
a67f28e79d
@ -0,0 +1,32 @@
|
|||||||
|
From 7e3ebe35a6a1a69b3a36f7eb41e1ec5c5905f714 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||||
|
Date: Mon, 5 Mar 2012 21:02:45 +0000
|
||||||
|
Subject: [PATCH] Related: rhbz#799628 crash with chewing-IM with g3g
|
||||||
|
|
||||||
|
---
|
||||||
|
vcl/unx/gtk/window/gtkframe.cxx | 8 +++++++-
|
||||||
|
1 files changed, 7 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
|
||||||
|
index 112e066..1cd1bd0 100644
|
||||||
|
--- a/vcl/unx/gtk/window/gtkframe.cxx
|
||||||
|
+++ b/vcl/unx/gtk/window/gtkframe.cxx
|
||||||
|
@@ -3984,8 +3984,14 @@ void GtkSalFrame::IMHandler::signalIMPreeditChanged( GtkIMContext*, gpointer im_
|
||||||
|
g_slist_free (attr_list);
|
||||||
|
|
||||||
|
// Set the sal attributes on our text
|
||||||
|
- for (int i = start; i < end; i++)
|
||||||
|
+ for (int i = start; i < end; ++i)
|
||||||
|
+ {
|
||||||
|
+ SAL_WARN_IF(i >= static_cast<int>(pThis->m_aInputFlags.size()),
|
||||||
|
+ "vcl.gtk", "pango attrib out of range?");
|
||||||
|
+ if (i >= static_cast<int>(pThis->m_aInputFlags.size()))
|
||||||
|
+ continue;
|
||||||
|
pThis->m_aInputFlags[i] |= sal_attr;
|
||||||
|
+ }
|
||||||
|
} while (pango_attr_iterator_next (iter));
|
||||||
|
|
||||||
|
pThis->m_aInputEvent.mpTextAttr = &pThis->m_aInputFlags[0];
|
||||||
|
--
|
||||||
|
1.7.7.6
|
||||||
|
|
@ -0,0 +1,68 @@
|
|||||||
|
From f9a4af41ca574760dbd22c8207661fabb6823e3b Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||||
|
Date: Tue, 6 Mar 2012 09:45:08 +0000
|
||||||
|
Subject: [PATCH] silence SolarMutex not locked spew
|
||||||
|
|
||||||
|
---
|
||||||
|
sw/source/core/txtnode/fntcache.cxx | 2 ++
|
||||||
|
sw/source/core/view/viewsh.cxx | 2 ++
|
||||||
|
vcl/unx/gtk/window/gtkframe.cxx | 3 +++
|
||||||
|
3 files changed, 7 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
|
||||||
|
index 2ec7fb9..4ddeb3d 100644
|
||||||
|
--- a/sw/source/core/txtnode/fntcache.cxx
|
||||||
|
+++ b/sw/source/core/txtnode/fntcache.cxx
|
||||||
|
@@ -382,6 +382,8 @@ sal_uInt16 SwFntObj::GetFontLeading( const ViewShell *pSh, const OutputDevice& r
|
||||||
|
{
|
||||||
|
if ( USHRT_MAX == nGuessedLeading || USHRT_MAX == nExtLeading )
|
||||||
|
{
|
||||||
|
+ SolarMutexGuard aGuard;
|
||||||
|
+
|
||||||
|
const Font aOldFnt( rOut.GetFont() );
|
||||||
|
((OutputDevice&)rOut).SetFont( *pPrtFont );
|
||||||
|
const FontMetric aMet( rOut.GetFontMetric() );
|
||||||
|
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
|
||||||
|
index 0413382..774000c 100644
|
||||||
|
--- a/sw/source/core/view/viewsh.cxx
|
||||||
|
+++ b/sw/source/core/view/viewsh.cxx
|
||||||
|
@@ -253,6 +253,8 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
|
||||||
|
{
|
||||||
|
if ( !nLockPaint )
|
||||||
|
{
|
||||||
|
+ SolarMutexGuard aGuard;
|
||||||
|
+
|
||||||
|
sal_Bool bPaintsFromSystem = aInvalidRect.HasArea();
|
||||||
|
GetWin()->Update();
|
||||||
|
if ( aInvalidRect.HasArea() )
|
||||||
|
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
|
||||||
|
index 24336ce..a2e6df8 100644
|
||||||
|
--- a/vcl/unx/gtk/window/gtkframe.cxx
|
||||||
|
+++ b/vcl/unx/gtk/window/gtkframe.cxx
|
||||||
|
@@ -3835,6 +3835,7 @@ void GtkSalFrame::IMHandler::signalIMCommit( GtkIMContext* CONTEXT_ARG, gchar* p
|
||||||
|
{
|
||||||
|
GtkSalFrame::IMHandler* pThis = (GtkSalFrame::IMHandler*)im_handler;
|
||||||
|
|
||||||
|
+ SolarMutexGuard aGuard;
|
||||||
|
vcl::DeletionListener aDel( pThis->m_pFrame );
|
||||||
|
// open a block that will end the GTK_YIELD_GRAB before calling preedit changed again
|
||||||
|
{
|
||||||
|
@@ -4003,6 +4004,7 @@ void GtkSalFrame::IMHandler::signalIMPreeditChanged( GtkIMContext*, gpointer im_
|
||||||
|
|
||||||
|
GTK_YIELD_GRAB();
|
||||||
|
|
||||||
|
+ SolarMutexGuard aGuard;
|
||||||
|
vcl::DeletionListener aDel( pThis->m_pFrame );
|
||||||
|
|
||||||
|
pThis->m_pFrame->CallCallback( SALEVENT_EXTTEXTINPUT, (void*)&pThis->m_aInputEvent);
|
||||||
|
@@ -4023,6 +4025,7 @@ void GtkSalFrame::IMHandler::signalIMPreeditEnd( GtkIMContext*, gpointer im_hand
|
||||||
|
|
||||||
|
pThis->m_bPreeditJustChanged = true;
|
||||||
|
|
||||||
|
+ SolarMutexGuard aGuard;
|
||||||
|
vcl::DeletionListener aDel( pThis->m_pFrame );
|
||||||
|
pThis->doCallEndExtTextInput();
|
||||||
|
if( ! aDel.isDeleted() )
|
||||||
|
--
|
||||||
|
1.7.7.6
|
||||||
|
|
Loading…
Reference in new issue