Commit graph

392 commits

Author SHA1 Message Date
Attila Szűcs
c4543d4e16 fix EOL issue in transform Document Structure
Send encoded JSON string instead of decoded.
This way it will not have special characters, and it will
reach the core side even with a \n or \r inside ot it.

This way we can set multi-line text to a contentControl.

Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I8b32aeef522faf7f4597405bec9bbb37b99d53cf
2024-07-16 10:28:44 +02:00
Attila Szűcs
0d411ed1f5 Filter option for extract document structure
Example use of filter:
curl -F "data=@docStructure2.docx" -F "filter=contentcontrol" http://localhost:9980/cool/extract-document-structure > out.json

it will extract contentControls only if filter=contentcontrol is used,
or if no filter is used.
No filter means extract everything.

Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I001a2cc525be7502d53b5849bb61a99d087ed807
2024-07-15 16:41:02 +02:00
Attila Szűcs
d8f3ff3e6b Extract/Transform Document Structure
Use extract-document-structure to get document structure
Use transform-document-structure to change its content

Example use of Transform:
curl -F "data=@CC.odt" -F "transform={\"Transforms\":{\"ContentControls.ByIndex.1\":{\"content\":\"Short text\"}}}"
 https://localhost:9980/cool/transform-document-structure > out.odt

Note: Please do not use \n (EOL) in transform.

Example output for extract
{
    "DocStructure": {
        "ContentControls.ByIndex.0": {
            "id": 0,
            "tag": "",
            "alias": "",
            "content": "FieldValue1",
            "type": "plain-text"
        },
        "ContentControls.ByIndex.1": {
            "id": 0,
            "tag": "",
            "alias": "",
            "content": "☒",
            "type": "checkbox",
            "Checked": "true"
        }
    }
}

Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I4b362376651e9bb5482949529e2bd7720231debf
2024-07-15 16:41:02 +02:00
Tomaž Vajngerl
cde26b6479 Add support for "getpresentationinfo" command
This adds support for getting the presentation info from core.
This change uses the new GetPresentationInfo() funciton that was
added to the LOKit API.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: I19f5809fd841e4b2603a2446e1d9d54392dd1bd7
2024-07-03 13:23:14 +02:00
Jaume Pujantell
099aafec65 calc: fix copy hyperlink outside of edit mode
Right now .uno:CopyHyperlinkLocation only works on edit mode or
inside a draw object, but LOK_CALLBACK_HYPERLINK_CLICKED is
dispatched outside of edit mode and the copy command from
the pop-up is ignored.

Since there is no text cursor, the position of the hyperlink is
needed to discriminate the correct field, since there could be
multiple hyperlink fields inside the same cell.

Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: Ie814867e0a4a319e78381b68343847491034d85f
2024-07-02 16:24:37 +02:00
Mike Kaganski
154d020de5 Drop unneeded optimization
It is useful to send mode always, including the default 0. The 0
is significant; and there is a JS code that treats absent mode as
"current".

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I8dbaaa47b302d96c8e867c1e9cb31b558e13db09
2024-06-28 11:55:51 +05:00
Mike Kaganski
2236143954 Handle ".uno:DocumentStatus" instead of SlideMasterPage special-handling
Since other view modes are needed, too, not only master page view, we need
to send / handle status updates not only in case of SlideMasterPage update.
The  ".uno:DocumentStatus"  pseudo-command update sent from ChangeEditMode
in core serves for that.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: If7bc7ae124d161658b06784f3e86d85f3c76f3c6
2024-06-28 11:55:51 +05:00
Michael Meeks
2ef08fdf45 test: abort UnitSaveTorture if we don't get a bgsave when expected.
Hopefully this can abort more helpfully if we have no chance to bgsave.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I3ca8a3d577c1dc6d11049ddaee9dcf77e00a9a3a
2024-06-25 22:43:08 +02:00
Ashod Nakashian
121a2492a8 wsd: appimage: fix template saving path
Change-Id: Ie667b9e65f4130aab1210d6776bbfc6daf084bec
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2024-06-18 09:46:06 +02:00
Miklos Vajna
621ec809b3 cool#9219 kit: fix setclipboard command with HTML payload
Have two COOL servers, copy on one instance, paste an on other instance,
nothing happens on Ctrl-V.

It appears the JS code in Clipboard.js
_dataTransferDownloadAndPasteAsync() gets the correct HTML, but when it
tries to contact the "copy" server for the underlying full clipboard,
some security policy prevents the JS code from doing that. Which means
1) perhaps we should do that HTTP fetch on the server, not in JS and 2)
the fallback code should at least work via normal HTML.

