Skip to content

Private/bayram/backport 25 04 focus on prev next#15733

Closed
bayramcicek wants to merge 2556 commits intoCollaboraOnline:distro/collabora/co-25.04from
bayramcicek:private/bayram/backport-25-04-focus-on-prev-next
Closed

Private/bayram/backport 25 04 focus on prev next#15733
bayramcicek wants to merge 2556 commits intoCollaboraOnline:distro/collabora/co-25.04from
bayramcicek:private/bayram/backport-25-04-focus-on-prev-next

Conversation

@bayramcicek
Copy link
Copy Markdown
Member

  • Resolves: #
  • Target version: main

Summary

TODO

  • ...

Checklist

  • I have run make prettier-write and formatted the code.
  • All commits have Change-Id
  • I have run tests with make check
  • I have issued make run and manually verified that everything looks okay
  • Documentation (manuals or wiki) has been updated or is not required

caolanm and others added 30 commits April 12, 2026 21:33
otherwise it hangs around and forces ci to time it out

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie16b452c92139343bea912cfbd645061b42c979f
since core:

commit 3049e6673bf3383865add12321dbe85646079af2
Date:   Tue Apr 7 16:02:54 2026 +0100

    Put explicit labels for the sidebar font, fontname and style name comboboxes

    reuse the existing translations here

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I873a585a08fa16eff3f5d857c4845d56771b0d0f
needed since:

commit 3049e6673bf3383865add12321dbe85646079af2
Date:   Tue Apr 7 16:02:54 2026 +0100

    Put explicit labels for the sidebar font, fontname and style name comboboxes

    reuse the existing translations here

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I77cf816b1ca258522c801367f281d2abdd9a570d
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ib862ae6629c6e8c86fad402c37f49c443876738e
Change-Id: Ib1a2aef28379d609f250b547ab2c74cd2fad7a98
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: I84890d0749266b131f9966c2aa45f0e950de3bbf
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
With extensive tests.

Change-Id: I425ed137c527638f65acab88dfbcf94c7b2473fd
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The latter supports string_view, which
avoids forcing us to create temporary
string just to convert them to integers.

Change-Id: I83506ee43883e30a93e273260355231ec1b3bebd
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Avoids try/catch logic.

Change-Id: Ia8d1fc05ca3491f33a30975e772b3be549e97fc5
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: I942091b45e82d228930d36f00157c4c338c8fd79
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Now that _owner is the native Thread ID
we don't need _ownerThreadId, which served
the same purpose.

Change-Id: I90f56ea471bbae03a0c9b701e96fa645ae913557
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: I20041633b36bd187fe847f12499b626da90e5fe6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: I8dd02edf284b0322ef7b702abe11f21ebfd9ff0f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: I25b2b2c795ea596c80b792b45ce553b45987cdd4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: I3d670a7844b70cd83c3d606be72dd59a87bca2ca
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: Ic97c1ed376ad944270a064cd16674afd2c6c06cc
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
To reproduce:
Open Writer in Online, type misspelled text, then Review > Spelling (F7).
The errorsentence <img> should now have role=textbox instead of no role.

Signed-off-by: codewithvk <vivek.javiya@collabora.com>
Change-Id: I75fea9282c0f56901c10f4f6bded0404adb47355
- to ensure smooth animation we want to control when we
  modify DOM and trigger layouting in the browser
- we use LayoutingService to schedule tasks
- detect if we are in the task on DOM modifications in debug mode
- prints in the console
- added commented code to make debugging easier

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8955cc0f76eba325216a0a6920ef2a26ba7d7cf9
- previously we checked only LayoutingTask to be active
- it can lead to false positives: for example on scroll
- if modification of the DOM will happen in the RAF callback
  we will be notified after it's done
- use different approach: disconnect observer when we enter
  the requestAnimationFrame callback, attach again at the end
- that doesn't trigger false positive on scroll in Writer,
  but still triggers warning for cursor update on click

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0d377adf8992be014e7a80252175a49e8a19d17f
- we want to setup it dynamically on run-time

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I459396ca99f3bbcdd648a2c4c83c6fb5670e3ab3
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4d256d0fdf06a49f82df2bd15c5acfd2404570e5
  - When switching between Viewing and Editing mode via the dropdown, any visible snackbar could remain on screen and overlap with the new mode's UI.
  - Close it in handleModeSelection before the mode transition begins.

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

Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I8961df3681d997cb6e0a2ddc51c0d3f6984e6035
To be used by CODA to avoid offering already open documents in the
Recent list in the Backstage.

Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ia2d2f4478bcd725cebd03a574c6166a4bc85999e
Use the newly added RecentFiles::serialiseFiltered(). Attempting to
load an already open document will lead to an error.

Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I2f4a0da53d0892a83621fecf6ed3545f277a2e9d
After e6457f2 "wsd: replace std::thread::id
with native id", the Emscripten build started to fail with

> WASM-00009 2026-04-08 19:48:02.303000 [ kitbroker_001 ] ERR  Incorrect thread affinity. Expected: 8 but called from 9|(from ../../online/wasm/../net/Socket.cpp:1070)|online/wasm/../common/ProcUtil.cpp:203

as that commit, which switched socket thread ownership tracking from
std::this_thread::get_id to ProcUtil::getThreadId, apparently unearthed a bug
in the interplay of setThreadName and ThreadTid that dates back to
e9ef062 "Set thread name early & cleanup
thread_locals."

On platforms that do not fork (i.e., MOBILEAPP; as well as in other scenarios
where an existing thread might legitimately change its name through a later call
to setThreadName), resetting ThreadTid would not be necessary, but would usually
be harmless:  In getThreadId, upon seeing that ThreadTid is zero, most
implementations would idempotently set it back to the value it had before
resetting it.  Except in the final threadCounter fallback case (which is used at
least by Emscripten), where ThreadTid is set to some unique fresh value.

So in the Emscripten case, when KitWebSocketHandler::handleMessage (in
kit/KitWebSocket.cpp) renames the "lokit_main_*" thread to "kitbroker_*" when
handling the first "session" message, it gave the existing thread two different
IDs (8 before rename, 9 after), so sockets created before the rename allegedly
had a stale owner in the

>     ASSERT_CORRECT_SOCKET_THREAD(_socket);

check in SocketDisposition::execute in net/Socket.cpp.

(An alternative way to avoid that failing assert would apparently be to extend
the guarding

> #if !defined(IOS) && !defined(QTAPP) && !defined(MACOS) && !defined(_WIN32)
>             ProcUtil::setThreadName("kit" SHARED_DOC_THREADNAME_SUFFIX + docId);
> #endif

in KitWebSocketHandler::handleMessage, whose origins date back to `#ifndef IOS`
from 7f25109 "tdf#128502: Chunk of work to
enable 'multi-tasking' in the iOS app" (but without giving a rationale) to also
cover `!defined __EMSCRIPTEN__`.  But the underlying foul interplay between
setThreadName and the ThreadTid threadCounter fallback case would still linger.)

Signed-off-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Change-Id: Ib19fe5489a761970400493b85261f9d458dfa4ea
Signed-off-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Change-Id: I9e4eb79cc3315cf16d43e3115fae8d69937ff1c6
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie00e8980e79af3f969e5072b1e26397c7ca441e9
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I041f065700fd9af9ec40232db1ac0b554318ea26
Signed-off-by: Shardul Vikram Singh <shardul.singh@collabora.com>
Change-Id: I4275b4a54c4a8657ccbacc2fd3d650a366846a75
Gökay Şatır and others added 23 commits April 21, 2026 21:43
Add more coverage. Now invalidations cycle is also tested.

Signed-off-by: Gökay Şatır <gokay.satir@collabora.com>
Change-Id: Ie119a9c7d7babfbd079a318094ee0da990ca69ea
Centralize tests functionalities where possible.

Add an existency check for mouse-control section. Normally documentBase should have the section container. But for now, it doesn't.
This guard makes sure that document base doesn't add a duplicate section but it "adds" the section.

Signed-off-by: Gökay Şatır <gokay.satir@collabora.com>
Change-Id: Ic56e88cf18e8fdcbf3d43a8a06be272d13f178db
Change-Id: If681998365a54453e55e426ad0802f32fce86a93
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: Idc7cd3c6a003f31aba0a3419de161d134673a1f7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: Ida317408d8f3f7573c8bd63e3b75027d29829fed
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: Idbd0fb5b77859b9c034547e7184a850f7d3d410b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We avoid calling size() before enqueue()
to detect whether we succeeded or not.
Instead, enqueue() returns a bool.

Also, we hoist the shutdown check
outside the lock and add empty().

