sal/osl/unx/backtrace.c | 69 ------------------------------------------- vcl/source/window/seleng.cxx | 15 +++++++-- 2 files changed, 13 insertions(+), 71 deletions(-)
New commits: commit 02be3465334a733c7e52b352d021d810f52311c9 Author: Tor Lillqvist <t...@collabora.com> AuthorDate: Thu Mar 4 11:56:50 2021 +0200 Commit: Tor Lillqvist <t...@iki.fi> CommitDate: Mon Apr 5 18:03:31 2021 +0300 The backtrace() etc API is available on macOS and iOS, too Change-Id: I9a62391c4d109cd2fd2ab60d92a9e3b631ee6773 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112157 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Tor Lillqvist <t...@collabora.com> diff --git a/sal/osl/unx/backtrace.c b/sal/osl/unx/backtrace.c index a3aeb3dae3f8..26005f7715af 100644 --- a/sal/osl/unx/backtrace.c +++ b/sal/osl/unx/backtrace.c @@ -212,74 +212,7 @@ void backtrace_symbols_fd( void **buffer, int size, int fd ) } } -#elif defined( MACOSX ) - -#include <dlfcn.h> -#include <stdio.h> -#include "backtrace.h" - -/* glib backtrace is only available on MacOsX 10.5 or higher - so we do it on our own */ - -int backtrace( void **buffer, int max_frames ) -{ - void **frame = (void **)__builtin_frame_address(0); - void **bp = ( void **)(*frame); - void *ip = frame[1]; - int i; - - for ( i = 0; bp && ip && i < max_frames; i++ ) - { - *(buffer++) = ip; - - ip = bp[1]; - bp = (void**)(bp[0]); - } - - return i; -} - -char ** backtrace_symbols(void * const * buffer, int size) -{ - (void)buffer; (void)size; - return NULL; /*TODO*/ -} - -void backtrace_symbols_fd( void **buffer, int size, int fd ) -{ - FILE *fp = fdopen( fd, "w" ); - - if ( fp ) - { - void **pFramePtr; - - for ( pFramePtr = buffer; size > 0 && pFramePtr && *pFramePtr; pFramePtr++, size-- ) - { - Dl_info dli; - - if ( 0 != dladdr( *pFramePtr, &dli ) ) - { - ptrdiff_t offset; - - if ( dli.dli_fname && dli.dli_fbase ) - { - offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_fbase; - fprintf( fp, "%s+0x%tx", dli.dli_fname, offset ); - } - if ( dli.dli_sname && dli.dli_saddr ) - { - offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_saddr; - fprintf( fp, "(%s+0x%tx)", dli.dli_sname, offset ); - } - } - fprintf( fp, "[%p]\n", *pFramePtr ); - } - - fclose( fp ); - } -} - -#elif !defined LINUX +#elif !defined LINUX && !defined MACOSX && !defined IOS int backtrace( void **buffer, int max_frames ) { commit 34897c831c6451ef2cc3811c98b9d3a79ff4af40 Author: Tor Lillqvist <t...@collabora.com> AuthorDate: Wed Mar 10 13:06:54 2021 +0200 Commit: Tor Lillqvist <t...@iki.fi> CommitDate: Mon Apr 5 18:02:46 2021 +0300 Don't unselect an existing selection on (long) press on iOS and Android A (long) press, also known as a long tap, in Collabora Online (as used to bring up a context menu), shows up in core as a click of the right mouse button. We don't want that to cause an existing selection to be unselected. This fixes https://github.com/CollaboraOnline/online/issues/1323 Why this problem happened only in presentation documents I have no idea. Change-Id: Iebbf71e75dcea7c39a92fd8d5dd07c368d92f163 Signed-off-by: Tor Lillqvist <t...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112261 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112264 diff --git a/vcl/source/window/seleng.cxx b/vcl/source/window/seleng.cxx index 78f071126ae5..4e311785090c 100644 --- a/vcl/source/window/seleng.cxx +++ b/vcl/source/window/seleng.cxx @@ -256,6 +256,12 @@ bool SelectionEngine::SelMouseButtonUp( const MouseEvent& rMEvt ) if (!rMEvt.IsRight()) ReleaseMouse(); +#if defined IOS || defined ANDROID + const bool bDoMessWithSelection = !rMEvt.IsRight(); +#else + constexpr bool bDoMessWithSelection = true; +#endif + if( (nFlags & SelectionEngineFlags::WAIT_UPEVT) && !(nFlags & SelectionEngineFlags::CMDEVT) && eSelMode != SelectionMode::Single) { @@ -271,13 +277,16 @@ bool SelectionEngine::SelMouseButtonUp( const MouseEvent& rMEvt ) } pFunctionSet->DeselectAtPoint( aLastMove.GetPosPixel() ); nFlags &= ~SelectionEngineFlags::HAS_ANCH; // uncheck anchor - pFunctionSet->SetCursorAtPoint( aLastMove.GetPosPixel(), true ); + if (bDoMessWithSelection) + pFunctionSet->SetCursorAtPoint( aLastMove.GetPosPixel(), true ); } else { - pFunctionSet->DeselectAll(); + if (bDoMessWithSelection) + pFunctionSet->DeselectAll(); nFlags &= ~SelectionEngineFlags::HAS_ANCH; // uncheck anchor - pFunctionSet->SetCursorAtPoint( aLastMove.GetPosPixel() ); + if (bDoMessWithSelection) + pFunctionSet->SetCursorAtPoint( aLastMove.GetPosPixel() ); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits