parent
a852bd4a25
commit
bad44c964f
@ -1,24 +0,0 @@
|
||||
From 72244e6e6035ffc211ea7a4fce9aa96de8bc1f76 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Wed, 3 Nov 2010 10:16:06 +0000
|
||||
Subject: [PATCH] abort doesn't gain us anything here.
|
||||
|
||||
abort doesn't gain us anything here except to force abrt automatic bugreports kick
|
||||
in, and XIOErrors can't be worked around
|
||||
---
|
||||
vcl/unx/source/plugadapt/salplug.cxx | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/vcl/unx/source/plugadapt/salplug.cxx b/vcl/unx/source/plugadapt/salplug.cxx
|
||||
index 54f9752..ba6bf4a 100644
|
||||
--- a/vcl/unx/source/plugadapt/salplug.cxx
|
||||
+++ b/vcl/unx/source/plugadapt/salplug.cxx
|
||||
@@ -281,7 +281,7 @@
|
||||
std::fprintf( stderr, "Application Error" );
|
||||
else
|
||||
std::fprintf( stderr, ByteString( rErrorText, gsl_getSystemTextEncoding() ).GetBuffer() );
|
||||
- abort();
|
||||
+ exit(-1);
|
||||
}
|
||||
|
||||
const OUString& SalGetDesktopEnvironment()
|
@ -1,25 +0,0 @@
|
||||
From cd10b146b67f7329f699e48e74d2961dbcceb123 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Thu, 4 Nov 2010 14:44:14 +0000
|
||||
Subject: [PATCH] latest libX11 changed header guards
|
||||
|
||||
---
|
||||
vcl/unx/inc/dtint.hxx | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/vcl/unx/inc/dtint.hxx b/vcl/unx/inc/dtint.hxx
|
||||
index 724dad6..b173830 100644
|
||||
--- a/vcl/unx/inc/dtint.hxx
|
||||
+++ b/vcl/unx/inc/dtint.hxx
|
||||
@@ -37,7 +37,7 @@ class SalBitmap;
|
||||
class SalDisplay;
|
||||
class AllSettings;
|
||||
|
||||
-#ifndef _XLIB_H_
|
||||
+#if !defined(_XLIB_H_) && !defined(_X11_XLIB_H_)
|
||||
// forwards from X
|
||||
struct Display;
|
||||
struct XEvent;
|
||||
--
|
||||
1.7.3.1
|
||||
|
@ -1,25 +0,0 @@
|
||||
From 0bf9733c6e8d40a5d327e754b44c7e540cdada7e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Sun, 31 Oct 2010 19:07:44 +0000
|
||||
Subject: [PATCH] strcpy cannot be used with overlapping src and dest
|
||||
|
||||
---
|
||||
soltools/mkdepend/parse.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/soltools/mkdepend/parse.c b/soltools/mkdepend/parse.c
|
||||
index 6d6e079..ec7e7d4 100644
|
||||
--- a/soltools/mkdepend/parse.c
|
||||
+++ b/soltools/mkdepend/parse.c
|
||||
@@ -347,7 +347,7 @@ int deftype (line, filep, file_red, file, parse_it, symbols)
|
||||
/*
|
||||
* copy the definition back to the beginning of the line.
|
||||
*/
|
||||
- strcpy (line, p);
|
||||
+ memmove (line, p, strlen(p));
|
||||
break;
|
||||
case ELSE:
|
||||
case ENDIF:
|
||||
--
|
||||
1.7.3.1
|
||||
|
@ -1,83 +0,0 @@
|
||||
--- a/solenv/inc/postset.mk 2010-09-29 12:55:57.000000000 +0100
|
||||
+++ b/solenv/inc/postset.mk 2010-09-29 12:58:29.000000000 +0100
|
||||
@@ -33,15 +33,13 @@
|
||||
# Complete list of all supported ISO codes
|
||||
completelangiso=af \
|
||||
ar \
|
||||
-as-IN \
|
||||
+as \
|
||||
be-BY \
|
||||
bo \
|
||||
bg \
|
||||
br \
|
||||
brx \
|
||||
bn \
|
||||
-bn-BD \
|
||||
-bn-IN \
|
||||
bs \
|
||||
ca \
|
||||
cs \
|
||||
@@ -65,7 +63,6 @@
|
||||
gd \
|
||||
gl \
|
||||
gu \
|
||||
-gu-IN \
|
||||
he \
|
||||
hi \
|
||||
hr \
|
||||
@@ -91,8 +88,8 @@
|
||||
mn \
|
||||
mni \
|
||||
ms \
|
||||
-ml-IN \
|
||||
-mr-IN \
|
||||
+ml \
|
||||
+mr \
|
||||
my \
|
||||
ne \
|
||||
nb \
|
||||
@@ -102,7 +99,7 @@
|
||||
ns \
|
||||
om \
|
||||
oc \
|
||||
-or-IN \
|
||||
+or \
|
||||
pap \
|
||||
pa-IN \
|
||||
pl \
|
||||
@@ -126,16 +123,16 @@
|
||||
sv \
|
||||
sw \
|
||||
sw-TZ \
|
||||
-te-IN \
|
||||
-ti-ER \
|
||||
-ta-IN \
|
||||
+te \
|
||||
+ti \
|
||||
+ta \
|
||||
th \
|
||||
tn \
|
||||
tr \
|
||||
ts \
|
||||
tg \
|
||||
ug \
|
||||
-ur-IN \
|
||||
+ur \
|
||||
uk \
|
||||
uz \
|
||||
ve \
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -3815,12 +3815,6 @@ if test -n "$with_system_cppunit" -o -n "$with_system_libs" && \
|
||||
SYSTEM_CPPUNIT=YES
|
||||
# might work for earlier, too but go sure
|
||||
PKG_CHECK_MODULES( CPPUNIT, cppunit >= 1.12.0 )
|
||||
- AC_MSG_CHECKING([STL compatibility])
|
||||
- if test "$WITH_STLPORT" != "no"; then
|
||||
- AC_MSG_ERROR([to use system cppunit you need to use --without-stlport])
|
||||
- else
|
||||
- AC_MSG_RESULT([OK])
|
||||
- fi
|
||||
else
|
||||
AC_MSG_RESULT([internal])
|
||||
SYSTEM_CPPUNIT=NO
|
@ -1,401 +0,0 @@
|
||||
diff -ru framework/inc/helper/titlebarupdate.hxx framework/inc/helper/titlebarupdate.hxx
|
||||
--- framework/inc/helper/titlebarupdate.hxx 2010-10-14 21:54:22.000000000 +0100
|
||||
+++ framework/inc/helper/titlebarupdate.hxx 2010-10-22 12:52:13.000000000 +0100
|
||||
@@ -212,6 +212,7 @@
|
||||
*/
|
||||
void impl_updateTitle(const css::uno::Reference< css::frame::XFrame >& xFrame);
|
||||
|
||||
+ void impl_updateWM_CLASSS(const css::uno::Reference< css::frame::XFrame >& xFrame);
|
||||
}; // class TitleBarUpdate
|
||||
|
||||
} // namespace framework
|
||||
diff -ru framework/source/helper/titlebarupdate.cxx framework/source/helper/titlebarupdate.cxx
|
||||
--- framework/source/helper/titlebarupdate.cxx 2010-10-14 21:54:22.000000000 +0100
|
||||
+++ framework/source/helper/titlebarupdate.cxx 2010-10-22 15:00:16.000000000 +0100
|
||||
@@ -199,6 +201,88 @@
|
||||
// nothing todo here - because we hold the frame as weak reference only
|
||||
}
|
||||
|
||||
+//http://live.gnome.org/GnomeShell/ApplicationBased
|
||||
+void TitleBarUpdate::impl_updateWM_CLASSS(const css::uno::Reference< css::frame::XFrame >& xFrame)
|
||||
+{
|
||||
+ css::uno::Reference< css::awt::XWindow > xWindow = xFrame->getContainerWindow ();
|
||||
+ if ( ! xWindow.is() )
|
||||
+ return;
|
||||
+
|
||||
+ ::rtl::OUString sWM_CLASS;
|
||||
+ try
|
||||
+ {
|
||||
+ ::rtl::OUString aProductName;
|
||||
+ ::utl::ConfigManager::GetDirectConfigProperty(::utl::ConfigManager::PRODUCTNAME) >>= aProductName;
|
||||
+
|
||||
+ // SYNCHRONIZED ->
|
||||
+ ReadGuard aReadLock(m_aLock);
|
||||
+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
|
||||
+ aReadLock.unlock();
|
||||
+ // <- SYNCHRONIZED
|
||||
+
|
||||
+ css::uno::Reference< css::frame::XModuleManager > xModuleManager(
|
||||
+ xSMGR->createInstance(SERVICENAME_MODULEMANAGER),
|
||||
+ css::uno::UNO_QUERY_THROW);
|
||||
+
|
||||
+ css::uno::Reference< css::container::XNameAccess > xConfig(
|
||||
+ xModuleManager,
|
||||
+ css::uno::UNO_QUERY_THROW);
|
||||
+
|
||||
+ rtl::OUString aModuleId = xModuleManager->identify(xFrame);
|
||||
+ rtl::OUString sDesktopName;
|
||||
+
|
||||
+ if ( aModuleId.equalsAscii( "com.sun.star.text.TextDocument" ) ||
|
||||
+ aModuleId.equalsAscii( "com.sun.star.text.GlobalDocument" ) ||
|
||||
+ aModuleId.equalsAscii( "com.sun.star.text.WebDocument" ) ||
|
||||
+ aModuleId.equalsAscii( "com.sun.star.xforms.XMLFormDocument" ) )
|
||||
+ sDesktopName = ::rtl::OUString::createFromAscii("writer");
|
||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.sheet.SpreadsheetDocument" ) )
|
||||
+ sDesktopName = ::rtl::OUString::createFromAscii("calc");
|
||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.presentation.PresentationDocument" ) )
|
||||
+ sDesktopName = ::rtl::OUString::createFromAscii("impress");
|
||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.drawing.DrawingDocument" ) )
|
||||
+ sDesktopName = ::rtl::OUString::createFromAscii("draw");
|
||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.formula.FormulaProperties" ) )
|
||||
+ sDesktopName = ::rtl::OUString::createFromAscii("math");
|
||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.sdb.DatabaseDocument" ) ||
|
||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.OfficeDatabaseDocument" ) ||
|
||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.RelationDesign" ) ||
|
||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.QueryDesign" ) ||
|
||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.TableDesign" ) ||
|
||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.DataSourceBrowser" ) )
|
||||
+ sDesktopName = ::rtl::OUString::createFromAscii("base");
|
||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.frame.StartModule" ) )
|
||||
+ sDesktopName = ::rtl::OUString::createFromAscii("startcenter");
|
||||
+ else
|
||||
+ sDesktopName = ::rtl::OUString::createFromAscii("startcenter");
|
||||
+ sWM_CLASS = aProductName.toAsciiLowerCase();
|
||||
+ sWM_CLASS += ::rtl::OUString(sal_Unicode('-'));
|
||||
+ sWM_CLASS += sDesktopName;
|
||||
+ }
|
||||
+ catch(const css::uno::Exception&)
|
||||
+ {
|
||||
+ }
|
||||
+
|
||||
+ // VCL SYNCHRONIZED ->
|
||||
+ ::vos::OClearableGuard aSolarLock( Application::GetSolarMutex() );
|
||||
+
|
||||
+ Window* pWindow = (VCLUnoHelper::GetWindow( xWindow ));
|
||||
+ if (
|
||||
+ ( pWindow ) &&
|
||||
+ ( pWindow->GetType() == WINDOW_WORKWINDOW )
|
||||
+ )
|
||||
+ {
|
||||
+ WorkWindow* pWorkWindow = (WorkWindow*)pWindow;
|
||||
+#ifdef COPY_TO_TITLE_FOR_DEBUG
|
||||
+ pWorkWindow->SetText( sWM_CLASS );
|
||||
+#endif
|
||||
+ pWorkWindow->SetWMClass( sWM_CLASS );
|
||||
+ }
|
||||
+
|
||||
+ aSolarLock.clear();
|
||||
+}
|
||||
+
|
||||
+
|
||||
//*****************************************************************************************************************
|
||||
::sal_Bool TitleBarUpdate::implst_getModuleInfo(const css::uno::Reference< css::frame::XFrame >& xFrame,
|
||||
TModuleInfo& rInfo )
|
||||
@@ -260,6 +347,9 @@
|
||||
|
||||
impl_updateIcon (xFrame);
|
||||
impl_updateTitle (xFrame);
|
||||
+#if defined(UNX) && !defined(MACOSX)
|
||||
+ impl_updateWM_CLASSS (xFrame);
|
||||
+#endif
|
||||
}
|
||||
|
||||
//*****************************************************************************************************************
|
||||
diff -ru vcl/aqua/inc/salframe.h vcl/aqua/inc/salframe.h
|
||||
--- vcl/aqua/inc/salframe.h 2010-10-14 21:43:20.000000000 +0100
|
||||
+++ vcl/aqua/inc/salframe.h 2010-10-22 13:26:26.000000000 +0100
|
||||
@@ -159,6 +159,7 @@
|
||||
virtual void SetExtendedFrameStyle( SalExtStyle );
|
||||
virtual void SetBackgroundBitmap( SalBitmap* );
|
||||
virtual void SetScreenNumber(unsigned int);
|
||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass );
|
||||
|
||||
// shaped system windows
|
||||
// set clip region to none (-> rectangular windows, normal state)
|
||||
diff -ru vcl/aqua/source/window/salframe.cxx vcl/aqua/source/window/salframe.cxx
|
||||
--- vcl/aqua/source/window/salframe.cxx 2010-10-18 17:01:44.000000000 +0100
|
||||
+++ vcl/aqua/source/window/salframe.cxx 2010-10-22 13:17:50.000000000 +0100
|
||||
@@ -664,6 +664,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
+void AquaSalFrame::SetWMClass( const rtl::OUString &/*rWMClass*/ )
|
||||
+{
|
||||
+}
|
||||
+
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
void AquaSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay )
|
||||
diff -ru vcl/inc/vcl/salframe.hxx vcl/inc/vcl/salframe.hxx
|
||||
--- vcl/inc/vcl/salframe.hxx 2010-10-14 21:43:20.000000000 +0100
|
||||
+++ vcl/inc/vcl/salframe.hxx 2010-10-22 13:26:05.000000000 +0100
|
||||
@@ -266,6 +266,8 @@
|
||||
// move the frame to a new screen
|
||||
virtual void SetScreenNumber( unsigned int nScreen ) = 0;
|
||||
|
||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass ) = 0;
|
||||
+
|
||||
// shaped system windows
|
||||
// set clip region to none (-> rectangular windows, normal state)
|
||||
virtual void ResetClipRegion() = 0;
|
||||
diff -ru vcl/inc/vcl/syswin.hxx vcl/inc/vcl/syswin.hxx
|
||||
--- vcl/inc/vcl/syswin.hxx 2010-10-14 21:43:20.000000000 +0100
|
||||
+++ vcl/inc/vcl/syswin.hxx 2010-10-22 13:14:48.000000000 +0100
|
||||
@@ -277,6 +277,8 @@
|
||||
@see GetScreenNumber
|
||||
*/
|
||||
void SetScreenNumber( unsigned int nNewScreen );
|
||||
+
|
||||
+ void SetWMClass( const rtl::OUString &rWMClass );
|
||||
};
|
||||
|
||||
#endif // _SV_SYSWIN_HXX
|
||||
diff -ru vcl/source/window/syswin.cxx vcl/source/window/syswin.cxx
|
||||
--- vcl/source/window/syswin.cxx 2010-10-14 21:43:20.000000000 +0100
|
||||
+++ vcl/source/window/syswin.cxx 2010-10-22 13:29:21.000000000 +0100
|
||||
@@ -1082,3 +1082,8 @@
|
||||
{
|
||||
mpWindowImpl->mpFrame->SetScreenNumber( nScreen );
|
||||
}
|
||||
+
|
||||
+void SystemWindow::SetWMClass( const rtl::OUString &rWMClass )
|
||||
+{
|
||||
+ mpWindowImpl->mpFrame->SetWMClass( rWMClass );
|
||||
+}
|
||||
diff -ru vcl/unx/gtk/window/gtkframe.cxx vcl/unx/gtk/window/gtkframe.cxx
|
||||
--- vcl/unx/gtk/window/gtkframe.cxx 2010-10-22 08:55:43.000000000 +0100
|
||||
+++ vcl/unx/gtk/window/gtkframe.cxx 2010-10-22 14:12:08.000000000 +0100
|
||||
@@ -981,25 +981,10 @@
|
||||
if( nStyle != m_nExtStyle && ! isChild() )
|
||||
{
|
||||
m_nExtStyle = nStyle;
|
||||
- if( GTK_WIDGET_REALIZED( m_pWindow ) )
|
||||
- {
|
||||
- XClassHint* pClass = XAllocClassHint();
|
||||
- rtl::OString aResHint = X11SalData::getFrameResName( m_nExtStyle );
|
||||
- pClass->res_name = const_cast<char*>(aResHint.getStr());
|
||||
- pClass->res_class = const_cast<char*>(X11SalData::getFrameClassName());
|
||||
- XSetClassHint( getDisplay()->GetDisplay(),
|
||||
- GDK_WINDOW_XWINDOW(m_pWindow->window),
|
||||
- pClass );
|
||||
- XFree( pClass );
|
||||
- }
|
||||
- else
|
||||
- gtk_window_set_wmclass( GTK_WINDOW(m_pWindow),
|
||||
- X11SalData::getFrameResName( m_nExtStyle ),
|
||||
- X11SalData::getFrameClassName() );
|
||||
+ updateWMClass();
|
||||
}
|
||||
}
|
||||
|
||||
-
|
||||
SalGraphics* GtkSalFrame::GetGraphics()
|
||||
{
|
||||
if( m_pWindow )
|
||||
@@ -1792,6 +1777,39 @@
|
||||
}
|
||||
}
|
||||
|
||||
+void GtkSalFrame::updateWMClass()
|
||||
+{
|
||||
+ fprintf(stderr, "%p GtkSalFrame::SetWMClass with %s\n", this, rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_UTF8).getStr());
|
||||
+
|
||||
+ rtl::OString aResClass = rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_ASCII_US);
|
||||
+ const char *pResClass = aResClass.getLength() ? aResClass.getStr() : X11SalData::getFrameClassName();
|
||||
+
|
||||
+ if( GTK_WIDGET_REALIZED( m_pWindow ) )
|
||||
+ {
|
||||
+ XClassHint* pClass = XAllocClassHint();
|
||||
+ rtl::OString aResName = X11SalData::getFrameResName( m_nExtStyle );
|
||||
+ pClass->res_name = const_cast<char*>(aResName.getStr());
|
||||
+ pClass->res_class = const_cast<char*>(pResClass);
|
||||
+ XSetClassHint( getDisplay()->GetDisplay(),
|
||||
+ GDK_WINDOW_XWINDOW(m_pWindow->window),
|
||||
+ pClass );
|
||||
+ XFree( pClass );
|
||||
+ }
|
||||
+ else
|
||||
+ gtk_window_set_wmclass( GTK_WINDOW(m_pWindow),
|
||||
+ X11SalData::getFrameResName( m_nExtStyle ),
|
||||
+ pResClass );
|
||||
+}
|
||||
+
|
||||
+void GtkSalFrame::SetWMClass( const rtl::OUString &rWMClass )
|
||||
+{
|
||||
+ if( rWMClass != m_sWMClass && ! isChild() )
|
||||
+ {
|
||||
+ m_sWMClass = rWMClass;
|
||||
+ updateWMClass();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void GtkSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nScreen )
|
||||
{
|
||||
if( m_pWindow && ! isChild() )
|
||||
diff -ru vcl/unx/headless/svpframe.hxx vcl/unx/headless/svpframe.hxx
|
||||
--- vcl/unx/headless/svpframe.hxx 2010-10-14 21:43:20.000000000 +0100
|
||||
+++ vcl/unx/headless/svpframe.hxx 2010-10-22 13:27:19.000000000 +0100
|
||||
@@ -125,6 +125,7 @@
|
||||
|
||||
/*TODO: functional implementation */
|
||||
virtual void SetScreenNumber( unsigned int nScreen ) { (void)nScreen; }
|
||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass ) { (void) rWMClass; }
|
||||
};
|
||||
#endif // _SVP_SVPFRAME_HXX
|
||||
|
||||
diff -ru vcl/unx/inc/plugins/gtk/gtkframe.hxx vcl/unx/inc/plugins/gtk/gtkframe.hxx
|
||||
--- vcl/unx/inc/plugins/gtk/gtkframe.hxx 2010-10-22 08:55:43.000000000 +0100
|
||||
+++ vcl/unx/inc/plugins/gtk/gtkframe.hxx 2010-10-22 14:10:08.000000000 +0100
|
||||
@@ -192,6 +192,7 @@
|
||||
bool m_bWindowIsGtkPlug;
|
||||
bool m_bSetFocusOnMap;
|
||||
String m_aTitle;
|
||||
+ rtl::OUString m_sWMClass;
|
||||
|
||||
IMHandler* m_pIMHandler;
|
||||
|
||||
@@ -269,6 +270,8 @@
|
||||
void setMinMaxSize();
|
||||
void createNewWindow( XLIB_Window aParent, bool bXEmbed, int nScreen );
|
||||
void askForXEmbedFocus( sal_Int32 nTimecode );
|
||||
+
|
||||
+ void updateWMClass();
|
||||
|
||||
DECL_LINK( ImplDelayedFullScreenHdl, void* );
|
||||
public:
|
||||
@@ -387,6 +390,7 @@
|
||||
virtual void SetBackgroundBitmap( SalBitmap* );
|
||||
|
||||
virtual void SetScreenNumber( unsigned int );
|
||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass );
|
||||
|
||||
// shaped system windows
|
||||
// set clip region to none (-> rectangular windows, normal state)
|
||||
diff -ru vcl/unx/inc/salframe.h vcl/unx/inc/salframe.h
|
||||
--- vcl/unx/inc/salframe.h 2010-10-14 21:43:20.000000000 +0100
|
||||
+++ vcl/unx/inc/salframe.h 2010-10-22 14:22:35.000000000 +0100
|
||||
@@ -128,6 +128,8 @@
|
||||
int mnIconID;
|
||||
|
||||
String m_aTitle;
|
||||
+
|
||||
+ rtl::OUString m_sWMClass;
|
||||
|
||||
SystemChildData maSystemChildData;
|
||||
|
||||
@@ -171,6 +173,8 @@
|
||||
|
||||
void setXEmbedInfo();
|
||||
void askForXEmbedFocus( sal_Int32 i_nTimeCode );
|
||||
+
|
||||
+ void updateWMClass();
|
||||
public:
|
||||
X11SalFrame( SalFrame* pParent, ULONG nSalFrameStyle, SystemParentData* pSystemParent = NULL );
|
||||
virtual ~X11SalFrame();
|
||||
@@ -261,6 +265,7 @@
|
||||
virtual void SetBackgroundBitmap( SalBitmap* pBitmap );
|
||||
|
||||
virtual void SetScreenNumber( unsigned int );
|
||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass );
|
||||
|
||||
// shaped system windows
|
||||
// set clip region to none (-> rectangular windows, normal state)
|
||||
diff -ru vcl/unx/source/window/salframe.cxx vcl/unx/source/window/salframe.cxx
|
||||
--- vcl/unx/source/window/salframe.cxx 2010-10-18 12:39:42.000000000 +0100
|
||||
+++ vcl/unx/source/window/salframe.cxx 2010-10-22 14:23:44.000000000 +0100
|
||||
@@ -542,11 +542,9 @@
|
||||
a[n++] = pDisplay_->getWMAdaptor()->getAtom( WMAdaptor::WM_TAKE_FOCUS );
|
||||
XSetWMProtocols( GetXDisplay(), GetShellWindow(), a, n );
|
||||
|
||||
- XClassHint* pClass = XAllocClassHint();
|
||||
- pClass->res_name = const_cast<char*>(X11SalData::getFrameResName());
|
||||
- pClass->res_class = const_cast<char*>(X11SalData::getFrameClassName());
|
||||
- XSetClassHint( GetXDisplay(), GetShellWindow(), pClass );
|
||||
- XFree( pClass );
|
||||
+ // force wm class hint
|
||||
+ mnExtStyle = ~0;
|
||||
+ SetExtendedFrameStyle( 0 );
|
||||
|
||||
XSizeHints* pHints = XAllocSizeHints();
|
||||
pHints->flags = PWinGravity | PPosition;
|
||||
@@ -849,13 +847,7 @@
|
||||
if( nStyle != mnExtStyle && ! IsChildWindow() )
|
||||
{
|
||||
mnExtStyle = nStyle;
|
||||
-
|
||||
- XClassHint* pClass = XAllocClassHint();
|
||||
- rtl::OString aResHint = X11SalData::getFrameResName( mnExtStyle );
|
||||
- pClass->res_name = const_cast<char*>(aResHint.getStr());
|
||||
- pClass->res_class = const_cast<char*>(X11SalData::getFrameClassName());
|
||||
- XSetClassHint( GetXDisplay(), GetShellWindow(), pClass );
|
||||
- XFree( pClass );
|
||||
+ updateWMClass();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2192,6 +2184,30 @@
|
||||
}
|
||||
}
|
||||
|
||||
+void X11SalFrame::SetWMClass( const rtl::OUString &rWMClass )
|
||||
+{
|
||||
+ if( rWMClass != m_sWMClass && ! IsChildWindow() )
|
||||
+ {
|
||||
+ m_sWMClass = rWMClass;
|
||||
+ updateWMClass();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void X11SalFrame::updateWMClass()
|
||||
+{
|
||||
+ XClassHint* pClass = XAllocClassHint();
|
||||
+ rtl::OString aResName = X11SalData::getFrameResName( mnExtStyle );
|
||||
+ pClass->res_name = const_cast<char*>(aResName.getStr());
|
||||
+
|
||||
+ rtl::OString aResClass = rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_ASCII_US);
|
||||
+ const char *pResClass = aResClass.getLength() ? aResClass.getStr() : X11SalData::getFrameClassName();
|
||||
+
|
||||
+ pClass->res_class = const_cast<char*>(pResClass);
|
||||
+ XSetClassHint( GetXDisplay(), GetShellWindow(), pClass );
|
||||
+ XFree( pClass );
|
||||
+}
|
||||
+
|
||||
+
|
||||
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
|
||||
void X11SalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nScreen )
|
||||
diff -ru vcl/win/inc/salframe.h vcl/win/inc/salframe.h
|
||||
--- vcl/win/inc/salframe.h 2010-10-14 21:43:21.000000000 +0100
|
||||
+++ vcl/win/inc/salframe.h 2010-10-22 13:26:23.000000000 +0100
|
||||
@@ -141,6 +141,7 @@
|
||||
virtual bool SetPluginParent( SystemParentData* pNewParent );
|
||||
virtual void SetBackgroundBitmap( SalBitmap* );
|
||||
virtual void SetScreenNumber( unsigned int );
|
||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass );
|
||||
virtual void ResetClipRegion();
|
||||
virtual void BeginSetClipRegion( ULONG nRects );
|
||||
virtual void UnionClipRegion( long nX, long nY, long nWidth, long nHeight );
|
||||
diff -ru vcl/win/source/window/salframe.cxx vcl/win/source/window/salframe.cxx
|
||||
--- vcl/win/source/window/salframe.cxx 2010-10-14 21:43:21.000000000 +0100
|
||||
+++ vcl/win/source/window/salframe.cxx 2010-10-22 13:18:05.000000000 +0100
|
||||
@@ -2036,6 +2036,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
+void WinSalFrame::SetWMClass( const rtl::OUString &/*rWMClass*/ )
|
||||
+{
|
||||
+}
|
||||
+
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
void WinSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay )
|
@ -1,82 +0,0 @@
|
||||
--- openoffice.org/officecfg/registry/data/org/openoffice/Office/Writer.xcu.orig 2005-04-18 20:39:35.000000000 +0530
|
||||
+++ openoffice.org/officecfg/registry/data/org/openoffice/Office/Writer.xcu 2005-05-10 17:30:14.000000000 +0530
|
||||
@@ -40,6 +40,32 @@
|
||||
<prop oor:name="IsHideEmptyParagraphs" >
|
||||
<value>true</value>
|
||||
</prop>
|
||||
+ <node oor:name="DataSource">
|
||||
+ <prop oor:name="DataSourceName" oor:type="xs:string">
|
||||
+ <value>EvolutionLocal</value>
|
||||
+ </prop>
|
||||
+ <prop oor:name="DataTableName" oor:type="xs:string">
|
||||
+ <value>Personal</value>
|
||||
+ </prop>
|
||||
+ </node>
|
||||
+ <node oor:name="AddressDataAssignments">
|
||||
+ <node oor:name="_0" oor:op="replace">
|
||||
+ <prop oor:name="DBColumnAssignments" oor:type="oor:string-list">
|
||||
+ <value oor:separator=",">title,full_name,family_name,org,addr_line1,addr_line2,city,state,zip,country,home_phone,business_phone,email_1,</value>
|
||||
+ </prop>
|
||||
+ <node oor:name="DataSource">
|
||||
+ <prop oor:name="DataCommandType" oor:type="xs:short">
|
||||
+ <value>0</value>
|
||||
+ </prop>
|
||||
+ <prop oor:name="DataSourceName" oor:type="xs:string">
|
||||
+ <value>EvolutionLocal</value>
|
||||
+ </prop>
|
||||
+ <prop oor:name="DataTableName" oor:type="xs:string">
|
||||
+ <value>Personal</value>
|
||||
+ </prop>
|
||||
+ </node>
|
||||
+ </node>
|
||||
+ </node>
|
||||
<prop oor:name="EMailSupported">
|
||||
<value>true</value>
|
||||
</prop>
|
||||
--- openoffice.org/extras/source/database/makefile.mk.bakj 2005-03-16 18:49:33.251075928 +0530
|
||||
+++ openoffice.org/extras/source/database/makefile.mk 2005-03-16 18:50:38.651285353 +0530
|
||||
@@ -72,8 +72,8 @@
|
||||
|
||||
ZIP1TARGET = $(DATABASE_USER_TARGET)
|
||||
|
||||
-ZIP1LIST = biblio.odb
|
||||
-
|
||||
+ZIP1LIST = biblio.odb \
|
||||
+ evolocal.odb
|
||||
ZIP2TARGET = $(DATABASE_USER_BIBLIO_TARGET)
|
||||
|
||||
ZIP2LIST = biblio.dbf biblio.dbt
|
||||
--- openoffice.org/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu.bakj 2005-03-16 18:51:43.777536725 +0530
|
||||
+++ openoffice.org/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 2005-03-16 18:52:51.471404727 +0530
|
||||
@@ -161,6 +161,14 @@
|
||||
<value>Bibliography</value>
|
||||
</prop>
|
||||
</node>
|
||||
+ <node oor:name="EvolutionLocal" oor:op="replace">
|
||||
+ <prop oor:name="Location" oor:type="xs:string">
|
||||
+ <value>$(userurl)/database/evolocal.odb</value>
|
||||
+ </prop>
|
||||
+ <prop oor:name="Name" oor:type="xs:string">
|
||||
+ <value>EvolutionLocal</value>
|
||||
+ </prop>
|
||||
+ </node>
|
||||
</node>
|
||||
<node oor:name="Bibliography">
|
||||
<node oor:name="CurrentDataSource">
|
||||
--- openoffice.org.orig/extensions/source/abpilot/abspilot.cxx 19 Dec 2005 17:26:24 -0000 1.13
|
||||
+++ openoffice.org/extensions/source/abpilot/abspilot.cxx 16 Feb 2006 12:45:38 -0000
|
||||
@@ -124,12 +124,8 @@
|
||||
// some initial settings
|
||||
#ifdef MACOSX
|
||||
m_aSettings.eType = AST_MACAB;
|
||||
-#elif WITH_MOZILLA
|
||||
-#ifdef UNX
|
||||
- m_aSettings.eType = AST_MORK;
|
||||
-#else
|
||||
- m_aSettings.eType = AST_OE;
|
||||
-#endif
|
||||
+#elif UNX
|
||||
+ m_aSettings.eType = AST_EVOLUTION;
|
||||
#else
|
||||
m_aSettings.eType = AST_OTHER;
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
@ -1,87 +0,0 @@
|
||||
diff -r 3c24aa9a7810 desktop/source/app/cmdlineargs.cxx
|
||||
--- a/desktop/source/app/cmdlineargs.cxx Sat Jan 23 16:31:03 2010 +0000
|
||||
+++ b/desktop/source/app/cmdlineargs.cxx Tue Feb 02 13:59:39 2010 +0000
|
||||
@@ -396,7 +396,7 @@
|
||||
}
|
||||
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-quickstart" )) == sal_True )
|
||||
{
|
||||
-#if defined(WNT) || defined(OS2) || defined(QUARTZ)
|
||||
+#if defined(ENABLE_QUICKSTART_APPLET)
|
||||
SetBoolParam_Impl( CMD_BOOLPARAM_QUICKSTART, sal_True );
|
||||
#endif
|
||||
SetBoolParam_Impl( CMD_BOOLPARAM_NOQUICKSTART, sal_False );
|
||||
diff -r 3c24aa9a7810 desktop/source/app/makefile.mk
|
||||
--- a/desktop/source/app/makefile.mk Sat Jan 23 16:31:03 2010 +0000
|
||||
+++ b/desktop/source/app/makefile.mk Tue Feb 02 13:59:39 2010 +0000
|
||||
@@ -53,6 +53,10 @@
|
||||
# DEPLOYMENTMISCLIB = -ldeploymentmisc$(DLLPOSTFIX)
|
||||
# .ENDIF
|
||||
|
||||
+.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" || "$(GUIBASE)"=="aqua" || "$(ENABLE_SYSTRAY_GTK)"=="TRUE"
|
||||
+CFLAGS+=-DENABLE_QUICKSTART_APPLET
|
||||
+.ENDIF
|
||||
+
|
||||
SHL1TARGET = sofficeapp
|
||||
SHL1OBJS = \
|
||||
$(SLO)$/app.obj \
|
||||
diff -r 3c24aa9a7810 sfx2/source/appl/shutdownicon.cxx
|
||||
--- a/sfx2/source/appl/shutdownicon.cxx Sat Jan 23 16:31:03 2010 +0000
|
||||
+++ b/sfx2/source/appl/shutdownicon.cxx Tue Feb 02 13:59:39 2010 +0000
|
||||
@@ -555,8 +555,8 @@
|
||||
return;
|
||||
|
||||
// always remove ourselves as listener
|
||||
+ pInst->m_bListenForTermination = true;
|
||||
xDesktop->removeTerminateListener( pInst );
|
||||
- pInst->m_bListenForTermination = true;
|
||||
|
||||
// terminate desktop only if no tasks exist
|
||||
Reference< XFramesSupplier > xSupplier( xDesktop, UNO_QUERY );
|
||||
diff -r 3c24aa9a7810 sfx2/source/appl/shutdowniconunx.cxx
|
||||
--- a/sfx2/source/appl/shutdowniconunx.cxx Sat Jan 23 16:31:03 2010 +0000
|
||||
+++ b/sfx2/source/appl/shutdowniconunx.cxx Tue Feb 02 13:59:39 2010 +0000
|
||||
@@ -39,6 +39,7 @@
|
||||
static EggTrayIcon *pTrayIcon;
|
||||
static GtkWidget *pExitMenuItem = NULL;
|
||||
static GtkWidget *pOpenMenuItem = NULL;
|
||||
+static GtkWidget *pDisableMenuItem = NULL;
|
||||
|
||||
static void open_url_cb( GtkWidget *, gpointer data )
|
||||
{
|
||||
@@ -67,8 +68,10 @@
|
||||
static void exit_quickstarter_cb( GtkWidget * )
|
||||
{
|
||||
egg_tray_icon_cancel_message (pTrayIcon, 1 );
|
||||
- ShutdownIcon::getInstance()->terminateDesktop();
|
||||
plugin_shutdown_sys_tray();
|
||||
+ //terminate may cause this .so to be unloaded. So we must be hands off
|
||||
+ //all calls into this .so after this call
|
||||
+ ShutdownIcon::terminateDesktop();
|
||||
}
|
||||
|
||||
static void menu_deactivate_cb( GtkWidget *pMenu )
|
||||
@@ -265,7 +268,7 @@
|
||||
pMenuItem = gtk_separator_menu_item_new();
|
||||
gtk_menu_shell_append( pMenuShell, pMenuItem );
|
||||
|
||||
- (void) add_image_menu_item
|
||||
+ pDisableMenuItem = add_image_menu_item
|
||||
( pMenuShell, GTK_STOCK_CLOSE,
|
||||
pShutdownIcon->GetResString( STR_QUICKSTART_PRELAUNCH_UNX ),
|
||||
G_CALLBACK( systray_disable_cb ) );
|
||||
@@ -289,6 +292,7 @@
|
||||
bool bModal = ShutdownIcon::bModalMode;
|
||||
gtk_widget_set_sensitive( pExitMenuItem, !bModal);
|
||||
gtk_widget_set_sensitive( pOpenMenuItem, !bModal);
|
||||
+ gtk_widget_set_sensitive( pDisableMenuItem, !bModal);
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
@@ -404,6 +409,7 @@
|
||||
pTrayIcon = NULL;
|
||||
pExitMenuItem = NULL;
|
||||
pOpenMenuItem = NULL;
|
||||
+ pDisableMenuItem = NULL;
|
||||
}
|
||||
|
||||
#endif // ENABLE_QUICKSTART_APPLET
|
@ -1,644 +0,0 @@
|
||||
--- cppu/source/threadpool/jobqueue.cxx 2008-04-11 11:33:02.000000000 +0100
|
||||
+++ cppu/source/threadpool/jobqueue.cxx 2009-12-02 16:14:26.000000000 +0000
|
||||
@@ -45,6 +45,7 @@
|
||||
m_cndWait( osl_createCondition() )
|
||||
{
|
||||
osl_resetCondition( m_cndWait );
|
||||
+ m_DisposedCallerAdmin = DisposedCallerAdmin::getInstance();
|
||||
}
|
||||
|
||||
JobQueue::~JobQueue()
|
||||
@@ -71,7 +72,7 @@
|
||||
{
|
||||
// synchronize with the dispose calls
|
||||
MutexGuard guard( m_mutex );
|
||||
- if( DisposedCallerAdmin::getInstance()->isDisposed( nDisposeId ) )
|
||||
+ if( m_DisposedCallerAdmin->isDisposed( nDisposeId ) )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
--- cppu/source/threadpool/jobqueue.hxx 2008-04-11 11:33:18.000000000 +0100
|
||||
+++ cppu/source/threadpool/jobqueue.hxx 2009-12-02 16:15:49.000000000 +0000
|
||||
@@ -37,6 +37,8 @@
|
||||
#include <osl/conditn.h>
|
||||
#include <osl/mutex.hxx>
|
||||
|
||||
+#include <boost/shared_ptr.hpp>
|
||||
+
|
||||
namespace cppu_threadpool
|
||||
{
|
||||
extern "C" typedef void (SAL_CALL RequestFun)(void *);
|
||||
@@ -51,6 +53,9 @@
|
||||
|
||||
typedef ::std::list < sal_Int64 > CallStackList;
|
||||
|
||||
+ class DisposedCallerAdmin;
|
||||
+ typedef boost::shared_ptr<DisposedCallerAdmin> DisposedCallerAdminHolder;
|
||||
+
|
||||
class JobQueue
|
||||
{
|
||||
public:
|
||||
@@ -76,6 +81,7 @@
|
||||
sal_Int32 m_nToDo;
|
||||
sal_Bool m_bSuspended;
|
||||
oslCondition m_cndWait;
|
||||
+ DisposedCallerAdminHolder m_DisposedCallerAdmin;
|
||||
};
|
||||
}
|
||||
|
||||
--- cppu/source/threadpool/thread.cxx 2008-04-11 11:34:00.000000000 +0100
|
||||
+++ cppu/source/threadpool/thread.cxx 2009-12-03 16:15:02.000000000 +0000
|
||||
@@ -31,6 +31,8 @@
|
||||
#include <osl/diagnose.h>
|
||||
#include <uno/threadpool.h>
|
||||
|
||||
+#include <rtl/instance.hxx>
|
||||
+
|
||||
#include "thread.hxx"
|
||||
#include "jobqueue.hxx"
|
||||
#include "threadpool.hxx"
|
||||
@@ -98,20 +100,17 @@
|
||||
} while( pCurrent );
|
||||
}
|
||||
|
||||
- ThreadAdmin* ThreadAdmin::getInstance()
|
||||
+ struct theThreadAdmin : public rtl::StaticWithInit< ThreadAdminHolder, theThreadAdmin >
|
||||
{
|
||||
- static ThreadAdmin *pThreadAdmin = 0;
|
||||
- if( ! pThreadAdmin )
|
||||
- {
|
||||
- MutexGuard guard( Mutex::getGlobalMutex() );
|
||||
- if( ! pThreadAdmin )
|
||||
- {
|
||||
- static ThreadAdmin admin;
|
||||
- pThreadAdmin = &admin;
|
||||
- }
|
||||
+ ThreadAdminHolder operator () () {
|
||||
+ ThreadAdminHolder aRet(new ThreadAdmin());
|
||||
+ return aRet;
|
||||
}
|
||||
- return pThreadAdmin;
|
||||
+ };
|
||||
|
||||
+ ThreadAdminHolder& ThreadAdmin::getInstance()
|
||||
+ {
|
||||
+ return theThreadAdmin::get();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------
|
||||
@@ -119,12 +118,13 @@
|
||||
const ByteSequence &aThreadId,
|
||||
sal_Bool bAsynchron )
|
||||
: m_thread( 0 )
|
||||
+ , m_aThreadAdmin( ThreadAdmin::getInstance() )
|
||||
, m_pQueue( pQueue )
|
||||
, m_aThreadId( aThreadId )
|
||||
, m_bAsynchron( bAsynchron )
|
||||
, m_bDeleteSelf( sal_True )
|
||||
{
|
||||
- ThreadAdmin::getInstance()->add( this );
|
||||
+ m_aThreadAdmin->add( this );
|
||||
}
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
|
||||
void ORequestThread::onTerminated()
|
||||
{
|
||||
- ThreadAdmin::getInstance()->remove( this );
|
||||
+ m_aThreadAdmin->remove( this );
|
||||
if( m_bDeleteSelf )
|
||||
{
|
||||
delete this;
|
||||
@@ -175,6 +175,8 @@
|
||||
|
||||
void ORequestThread::run()
|
||||
{
|
||||
+ ThreadPoolHolder theThreadPool = cppu_threadpool::ThreadPool::getInstance();
|
||||
+
|
||||
while ( m_pQueue )
|
||||
{
|
||||
if( ! m_bAsynchron )
|
||||
@@ -197,7 +199,7 @@
|
||||
|
||||
if( m_pQueue->isEmpty() )
|
||||
{
|
||||
- ThreadPool::getInstance()->revokeQueue( m_aThreadId , m_bAsynchron );
|
||||
+ theThreadPool->revokeQueue( m_aThreadId , m_bAsynchron );
|
||||
// Note : revokeQueue might have failed because m_pQueue.isEmpty()
|
||||
// may be false (race).
|
||||
}
|
||||
@@ -211,7 +213,7 @@
|
||||
uno_releaseIdFromCurrentThread();
|
||||
}
|
||||
|
||||
- cppu_threadpool::ThreadPool::getInstance()->waitInPool( this );
|
||||
+ theThreadPool->waitInPool( this );
|
||||
}
|
||||
}
|
||||
}
|
||||
--- cppu/source/threadpool/thread.hxx 2008-04-11 11:34:18.000000000 +0100
|
||||
+++ cppu/source/threadpool/thread.hxx 2009-12-02 15:58:34.000000000 +0000
|
||||
@@ -37,6 +37,8 @@
|
||||
namespace cppu_threadpool {
|
||||
|
||||
class JobQueue;
|
||||
+ class ThreadAdmin;
|
||||
+ typedef boost::shared_ptr<ThreadAdmin> ThreadAdminHolder;
|
||||
|
||||
//-----------------------------------------
|
||||
// private thread class for the threadpool
|
||||
@@ -61,6 +63,7 @@
|
||||
|
||||
private:
|
||||
oslThread m_thread;
|
||||
+ ThreadAdminHolder m_aThreadAdmin;
|
||||
JobQueue *m_pQueue;
|
||||
::rtl::ByteSequence m_aThreadId;
|
||||
sal_Bool m_bAsynchron;
|
||||
@@ -71,7 +74,7 @@
|
||||
{
|
||||
public:
|
||||
~ThreadAdmin ();
|
||||
- static ThreadAdmin *getInstance();
|
||||
+ static ThreadAdminHolder &getInstance();
|
||||
void add( ORequestThread * );
|
||||
void remove( ORequestThread * );
|
||||
void join();
|
||||
--- cppu/source/threadpool/threadpool.cxx 2008-04-11 11:34:54.000000000 +0100
|
||||
+++ cppu/source/threadpool/threadpool.cxx 2009-12-03 16:14:56.000000000 +0000
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <osl/diagnose.h>
|
||||
#include <osl/mutex.hxx>
|
||||
#include <osl/thread.h>
|
||||
+#include <rtl/instance.hxx>
|
||||
|
||||
#include <uno/threadpool.h>
|
||||
|
||||
@@ -44,19 +45,17 @@
|
||||
|
||||
namespace cppu_threadpool
|
||||
{
|
||||
- DisposedCallerAdmin *DisposedCallerAdmin::getInstance()
|
||||
+ struct theDisposedCallerAdmin :
|
||||
+ public rtl::StaticWithInit< DisposedCallerAdminHolder, theDisposedCallerAdmin >
|
||||
{
|
||||
- static DisposedCallerAdmin *pDisposedCallerAdmin = 0;
|
||||
- if( ! pDisposedCallerAdmin )
|
||||
- {
|
||||
- MutexGuard guard( Mutex::getGlobalMutex() );
|
||||
- if( ! pDisposedCallerAdmin )
|
||||
- {
|
||||
- static DisposedCallerAdmin admin;
|
||||
- pDisposedCallerAdmin = &admin;
|
||||
- }
|
||||
+ DisposedCallerAdminHolder operator () () {
|
||||
+ return DisposedCallerAdminHolder(new DisposedCallerAdmin());
|
||||
}
|
||||
- return pDisposedCallerAdmin;
|
||||
+ };
|
||||
+
|
||||
+ DisposedCallerAdminHolder DisposedCallerAdmin::getInstance()
|
||||
+ {
|
||||
+ return theDisposedCallerAdmin::get();
|
||||
}
|
||||
|
||||
DisposedCallerAdmin::~DisposedCallerAdmin()
|
||||
@@ -107,6 +106,21 @@
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
+
|
||||
+ struct theThreadPool :
|
||||
+ public rtl::StaticWithInit< ThreadPoolHolder, theThreadPool >
|
||||
+ {
|
||||
+ ThreadPoolHolder operator () () {
|
||||
+ ThreadPoolHolder aRet(new ThreadPool());
|
||||
+ return aRet;
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+ ThreadPool::ThreadPool()
|
||||
+ {
|
||||
+ m_DisposedCallerAdmin = DisposedCallerAdmin::getInstance();
|
||||
+ }
|
||||
+
|
||||
ThreadPool::~ThreadPool()
|
||||
{
|
||||
#if OSL_DEBUG_LEVEL > 1
|
||||
@@ -116,19 +130,9 @@
|
||||
}
|
||||
#endif
|
||||
}
|
||||
- ThreadPool *ThreadPool::getInstance()
|
||||
+ ThreadPoolHolder ThreadPool::getInstance()
|
||||
{
|
||||
- static ThreadPool *pThreadPool = 0;
|
||||
- if( ! pThreadPool )
|
||||
- {
|
||||
- MutexGuard guard( Mutex::getGlobalMutex() );
|
||||
- if( ! pThreadPool )
|
||||
- {
|
||||
- static ThreadPool pool;
|
||||
- pThreadPool = &pool;
|
||||
- }
|
||||
- }
|
||||
- return pThreadPool;
|
||||
+ return theThreadPool::get();
|
||||
}
|
||||
|
||||
|
||||
@@ -136,7 +140,7 @@
|
||||
{
|
||||
if( nDisposeId )
|
||||
{
|
||||
- DisposedCallerAdmin::getInstance()->dispose( nDisposeId );
|
||||
+ m_DisposedCallerAdmin->dispose( nDisposeId );
|
||||
|
||||
MutexGuard guard( m_mutex );
|
||||
for( ThreadIdHashMap::iterator ii = m_mapQueue.begin() ;
|
||||
@@ -171,7 +175,7 @@
|
||||
|
||||
void ThreadPool::stopDisposing( sal_Int64 nDisposeId )
|
||||
{
|
||||
- DisposedCallerAdmin::getInstance()->stopDisposing( nDisposeId );
|
||||
+ m_DisposedCallerAdmin->stopDisposing( nDisposeId );
|
||||
}
|
||||
|
||||
/******************
|
||||
@@ -400,7 +404,7 @@
|
||||
|
||||
|
||||
|
||||
-typedef ::std::hash_set< uno_ThreadPool, uno_ThreadPool_Hash, uno_ThreadPool_Equal > ThreadpoolHashSet;
|
||||
+typedef ::std::hash_map< uno_ThreadPool, ThreadPoolHolder, uno_ThreadPool_Hash, uno_ThreadPool_Equal > ThreadpoolHashSet;
|
||||
|
||||
static ThreadpoolHashSet *g_pThreadpoolHashSet;
|
||||
|
||||
@@ -420,7 +424,7 @@
|
||||
|
||||
// Just ensure that the handle is unique in the process (via heap)
|
||||
uno_ThreadPool h = new struct _uno_ThreadPool;
|
||||
- g_pThreadpoolHashSet->insert( h );
|
||||
+ g_pThreadpoolHashSet->insert( ThreadpoolHashSet::value_type(h, ThreadPool::getInstance()) );
|
||||
return h;
|
||||
}
|
||||
|
||||
--- cppu/source/threadpool/threadpool.hxx 2008-04-11 11:35:13.000000000 +0100
|
||||
+++ cppu/source/threadpool/threadpool.hxx 2009-12-02 16:12:13.000000000 +0000
|
||||
@@ -33,6 +33,8 @@
|
||||
|
||||
#include <rtl/byteseq.hxx>
|
||||
|
||||
+#include <boost/shared_ptr.hpp>
|
||||
+
|
||||
#include "jobqueue.hxx"
|
||||
|
||||
|
||||
@@ -78,13 +80,16 @@
|
||||
};
|
||||
|
||||
typedef ::std::list < struct ::cppu_threadpool::WaitingThread * > WaitingThreadList;
|
||||
+
|
||||
+ class DisposedCallerAdmin;
|
||||
+ typedef boost::shared_ptr<DisposedCallerAdmin> DisposedCallerAdminHolder;
|
||||
|
||||
class DisposedCallerAdmin
|
||||
{
|
||||
public:
|
||||
~DisposedCallerAdmin();
|
||||
|
||||
- static DisposedCallerAdmin *getInstance();
|
||||
+ static DisposedCallerAdminHolder getInstance();
|
||||
|
||||
void dispose( sal_Int64 nDisposeId );
|
||||
void stopDisposing( sal_Int64 nDisposeId );
|
||||
@@ -95,11 +100,15 @@
|
||||
DisposedCallerList m_lst;
|
||||
};
|
||||
|
||||
+ class ThreadPool;
|
||||
+ typedef boost::shared_ptr<ThreadPool> ThreadPoolHolder;
|
||||
+
|
||||
class ThreadPool
|
||||
{
|
||||
public:
|
||||
+ ThreadPool();
|
||||
~ThreadPool();
|
||||
- static ThreadPool *getInstance();
|
||||
+ static ThreadPoolHolder getInstance();
|
||||
|
||||
void dispose( sal_Int64 nDisposeId );
|
||||
void stopDisposing( sal_Int64 nDisposeId );
|
||||
@@ -127,6 +136,8 @@
|
||||
|
||||
::osl::Mutex m_mutexWaitingThreadList;
|
||||
WaitingThreadList m_lstThreads;
|
||||
+
|
||||
+ DisposedCallerAdminHolder m_DisposedCallerAdmin;
|
||||
};
|
||||
|
||||
} // end namespace cppu_threadpool
|
||||
--- cppu/source/uno/lbenv.cxx 2009-02-12 10:18:09.000000000 +0000
|
||||
+++ cppu/source/uno/lbenv.cxx 2009-12-03 16:14:26.000000000 +0000
|
||||
@@ -142,6 +142,7 @@
|
||||
::osl::Mutex mutex;
|
||||
OUString2EnvironmentMap aName2EnvMap;
|
||||
|
||||
+ EnvironmentsData() : isDisposing(false) {}
|
||||
~EnvironmentsData();
|
||||
|
||||
inline void getEnvironment(
|
||||
@@ -150,6 +151,8 @@
|
||||
inline void getRegisteredEnvironments(
|
||||
uno_Environment *** pppEnvs, sal_Int32 * pnLen,
|
||||
uno_memAlloc memAlloc, const OUString & rEnvDcp );
|
||||
+
|
||||
+ bool isDisposing;
|
||||
};
|
||||
|
||||
namespace
|
||||
@@ -598,9 +601,14 @@
|
||||
*ppHardEnv = 0;
|
||||
}
|
||||
|
||||
+ EnvironmentsData & rData = theEnvironmentsData::get();
|
||||
+
|
||||
+ if (rData.isDisposing)
|
||||
+ return;
|
||||
+
|
||||
uno_DefaultEnvironment * that = (uno_DefaultEnvironment *)pEnv;
|
||||
{
|
||||
- ::osl::MutexGuard guard( theEnvironmentsData::get().mutex );
|
||||
+ ::osl::MutexGuard guard( rData.mutex );
|
||||
if (1 == ::osl_incrementInterlockedCount( &that->nRef )) // is dead
|
||||
{
|
||||
that->nRef = 0;
|
||||
@@ -917,6 +925,7 @@
|
||||
EnvironmentsData::~EnvironmentsData()
|
||||
{
|
||||
::osl::MutexGuard guard( mutex );
|
||||
+ isDisposing = true;
|
||||
|
||||
for ( OUString2EnvironmentMap::const_iterator iPos( aName2EnvMap.begin() );
|
||||
iPos != aName2EnvMap.end(); ++iPos )
|
||||
--- cppu/util/target.pmk 2008-04-11 12:07:15.000000000 +0100
|
||||
+++ cppu/util/target.pmk 2009-12-02 15:50:08.000000000 +0000
|
||||
@@ -55,12 +55,3 @@
|
||||
.ENDIF
|
||||
|
||||
.ENDIF
|
||||
-
|
||||
-# other stuff
|
||||
-
|
||||
-.IF "$(cppu_no_leak)" == ""
|
||||
-.IF "$(bndchk)" == ""
|
||||
-CFLAGS += -DCPPU_LEAK_STATIC_DATA
|
||||
-.ENDIF
|
||||
-.ENDIF
|
||||
-
|
||||
--- package/inc/ZipPackageFolder.hxx 2010-06-22 11:49:17.000000000 +0100
|
||||
+++ package/inc/ZipPackageFolder.hxx 2010-06-22 12:50:26.000000000 +0100
|
||||
@@ -53,8 +53,6 @@
|
||||
::com::sun::star::container::XEnumerationAccess
|
||||
>
|
||||
{
|
||||
- static com::sun::star::uno::Sequence < sal_Int8 > aImplementationId;
|
||||
-
|
||||
protected:
|
||||
ContentHash maContents;
|
||||
const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory;
|
||||
@@ -82,10 +80,7 @@
|
||||
throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
||||
|
||||
static void copyZipEntry( ZipEntry &rDest, const ZipEntry &rSource);
|
||||
- static ::com::sun::star::uno::Sequence < sal_Int8 > static_getImplementationId()
|
||||
- {
|
||||
- return aImplementationId;
|
||||
- }
|
||||
+ static const ::com::sun::star::uno::Sequence < sal_Int8 >& static_getImplementationId();
|
||||
|
||||
void setPackageFormat_Impl( sal_Int32 nFormat ) { m_nFormat = nFormat; }
|
||||
void setRemoveOnInsertMode_Impl( sal_Bool bRemove ) { this->mbAllowRemoveOnInsert = bRemove; }
|
||||
--- package/source/xstor/owriteablestream.cxx 2010-06-22 11:49:15.000000000 +0100
|
||||
+++ package/source/xstor/owriteablestream.cxx 2010-06-22 12:13:20.000000000 +0100
|
||||
@@ -53,6 +53,7 @@
|
||||
|
||||
#include <rtl/digest.h>
|
||||
#include <rtl/logfile.hxx>
|
||||
+#include <rtl/instance.hxx>
|
||||
|
||||
// since the copying uses 32000 blocks usually, it makes sense to have a smaller size
|
||||
#define MAX_STORCACHE_SIZE 30000
|
||||
@@ -2169,25 +2170,14 @@
|
||||
return m_pData->m_pTypeCollection->getTypes() ;
|
||||
}
|
||||
|
||||
+namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; }
|
||||
+
|
||||
//-----------------------------------------------
|
||||
uno::Sequence< sal_Int8 > SAL_CALL OWriteStream::getImplementationId()
|
||||
throw( uno::RuntimeException )
|
||||
{
|
||||
- static ::cppu::OImplementationId* pID = NULL ;
|
||||
-
|
||||
- if ( pID == NULL )
|
||||
- {
|
||||
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ) ;
|
||||
-
|
||||
- if ( pID == NULL )
|
||||
- {
|
||||
- static ::cppu::OImplementationId aID( sal_False ) ;
|
||||
- pID = &aID ;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return pID->getImplementationId() ;
|
||||
-
|
||||
+ ::cppu::OImplementationId &rId = lcl_ImplId::get();
|
||||
+ return rId.getImplementationId();
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
--- package/source/xstor/xstorage.cxx 2010-06-22 11:49:15.000000000 +0100
|
||||
+++ package/source/xstor/xstorage.cxx 2010-06-22 12:11:45.000000000 +0100
|
||||
@@ -48,6 +48,7 @@
|
||||
#include <cppuhelper/typeprovider.hxx>
|
||||
#include <cppuhelper/exc_hlp.hxx>
|
||||
#include <rtl/logfile.hxx>
|
||||
+#include <rtl/instance.hxx>
|
||||
|
||||
#include <comphelper/processfactory.hxx>
|
||||
#include <comphelper/componentcontext.hxx>
|
||||
@@ -2367,25 +2368,14 @@
|
||||
return m_pData->m_pTypeCollection->getTypes() ;
|
||||
}
|
||||
|
||||
+namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; }
|
||||
+
|
||||
//-----------------------------------------------
|
||||
uno::Sequence< sal_Int8 > SAL_CALL OStorage::getImplementationId()
|
||||
throw( uno::RuntimeException )
|
||||
{
|
||||
- static ::cppu::OImplementationId* pID = NULL ;
|
||||
-
|
||||
- if ( pID == NULL )
|
||||
- {
|
||||
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ) ;
|
||||
-
|
||||
- if ( pID == NULL )
|
||||
- {
|
||||
- static ::cppu::OImplementationId aID( sal_False ) ;
|
||||
- pID = &aID ;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return pID->getImplementationId() ;
|
||||
-
|
||||
+ ::cppu::OImplementationId &rID = lcl_ImplId::get();
|
||||
+ return rID.getImplementationId();
|
||||
}
|
||||
|
||||
//____________________________________________________________________________________________________
|
||||
--- package/source/zippackage/ZipPackage.cxx 2010-06-22 11:49:16.000000000 +0100
|
||||
+++ package/source/zippackage/ZipPackage.cxx 2010-06-22 12:12:00.000000000 +0100
|
||||
@@ -68,6 +68,7 @@
|
||||
#include <rtl/uri.hxx>
|
||||
#include <rtl/random.h>
|
||||
#include <rtl/logfile.hxx>
|
||||
+#include <rtl/instance.hxx>
|
||||
#include <osl/time.h>
|
||||
#include <osl/file.hxx>
|
||||
#include "com/sun/star/io/XAsyncOutputMonitor.hpp"
|
||||
@@ -1585,21 +1586,14 @@
|
||||
static_getSupportedServiceNames());
|
||||
}
|
||||
|
||||
+namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; }
|
||||
+
|
||||
// XUnoTunnel
|
||||
Sequence< sal_Int8 > ZipPackage::getUnoTunnelImplementationId( void )
|
||||
throw (RuntimeException)
|
||||
{
|
||||
- static ::cppu::OImplementationId * pId = 0;
|
||||
- if (! pId)
|
||||
- {
|
||||
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
|
||||
- if (! pId)
|
||||
- {
|
||||
- static ::cppu::OImplementationId aId;
|
||||
- pId = &aId;
|
||||
- }
|
||||
- }
|
||||
- return pId->getImplementationId();
|
||||
+ ::cppu::OImplementationId &rId = lcl_ImplId::get();
|
||||
+ return rId.getImplementationId();
|
||||
}
|
||||
|
||||
sal_Int64 SAL_CALL ZipPackage::getSomething( const Sequence< sal_Int8 >& aIdentifier )
|
||||
--- package/source/zippackage/ZipPackageFolder.cxx 2010-06-22 11:49:16.000000000 +0100
|
||||
+++ package/source/zippackage/ZipPackageFolder.cxx 2010-06-22 12:50:00.000000000 +0100
|
||||
@@ -43,6 +43,7 @@
|
||||
#include <com/sun/star/io/XSeekable.hpp>
|
||||
#include <EncryptedDataHeader.hxx>
|
||||
#include <rtl/random.h>
|
||||
+#include <rtl/instance.hxx>
|
||||
#include <memory>
|
||||
|
||||
using namespace com::sun::star::packages::zip::ZipConstants;
|
||||
@@ -59,7 +60,7 @@
|
||||
using namespace ::com::sun::star;
|
||||
using vos::ORef;
|
||||
|
||||
-Sequence < sal_Int8 > ZipPackageFolder::aImplementationId = Sequence < sal_Int8 > ();
|
||||
+namespace { struct lcl_CachedImplId : public rtl::Static< Sequence < sal_Int8 >, lcl_CachedImplId > {}; }
|
||||
|
||||
ZipPackageFolder::ZipPackageFolder ( const Reference< XMultiServiceFactory >& xFactory,
|
||||
sal_Int32 nFormat,
|
||||
@@ -80,10 +81,9 @@
|
||||
aEntry.nCompressedSize = 0;
|
||||
aEntry.nSize = 0;
|
||||
aEntry.nOffset = -1;
|
||||
- if ( !aImplementationId.getLength() )
|
||||
- {
|
||||
- aImplementationId = getImplementationId();
|
||||
- }
|
||||
+ Sequence < sal_Int8 > &rCachedImplId = lcl_CachedImplId::get();
|
||||
+ if ( !rCachedImplId.getLength() )
|
||||
+ rCachedImplId = getImplementationId();
|
||||
}
|
||||
|
||||
|
||||
@@ -187,6 +187,11 @@
|
||||
rDest.nExtraLen = rSource.nExtraLen;
|
||||
}
|
||||
|
||||
+const ::com::sun::star::uno::Sequence < sal_Int8 >& ZipPackageFolder::static_getImplementationId()
|
||||
+{
|
||||
+ return lcl_CachedImplId::get();
|
||||
+}
|
||||
+
|
||||
// XNameContainer
|
||||
void SAL_CALL ZipPackageFolder::insertByName( const OUString& aName, const Any& aElement )
|
||||
throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException)
|
||||
--- package/source/zippackage/ZipPackageStream.cxx 2010-06-22 11:49:16.000000000 +0100
|
||||
+++ package/source/zippackage/ZipPackageStream.cxx 2010-06-22 12:53:32.000000000 +0100
|
||||
@@ -45,6 +45,8 @@
|
||||
#include <comphelper/seekableinput.hxx>
|
||||
#include <comphelper/storagehelper.hxx>
|
||||
|
||||
+#include <rtl/instance.hxx>
|
||||
+
|
||||
#include <PackageConstants.hxx>
|
||||
|
||||
using namespace com::sun::star::packages::zip::ZipConstants;
|
||||
@@ -55,8 +57,12 @@
|
||||
using namespace cppu;
|
||||
using namespace rtl;
|
||||
|
||||
-Sequence < sal_Int8 > ZipPackageStream::aImplementationId = Sequence < sal_Int8 > ();
|
||||
+namespace { struct lcl_CachedImplId : public rtl::Static< Sequence < sal_Int8 >, lcl_CachedImplId > {}; }
|
||||
|
||||
+const ::com::sun::star::uno::Sequence < sal_Int8 >& ZipPackageStream::static_getImplementationId()
|
||||
+{
|
||||
+ return lcl_CachedImplId::get();
|
||||
+}
|
||||
|
||||
ZipPackageStream::ZipPackageStream ( ZipPackage & rNewPackage,
|
||||
const Reference< XMultiServiceFactory >& xFactory,
|
||||
@@ -91,10 +97,9 @@
|
||||
aEntry.nPathLen = -1;
|
||||
aEntry.nExtraLen = -1;
|
||||
|
||||
- if ( !aImplementationId.getLength() )
|
||||
- {
|
||||
- aImplementationId = getImplementationId();
|
||||
- }
|
||||
+ Sequence < sal_Int8 > &rCachedImplId = lcl_CachedImplId::get();
|
||||
+ if ( !rCachedImplId.getLength() )
|
||||
+ rCachedImplId = getImplementationId();
|
||||
}
|
||||
|
||||
ZipPackageStream::~ZipPackageStream( void )
|
||||
--- package/source/zippackage/ZipPackageStream.hxx 2010-06-22 11:49:16.000000000 +0100
|
||||
+++ package/source/zippackage/ZipPackageStream.hxx 2010-06-22 12:51:18.000000000 +0100
|
||||
@@ -55,7 +55,6 @@
|
||||
::com::sun::star::packages::XDataSinkEncrSupport
|
||||
>
|
||||
{
|
||||
- static com::sun::star::uno::Sequence < sal_Int8 > aImplementationId;
|
||||
protected:
|
||||
com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xStream;
|
||||
const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory;
|
||||
@@ -146,10 +145,7 @@
|
||||
::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getRawData()
|
||||
throw(::com::sun::star::uno::RuntimeException);
|
||||
|
||||
- static ::com::sun::star::uno::Sequence < sal_Int8 >& static_getImplementationId()
|
||||
- {
|
||||
- return aImplementationId;
|
||||
- }
|
||||
+ static const ::com::sun::star::uno::Sequence < sal_Int8 >& static_getImplementationId();
|
||||
|
||||
// XActiveDataSink
|
||||
virtual void SAL_CALL setInputStream( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& aStream )
|
Loading…
Reference in new issue