parent
0fbb140a21
commit
c747fd8bdb
@ -1,78 +0,0 @@
|
||||
From cbeca0676595037d29c7191c38c643d47d9d6e4a Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Fri, 14 Jun 2013 11:22:51 +0200
|
||||
Subject: [PATCH] Always try to mount in gio::Content::getGFileInfo
|
||||
|
||||
...and not only if the caller happens to pass in non-null ppError. Otherwise,
|
||||
calling soffice with a document URL handled by the gio UCP that is not yet
|
||||
gio-mounted would silently do nothing and exit with EXIT_SUCCESS, as the first
|
||||
thing the type detection code does on the URL is execute "getPropertyValues" for
|
||||
"IsDocument", which calls getGFileInfo with null ppError, so a void instead of a
|
||||
boolean value is returned, which then derails the type detection code to
|
||||
silently fail (which is another problem that needs fixing).
|
||||
|
||||
Change-Id: I48a84428cdee5caead02909abc2efd3ae3722052
|
||||
(cherry picked from commit 4d8bf09305fc4e4bd652187aac0a02398413ba65)
|
||||
---
|
||||
ucb/source/ucp/gio/gio_content.cxx | 42 +++++++++++++++++++++++---------------
|
||||
1 file changed, 26 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/ucb/source/ucp/gio/gio_content.cxx b/ucb/source/ucp/gio/gio_content.cxx
|
||||
index 34857d2..4fe7e83 100644
|
||||
--- a/ucb/source/ucp/gio/gio_content.cxx
|
||||
+++ b/ucb/source/ucp/gio/gio_content.cxx
|
||||
@@ -337,25 +337,35 @@ MountOperation::~MountOperation()
|
||||
|
||||
GFileInfo* Content::getGFileInfo(const uno::Reference< ucb::XCommandEnvironment >& xEnv, GError **ppError)
|
||||
{
|
||||
- /*If we don't have it already, and we're not a "pre-creation" content then query for the info"*/
|
||||
- if (!mpInfo && !mbTransient)
|
||||
- {
|
||||
- if (!(mpInfo = g_file_query_info(getGFile(), "*", G_FILE_QUERY_INFO_NONE, NULL, ppError)))
|
||||
- {
|
||||
- //Try and mount if unmounted
|
||||
- if (ppError && (*ppError)->code == G_IO_ERROR_NOT_MOUNTED)
|
||||
- {
|
||||
- g_error_free(*ppError);
|
||||
-
|
||||
- MountOperation aMounter(xEnv);
|
||||
- *ppError = aMounter.Mount(getGFile());
|
||||
-
|
||||
- //No Mount error, reattempt query
|
||||
- if (!*ppError)
|
||||
- mpInfo = g_file_query_info(getGFile(), "*", G_FILE_QUERY_INFO_NONE, NULL, ppError);
|
||||
+ GError * err = 0;
|
||||
+ if (mpInfo == 0 && !mbTransient) {
|
||||
+ for (bool retried = false;; retried = true) {
|
||||
+ mpInfo = g_file_query_info(
|
||||
+ getGFile(), "*", G_FILE_QUERY_INFO_NONE, 0, &err);
|
||||
+ if (mpInfo != 0) {
|
||||
+ break;
|
||||
+ }
|
||||
+ assert(err != 0);
|
||||
+ if (err->code != G_IO_ERROR_NOT_MOUNTED || retried) {
|
||||
+ break;
|
||||
+ }
|
||||
+ SAL_INFO(
|
||||
+ "ucb.ucp.gio",
|
||||
+ "G_IO_ERROR_NOT_MOUNTED \"" << err->message
|
||||
+ << "\", trying to mount");
|
||||
+ g_error_free(err);
|
||||
+ err = MountOperation(xEnv).Mount(getGFile());
|
||||
+ if (err != 0) {
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
}
|
||||
+ if (ppError != 0) {
|
||||
+ *ppError = err;
|
||||
+ } else if (err != 0) {
|
||||
+ SAL_WARN("ucb.ucp.gio", "ignoring GError \"" << err->message << "\"");
|
||||
+ g_error_free(err);
|
||||
+ }
|
||||
return mpInfo;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
@ -1,27 +0,0 @@
|
||||
From 4a4ed52e57b540167c3ca45e6e762b9e21e874de Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Tue, 3 Sep 2013 12:24:34 +0100
|
||||
Subject: [PATCH] Resolves: rhbz#993963 NULL m_pWindow on firefox deleted
|
||||
plugin
|
||||
|
||||
Change-Id: Idb12b12e4313668bf3390a97551c688ee0dcde67
|
||||
---
|
||||
vcl/unx/gtk/window/gtksalframe.cxx | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
|
||||
index 7c4ddfb..44d894d 100644
|
||||
--- a/vcl/unx/gtk/window/gtksalframe.cxx
|
||||
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
|
||||
@@ -2842,7 +2842,7 @@ void GtkSalFrame::SetParent( SalFrame* pNewParent )
|
||||
|
||||
void GtkSalFrame::createNewWindow( XLIB_Window aNewParent, bool bXEmbed, SalX11Screen nXScreen )
|
||||
{
|
||||
- bool bWasVisible = IS_WIDGET_MAPPED(m_pWindow);
|
||||
+ bool bWasVisible = m_pWindow ? IS_WIDGET_MAPPED(m_pWindow) : false;
|
||||
if( bWasVisible )
|
||||
Show( sal_False );
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,51 +0,0 @@
|
||||
From c3164e42dcdf879ed53e235db13f498eb730bae9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Tue, 20 Aug 2013 20:08:47 +0100
|
||||
Subject: [PATCH] Resolves: rhbz#998046 store last size/position of the
|
||||
table/query/form
|
||||
|
||||
Change-Id: I3623d5e133b8d7b2e7920824b05c46ade7b10d7c
|
||||
---
|
||||
dbaccess/source/core/dataaccess/documentdefinition.cxx | 1 +
|
||||
dbaccess/source/ui/misc/databaseobjectview.cxx | 6 +++++-
|
||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dbaccess/source/core/dataaccess/documentdefinition.cxx b/dbaccess/source/core/dataaccess/documentdefinition.cxx
|
||||
index 1e9b62c..55b7c4e 100644
|
||||
--- a/dbaccess/source/core/dataaccess/documentdefinition.cxx
|
||||
+++ b/dbaccess/source/core/dataaccess/documentdefinition.cxx
|
||||
@@ -1548,6 +1548,7 @@ Sequence< PropertyValue > ODocumentDefinition::fillLoadArgs( const Reference< XC
|
||||
// create the OutplaceFrameProperties, and put them into the descriptor of the embedded object
|
||||
::comphelper::NamedValueCollection OutplaceFrameProperties;
|
||||
OutplaceFrameProperties.put( "TopWindow", (sal_Bool)sal_True );
|
||||
+ OutplaceFrameProperties.put( "SupportPersistentWindowState", (sal_Bool)sal_True );
|
||||
|
||||
Reference< XFrame > xParentFrame;
|
||||
if ( m_pImpl->m_pDataSource )
|
||||
diff --git a/dbaccess/source/ui/misc/databaseobjectview.cxx b/dbaccess/source/ui/misc/databaseobjectview.cxx
|
||||
index 7c90c33..d0ac14e 100644
|
||||
--- a/dbaccess/source/ui/misc/databaseobjectview.cxx
|
||||
+++ b/dbaccess/source/ui/misc/databaseobjectview.cxx
|
||||
@@ -120,7 +120,7 @@ namespace dbaui
|
||||
if ( !m_xFrameLoader.is() )
|
||||
{
|
||||
Reference< XSingleServiceFactory > xFact = TaskCreator::create(m_xORB);
|
||||
- Sequence< Any > lArgs(2);
|
||||
+ Sequence< Any > lArgs(3);
|
||||
NamedValue aProp;
|
||||
sal_Int32 nArg = 0;
|
||||
|
||||
@@ -132,6 +132,10 @@ namespace dbaui
|
||||
aProp.Value <<= sal_True;
|
||||
lArgs[nArg++] <<= aProp;
|
||||
|
||||
+ aProp.Name = OUString("SupportPersistentWindowState");
|
||||
+ aProp.Value <<= sal_True;
|
||||
+ lArgs[nArg++] <<= aProp;
|
||||
+
|
||||
m_xFrameLoader.set(xFact->createInstanceWithArguments(lArgs), UNO_QUERY_THROW);
|
||||
|
||||
// everything we load can be considered a "top level document", so set the respective bit at the window.
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,51 +0,0 @@
|
||||
From b74bf4146e866fbcd41ad075296c9a4eee16c829 Mon Sep 17 00:00:00 2001
|
||||
From: David Tardon <dtardon@redhat.com>
|
||||
Date: Mon, 12 Aug 2013 09:39:59 +0200
|
||||
Subject: [PATCH] only use the SSPI support with internal neon
|
||||
|
||||
neon 0.30.0 has added support for SSPI (author of the commit is kso,
|
||||
which sounds familiar :-), so NE_FEATURE_SSPI is defined, but the
|
||||
signature of ne_auth_creds remains the same as before. That means that
|
||||
build with system neon 0.30.0 fails...
|
||||
---
|
||||
RepositoryExternal.mk | 1 +
|
||||
ucb/source/ucp/webdav-neon/NeonSession.cxx | 4 ++--
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
|
||||
index f866957..8c19c27 100644
|
||||
--- a/RepositoryExternal.mk
|
||||
+++ b/RepositoryExternal.mk
|
||||
@@ -867,6 +867,7 @@ ifeq ($(SYSTEM_NEON),YES)
|
||||
define gb_LinkTarget__use_neon
|
||||
$(call gb_LinkTarget_add_defs,$(1),\
|
||||
-DNEON_VERSION=0x$(NEON_VERSION) \
|
||||
+ -DSYSTEM_NEON \
|
||||
)
|
||||
$(call gb_LinkTarget_set_include,$(1),\
|
||||
$$(INCLUDE) \
|
||||
diff --git a/ucb/source/ucp/webdav-neon/NeonSession.cxx b/ucb/source/ucp/webdav-neon/NeonSession.cxx
|
||||
index 34a1937..cee643a 100644
|
||||
--- a/ucb/source/ucp/webdav-neon/NeonSession.cxx
|
||||
+++ b/ucb/source/ucp/webdav-neon/NeonSession.cxx
|
||||
@@ -228,7 +228,7 @@ extern "C" int NeonSession_ResponseBlockWriter( void * inUserData,
|
||||
}
|
||||
|
||||
extern "C" int NeonSession_NeonAuth( void * inUserData,
|
||||
-#ifdef NE_FEATURE_SSPI
|
||||
+#if defined NE_FEATURE_SSPI && ! defined SYSTEM_NEON
|
||||
const char * inAuthProtocol,
|
||||
#endif
|
||||
const char * inRealm,
|
||||
@@ -297,7 +297,7 @@ extern "C" int NeonSession_NeonAuth( void * inUserData,
|
||||
|
||||
bool bCanUseSystemCreds = false;
|
||||
|
||||
-#ifdef NE_FEATURE_SSPI
|
||||
+#if defined NE_FEATURE_SSPI && ! defined SYSTEM_NEON
|
||||
bCanUseSystemCreds
|
||||
= (attempt == 0) && // avoid endless loops
|
||||
ne_has_support( NE_FEATURE_SSPI ) && // Windows-only feature.
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,116 +0,0 @@
|
||||
From 9ff4c35f1d8e7e603b23245afb6947b8260fabfc Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Fri, 23 Aug 2013 12:03:45 +0200
|
||||
Subject: [PATCH] rhbz#1000150: Do not call exit upon XIOError
|
||||
|
||||
...as done in _XIOError (libX11-1.6.0/src/XlibInt.c) after calling the XIOError
|
||||
handler function (either the one supplied with XSetIOErrorHandler or
|
||||
_XDefaultIOError), as that calls the atexit handlers, which can wreak havoc in
|
||||
unrelated threads that happen to be running in parallel, leading to arbitrary
|
||||
crashes. So avoid that by always calling _exit already from our XIOError
|
||||
handler.
|
||||
|
||||
The old code was careful to /not/ call _exit when the XIOError happened on any
|
||||
thread but the main one, but I do not see the sense of that---after all,
|
||||
_XIOError will inevitably call exit afterwards, so this cannot be a way to
|
||||
"ignore" XIOErrors from special threads (that are set up say for the sole
|
||||
purpose of trying out "known-shaky" activities without affecting the stability
|
||||
of the whole process). And findings like comment 12 to
|
||||
<https://bugzilla.redhat.com/show_bug.cgi?id=831628#c12> "[abrt]
|
||||
libreoffice-core-3.5.4.2-1.fc17: ICEConnectionWorker thread still running during
|
||||
exit" ("it is very likely that this is not a normal exit from reaching the end
|
||||
of main, but rather some explicit call to exit from some error handling code")
|
||||
make it clear that we apparenly do suffer from such calls to _XIOError -> exit
|
||||
on non-main threads.
|
||||
|
||||
I have no idea why vcl/unx/gtk has its own XIOErrorHdl that is substantially
|
||||
different from the vcl/unx/generic one, though.
|
||||
|
||||
cherry picked from commit ffea65915b9cc6d4f3c01f829552702654a040f9, plus
|
||||
follow-up b240a1c188b58e3e717335339bfc3f5e20bb2bf4:
|
||||
|
||||
rhbz#1000150: Do not call exit upon XIOError, take two
|
||||
|
||||
The _XDefaultIOError handler (libX11-1.6.0/src/XlibInt.c) already calls exit
|
||||
(even though _XIOError calling _XDefaultIOError would call exit afterwards,
|
||||
too), so our XIOError handler must not call aOrigXIOErrorHandler.
|
||||
|
||||
Change-Id: Ida7d407cf5f0fa4e719118cab5e725144ceb3a35
|
||||
---
|
||||
vcl/unx/generic/app/saldata.cxx | 25 +++++++++++--------------
|
||||
vcl/unx/gtk/app/gtkdata.cxx | 12 +++++-------
|
||||
2 files changed, 16 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/vcl/unx/generic/app/saldata.cxx b/vcl/unx/generic/app/saldata.cxx
|
||||
index 3d91586..9b5e200 100644
|
||||
--- a/vcl/unx/generic/app/saldata.cxx
|
||||
+++ b/vcl/unx/generic/app/saldata.cxx
|
||||
@@ -307,22 +307,19 @@ int X11SalData::XErrorHdl( Display *pDisplay, XErrorEvent *pEvent )
|
||||
|
||||
int X11SalData::XIOErrorHdl( Display * )
|
||||
{
|
||||
- if (::osl::Thread::getCurrentIdentifier() != Application::GetMainThreadIdentifier())
|
||||
+ if (::osl::Thread::getCurrentIdentifier() == Application::GetMainThreadIdentifier())
|
||||
{
|
||||
- pthread_exit(NULL);
|
||||
- return 0;
|
||||
+ /* #106197# hack: until a real shutdown procedure exists
|
||||
+ * _exit ASAP
|
||||
+ */
|
||||
+ if( ImplGetSVData()->maAppData.mbAppQuit )
|
||||
+ _exit(1);
|
||||
+
|
||||
+ // really bad hack
|
||||
+ if( ! SessionManagerClient::checkDocumentsSaved() )
|
||||
+ /* oslSignalAction eToDo = */ osl_raiseSignal (OSL_SIGNAL_USER_X11SUBSYSTEMERROR, NULL);
|
||||
}
|
||||
|
||||
- /* #106197# hack: until a real shutdown procedure exists
|
||||
- * _exit ASAP
|
||||
- */
|
||||
- if( ImplGetSVData()->maAppData.mbAppQuit )
|
||||
- _exit(1);
|
||||
-
|
||||
- // really bad hack
|
||||
- if( ! SessionManagerClient::checkDocumentsSaved() )
|
||||
- /* oslSignalAction eToDo = */ osl_raiseSignal (OSL_SIGNAL_USER_X11SUBSYSTEMERROR, NULL);
|
||||
-
|
||||
std::fprintf( stderr, "X IO Error\n" );
|
||||
std::fflush( stdout );
|
||||
std::fflush( stderr );
|
||||
@@ -331,7 +328,7 @@ int X11SalData::XIOErrorHdl( Display * )
|
||||
* do apply here. Since there is nothing to be done after an XIO
|
||||
* error we have to _exit immediately.
|
||||
*/
|
||||
- _exit(0);
|
||||
+ _exit(1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/vcl/unx/gtk/app/gtkdata.cxx b/vcl/unx/gtk/app/gtkdata.cxx
|
||||
index 6abb06b..23f7931 100644
|
||||
--- a/vcl/unx/gtk/app/gtkdata.cxx
|
||||
+++ b/vcl/unx/gtk/app/gtkdata.cxx
|
||||
@@ -511,14 +511,12 @@ GtkData::GtkData( SalInstance *pInstance )
|
||||
|
||||
XIOErrorHandler aOrigXIOErrorHandler = NULL;
|
||||
|
||||
-int XIOErrorHdl(Display *pDisplay)
|
||||
+int XIOErrorHdl(Display *)
|
||||
{
|
||||
- if (::osl::Thread::getCurrentIdentifier() != Application::GetMainThreadIdentifier())
|
||||
- {
|
||||
- pthread_exit(NULL);
|
||||
- return 0;
|
||||
- }
|
||||
- return aOrigXIOErrorHandler ? aOrigXIOErrorHandler(pDisplay) : 0;
|
||||
+ fprintf(stderr, "X IO Error\n");
|
||||
+ _exit(1);
|
||||
+ // avoid crashes in unrelated threads that still run while atexit
|
||||
+ // handlers are in progress
|
||||
}
|
||||
|
||||
GtkData::~GtkData()
|
||||
--
|
||||
1.8.3.1
|
||||
|
Loading…
Reference in new issue