Fix 2) by extending ChildSession::setClipboard() to recognize if the
data has the typical HTML header, and only start the usual parsing in
case the data we got is not bare HTML.

The 1) still needs fixing.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I55a102c2a39d21ac898f82041760a220e46784cb
2024-06-06 09:34:07 +01:00
Bayram Çiçek
42c044dbdf add AutoFill contextmenu items
- remove Control.AutoFillOptions.ts & cleanup
- added AutoFill contextmenu items
  - Copy Cells
  - Fill Series
- add 'AutoFill':{spreadsheet:{menu:_('Auto Fill'),},}
- remove LOK_CALLBACK_CELL_ACTIONS

Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: Ib64f6078ec50c994da3ed188910cba258adfe3fa
2024-05-28 14:07:09 +02:00
Bayram Çiçek
84802577d3 remove isAutoFillFromOnMouseUp and add LOK callback
- we don't depend on OnMouseUp event of AutoFillMarkerSection.ts anymore
which makes the popup more stable in terms of open and close.
- requires: added LOK_CALLBACK_CELL_ACTIONS with
  https://gerrit.libreoffice.org/c/core/+/168086 - 1cf2a23c7cb0a149562635432b003164059617b5

Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I2294f6aa091231c2ddf1a448776f51a3a892b646
2024-05-28 14:07:09 +02:00
Darshan-upadhyay1110
d3d7f48225 Add vertical ruler for writer
- add new LOK callback for vertical & horizontal ruler update

Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I3c0e26f22072de4612e128d58ac41b629be82807

Add vertical ruler and implement margin calculation

- Added new vertical ruler file to separate it from horizontal ruler calculation
- For vertical ruler we do not need tab stops so removed it.
- next stpe will be to implement add top and bottom margin by drag

Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I8186c874ff59571db7a75ec4c31f81fc655ef301
2024-05-24 08:56:03 +02:00
Aron Budea
7ed490700b Add empty handler for LOK_CALLBACK_VERTICAL_RULER_UPDATE
To silence errors until feature arrives. Occurs after
following core commit:
11b936629dd4ef9308d63b312900b8b7c8ff19b4

Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I6d9b01b265e3f07db2bc4ac7da46cbfcd0e17da5
2024-05-19 00:53:35 +02:00
Michael Meeks
ff8dbe7fde cool#9045 - close clipboard race by waiting for completion.
To avoid the HTTP[S] request racing the websocket and sometimes
loosing we need to:

* get a notification from the Kit when the copy / cut is complete
* wait on a Promise for this, to allow the HTTP fetch to start
* re-work to do a single, rather than two fetches by sharing
  the download promise.

Change-Id: Ic23f7f817cc855ff08f25a2afefcd73d6fc3472b
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2024-05-14 13:19:52 +02:00
Michael Meeks
c66940cf9a bgsave: close race of typing while a background save completes.
We need to mark core unmodified so we can track modifications
to the core that date from after the background save process is
forked.

We avoid telling WSD about our new modification status until
we are sure the background save completed successfully, and only
in the case that we have not been subsequently modified.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I2c9fbce942ff0af2bb727c3685f4ec479e18fa27
2024-05-08 16:42:29 +01:00
Michael Meeks
90f387cdc5 bgsave: change statusindicator protocol message to 'progress' + JSON.
We need to get more helpful structure into this message, and add a
type=bg flag to handle background progress messages.

Add unit test for merging progress: setvalue commands.

Simplify ProtocolHandler sendTextMessage with a std::string wrapper.

Android code needs manual testing.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I54ce807e2fc5de80118905e68557a95e637fbd18
2024-05-06 20:28:08 +01:00
Caolán McNamara
c2f4f8031d disable watchdog while loading and saving
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ic1757f1cafcaed7feb3ce0cbc21fe8e03c5d4bd4
2024-04-30 17:55:13 +02:00
Michael Meeks
14e3a20e18 DocumentManagerInterface - remove un-helpful abstract base.
This added 200+ lines of code, made things harder to
understand, and was used only in a single test that can be
covered in another way.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I4ed8d1d52d533f8b24be7dd5e12dbb7702ef1a80
2024-04-29 10:56:54 +02:00
Michael Meeks
1b6af5e28d killpoco: remove lots of redundant JSON includes.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I976c5b8d6763cbbf0ee5cadfa2f7335ec719fe85
2024-04-25 09:06:13 +02:00
Michael Meeks
884a841cde Logging: wrap poco and simplify logging.
Centralize more logging functionality in Log.cpp, simplify and
wrap underlying logging APIs better.

Code is much more generic, and hides implementation details
much more thoroughly, while keeping the same API / wrappers.

To do this we have to sub-class Poco::Logger to get access to
its generic 'log' method instead of a mess of in-line wrappers,
this lets us avoid lots of code.

Change-Id: I541d3aef49f99ce582655c5102a0041bf84cd56a
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2024-04-24 10:59:51 +01:00
Michael Meeks
5f1387b6db bgsave: various documentation cleanups & a missing const.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I55636718815adc1b294219304e7fd060f88f9c15
2024-04-18 19:48:35 +01:00
Michael Meeks
33037c3a65 bgsave: don't try to save twice in the same background process.
Get the polarity of the check on whether we succeeded to spawn a
background save process right, so we don't spawn two saves
concurrently, and block input processing in the wrong place.

Also a few obvious sillies fixed, and some more assertions for
good measure; was not good:

[ kitbgsv_001_001 ] TRC  ToMaster-002: Finished synchronous background saving ...| kit/ChildSession.cpp:882
[ kitbgsv_001_001 ] TRC  ToMaster-002: saveDocumentBackground returns succesful start.| kit/ChildSession.cpp:887
[ kitbgsv_001_001 ] TRC  Document - input processing now: disabled was enabled| kit/Kit.cpp:2095
[ kitbgsv_001_001 ] TRC  ToMaster-002: uno command .uno:Save {... notify: true| kit/ChildSession.cpp:1944

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ie06a74a538bdd5038ca9c94b422f27cff9e4a82e
2024-04-18 19:48:35 +01:00
Pranam Lashkari
50963aadf2 uno: .uno:SetDocumentProperties: add file path parameter
problem:
in LOK/online to support async save, files in jails may have
different extensions (ie: .upload, .uploading)
this caused problem to detect files as original file name may not exist.
As result property like file size were always set to 0

chronology of events:
1. File is saved normally with existing name
2. After saved we make it ready for upload and add extension .upload in "renameForUpload"(kit/ChildSession.cpp)
3  We change to .uploading extension when we are uploading (DocumentBroker::handleSaveResponse, DocumentBroker::uploadAfterLoadingTemplate)

Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ibda40b0c134ef6baef9edb0427b3c56340924858
2024-04-18 10:07:13 +01:00
Michael Meeks
af749c2237 bgsave: rename parameter to background, and add setting.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ic49ec5715682b71461b49741d022fc7149aa5a13
2024-04-16 16:43:52 +01:00
Michael Meeks
5dbe4fe02f bgsave: warn and fail on unexpected receipt of .uno:Save.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I097320d8b668c1bfae9052e9edc5a4df9c7c0bcf
2024-04-16 16:43:52 +01:00
Michael Meeks
0b3b27cb72 bgsave: switch to using a 'save' command to the kit.
Also pass 'autosave' status in a more conventional way.

Ideally we would split 'save' away from a ChildSession / ClientSession
and have this on DocumentBroker / Document - for the future.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I39a6caf8b17fa2fc2d940ae0d11bdc2d4da20b6c
2024-04-15 11:06:22 +01:00
Michael Meeks
76230b6b4b SigUtil now associates all commands with a session anyway.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I9098f7137d81bbc63e2449fbc8ecc53b3f1e7e7e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2024-04-15 11:06:22 +01:00
Michael Meeks
e27a095775 bgsave: initial implementation (gated on COOL_BGSAVE=1)
Initial background save implementation from the Kit perspective.

To do a background save we:

   1. join known threads - we can't fork with >1 thread.
   2. check all is well: one thread, nothing unusual...
   3. create a socketpair to communicate with the child
   4. fork
   5. child: cleanup duplicated sockets
   6. child: setup LOK to not damage our shared file-system
   7. child: save
   8. child: report status back to parent & _Exit

There is still a substantial TODO, but this can be built on.

Change-Id: Ibf2c492372e2b5133932773e230ad05e18521794
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2024-04-05 17:34:43 +01:00
Pranam Lashkari
f29fe2a197 kit: set creation date when online creates file from template
problem:
when online created file using WOPI clients, creation dates were never set.
in online files are created using templates, even empty files are created using
an empty template

Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I312d7af17bf322ca55b6e20bba344e4fc6628e66
2024-04-03 13:26:24 +01:00
Miklos Vajna
ea8202268c Related: cool#8648 clipboard: use JSON when requesting HTML only
Visit the
/cool/clipboard?WOPISrc=...&MimeType=text/html,text/plain;charset=utf-8
endpoint, you get a JSON with HTML and plain text. Visit
/cool/clipboard?WOPISrc=...&MimeType=text/html, you get HTML with a
custom header that is only possibly to skip easily because HTML itself
has as well-known header.

This is decied in ChildSession::getClipboard(), which has 3 cases: 1)
single specific format 2) multiple specific formats and 3) all formats.
So far only 2) used JSON, but the new async clipboard copy will want to
(als) request just plain text, where skipping our own custom header is
hard, given that the text itself has no well-known header (unlike HTML).

Solve the problem by always using JSON when a specific format is
requested, so both the HTML and HTML+plaintext case gives JSON.

The client side of this is the recently introduced Clipboard.js
parseClipboard(), which can cope with JSON already.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I8298f3f82d2a3871777c369f5aee6bb81d66a553
2024-04-02 21:41:57 +01:00
Miklos Vajna
b14f3fffff cool#8465 clipboard: improve handling of plain text copy, complex case
In case the selection is complex (not simple), we used to just request
HTML, and then the browser converted that to plain text, which has the
downsides already mentioned in commit
7f9de46688 (cool#8465 clipboard: improve
handling of plain text copy, simple case, 2024-03-08).

Steps to support this:

1) Clipboard.js now asks for the text/html,text/plain;charset=utf-8 MIME
   types.

2) wsd: ClientRequestDispatcher::handleClipboardRequest() now maps this
   to DocumentBroker::CLIP_REQUEST_GET_HTML_PLAIN_ONLY

3) ClientSession::handleClipboardRequest() maps this to the HTML+plain
   text MIME type list.

4) kit: ChildSession::getClipboard() is now improved to take a list of
   MIME types, not just 1 or everything.

5) kit: ChildSession::getClipboard() now emits JSON in case not all, but
   multiple MIME types are requested.

6) wsd: ClientSession::postProcessCopyPayload() now knows how to
   postprocess clipboardcontent messages, which may or may not be JSON
   (it's JSON if more formats are requested explicitly, leaving the 1
   format or all format cases unchanged)

7) Control.DownloadProgress.js now handles the case when we get JSON and
   sets the core-provided plain text next to the HTML.

   Leave the handling of non-JSON case in, because this means we can
   copy from an old COOL server to a new one.

Note that this approach has the benefit that once the clipboard marker
is inserted, the length of the text/html format would change, which
means we can't parse the clipboard data till the marker is removed.
Emitting JSON for html+text means adding the marker keeps the ability to
parse the HTML and the plain text part of the clipboard in JS.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I67a1f669e8a638d34cc25a2f288a7b30884b9892
2024-03-20 10:21:59 +01:00
Jaume Pujantell
8921e19d84 reduce uses of MOBILEAPP on some files
Reduce the uses of MOBILEAPP conditionals by using the isMobileApp
function.

Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: If541307fbc457b342674cc560b6c53454f3904cf
2024-03-20 09:13:00 +01:00
Ashod Nakashian
dd2b187cd9 wsd: avoid duplicate string copying for ProfileZone
Change-Id: Ie07e5d1ef3d0260ce66252e601b0be810c24aee1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2024-03-18 18:41:49 +00:00
Ashod Nakashian
21b0394828 wsd: better empty string operations
Change-Id: Ic14efcaa8a1c345b875c27446b16f51740c55efa
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2024-03-18 18:41:49 +00:00
Pranam Lashkari
714b24c6ae canvas:svg: update inner text area of shape/textbox based on input
problem:
before this patch innert textarea svg was not updated after changing text,
it was static based on first selection of textbox/shape,
to update the textarea we needed to unselect and reselect shape/textbox

Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I11ceaf76867cecf5a356149d2072181e9f10b86e
2024-03-15 09:23:27 +00:00
Miklos Vajna
7f9de46688 cool#8465 clipboard: improve handling of plain text copy, simple case
Currently the current selection is always requested as HTML by the
browser, and then we ask the browser to convert it to plain text.

The problem is that e.g. Writer can produce much better plain text from
its model, compared to the plain text by the browser, e.g. bullet
characters for bullet points.

Fix the problem by:

- CanvasTileLayer.js, _onTextSelectionMsg(): requesting both HTML and
  plain text. Use ',' as a separator, as that's already established,
  e.g. the HTTP Accept header does that already

- Switching the textselectioncontent protocol message from just HTML to
  JSON that contains both HTML and plain text. This is produced in
  ChildSession::getTextSelection() and parsed in CanvasTileLayer.js,
  _onMessage()

- Clipboard.js, setTextSelectionHTML(): allowing setting both HTML and
  plain text.

- ClientSession::postProcessCopyPayload(): knowing if the content to be
  processed is HTML-in-JSON or just HTML, do additional escaping in the
  JSON / textselectioncontent case, but leave the other clipboardcontent
  case unchanged.

