Age | Commit message (Collapse) | Author |
|
Change-Id: Ic975c6344edb03e8bb8283a627fb70e05ca76239
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159075
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I699783305355c49854307cc83ec1e2e9a94cc326
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159076
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
* Update helpcontent2 from branch 'master'
to 798773a4ad50b9311758a4ed2275f2f4ff53a3e0
- tdf#146386 helpcontent2: FTP UI is removed
Change-Id: Ie2d38acdf570644dbd087fd14e9485f263bdbb7b
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/159067
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
|
|
To understand this, some look back in history will be needed to see
why it is as it is today. In some (reworked) comments 'poolable' is
described as flag to hold Items in the ItemPool, also always having
only one incarnation of each possible Item.
This is not the original intention, but a side-effect. The reason is
what the binary format in the office did: To save a document, the
Objects & the Pool were saved, *not* individual Items *together*
with the objects. The Pool was completely (binary) saved (and loaded)
in one run.
Temporary IDs were used to represent at the objects in file which
Items were referenced. This *required* to have only one incarnation
per item to have a minimal binary file size, thus this high effort
was put into this. At doc load, the pool was loaded, all Items were
set to RefCount 5000, the references from the objects were restored
and then for each Item the RefCount was lowered by 5000 again
and - if being zero - deleted. Items for UI were marked 'non-poolable'
to *not* safe them with the document, so poolable was a flag to decide
if that Info/Item was to be saved with the document - or more direct:
if it is Model Data.
Items are small, so if we prefer runtime it is okay to no longer being
strict with this, anyways does not happen often and has only marginal
memory effects - compared to runtime effects/savings.
Other problems which this caused: One example is that objects in the
UNDO stack were still in the pool, so e.g. deleted pictures were saved
with the document despite no longer being used (!). That is the reason
we have an UndoItemPool and a method MigrateItemPool to move stuff to
that Pool when objects go to the UNDO stack - all of this is also no
longer needed.
Cleaning this up means to ideally have all items in the SfxItemSet,
no longer at the Pool. The Pool should be reduced to a 'Default-Item-
Holder' and a 'Slot-to-whichId-mapper'.
This needs thorough cleanups/removals, but will be worth it because
that massive simplification(s) will increase safety an runtime and make
migrating to the goal of completely type-based ItemSet stuff easier for
the future. Hopefully only view code in the office working with items
will have to be changed for this.
In this 1st step I already found that some 'compromizes' will be
needed:
- There are still Items that have to be at the pool to make the
Surrogate-stuff working. This gives back all Items in a Pool of a type
and is used in ca. 80 cases. Each one looks at these Items *without*
context (e.g. a SfxItemSet at an Object would be a context), so if e.g.
a dialog is open that temporarily uses Items of that type you would
also get these - without knowing about it...
To make that work there is still a mechanism to have Items at the Pool,
but now just *registering* (and un-reg) them without any sort/search/
remove needs. Also only for Items that need that, so I evaluated the
GetItemSurrogates calls and added some asserts when GetItemSurrogates
tries to access an unregistered item type which needs to be added.
- Another caveat is that there are about 250 places that directly put
Items to the Pool (not all remove these, that is done at pool deletion,
so some kind of silent 'garbage-collection' is in place). To have an
overview I renamed the accessing methods to separate them from the same
functionality at the SfxItemSet, which had the same names. An
implementation does still add these directly to the pool, there is no
way to cleanup those usages for now. In principle all these should be
changed to hold the data at an SfxItemSet.
I am still hunting problems. But you can build the office, all apps
work (including chart) and you can do speed comparisons already.
There are test throwing errors, so I hunt these now. It is hard to
give an estimation about how much more changes/corrections will be
needed.
Completed adaptions to new registered Items at Pool, that reduces the
failing tests. Still many that I need to hunt.
Added stuff to work around that 'compromize' in ScDocumentPool: It
overloads ::PutImpl of the pool to implement special handling for
a single Item in SC, the ScPatternAttr. In former code that method
was used from SfxItemSet and ::PutImpl at the pool directly, so it
was only used in one place. I am not sure if it was used from
the SfxItemSet functionality, but better offer it for now. To not
waste too much runtime the callbacks depend on the boolean
'NewItemCallback' at the SfxPoolItem, it gets set for that single
Item in SC and only then the callbacks trigger. I hope to get rid
of those again, e.g. newItem_UseDirect is only needed since we have
no 'real' StaticPoolDefaults currently - another thing that needs to
be cleaned up in a next step.
Since usages of impl(Create|Cleanup)ItemEntry and
Direct(Put|Remove)ItemInPoolImpl got more and more similar I decided to
unify that: move impl(Create|Cleanup)ItemEntry to tooling, make it
globally available in svl and use it also directly for
Direct(Put|Remove)ItemInPoolImpl. This slightly increases the failing
tests again, but only since in Direct(Put|Remove)ItemInPoolImpl that
fallback (e.g. tryToGetEqualItem) was used before, thus this is the
same class of errors (SfxPoolItem ptr-compare) as the others which I
will need to find anyways. Also fixed some missing stuff.
Have now idenified and redirected all SfxPoolItem ptr-compares
to be able to debug these - one cause for the remaining errors is
probably that before with bPoolable those often were sufficient, but
are no longer. Used the [loplugin:itemcompare] and a local clang
build to do so, see https://gerrit.libreoffice.org/c/core/+/157172
Stabilized Direct(Put|Remove)ItemInPoolImpl forwards, added parameter
to implCreateItemEntry to signal that it gets called from DirectPool
stuff - currently needed. Hopefully when getting rid of that DirectPool
stuff we can remove that again
Added two more debug functionalities:
- Added a SerialNumber to allow targeted debugging for deterministic
cases
- Added registering & listing of still-allocated SfxPoolItems at
office shutdown
Found PtrComp error in thints.cxx - POC, thanks to
areSfxPoolItemPtrsEqual. Will hopefully help more with other tests
Found some wrong asserts/warnings where I was too careful and not
finding something/succeeding is OK, fixes some UnitTests for SC
For SC I now just tried to replace all areSfxPoolItemPtrsEqual with
the full-ptr-content compare SfxPoolItem::areSame. I also needed to
experiment/adapt the newItem_Callback solution but got it working.
Did that replacement now for SW too, found some places where the
direct ptr compare is OK.
Continued for the rest of occurrences, now all 160 places evaluated.
Also done some cleanups.
Massive cleanups of stuff no longer needed with this paradigm change.
Also decided to keep tryToGetEqualItem/ITEM_CLASSIC_MODE for now.
It is used for *one* Item (ScPatternAttr/ATTR_PATTERN) in SC that
already needs many exceptions. Also useful for testing if errors
come up on this change to test if it is related to this.
Added forwarding of target Pool for ::Clone in SvxSetItem and
SvxSetItem, simplified SfxStateCache::SetState_Impl and returned
to simple ptr compares in SfxPoolItem::areSame to not do the test
in areSfxPoolItemPtrsEqual.
Debugged through UITest_calc_tests9 and found that in tdf133629
where BoxStyle is applied to fully selected empty calc the Item-
reuse fallback has to be used not only for ATTR_PATTERN, see
comment @implCreateItemEntry. Maybe more...
Problem with test_tdf156611_insert_hyperlink_like_excel. Found that
in ScEditShell::GetFirstURLFieldFromCell the correct SvxURLField
is found and returned as ptr, but it's usage crashes. That is due to
the SfxItemSet aEditSet used there gets destroyed at function return
what again deletes the SvxFieldItem that is holding the SvxURLField
that gets returned.
This shows a more general problem: There is no 'SfxPoolItemHolder'
that safely holds a single SfxPoolItem - like a SfxItemSet for a
single Item (if Items would be shared_ptrs, that would be a safe
return value).
That will be needed in the future, but for now use another solution:
Since I see no reason why EE_FEATURE_FIELD should not be shareable
I wil change this for ow in the SfxItemInfo for EditCharAttribField.
That way the Item returned will be shared (RefCnt > 1) and thus not
be deleted.
I changed the return value for GetURLField() and
GetFirstURLFieldFromCell() in ScEditShell: At least for
GetFirstURLFieldFromCell the return type/value was not safe: The
SvxFieldItem accessed there and held in the local temporary
SfxItemSet may be deleted with it, so return value can be
corrupted/deleted. To avoid that, return a Clone of SvxFieldData
as a unique_ptr.
With all that UnitTest debugging and hunting and to get the paradigm
change working to no longer rely on shared/pooled items I lost a
little bit focus on speed, so I made an optimization round for the
two central methods implCreateItemEntry/implCleanupItemEntry to
get back to the speed improvements that I detected when starting this
change. It was mainly lost due to that 'strange' chained pool stuff
we have, so I added to detect the target pool (the one at which the
WhichID is registered) directly and only once. Next thing to cleanup
will/should be the pool and it's concept, all this is not needed
and really costs runtime.
Since implCreateItemEntry/implCleanupItemEntry are executed millions
of times, each cycle counts here.
Had an error in the last changes: pool::*_Impl methods use index
instead of WhichID - most of them. Another bad trap, I really need
to cleanup pool stuff next.
Change-Id: I6295f332325b33268ec396ed46f8d0a1026e2d69
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157559
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
This allows to use the same interaction handler there, as used in
DocumentMacroMode::adjustMacroMode. hasTrustedScriptingSignature
used to find its own interaction handler; and that would conflict
with e.g. ODatabaseModelImpl::adjustMacroMode_AutoReject, which
passes nullptr to adjustMacroMode, with intention to not show any
UI; but with signed macros (see tdf#97694), the UI would still
appear.
Change-Id: Ia209f96bef67dccfe1da23c4d172ac47497f8eb1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159070
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Basically describing commit 71c6f438cecc3ce5e8060efe1df840652885701c
(tdf#129311 don't allow temporary trusted certs, 2019-12-17).
Change-Id: I4d947014b09412638560e9249f242cf6ff222cc2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159069
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: Ic52321ba38589a396a52d95454524ab8985cbafd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159060
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I37683d59e4994546ad4591d213b825ab080940eb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159059
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This table is not standard extension to RTF format. It is not
described in RTF specification and even is not used by Writer
on import these days.
Change-Id: I52f27dfd30877d461ad535b7847f40dd4c6f4ea5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158986
Tested-by: Jenkins
Tested-by: Gabor Kelemen <kelemeng@ubuntu.com>
Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
instead of an ok/cancel, and default to no
Change-Id: If86ca1b29d0dd91018fdc8edd6482a6d9ef5c0e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159068
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: Id2c8977d6ab9d0632ac0350a78e52edba2280f4d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158988
Tested-by: Jenkins
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
|
|
The problem is that curl 8.3.0 removed the NSS backend, so we now
have no other choice than to use the bundled OpenSSL on Linux.
Currently any curl https connection fails with:
CurlSession.cxx:963: curl_easy_perform failed: (60) SSL certificate problem: unable to get local issuer certificate
Apparently this requires manually telling curl which CA certificates to
trust; there is a configure flag --with-ca-bundle but that is useless as
it tries to load the file relative to whatever is the current working
directory, and also did i mention that there are at least 3 different
locations where a Linux system may store its system trusted CA
certificates because ALL ABOUT CHOICE.
So add a new header with an init function to try out various file
locations listed in this nice blog article and call it from way too many
places that independently use curl.
https://www.happyassassin.net/posts/2015/01/12/a-note-about-ssltls-trusted-certificate-stores-and-platforms/
TODO: perhaps bundle a cacert.pem as a fallback in case the system chose
to innovate by putting its certificates in yet another unexpected place
(regression from commit c2930ebff82c4f7ffe8377ab82627131f8544226)
Change-Id: Ibf1cc0069bc2ae011ecead9a4c2b455e94b01241
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158915
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
It is mainly to allow macro execution for this unknown certificate once.
The UI will even disable the option to add, when the config is read-only.
Change-Id: Iebc526c23572dc7c0e94fac79fafc8b402d451c3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159051
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
And that conforms the IDL definition of css::document::MacroExecMode
Change-Id: I78ebfa94eb50552e7f4ecf3d64a0ac0556c56867
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159029
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: I01dae264822c5394cabbb5cc4f7d4cb63190d23e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159030
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: If76b02a20b01624c2cc0aa5e3c310aa1dd930c01
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159058
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
rather than casting
Change-Id: Ic134c30490fea7ae42bbf3194532ae0aad4c61c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159057
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I50dcf4f36cd20d75f5ad3876353143268740a50f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151834
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: Ic236de610c956c81f7eb8b0c27cee0b0ed6910ed
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159055
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I45421bbe13626aa843380e77f589e793328f99d4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159010
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Insert -> Frame -> Frame presented a dialog which stated the width of
the new frame will be 2cm, but the width was ~zero.
This is a regression from commit
9da7b1592e010928c26c43ee93b91cdd66403985 (sw: remove all uses of MM50
with (added) o3tl::toTwip, 2021-07-23). Previously the code worked
because the 2cm was speficified as MM50*4 (283*4=1132 twips), and we
compared this to the 2cm from the UI, which had no rounding errors
(283.46456692913387*4=1134 twips), and this 1132 vs 1134 meant the
dialog put the unchanged size to the output item set. Now we don't have
rounding errors anymore, so we have 1134 everywhere, which means the
dialog doesn't specify a default size, but no other code would do it,
resulting in a frame with minimal width, which is clearly not wanted.
Fix the problem by checking if this will be a new frame, and if so, the
dialog should send the default size to the caller, even if the user
didn't customize the size. This restores the lost 2cm default width
while keeping the rounding improvements.
This requires running the test in its own process, because the
measurement unit is only loaded once from the config and the rounding
error is not hit with the default inches.
Change-Id: I9a5945fdd0e5cd64ff8bd84f95f11be5277b8d18
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159050
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Keep external/xmlsec/old-nss.patch.1 for now, though the baseline has
been updated to RHEL 8 in the meantime, so probably it's not needed in
practice.
Change-Id: I4730f71f45937770ac3f78182f3f65eed64b5a6a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159012
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: I814cebc6e8ca4815c055ed6f524bfebf08611ccc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159017
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
|
|
Set those states that Gtk handles as `GtkAccessibleState`,
see documentation at [1].
For the LO a11y states, the Gtk 4 a11y API differentiates
between three different enums/ways of handling those:
* `AccessibleProperty`, for which handling was added in the
previous commit, Change-Id Ic033e66dd89021defca449bbe2251102bbd61015,
"gtk4 a11y: Map states to corresponding gtk a11y properties"
* `GtkAccessibleState`, for which this commit implements
the handling
* `GtkAccessiblePlatformState`, for which handling
was implemented in `lo_accessible_get_platform_state` in
commit 341ff232aec77c2b46325389da933315613b6f2d
Author: Caolán McNamara <caolanm@redhat.com>
Date: Mon Mar 20 20:37:15 2023 +0000
gtk4: get a11y to say hello world
already.
[1] https://docs.gtk.org/gtk4/enum.AccessibleState.html
Change-Id: If22725dc2ccab5f73518e4171209a80a9c4df6d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159006
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
For those states in
`com::sun::star::accessibility::AccessibleStateType::EDITABLE`
that have a corresponding `GTK_ACCESSIBLE_PROPERTY_*`, set
that property when creating a new `LoAccessible`.
This e.g. makes Accerciser show the "multiline" and "multi selectable"
AT-SPI states for a Writer paragraph when using the gtk4 VCL plugin.
State updates are not handled yet, since a11y event handling is
currently not implemented in the gtk4 VCL plugin yet.
Change-Id: Ic033e66dd89021defca449bbe2251102bbd61015
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159005
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
`QAccessible::State` has a `checkStateMixed` state flag [1]
that matches what `AccessibleStateType::INDETERMINATE` is for,
and Qt's AT-SPI adapter maps that to the AT-SPI equivalent,
`ATSPI_STATE_INDETERMINATE`, so add the corresponding
mapping.
[1] https://doc.qt.io/qt-6/qaccessible-state.html
[2] https://code.qt.io/cgit/qt/qtbase.git/tree/src/gui/accessible/linux/qspi_constant_mappings.cpp?id=c5d9e4a7a78b82ed31e5225c169de4718dfe4f05#n41
Change-Id: Ic16f50344040f3d4ff7ad4ef0002abf5a7ae3dcc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159004
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
The Qt API doesn't have a separate role to distinguish password edits
from other text edits, but has a `passwordEdit` state.
Set that state for objects that have role
`AccessibleRole::PASSWORD_TEXT`.
With this in place, password entries,
e.g. the one in the "Tools" -> "Options" -> "Security"
-> "Password for Web Connections" -> "Master Password" dialog,
are exposed via the `ATSPI_ROLE_PASSWORD_TEXT` role with the
qt6 VCL plugin on Linux, because Qt's AT-SPI adapter takes
the `passwordEdit` state into account when mapping the
Qt a11y roles to AT-SPI ones. [1]
[1] https://code.qt.io/cgit/qt/qtbase.git/tree/src/gui/accessible/linux/atspiadaptor.cpp?id=c5d9e4a7a78b82ed31e5225c169de4718dfe4f05#n1637
Change-Id: Icb3f0935e703e2786c5704007cad7eea9070f8a5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158987
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
This is in line with what the `GtkPasswordEntry` doc [1]
says:
> `GtkPasswordEntry` uses the `GTK_ACCESSIBLE_ROLE_TEXT_BOX` role.
Note however, that gtk's AT-SPI bridge has specific code to map
that to AT-SPI's `ATSPI_ROLE_PASSWORD_TEXT` for `GtkPasswordEntry` [2],
which won't apply for any custom LO widgets.
Currently, LO uses `GtkEntry` for password entries for gtk4
as well, e.g. the one in the "Tools" -> "Options" -> "Security"
-> "Password for Web Connections" -> "Master Password" dialog,
so those currently have an AT-SPI role of
`ATSPI_ROLE_TEXT` for gtk4, while it is
`ATSPI_ROLE_PASSWORD_TEXT` for gtk3.
(That's independent of this change, since a native `GtkEntry` is
used there. Changing this to use `GtkPasswordEntry` instead of
`GtkEntry` for the gtk4 case should cause that to use
`ATSPI_ROLE_PASSWORD_TEXT` as well.)
[1] https://docs.gtk.org/gtk4/class.PasswordEntry.html#accessibility
[2] https://gitlab.gnome.org/GNOME/gtk/-/blob/fe4b7a5159e8cc3e4918ad1829d71ff39edd5ba7/gtk/a11y/gtkatspiutils.c#L308-310
Change-Id: Iec6c8685f017b565553fbc63b4403484be20ed1a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158984
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
Extend `WeldEditView::EditViewSelectionChange` to not only
invalidate the view, but also notify the `AccessibleTextHelper`
of the selection update, so the corresponding events are sent
on the a11y layer.
This e.g. causes the `CARET_CHANGED` events to be sent as
needed when moving the cursor/caret using the arrow keys in the
"Not in dictionary" text edit in Writer's spelling dialog
("Tools" -> "Spelling"), so the Orca screen reader on Linux
with the gtk3 or qt6 VCL plugin announces the new caret position,
which was no longer the case since the spelling dialog was welded
in
commit 243b5b392906042ab03800e0b5765e6f3513372c
Date: Fri Jun 14 21:56:44 2019 +0100
weld SpellDialog
The newly added `AccessibleTextHelper::UpdateSelection` is a
simplified version of `AccessibleTextHelper::UpdateChildren`.
Change-Id: I5f0898c3ccb9fd527a6ff672be49157cb6e518b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158992
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
After
commit 14e6a810e14e28ab82fe65d66e604ce562016845
Date: Mon Aug 15 13:14:08 2022 +0100
fix "invalid class cast from 'OOoAtkObj' to 'GtkWidgetAccessible'"
, Orca with the gtk3 VCL plugin was no longer announcing focus
(and content) for the "Not in dictionary" text edit in Writer's
spelling dialog ("Tools" -> "Spelling") when moving the focus
there e.g. using the Tab key.
Make it work again by restoring the `focus_event` function
from `AtkObject`, similar to how
commit f0827c392641b45647241b3a22e24a95e2b595e3
Date: Fri Aug 19 16:13:04 2022 +0100
Resolves: tdf#150496 we want the AtkObject get_parent function
GtkAccessible overrode it, but we expect the AtkObject implementation
did for the `get_parent` function to fix the announcement
of Writer paragraphs after the above-mentioned commit.
The other functions that `gtk_widget_accessible_class_init`
overrides [1] are already explicitly set to the wrapper
ones (s. the lines above the ones added in this commit), so
don't need additional changes.
[1] https://gitlab.gnome.org/GNOME/gtk/-/blob/c47425c62efb99be8cd2f0eea651dda76a99ba04/gtk/a11y/gtkwidgetaccessible.c#L542-557
Change-Id: Iae3b47f7fa7fe5ca90acb045a077cf0af52dd7fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158990
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
It was fixed only on Wayland previously.
Follow-up to commit 15cdee0d846854b50dd04626b73499bef9305e00
"Resolves: tdf#152155 use gtk's knowledge of relative widget positions".
Change-Id: I7a8b17189b319146142a2193ec4b5ec41e2c2d27
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159020
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
...following advice by mstahl, as discussed in the comments starting at
<https://gerrit.libreoffice.org/c/core/+/158732/2#message-053bc195667ee3ba396ed12a85f3af8d4b7e5efc>
"tdf#157667 sw track changes: fix cycle case on multiple words", which had
started to cause
> /sw/inc/txatritr.hxx:69:18: runtime error: downcast of address 0x603001b45d90 which does not point to an object of type 'const SvxLanguageItem'
> 0x603001b45d90: note: object is of type 'SwFormatAutoFormat'
> 00 00 00 00 f0 0f 53 4e 3b 7f 00 00 02 00 00 00 32 00 90 be 20 31 36 00 80 60 00 00 c0 5d b4 01
> ^~~~~~~~~~~~~~~~~~~~~~~
> vptr for 'SwFormatAutoFormat'
> #0 0x7f3b45ef75d2 in SwLanguageIterator::GetLanguage() const /sw/inc/txatritr.hxx:69:18
> #1 0x7f3b45ee2765 in SwTextNode::TransliterateText(utl::TransliterationWrapper&, int, int, SwUndoTransliterate*, bool) /sw/source/core/txtnode/txtedt.cxx:1980:32
> #2 0x7f3b429f1d40 in sw::DocumentContentOperationsManager::TransliterateText(SwPaM const&, utl::TransliterationWrapper&) /sw/source/core/doc/DocumentContentOperationsManager.cxx:3186:15
> #3 0x7f3b43a52777 in SwEditShell::TransliterateText(TransliterationFlags) /sw/source/core/edit/editsh.cxx:1076:51
> #4 0x7f3b49118c97 in SwTextShell::ExecRotateTransliteration(SfxRequest const&) /sw/source/uibase/shells/textsh.cxx:866:20
> #5 0x7f3b49118984 in SfxStubSwTextShellExecRotateTransliteration(SfxShell*, SfxRequest&) /workdir/SdiTarget/sw/sdi/swslots.hxx:3194:1
> #6 0x7f3b6529ff75 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) /sfx2/source/control/dispatch.cxx:254:9
> #7 0x7f3b652b5e85 in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) /sfx2/source/control/dispatch.cxx:753:9
> #8 0x7f3b65240e3b in SfxBindings::Execute_Impl(SfxRequest&, SfxSlot const*, SfxShell*) /sfx2/source/control/bindings.cxx:1061:22
> #9 0x7f3b656c2760 in SfxDispatchController_Impl::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /sfx2/source/control/unoctitm.cxx:688:53
> #10 0x7f3b656c4ec1 in SfxOfficeDispatch::dispatchWithNotification(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /sfx2/source/control/unoctitm.cxx:266:16
> #11 0x7f3b193705a6 in framework::DispatchHelper::executeDispatch(com::sun::star::uno::Reference<com::sun::star::frame::XDispatch> const&, com::sun::star::util::URL const&, bool, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/dispatchhelper.cxx:163:30
> #12 0x7f3b1936f482 in framework::DispatchHelper::executeDispatch(com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/dispatchhelper.cxx:120:16
> #13 0x7f3b19370e54 in non-virtual thunk to framework::DispatchHelper::executeDispatch(com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/dispatchhelper.cxx
> #14 0x7f3b3810b5e9 in unotest::MacrosTest::dispatchCommand(com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /unotest/source/cpp/macros_test.cxx:94:33
> #15 0x7f3b7245e5fd in testTdf157667::TestBody() /sw/qa/extras/uiwriter/uiwriter6.cxx:793:5
Change-Id: I0e0545a134d86a333b971da83a66f58c5e70f601
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159002
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
using a poly clip is better than using XOR, so make this the
default.
Change-Id: I48bb6b5d617b8b6dc82760277d72a50a2123ae0f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158957
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
XDocumentDigitalSignatures::isLocationTrusted would remove segments
itself, as needed; this change not only simplifies this code, but
also potentially allows to define not only trusted directories, but
also individuals trusted files (if the UI would be adjusted).
Change-Id: I0b0d60946d84a52479fcce5ce49d368cf53283fd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159009
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Fails with commit 435f1aadf7dd8087a8997924bedfccff0f496ba2 (tdf#99822 sw
floattable: allow nomimal overlap of objects from different cells,
2023-10-27) reverted.
Change-Id: Ic90a2aa254a47804dc50eba8fc1daf0131e65a26
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159007
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I87fdf78b6ec4963eb4450d937dd86209e03865a1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158879
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
|
|
At least on Linux, with a --with-lang=ALL build, `LANGUAGE=de make
CustomTarget_odk/build-examples_java' would fail, as it would ask for license
agreement in German rather than English (presumably because the code in
getUILangFromEnvironment, i18nlangtag/source/isolang/inunx.cxx, inspects the
LANGUAGE env var fist thing), so would expect a "ja" rather than the "yes" we
feed into stdin.
Change-Id: If285e4458e0706102a62f4e0094e5144575ccf7b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158998
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
<https://github.com/llvm/llvm-project/commit/a9070f22a29e28f7d6f83c24a8dd88f3a94969ae>
"[clang][NFC] Refactor `CXXConstructExpr::ConstructionKind`",
<https://github.com/llvm/llvm-project/commit/c23aaa410358b9f9c364ddaaeb6b2069b185a99b>
"[clang][NFC] Refactor `CharacterLiteral::CharacterKind`",
<https://github.com/llvm/llvm-project/commit/3e6ce58701a3a8463b53fb3fd2023c02b4e90554>
"[clang][NFC] Refactor `StringLiteral::StringKind`",
<https://github.com/llvm/llvm-project/commit/edd690b02e16e991393bf7f67631196942369aed>
"[clang][NFC] Refactor `TagTypeKind` (#71160)"
Change-Id: Ice802f6d662494781ad22fcf11ea5006de918254
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158983
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
This is the second attempt to force a flush after scrolling.
Commit 9c0803edd1f42b2d29115674795c7c674fea1a35 worked on
Mac Silicon but not Mac Intel.
So, instead of calling [NSApp currentEvent] to determine if
scrolling has occurred, mark the AquaSalFrame whenever a
scrollwheel or mouse drag event is dispatched so the frame
will be flushed in the next AquaSalFrame::Flush() call.
Change-Id: I2d0b99d2cd1167e92c7fd89bf53b2f30ab85a165
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159003
Tested-by: Jenkins
Reviewed-by: Patrick Luby <plubius@neooffice.org>
|
|
Change-Id: I9a90585d8eb498861a6ef4752ab85dcff8eeaab6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158674
Tested-by: René Engelhard <rene@debian.org>
Reviewed-by: René Engelhard <rene@debian.org>
|
|
Change-Id: I6c2a3d1976f2256b21a3a306db7fbf04ca444c32
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159000
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Change-Id: I1d884945cc1f88a3abbf87c78227b56abf865c16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158999
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
- with this, once a LOK client dispatches .uno:InsertFrame, we don't
open two dialogs (one tunelled, one jsdialog)
- all the tabpages were already allowed as jsdialogs, the tabpages don't
open any unwanted file picker (hyperlink browse button, area -> image
-> import button)
- switching to async means we can't work with the original SfxRequest
(which is no longer there by the time the callback is invoked), but
057eca05f23d9d15465e591bd0da671735d62d50 (sc: convert optimal
width/height and normal width/height dialog to async, 2022-04-12) shows
we can re-create the SfxRequest after the fact, do the same here
- similar problem with SwFlyFrameAttrMgr, but looks like the
SwFlyFrameAttrMgr before launching the dialog doesn't share state with
the SwFlyFrameAttrMgr after the dialog is gone, so work with two
instances here
Change-Id: I97aad336b613d105f380012f8c79e92d89c583ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158978
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
While commit 9c0803edd1f42b2d29115674795c7c674fea1a35 fixed tdf#155266
on Mac Silicon, it didn't fix that bug on Mac Intel.
Change-Id: I4dc9eb3a5da319a0c8f58bcdea5abfc3e4ec4a0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158997
Tested-by: Jenkins
Reviewed-by: Patrick Luby <plubius@neooffice.org>
|
|
Change-Id: Iea7837c87fd5803b225d9e18733a67c40fa915d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158887
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
|
|
* Sort presentations options, put similiar options next to each other.
* Move non-document option (Navigation bar) to "Display" area.
Also improve wording a little bit for more clarity
Change-Id: I18de6b95ea26033ef78709845db40e428a1d6c84
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158831
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
|
|
See tdf#94879 for motivation.
Change-Id: I589bba671fc7ad4282d18c35666ace80fff9ed77
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158969
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
not "sal_uInt16"
See "aModelPropertyInfoMap" var in starmath/source/unomodel.cxx
It fixes this message when loading https://bugs.documentfoundation.org/attachment.cgi?id=55799
warn:legacy.osl:19853:19853:xmloff/source/core/SettingsExportHelper.cxx:176: this type is not implemented now
Change-Id: I18779b122555681f7544e64745c8074775e27277
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158952
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
for LanguageTool Page.
Change-Id: Ib1255dd7a67eae7e9c1f2cf6da984ba614f3453a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158931
Tested-by: Jenkins
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
|
|
- in LOK case toolbars in core doesn't make any difference
- SfxNotebookBar::IsActive which reads config
makes doc_setView slower, avoid it in LOK case then
- it was used for hiding contextual toolbars
- introduced in commit 9bc1ffa2153d2474b023e0860d3c9c68ee18727b
tdf#125040 Make single mode toolbar context aware
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I63de48faf2f7e7f30f8b509455061ac20a788f8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158939
Tested-by: Jenkins
|