desktop/Library_sofficeapp.mk | 7 ++++--- desktop/source/lib/init.cxx | 23 ++++++++++++++++++----- sw/source/core/crsr/crsrsh.cxx | 6 ++++-- sw/source/core/crsr/viscrs.cxx | 7 +++++-- vcl/source/window/dialog.cxx | 24 ++++-------------------- 5 files changed, 35 insertions(+), 32 deletions(-)
New commits: commit 2fb6562be2ca24424dcd8ba1832fd106fd9dfb99 Author: Tor Lillqvist <[email protected]> Date: Tue Feb 3 10:22:10 2015 +0100 Build the applicable LibreOfficeKit bits for iOS, too Change-Id: Ib6b4f7d5323ea7e94c7b535c68bb6e0af2c49ffa diff --git a/desktop/Library_sofficeapp.mk b/desktop/Library_sofficeapp.mk index ee92f7a..1f4eb1f 100644 --- a/desktop/Library_sofficeapp.mk +++ b/desktop/Library_sofficeapp.mk @@ -106,11 +106,12 @@ $(eval $(call gb_Library_add_libs,sofficeapp,\ )) endif -# liblibreoffice bits -ifeq ($(OS),ANDROID) +# LibreOfficeKit bits +ifneq ($(filter $(OS),ANDROID IOS),) $(eval $(call gb_Library_add_exception_objects,sofficeapp,\ desktop/source/lib/init \ - desktop/source/lib/lokandroid \ + $(if $(filter $(OS),ANDROID), \ + desktop/source/lib/lokandroid) \ )) else ifeq ($(GUIBASE),unx) commit f70467ab48397e31db39daf946f092f9aec732cd Author: Tor Lillqvist <[email protected]> Date: Tue Feb 3 10:18:01 2015 +0100 Don't call touch_ui_*() API that are no-ops anyway Theiry implementations were empty both for iOS (well, TiledLibreOffice, our iOS test viewer app, anyway) and Android. Part of work to make TiledLibreOffice use LibreOffieKit instead of <touch/touch.h> and the older Writer-specific tiled rendering API. Change-Id: I602a1ebd58ec2c8d6b2d170d65e157d91e0bf521 diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 980c278..73ed40e 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -2115,7 +2115,8 @@ void SwCrsrShell::ShowCrsr() m_bSVCrsrVis = true; m_pCurCrsr->SetShowTxtInputFldOverlay( true ); #if defined(ANDROID) || defined(IOS) - touch_ui_show_keyboard(); + // This was dummied out both for Android and for TiledLibreOffice (iOS) anyway + // touch_ui_show_keyboard(); #endif UpdateCrsr(); } @@ -2131,7 +2132,8 @@ void SwCrsrShell::HideCrsr() m_pCurCrsr->SetShowTxtInputFldOverlay( false ); m_pVisCrsr->Hide(); #if defined(ANDROID) || defined(IOS) - touch_ui_hide_keyboard(); + // This was dummied out both for Android and for TiledLibreOffice (iOS) anyway + // touch_ui_hide_keyboard(); #endif } } diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx index 9489cba..35b60a3a 100644 --- a/sw/source/core/crsr/viscrs.cxx +++ b/sw/source/core/crsr/viscrs.cxx @@ -331,12 +331,15 @@ void SwSelPaintRects::Show() #endif } // GetShell returns a SwCrsrShell which actually is a SwWrtShell - touch_ui_selection_start(MLOSelectionText, pWrtShell, rects, size(), NULL); + + // touch_ui_selection_start() was dummy both in TiledLibreOffice (iOS) and for Android + // touch_ui_selection_start(MLOSelectionText, pWrtShell, rects, size(), NULL); } } else { - touch_ui_selection_none(); + // touch_ui_selection_none was dummy both in TiledLibreOffice (iOS) and for Android + // touch_ui_selection_none(); } #endif } diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index a5b9b8f..78a95f0 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -868,26 +868,10 @@ short Dialog::Execute() break; } - MLODialogResult result = touch_ui_dialog_modal(kind, ImplGetDialogText(this).getStr()); - - switch (result) - { - case MLODialogOK: - return RET_OK; - case MLODialogCancel: - return RET_CANCEL; - case MLODialogNo: - return RET_NO; - case MLODialogYes: - return RET_YES; - case MLODialogRetry: - return RET_RETRY; - case MLODialogIgnore: - return RET_IGNORE; - default: - SAL_WARN("vcl", "Dialog::Execute: Unhandled dialog result %d" << result); - return RET_OK; - } + // touch_ui_dialog_modal was dummied out both for Android and iOS (well, TiledLibreOffice anyway) + // For Android it returned MLODialogOK always, for iOS Cancel. Let's go with OK. + // MLODialogResult result = touch_ui_dialog_modal(kind, ImplGetDialogText(this).getStr()); + return RET_OK; #endif } commit 607cc768a7f2e5e6fb34d1b1687e480e7a9e55f2 Author: Tor Lillqvist <[email protected]> Date: Mon Feb 2 16:02:36 2015 +0100 Make the handling of the pAppPath==NULL case actually work Change-Id: I8b185ad37e1db3262c2533c0146e4fe7fb3ef3ea diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 4f2d1ed..498ef80 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -770,8 +770,11 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath) } else { + // Fun conversion dance back and forth between URLs and system paths... + OUString aAppURL; ::osl::Module::getUrlFromAddress( reinterpret_cast< oslGenericFunction >(lo_initialize), - aAppPath); + aAppURL); + osl::FileBase::getSystemPathFromFileURL( aAppURL, aAppPath ); } OUString aAppURL; commit 0d35b7aee38046f7ffba79911d9c669f78ab7c0e Author: Tor Lillqvist <[email protected]> Date: Mon Feb 2 16:01:48 2015 +0100 We (try to) handle the pAppPath==NULL case below anyway Change-Id: I37b616b3b509c82551d9690c0313e09063a758bc diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 0072ecc..4f2d1ed 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -763,9 +763,6 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath) if (bInitialized) return 1; - if (!pAppPath) - return 0; - OUString aAppPath; if (pAppPath) { commit 831ab93fa40160ee46a95b7604d64098b177c8dd Author: Tor Lillqvist <[email protected]> Date: Mon Feb 2 15:22:52 2015 +0100 libreofficekit_hook must be exported on iOS for dlsym() to find it Change-Id: I824e977e99e8889e5cb69403feb0f1d5e1d0cc31 diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 154a8f5a..0072ecc 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -847,7 +847,20 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath) return bInitialized; } -SAL_DLLPUBLIC_EXPORT LibreOfficeKit *libreofficekit_hook(const char* install_path) +// Undo our clever trick of having SAL_DLLPUBLIC_EXPORT actually not +// meaning what is says in for the DISABLE_DYNLOADING case. See +// <sal/types.h>. Normally, when building just one big dylib (Android) +// or executable (iOS), most of our "public" symbols don't need to be +// visible outside that resulting dylib/executable. But +// libreofficekit_hook must be exported for dlsym() to find it, +// though, at least on iOS. + +#if defined(__GNUC__) && defined(HAVE_GCC_VISIBILITY_FEATURE) && defined(DISABLE_DYNLOADING) +__attribute__ ((visibility("default"))) +#else +SAL_DLLPUBLIC_EXPORT +#endif +LibreOfficeKit *libreofficekit_hook(const char* install_path) { if (!gImpl) { _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