So far this only handles the simple case, the behavior for complex
selections are left unchanged for now. The payload is also unchanged
when a single format is requested, as many tests depend on test.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I2fe1378a8d50b7901ac9e808eb78858cd8ff8575
2024-03-08 13:54:10 +00:00
Szymon Kłos
f1460e92cf Make exportas error more informative for user
Replace "The server encountered a xxx error while parsing
the yyy command." with more informative "Document cannot
be exported. Please try again." on export issues.

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2683720d043713af95ccc61d46c3da09e6f5092b
2024-03-07 06:58:17 +01:00
Gökay Şatır
1354d23a2f Revert "Changes for handling readonly mode click events:"
This reverts commit 924f13f106.

Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
2024-03-06 14:03:02 +01:00
Gökay Şatır
70da09059d Revert "Fix readonly click event."
This reverts commit ad76f8fece.

Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
2024-03-06 14:03:02 +01:00
Aron Budea
3b8f3d07f6 Replace Util::startsWith/endsWith w/ C++20 equivalent
Replace a few cases of Util::toString(...), too.

Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I53c5dbbdf2f60710e94add9dd137aa9becb7bd3e
2024-02-22 08:08:32 +01:00
Michael Meeks
29fa4a40a1 signal activity dumping: enrich with session details and state.
Cue up some basic state for being signal safe dumped on crash/abort.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ibc6713aef2a0e7b878b178b05f0e13c8d40b47fc
2024-02-06 19:29:28 +00:00
Mike Kaganski
ed642d008d Handle LOK_CALLBACK_TOOLTIP in wsd
Send "tooltip: <payload>" to client for this callback type.
Client-side handling should be implemented separately.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I2d1a07dd36fa20a4b5ff785da788356e0f41d62f
2024-01-16 15:41:48 +03:00
Gökay Şatır
ad76f8fece Fix readonly click event.
Converting the coordinates were inconsistent.
Created JSON was not valid.

This PR fixes the issues.

Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Ibb9cf4e4517a8e3f2d5fc701fdcf287ce72b6b9c
2024-01-12 08:34:20 +03:00
Patrick Luby
c4737dfc58 Implement LOK_CALLBACK_EXPORT_FILE for download requests in the iOS app
Have the document's DocumentViewController display a save dialog and
export a copy of the file written by the LibreOffice code.

Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: Idf8136bc321893f18010eb74f9c39b21f0f698d5
2024-01-10 14:31:46 +01:00
Gökay Şatır
924f13f106 Changes for handling readonly mode click events:
* These changes are made primarily for reading the hyperlink data from the document in readonly mode.
* Added readonlyclick event.
* Added readonlyhyperlinkclicked event.
* And the handlers for these.

When user clicks on document in readonly mode, a readonlyclick event is sent to the server.
Childsession checks if there is a hyperlink at the clicked location.
If so, the information of the hyperlink is sent to the client.

Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I9c104a1ec770491725337b9bbb1e2d1c2851321b
2023-12-27 09:24:28 +03:00
Jan Holesovsky
9d8e00312d Kill some copy/paste
Signed-off-by: Jan Holesovsky <kendy@collabora.com>
(cherry picked from commit 1ca42964447b6f25acaa63d754f5f42320bea047)

Change-Id: I30fe4421c2305af0da677ebc3731c682e21dae22
2023-11-27 10:48:44 +00:00
Michael Meeks
7183a3d3de spdx: improve machine and human readability of headers.
Change-Id: Ice934380029bf27054e830fffc07a5d037d1430f
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2023-11-14 19:36:31 +00:00
Marco Cecchetti
4dfe164f3f Make wsd aware of LOK_CALLBACK_CORE_LOG callback
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ief478ba97ac33f386d7b09aa551168e2c05259de
2023-11-14 13:16:30 +01:00
Marco Cecchetti
f6f5325f8d a11y: impress: help screen reader to report shape selection
Avoid screen reader to wrongly report text when a shape or image is
selected:
- Got editable area to be made empty when user is not editing text
- Got default for any input to be prevented (except for some special
cases) when user is not editing text so editable area is kept empty

The selection action and the selected object name (e.g. "Rectangle",
"Presentation Title", etc.) are sent to the client.
That allows screen reader to report: "Presentation Title selected" or
"Rectangle unselected", according to the action type.
Selection text content is reported too when available.

Something alike is reported on cell navigation in a spreadsheet.

Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I75a8b66ef8cb7b24b28d749f0b24afe2587de45e
2023-10-26 20:35:20 +02:00