74a8af2f2f
2. Fix hang "Glib bug". http://qa.openoffice.org/issues/show_bug.cgi?id=75190 Bump port revision for openoffice.org-2 port accordingly. 3. Fix language pack builds for openoffice.org-3-devel port. PR: 121953 (2) Submitted by: Dwayne MacKinnon and Marcin Cieslak (will be SCAed; saperski@openoffice.org) (2)
107 lines
4.5 KiB
Text
107 lines
4.5 KiB
Text
http://www.freebsd.org/cgi/query-pr.cgi?pr=121953 (Dwayne MacKinnon)
|
|
http://qa.openoffice.org/issues/show_bug.cgi?id=75190
|
|
Turn the GTK Recent Manager feature off.
|
|
Other workaround
|
|
% setenv OOO_FORCE_DESKTOP gnome
|
|
|
|
Backout of misfeature in cws_src680_obr05 branch.
|
|
* rev 1.9 of gsl/shell/source/unix/sysshell/recently_used_file_handler.cxx
|
|
* rev 1.8 of gsl/shell/source/unix/sysshell/systemshell.cxx
|
|
|
|
See also
|
|
http://lists.freebsd.org/pipermail/freebsd-openoffice/2007-December/003453.html
|
|
gsl/shell/source/unix/sysshell/recently_used_file_handler.cxx
|
|
(rev. 1.8.44.2)
|
|
gsl/shell/source/unix/sysshell/systemshell.cxx
|
|
(rev. 1.7.44.1)
|
|
|
|
Index: systemshell.cxx
|
|
===================================================================
|
|
RCS file: /cvs/gsl/shell/source/unix/sysshell/systemshell.cxx,v
|
|
retrieving revision 1.8
|
|
diff -u -u -r1.8 systemshell.cxx
|
|
--- shell/source/unix/sysshell/systemshell.cxx 19 Jun 2007 16:12:44 -0000 1.8
|
|
+++ shell/source/unix/sysshell/systemshell.cxx 30 Mar 2008 22:06:15 -0000
|
|
@@ -72,9 +72,6 @@
|
|
const rtl::OUString LIB_RECENT_FILE = UNISTRING("librecentfile.so");
|
|
const rtl::OUString DEFAULT_CONTEXT = UNISTRING("DefaultContext");
|
|
|
|
-void * (* sym_gtk_recent_manager_get_default) () = NULL;
|
|
-void (* sym_gtk_recent_manager_add_item) (void *, const char *) = NULL;
|
|
-
|
|
// We need to re-encode file urls because osl_getFileURLFromSystemPath converts
|
|
// to UTF-8 before encoding non ascii characters, which is not what other apps expect.
|
|
static rtl::OUString translateToExternalUrl(const rtl::OUString& internalUrl)
|
|
@@ -114,57 +111,31 @@
|
|
return url;
|
|
}
|
|
|
|
- bool init_recent_manager_api()
|
|
- {
|
|
- oslModule hDefault;
|
|
- if( osl_getModuleHandle( NULL, &hDefault ) )
|
|
- {
|
|
- sym_gtk_recent_manager_get_default = (void * (*)())
|
|
- osl_getAsciiFunctionSymbol(hDefault, "gtk_recent_manager_get_default");
|
|
- sym_gtk_recent_manager_add_item = (void (*)(void *, const char *))
|
|
- osl_getAsciiFunctionSymbol(hDefault, "gtk_recent_manager_add_item");
|
|
-
|
|
- }
|
|
- bool ret = (NULL != sym_gtk_recent_manager_get_default) && (NULL != sym_gtk_recent_manager_add_item);
|
|
- return ret;
|
|
- }
|
|
-
|
|
-
|
|
//##############################
|
|
void AddToRecentDocumentList(const rtl::OUString& aFileUrl, const rtl::OUString& aMimeType)
|
|
{
|
|
- static bool bIsRecentManagerPresent = init_recent_manager_api();
|
|
-
|
|
// Convert file URL for external use (see above)
|
|
rtl::OUString externalUrl = translateToExternalUrl(aFileUrl);
|
|
+ rtl::OUString librecentfile_url = get_absolute_library_url(LIB_RECENT_FILE);
|
|
+
|
|
if( 0 == externalUrl.getLength() )
|
|
externalUrl = aFileUrl;
|
|
-
|
|
- if( bIsRecentManagerPresent )
|
|
- {
|
|
- void * recent_manager = sym_gtk_recent_manager_get_default();
|
|
- sym_gtk_recent_manager_add_item(recent_manager, rtl::OUStringToOString(aFileUrl, RTL_TEXTENCODING_UTF8).getStr());
|
|
- }
|
|
- else
|
|
+
|
|
+ if (librecentfile_url.getLength())
|
|
{
|
|
- rtl::OUString librecentfile_url = get_absolute_library_url(LIB_RECENT_FILE);
|
|
-
|
|
- if (librecentfile_url.getLength())
|
|
- {
|
|
- osl::Module module(librecentfile_url);
|
|
+ osl::Module module(librecentfile_url);
|
|
|
|
- if (module.is())
|
|
- {
|
|
- // convert from reinterpret_cast<PFUNC_ADD_TO_RECENTLY_USED_LIST>
|
|
- // not allowed in gcc 3.3 without permissive.
|
|
- PFUNC_ADD_TO_RECENTLY_USED_LIST add_to_recently_used_file_list =
|
|
- reinterpret_cast<PFUNC_ADD_TO_RECENTLY_USED_LIST>(module.getFunctionSymbol(SYM_ADD_TO_RECENTLY_USED_FILE_LIST));
|
|
-
|
|
- if (add_to_recently_used_file_list)
|
|
- add_to_recently_used_file_list(aFileUrl, aMimeType);
|
|
- }
|
|
+ if (module.is())
|
|
+ {
|
|
+ // convert from reinterpret_cast<PFUNC_ADD_TO_RECENTLY_USED_LIST>
|
|
+ // not allowed in gcc 3.3 without permissive.
|
|
+ PFUNC_ADD_TO_RECENTLY_USED_LIST add_to_recently_used_file_list =
|
|
+ reinterpret_cast<PFUNC_ADD_TO_RECENTLY_USED_LIST>(module.getFunctionSymbol(SYM_ADD_TO_RECENTLY_USED_FILE_LIST));
|
|
+
|
|
+ if (add_to_recently_used_file_list)
|
|
+ add_to_recently_used_file_list(aFileUrl, aMimeType);
|
|
}
|
|
- }
|
|
+ }
|
|
}
|
|
|
|
} // namespace SystemShell
|