and adjust the loplugin:stringstatic to cope with OUString that
is also declared in a header as extern, in which case we cannot
mark it as constexpr.
Change-Id: I108aa3ff8cb06a9a6d345cd951883b52dd0318f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167106
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
std::multiset seems to be pretty slow to construct and
destruct, even if we ~never put anything into these listener
lists, so rather use o3tl::sorted_vector, which has more
predictable performance.
Shaves 10% off startup time for me.
Change-Id: I13afcbe3cb63522e4efe61c64f773e1ffbec9683
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167101
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
GetEditCursor now returns the position relative to the line, not
to the whole text. In ImpEditEngine::CreateLines, its use wasn't
fixed, and so the Y position of all lines in the calculation was
the same, thus adjusting to the same contour's horizontal stripe.
Change-Id: I16362bab47f3064281eefb45a12834d836a8ada3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167042
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
A temporary (ugly, but appropriate) icon has been assigned.
The toggle can be customize-assigned to keyboard, menu, and toolbar,
and can be found by searching for "Dark Mode".
In the menu, it is checked when in Dark mode,
and in the toolbar it is "depressed" or highlighted as active.
Dark mode has been added to the view tab of notebookbar.ui.
I added it as NOT VISIBLE, for several reasons.
- dark mode is rather new and not so stable, so don't over-promote it.
- notebookbars cannot be infinitely customized by the end user,
so developers have to add all items. Users only enable or disable.
- toggling dark mode really ought to be done at the OS level,
and typically should be a one-time setting,
therefore not appropriate to waste precious toolbar space.
The primary benefit of making it available in the menu
is for QA testers who want to easily switch back and forth.
WARNING: by customizing the notebookbar, you prevent seeing
any future NBB changes made to the program
(until you reset to defaults or blow away the user profile).
Dark Mode can easily be added to a menu, toolbar or keyboard shortcut
by the end user, so I didn't bother adding it anywhere else.
To avoid completely cluttering up this commit,
I only added Dark mode to the main notebookbar.
Once this commit has been finalized,
the other writer-apps and notebookbars can
also gain this command.
Change-Id: Ia7594ad81e305ead922abd0ad7b41d6fc0413053
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166781
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
separate commit since help submodule also uses the macro.
actually turn it into make error to prevent reintroducing it
the repo_target ones are from way back when the whole repo was
split up in many different ones and not used for many years,
no point in having those as errors
Change-Id: I9fd42529d08ea7859b33f8570936f06039cfa184
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167006
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
…by a simple/static $(gb_CustomTarget_workdir)/foo
The build system has a lot of overly complicated leftovers from when it
was introduced and had not only deal with split repositories but also
had to coexist with another buildsystem. Along with lots of copy'n'paste
along the years the makefiles became hard to grasp for newcomers with
all our calls and evals.
As a first step to streamline that, the macros from TargetLocations that
simply prefix a static path to the argument (and similar of the same
kind) are a natural pick before simplifying the rules themselves/getting
rid of a bunch of eval statements.
Change-Id: Ia06dbbcd5d1994755a2ff05b84f72ccbc4e3cab5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167005
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
mvUserData is still needed to keep it's content from being deleted.
Revert "Drop unused instance variable."
This reverts commit 687ae6ca01.
Change-Id: I689cfdaf8d4d62a3b53ff7fb318dc8c70b9e1c2d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167020
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Tested-by: Jenkins
The UI code at lcl_ChangeResIdToVerticalOrRTL() was aware that
SwAnchoredObjectPosition::CalcRelPosX() mirrors the position when the
anchor paragraph is RTL, so swapped the "from left" label to a "from
right" label.
Don't do this when the compat option is enabled, so not only we render
correctly but the UI now correctly explains why we came up with the
correct position.
Change-Id: I479ed1f085b249d10be47b66d7a656dc1bd4f936
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167031
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
Previously, the CJK BreakIterator used custom dictionaries for Chinese
and Japanese. This change removes these custom dictionaries in favor of
the upstream ICU implementation, which uses an externally-maintained
frequency dictionary for these languages.
This change also removes support code for dictionary-based break
iterators, as it is no longer used.
Change-Id: I55c4ce9c842d1751997309fd7446e0a6917915dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166136
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
...after this got wrapped in an outer
> ifeq ($(OS),EMSCRIPTEN)
in cf0b0f0dd0 "Emscripten: Only add the --pre-js
code to the soffice executable"
Change-Id: Ic2b9ae7709a06146a206ebaa2ee8881387dae6b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166998
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Let `SdrPage::createAnnotation` et al. return the newly
created annotation rather than using an out parameter,
which makes this more straightforward.
Change-Id: Iee0561859756522ef33680c2cc9b492541a31d5e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167019
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Align the gtk4 a11y role mapping with what upstream
GTK 4 does with current git main (as of commit
0064500146fc080dae1ef2b30bebf7bb8b35a52f), see this
upstream GTK commit [0] and the one it refers to for
more details:
commit ad8613876c753cea8695dc8b03dcd37eb8e723a5
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Apr 30 14:44:11 2024 +0200
a11y atspi: Improve mapping for container roles
GTK_ACCESSIBLE_ROLE_GENERIC is for
"a nameless container that has no semantic meaning of its own",
for which AT-SPI role ATSPI_ROLE_PANEL [1]
("A generic container that is often used to group
objects.") fits better than ATSPI_ROLE_FILLER
("A object that fills up space in a user interface."),
so map to this one.
With this in place, widgets like GtkBox are again
reported with the panel role on AT-SPI level after
commit a86923de943b6a42ba431be2a336972dca9c587d
("a11y: Change the role for many containers"),
whose commit message suggests that the change
on the AT-SPI level was unintended.
For GTK_ACCESSIBLE_ROLE_GROUP, use the corresponding
ATSPI_ROLE_GROUPING ("A group of related widgets.
This group typically has a label.").
[1] https://docs.gtk.org/atspi2/enum.Role.html
This causes the LO a11y roles `PANEL`, `SPLIT_PANE` and
`ROOT_PANE` to be mapped to the AT-SPI panel role again.
With the above-mentioned GTK upstream change, the native
GTK widgets now also use the panel role without having
to explicitly set anything on LO side rather than being
fillers, which removes the need to set them explicitly,
see the full commit message of
commit f6ca163d3f
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Apr 26 12:43:24 2024 +0200
gtk4 a11y: Don't create second AT context for OOoFixed
for more details.
Also, map the LO `FILLER` role to `GTK_ACCESSIBLE_ROLE_WIDGET`
which GTK maps to the AT-SPI filler role.
(The previously used `GTK_ACCESSIBLE_ROLE_GENERIC`
is now mapped to the AT-SPI panel role, which
is for widget containers rather than fillers.)
[0] ad8613876c
Change-Id: I1d1a8f626911455481d2d722790e8915daa921c7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166995
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins