string::compare() will be faster when string::find's result is
compared with 0, because it will not scan the whole string.
Change-Id: I78596a6d796fe9779f88b7c7b91da09aa27b7035
Reviewed-on: https://gerrit.libreoffice.org/32430
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Now it broadcasts "disabled" to disable the command and
true/false to tell the status of the command which automatically
means "enabled"
Change-Id: I3314da77fb2b84d97f64b9832d65791b84fcd7df
Reviewed-on: https://gerrit.libreoffice.org/32086
Reviewed-by: pranavk <pranavk@collabora.co.uk>
Tested-by: pranavk <pranavk@collabora.co.uk>
Fixes unit-prefork in online for me.
Kendy suggested to also change the forced locale to en-US.UTF-8
instead of just en-US, but that caused:
warn:i18nlangtag:32416:1:i18nlangtag/source/languagetag/languagetag.cxx:1369:
LanguageTagImpl::convertLocaleToLang: with bAllowOnTheFlyID invalid
'en-US.UTF-8'.
This reverts commit c3d25b8b74867b5b8419d09f6e362aa6c8eae34f.
Change-Id: I2cd8c50a783918c380505e7a3aaf37d578e76031
Reviewed-on: https://gerrit.libreoffice.org/31489
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
Rectangles that are empty (i.e. IsEmpty() returns true)
were incorrectly considered to mean equivalent to "EMPTY".
The latter means full-area, while the former mean zero-area.
This fixes the issue by restrict full-area to rectangles
with 2 billion units on the each side (roughly INT_MAX) or
more, and using this new check rather than IsEmpty().
Change-Id: I12aca17267f5dd33b2932012d1d9db3545f9af6f
Reviewed-on: https://gerrit.libreoffice.org/31458
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
force locale load some fonts before the lokit process
is jail rooted, so it causes invalid rendering special
characters in doc_renderFont function
Change-Id: I25f00e5bb947753b820c6966a99a6c3849413315
Reviewed-on: https://gerrit.libreoffice.org/31280
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Henry Castro <hcastro@collabora.com>
STATE_CHANGED callback events that have the form
of name=value are only removed when newer ones
are identical. This is not very helpful since
often the same name (i.e. state type) changes
its value and we need to superseed older ones
with new values.
This patch makes sure that a STATE_CHANGED with
a given name has its latest value and doesn't
change multiple times while in the queue.
Change-Id: Ibfa18359464d7137411e5846b1c6d415a0aad43d
Reviewed-on: https://gerrit.libreoffice.org/31258
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
When client side request special character, it is very useful to send a
preview of the rendered font character
Conflicts:
desktop/source/lib/init.cxx
Change-Id: I1f5727163dfcc861add121e616bdb17881c28197
Reviewed-on: https://gerrit.libreoffice.org/30784
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
this reverts
commit 610f59651563205564a0f4818b5c1d347ca02132
fix "cppcheck:stlIfStrFind"
and
commit 5c1bb338ef0d781648d5b33ffc9d64c2be6d9926
cppcheck:stlIfStrFind
which are deficient in one way or another, the original logic, while
inefficient, is still most accurate
Change-Id: I4907d2569c9c2976533f8ac9f4b8b45eb1807b72
What's new:
1) RectangleAndPart handles "EMPTY" payloads
2) LOK_CALLBACK_INVALIDATE_TILES msg type with "EMPTY" payload are
handled in CallbackFlushHandler::queue
3) gtktiledviewer handles "EMPTY" LOK_CALLBACK_INVALIDATE_TILES msg
even if the part number is included in the payload
Change-Id: I21f4a71ec875d24f4bbd100e4aacf8437d745ae4
Since desktop/ code queues, compresses and only emits callbacks on idle,
it's possible that two invalidations are in the queue, and there was a
setPart() call between them. In this case it's impossible to tell what
part the invalidation was sent for.
Fix this by conditionally including the part number in the invalidation
payload. It's off by default, a new feature flag is added to request
this behavior.
gtktiledviewer enables this feature flag by default, though just to show
the part number in the debug output. Android doesn't enable it.
Change-Id: I73e6def848c0eb61d64e71026002c7a0e750aab4
These colors are used in the tiles, so it's a good idea if the client
can use matching colors for cursors and selections. But to be able to do
that, we need an API to expose these colors.
Change-Id: Ia688c07e6c300fecdf8dc428d5a3f000d1857387
* GCC documents -fvisibility at least as far back as the GCC 4.0 online
documentation at
<https://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/Code-Gen-Options.html>.
* For external code, odk/settings/settings.mk unconditionally set
HAVE_GCC_VISIBILITY_FEATURE for all platforms other than Windows.
Make this a fatal configure error for now. The check should be removed
completely after LO 5.3 branch-off.
Change-Id: I1de415b6ed1591e0a7b6640ece861b6f0ef74112
Reviewed-on: https://gerrit.libreoffice.org/29073
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
For now only care about the start of the cursor, which can be only at a
single redline.
Add matching testcase + expose it in the gtktiledviewer status bar for
interactive manual testing.
Change-Id: Ib61757412d6b54bef64361d4a8563795ca0bab6c
and also expose it in the LOK API. This way clients don't have to keep
track of what views they created / destroyed, they can also get an up to
date list with this method.
Change-Id: Ibaee42c545803e04a31e7c13ab6ec370b99465c4
As this only returns the number of views, not the actual views. Since
it's a rename, it's just an API (but not an ABI) change.
Change-Id: Ib4f0ea56a90e5ae9c80ee1781aa2f29aff4259e7
If possible, switch views, not parts, that way started Impress text
edits don't end as a side-effect.
Change-Id: I3f18d4dda6bc24235bf1219416f153248a867fa4
The issue of 362d4f0cd4e50111edfae9d30c90602c37ed65a2 "Explicitly mark
overriding destructors as 'virtual'" appears to no longer be a problem with
MSVC 2013.
(The little change in the rewriting code of compilerplugins/clang/override.cxx
was necessary to prevent an endless loop when adding "override" to
OOO_DLLPUBLIC_CHARTTOOLS virtual ~CloseableLifeTimeManager();
in chart2/source/inc/LifeTime.hxx, getting stuck in the leading
OOO_DLLPUBLIC_CHARTTOOLS macro. Can't remember what that
isAtEndOfImmediateMacroExpansion thing was originally necessary for, anyway.)
Change-Id: I534c634504d7216b9bb632c2775c04eaf27e927e
- lok::Document::setCallbackLatch: used on document load for
set/unset the latch
- now cell cursors of other views are correctly notified to the new
view
Change-Id: Ife6dca0e3e329b801d44070f55869afe95a2f313
Reviewed-on: https://gerrit.libreoffice.org/28812
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Marco Cecchetti <mrcekets@gmail.com>
Now view callbacks have their own collection of last states where the
key is made up by both the view id and the callback type.
Callback dropping based on the last state is no more handled on
queueing but on flushing, since what really matters is the last
performed callback (for each callback type).
Anyway in order to not modify the order of callbacks, that could be
changed when an already queued callback is superseeded, dropping still
occurs on queuing too, just by looking for the last queued callback of
the same type.
The result is a substantial reduction of redundant callbacks and fix
the following problem in loleaflet: when there are more views for a
speadsheet and cell cursors for two view are placed on the same cell,
a continuos swapping between the two cell cursors can occur. That was
due to a sequence of "EMPTY" and coordinates messages or cell cursor
and cell view cursor messages which were sent in an alternating way.
Change-Id: I79e14d11d4e8590aff715181e3410ad88c4e6175
Reviewed-on: https://gerrit.libreoffice.org/28783
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Marco Cecchetti <mrcekets@gmail.com>
Rewritten the switch statement in `CallbackFlushHandler::queue`:
- Now, the new callback data is emplaced after removing all states
overridden by the new one.
- View callbacks are checked not only for the same type but even for
the same view id: that allowed to fix the following issue: starting
from the 3rd view for a spreadsheet it could occur that only the cell
cursor of the previous last view was displayed in the new view.
Change-Id: I2b63526deb4dca39e3a1f430443ebc5d0f61938d
Reviewed-on: https://gerrit.libreoffice.org/28782
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Marco Cecchetti <mrcekets@gmail.com>
I'm not sure how to trigger this reliably, but Pranav got this:
#0 0x00007fb2f471bbf0 in SfxLokHelper::getView(SfxViewShell*) (pViewShell=0x0) at sfx2/source/view/lokhelper.cxx:82
#1 0x00007fb2f75edf4f in doc_paintPartTile(LibreOfficeKitDocument*, unsigned char*, int, int, int, int, int, int, int) (pThis=0x7fb290253c40, pBuffer=0x281fbd0 "", nPart=0, nCanvasWidth=1024, nCanvasHeight=256, nTilePosX=0, nTilePosY=11520, nTileWidth=15360, nTileHeight=3840) at desktop/source/lib/init.cxx:1338
Given that SfxViewShell::Current() may indeed return nullptr (e.g.
during shutdown), change SfxLokHelper::getView() to return -1 in that
case, and adapt client code to handle that.
Change-Id: Ia191c843c8a993f3d7157de432af57964c0a8f63
Reviewed-on: https://gerrit.libreoffice.org/28583
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
To prevent feedback effects and improve performance,
we now queue up events fired during the processing
of a client call on the LOK API.
This has the advantage of giving us a chance to
compress redundant events and to combine others
(where possible) into fewer ones.
Change-Id: I2f6ea12c5d85205e6495cb130f6a6262534b6bb2
Reviewed-on: https://gerrit.libreoffice.org/28311
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
A redline can have a manual comment and also an autogenerated
description, like "Insert 'abc'". Expose this later property as well, as
it provides useful additional information, especially when the comment
property is empty.
Change-Id: Id0f0ff62aef58d96b9b6071706c6f5b4a0d74800
Index is added as a property for each item, so that later changes can be
identified by the index when they are accepted/rejected.
Change-Id: I9362d208fdbed1f46d64558d44498d2b19150c81