Change-Id: I51259b22284cfed438e5f9f03e370ce17ba18cf8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Making by-value return types const
disables move semantics and otherwise
offers no advantage.

Change-Id: I330c9b4e9aaac5fab649bf961cf6c4f133a243bb
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: I43fccdb4170e8b166e301ad43a6db516ef78b610
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: I9380b505bb5e40790fb7394db7912d23169b6ec0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
std::regex is expensive to construct
and is best cached.

Change-Id: I342003d1951a625d8f94597db2bff9d0d81f9696
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- fixes regression from commit 0cb0a32
  Show drag preview of unselected shapes
- steps to reproduce:
  1. Open Impress
  2. Have textbox with some text
  3. double click on a textbox to activate edit mode
  4. try to select some word
  Result: preview of the same textbox appears duplicated on top
  Expected: no additional preview

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia79c020664c68c9ba3091e7b3750333bef26271b
- 4ca8b00 accidentally added 'only' which skips all other cypress test in cell_edit_spec.js

Signed-off-by: Parth Raiyani <parth.raiyani@collabora.com>
Change-Id: Ie9566dac9707f15e0520639c5b7ae278cb063d1b
Until now Action_InsertLink only took a "url" argument, and the inserted
hyperlink was labelled with either the user's current selection or the
URL itself when no selection existed. The problem is that the
integrators often pass opaque or at least very lengthly URLs (file
IDs, full path + etc), the result: ugly links in the document where
they could have been set nicely with a title (using the document
name).

Better to, accept an additional optional "text" value so the host can
supply a human-friendly label (typically the filename from its link picker).

The selected text case still works as before:
Existing selection still wins over the optional new text, because the
user explicitly marked the text they want to turn into a link; only
when there is no selection does the host-supplied "text" take over. If
neither is available the URL is still used:
-> Label precedence: selection > host-supplied text > URL.

The change is backward-compatible: hosts that do not send "text" behave
exactly as before.

Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I70a5c0c1a453cc51ff704b30cc47f05eb20bfa72
Change-Id: I4c9343628db8a9e4d6a00c7acedc2075cff9f788
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Signed-off-by: Parth Raiyani <parth.raiyani@collabora.com>
Change-Id: I8eba2c4363c23b51828693656102e4649ab013dc
…ns are available

Signed-off-by: Andreas-Kainz <kainz.a@gmail.com>
Change-Id: I3f1486c0402b776c2d5ee9b2654404a007f3cefb
- fixes CollaboraOnline#15441
- this is not applied - remove

Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7e43c520750a5ff43ab1d1327e11a14ea9fa9cf1
Signed-off-by: Sahil Gautam <sahil.gautam@collabora.com>
Change-Id: Ib0d363902fc165cd6dff7a18a6b882a580af43a6
- reverted code from commit 623e2f5
  "Scroll Section: Move move event into layouting tasks."
  It even mention: This will change in the future but for now, move event modifies map css prpoerty.
- fixes regression after commit 5a672a7
  "canvas: flush LayoutingService before canvas render"
- makes order of processing again good for current frame:
  Original order (draw -> flush):
  1. drawSections() - ScrollSection queues panBy
  2. flushLayoutingTasks() - runs panBy synchronously

  Currently we flush tasks first, then will execute doMove() in
  ScrollSection which appends new task

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I59937a918ef3a54c540a0c7a554720d9dea6c030
Update CONTRIBUTING.md to point contributors to gerrit.collaboraoffice.com
instead of the GitHub pull request workflow. Add a GitHub Actions workflow
that automatically comments and closes new PRs targeting main.

Change-Id: Ia6e29d304fa58c3b1f24f50047c3b08655bce29e
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Signed-off-by: Andreas-Kainz <kainz.a@gmail.com>
Change-Id: I05b70f175816dd5ac3450e386b9c7b13595dc200
if an element has disabled.

Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: Ibab18302356865a46f19f3f5c9575ead9e9a7005
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1437
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
@github-project-automation github-project-automation Bot moved this to To Review in Collabora Online May 7, 2026
@bayramcicek bayramcicek closed this May 7, 2026
@github-project-automation github-project-automation Bot moved this from To Review to Done in Collabora Online May 7, 2026
@bayramcicek bayramcicek deleted the private/bayram/backport-25-04-focus-on-prev-next branch May 7, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.