This patch introduce a new LOK callback for informing the client that
the row/col header is no more valid and needs to be updated.
Change-Id: I21a3a41d69bd1a3c11c9ffaf1d7d53dbc3b9681d
Reviewed-on: https://gerrit.libreoffice.org/36733
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
...to give them internal linkage in both C and C++. Of those definitions that
were not marked as static:
* Those that had not been marked as inline had external linkage in both C and
C++, so would have caused ODR violations were LibreOfficeKitInit.h included in
multiple translation units.
* Those that had been marked as inline lacked an external defintion in C.
(Which 3f02b2aa51e32c46d5b6610480bc1ba22156a3ec "LOK init: avoid non-inline
function definition in header file" had apparently faied to take into
account.)
(IOS_SWIFTCBRIDGE introduced in 028ef4748e53aa8f72c6464ce6bbeeb28c61d30c
"LibreOfficeKitInit.h modified to avoid ODR" becomes unnecessary again.)
Change-Id: Ibb8033cdbac87b20fa0e3b203b99571c1a7e7234
Reviewed-on: https://gerrit.libreoffice.org/35491
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
As discussed in IRC, the prev. version would cause an ODR
the use of _cplusplus have been changed to IOS_SWIFTCBRIDGE
Change-Id: If18610858cb56780347bb28f909619db4aac85b0
Integrated LibreOfficeLight into gbuild.
added lo.xcconfig and Resources (needed to link with LO and run LO)
added swift --> C interface for LOkit
add known commands from JS client
added C++ condition in LibreOfficekitInit.h (inline no good in a C file)
Change-Id: I19ebe8912546408bf701c96c0c63541d6e37cad8
Reviewed-on: https://gerrit.libreoffice.org/35430
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: jan iversen <jani@libreoffice.org>
changes needed to make TiledLibreOffice compile/link for ios-simulator.
Remark:
autogen.input need to have --disable-pdfium due to a missing
<Carbon/Carbon.h>
Change-Id: I3e1af26d99c35c3c552510f28e13a7e530fca09f
Reviewed-on: https://gerrit.libreoffice.org/34145
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: jan iversen <jani@libreoffice.org>
This was for the moment removed from the online.git, so let's disable the API
bits too before it shows this is really necessary. Reverts also:
Revert "Lok: unittest batch API"
Change-Id: I7bf3fe62d1e73b6f233992d51f587868a78f4bec
Mouse and keyboard operations typically
come in batches, and often each results in
tile invalidations and/or layout modifications.
Processing each input event on its own, then processing
the resulting output event is very costly and unecessary
when we know there is more of the same.
The new API adds support for batching such related
input events by disabling the output events generated
by Core until the batch is done. The client can
then process the resulting events, which will
be compressed and deduplicated.
Change-Id: Id381dab807186d010021a8778ee440074a739920
Reviewed-on: https://gerrit.libreoffice.org/33402
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Since the entries and their order are part of the
public API, and will not change, numbering them
makes it easier to trap particular callbacks by
their number (as that's what shows in logs and
the debugger).
Change-Id: Ife2fe3e601ce3dce0939363d748fcb54d3c85fd4
Reviewed-on: https://gerrit.libreoffice.org/31257
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>
(allow-none), though deprecated since GI 1.42, is required to
maintain the backward compatibility since (nullable), added in
GI 1.42, is not understood by GI tools < 1.42 preventing the
clients from passing a null parameter to various functions in the
widget.
We can remove this deprecated (allow-none) annotation once we
bump the GI version in LibreOffice to atleast 1.42
Change-Id: I98a1f3d2205ec5afd8060f16e69c5f938f229e26
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
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
- 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>
Based on how LOK_CALLBACK_ERROR callbacks are actually done in
desktop/source/lib/lokinteractionhandler.cxx.
Change-Id: Ibbe37c681252aa91c979d51b9aae6236ff9d88de
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
An alternative would be to follow the Manage Changes dialog approach and
subscribe to the SFX_HINT_DOCCHANGED notification in SwDocShell, cache
the old redline table and find out the differences to the current one,
but that way sound much more complex without benefits.
Change-Id: I20a45285b88255ccea9d6646c0b5288ac1c91879
Open two views, and type into both of them when a Writer doc with
redlining enabled is open: the manage changes dialog now shows how the
correct author is used when creating the redline items.
Change-Id: I48fb90301bfcc04b06d5be5544324ca76fe7b3d7
'strcpy' is insecure as it does not provide bounding of the memory
buffer in general, so let's avoid it even here.
Change-Id: If39319a2df7ddd9297938bc0be67fe5f8a2af962
Reviewed-on: https://gerrit.libreoffice.org/27999
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
When we're after SdrBeginTextEdit(), but before SdrEndTextEdit(), and
have multiple views, then only the active view paints the edited text,
the other views look like the shape has no text at all.
Add a new callback that exposes the position and size of the rectangle
where the shape text will be painted after text edit ended, so clients
can draw some kind of locking indicator there. This way the rendered
result can differ in the "shape has no text" and the "shape text is
edited in an other view" cases.
Change-Id: I6096479a8a05c2547d15222e6d997b848af02945
Reviewed-on: https://gerrit.libreoffice.org/27441
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
With this, in case a text cursor is turned into a graphic selection in
view#0, then view#1 can also hide the text cursor of view#0.
Change-Id: I7de89b8537ef8b0985336793b719d93733604bff
Reviewed-on: https://gerrit.libreoffice.org/27044
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Commit 45c2410041c48c22bd860efb42d4daadad7869b0 (LOK: change type of
view ids to uintptr_t, 2016-06-17) fixed the problem of view IDs being
reused for the price of random IDs, which makes debugging harder.
Implement a simple shellToView() function that makes sure view IDs are
not reused, and stop exposing view shell pointer addresses, which allows
reverting the LOK API change.
Change-Id: I63089e6de08ee7e1c7706757d43a11f6cf4d6e06
Reviewed-on: https://gerrit.libreoffice.org/26773
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
This fixes the following problem:
- createView() = 1
- createView() = 2
- destroyView(1)
and then view #2 was renumbered to 1.
Instead expose the pointer address of the SfxViewShell as the ID, which
is not changing in such a situation.
Note that the SfxViewShell <-> ID mapping is an implementation detail of
SfxLokHelper, and only pointers are converted to IDs, user-supplied IDs
are never converted back to pointers.
Change-Id: If79ef8b99ba391011b5d82b219ad13447d44cd5a
Reviewed-on: https://gerrit.libreoffice.org/26423
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Painting should not cause any state changes, but
to paint a tile on a different part than the current
has to change the document, which sends notifications
to all clients.
A new API, paintPartTile, allows for painting tiles
on any part without sending change of part notifications.
Furthermore, because we block notifications during this
operation, no tile invalidation is issued due to
changing of the part.
One issue remains in the cases when the LO Core
resets the cursor position internally and we resume
editing after painting, the cursor might be at the top
of the page. This needs fixing separately.
Change-Id: If19bd1c90ecad4d5ed5e8d09513741b7994fa6e5
Reviewed-on: https://gerrit.libreoffice.org/24698
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
In the tiled rendering case, the slides, no matter
if it is inserted or deleted, the part names always return
sequential names i.e. Slide 1, Slide 2, ..., Slide N.
However the client side needs to know what slides had been
deleted or inserted, so it is necessary to send the hash codes.
Change-Id: I0e9caeec660c3e42dd9f751bdce7690f9ad365a1
Reviewed-on: https://gerrit.libreoffice.org/24267
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>