summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2022-08-31gtk3 a11y: Use name of the actually called methods in SAL_WARNMichael Weghorn
The previously used ones look like copy-paste errors. Change-Id: I58eebff657f01cc1b0fb9acd661603cc41a09ce6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139072 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-31vcl: Fix GenericSalLayout::GetTextWidth()Khaled Hosny
There was a mismatch between text width calculated in GenericSalLayout::GetTextWidth() and last glyph width calculated in GenericSalLayout::GetCharWidths(), with the later using the sum of GlyphItem::newWidth() and the later using the GlyphItem::linearPos(), but linearPos() includes glyph offset and it should be subtracted from it to get actual width and we were subtracting it in the wrong place. I fixed where the xOffset() is subtracted but didn’t change it to simply sum GlyphItem::newWidth() though that is simpler so that we continue to test that linearPos() is correctly set. Change-Id: I40d6be6d1c82ed0ca1ce04bf792adf72faa0d787 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139071 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-08-31tdf#30731: Use ligature caret positions from the fontKhaled Hosny
When ligature caret positions from the font are available, use them for more accurate caret positions instead of evenly distributing the glyph width over grapheme clusters. Change-Id: I0ecfa35e1fff2b264b105182a4b29b2ebd033093 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138955 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-08-31tdf#30731: Improve caret travelling in WriterKhaled Hosny
Previously, when measuring caret position, Writer would measure the width of the substring before the caret (i.e. layout it independent of the text after the caret and measure its width). This is incorrect, though. It assumes cutting the string laying it out would result in the same width as when laid out as part of a bigger string, which is invalid assumption when e.g. cutting inside a ligature or between letters that have different shapes when next to each other, etc. This appears to work when the width of the substring laid out alone is close enough to its width when laid out with the full text. But in cases where is widths are largely different, like the extreme case in the bug report, the caret will be jumping around as it is positioned based on the unligated glyphs not the ligated, rendered glyphs. This change introduces a special mode of measuring text width for caret positioning, that will layout the whole string that return the width of the requested substring. Fields and small caps text are trickier to handle, so old behaviour is retained for them. Now one will probably notice but if they do, it can be dealt with then. This also tries to be conservative and keep other pleases using the existing behaviour which might be desirable (e.g. when measuring text width for line breaking, we want the unligated width), but there might be other places that should use the new behaviour. To handle caret inside ligatures, the grapheme clusters in the ligature are counted and the width of the whole ligature is distributed on them evenly. A further improvement would be using HarfBuzz API to get ligature caret positions for fonts that provide them, which helps when the ligature components have different widths. Change-Id: I02062e2e2e1b1a35c8f84307c0a8f5d743059ab5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138889 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-08-30gtk3 a11y: Implement methods for (un)selecting table rows/colsMichael Weghorn
The `XAccessibleTableSelection` interface provides the required methods. This e.g. makes (un)selecting rows and columns in a Writer table using Accerciser as described in Change-Id I0c239c0d36a073cd63a35ca7d0802cf5591d9738 ("sw a11y: Don't confuse row and column") work with the gtk3 VCL plugin as well. Change-Id: Ic17cc74c209b08907adedfa59ac586732b5ec3bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139065 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-30tdf#141908 Replace usage of sal_Int32 with Color in unit testscutamar
Change-Id: Ifb5ff2e6d5ed28bcb9e190d7f2deaaa970693cbc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138938 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-30Workaround interdependency of testsMike Kaganski
CppunitTest_vcl_text failed for me on Windows: [_RUN_____] VclTextTest::testSimpleText C:/lo/src/core/vcl/qa/cppunit/text.cxx:198:VclTextTest::testSimpleText double equality assertion failed - Expected: 28 - Actual : -1 - Delta : 4 This turned out to depend on test order; the minimal failing command was make CppunitTest_vcl_text CPPUNIT_TEST_NAME="testArabic testSimpleText" and running testArabic before testSimpleText made the latter to render white text on white background, and thus being unable to get resulting height of the painted text. Changing how the complex tests obtain their virtusl devices fixes this for me. I have no idea how and why the previous complex test code affected following tests. Windows buildbots were unaffected maybe because they had HAVE_MORE_FONTS undefined. Change-Id: If079e21e6b986fed5407295a71f9b121cf8de0b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139047 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-08-30bump scrtf input len some moreCaolán McNamara
Change-Id: I02a8250f85ee13e5eb8596f2ebf609b743a6cc38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139060 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-30Unify the two places dumping bimaps for debuggingMike Kaganski
Using the environment variable allows me to use a directory where no "access denied" happens on write access. Change-Id: Iffdd9b8566f2d794a6741b71d736d14d4643576c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139033 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-08-30fix "g_object_weak_unref: couldn't find weak ref" warningCaolán McNamara
(soffice:3465993): GLib-GObject-WARNING **: 11:33:34.451: g_object_weak_unref: couldn't find weak ref 0x7fffe9553580(0x7fffb4014180) do the same thing for all the gestures Change-Id: I944645fc3c95fd73186cd22e71738f247d864bb2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139031 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-30gtk4: connect the zoom and rotate gestures for gtk4Caolán McNamara
Change-Id: I9aec166cadcd7ae961ffbc390e0cddf9d8535a20 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139030 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-30tdf#149956 Rework toolbar image flippingMaxim Monastirsky
An unified code, covering both vcl and weld cases. For SidebarToolBox, the controller is created before items are inserted, so we listen for item insert event to set initially correct state. Change-Id: I3841f21883104b4d3f8541c97ec7fa5fc0bec575 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139022 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-08-30tdf#149741 tdf#149956 Make flipping work also in the sidebarMaxim Monastirsky
- Reset the icon each time, as there seems to be no easy way to retrieve the existing icon from a gtk widget in order to mirror it, like we used to do for vcl. Similar approach is currently taken in ToolboxButtonColorUpdaterBase::Update. - Store the flipping state also in GtkInstanceToolbar, similar to vcl's ToolBox. This seems to be the easiest way to make flipping not break on icon theme change, covering all 4 cases (ToolBarManager, SidebarToolBox, ToolbarUnoDispatcher, GenericToolbarController), w/o too involved changes in each. This might benefit from some refactoring later on, but should be good enough for now. - One unsolved problem is the appearance of flipped icons with svg themes, as the regular variant is handed to gtk directly, whereas the flipped one is loaded by us, resulting with a different (blurry) look. Change-Id: I48c16827b46fb75fd798a041851af6e2648ae8fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139021 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-08-30tdf#149956 Remove previous vcl only solutionMaxim Monastirsky
Change-Id: Id67b75856a230e175ccc6328ec0838c78589191b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139020 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-08-29crashtesting: various checkGlyphsEqual assertsCaolán McNamara
since: commit b9f0caad5d9e628f82d5148dfc7d2436d32817e2 Date: Tue Aug 23 04:13:28 2022 +0200 tdf#66819: Disable ligatures with character spacing add the item causing the differing SalLayoutFlags::DisableLigatures mode to the key Change-Id: I4589c0430a781ca55a7479d2af446f3b5e22025b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139000 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-29Don't position dialogs relative to other dialogsSamuel Mehrbrodt
When calling setPosSize on a dialog, and there are other dialogs on top of it, the dialog was positioned relative to its parent dialog. Fix this, so that dialogs are always positioned relative to the main window (if there is one). Revert of/Follow up to 8750c812c9b808ee980f7e0ce0e6ce91e75e1424 Change-Id: I69f189865b118f9bc20077d48591fbd9e83b014f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138994 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-08-29Prevent rounding down fontheights depending on display resolution for macOSThorsten Wagner
Change-Id: Ifb0ba848de3613e49237fd1e4b4739915154f355 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138744 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-08-28ofz#50729 Integer-overflowCaolán McNamara
Change-Id: I9713130c6d621a4c5cc45a861170ae336a600bbd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138950 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-28ofz#50674 reduce limit while fuzzingCaolán McNamara
Change-Id: I1eeb4147f6c0c56c05450291c922bcd04017881a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138947 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-28Adjust button text colors for macOS Big SurThorsten Wagner
Change-Id: I1bbdcc97d65afbebce0b2d2e7530f156aa037315 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138799 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-08-27VBA: make debugging of VBA tests much easierHannah Meeks
When basic fails it displays a MessageBox - which is immediately cancelled. With this we can easily see what it would have said. Change-Id: Icd0719caa87ede4217fa9731671e36f380cba702 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137897 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-08-27vcl: Don’t leak hb_set_tKhaled Hosny
Looks like I have a habit of never destroying these. Change-Id: I58e77908c68553222e34600aafb6fee186000a0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138893 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-08-27gtk: Fix gtk4 build after f2bd19f672023 and e6bed4293814dMichael Weghorn
Other than their gtk3 counterparts, the gtk4 variants of `gtk_gesture_zoom_new` and `gtk_gesture_rotate_new` don't take any `GtkWidget*` param any more: In file included from .../libreoffice//vcl/unx/gtk4/gtkframe.cxx:12: .../libreoffice//vcl/unx/gtk4/../gtk3/gtkframe.cxx: In member function ‘void GtkSalFrame::InitCommon()’: .../libreoffice//vcl/unx/gtk4/../gtk3/gtkframe.cxx:1025:42: error: too many arguments to function ‘GtkGesture* gtk_gesture_zoom_new()’ 1025 | m_pZoomGesture = gtk_gesture_zoom_new(GTK_WIDGET(pEventWidget)); | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/gtk-4.0/gtk/gtk.h:145, from .../libreoffice//vcl/unx/gtk4/transferableprovider.hxx:14, from .../libreoffice//vcl/unx/gtk4/gtkframe.cxx:10: /usr/include/gtk-4.0/gtk/gtkgesturezoom.h:46:14: note: declared here 46 | GtkGesture * gtk_gesture_zoom_new (void); | ^~~~~~~~~~~~~~~~~~~~ .../libreoffice//vcl/unx/gtk4/../gtk3/gtkframe.cxx:1034:46: error: too many arguments to function ‘GtkGesture* gtk_gesture_rotate_new()’ 1034 | m_pRotateGesture = gtk_gesture_rotate_new(GTK_WIDGET(pEventWidget)); | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/gtk-4.0/gtk/gtk.h:141: /usr/include/gtk-4.0/gtk/gtkgesturerotate.h:46:14: note: declared here 46 | GtkGesture * gtk_gesture_rotate_new (void); | ^~~~~~~~~~~~~~~~~~~~~~ make[1]: *** [.../libreoffice//solenv/gbuild/LinkTarget.mk:334: /home/michi/development/git/libreoffice/workdir/CxxObject/vcl/unx/gtk4/gtkframe.o] Error 1 make: *** [Makefile:289: build] Error 2 Change-Id: Ia2f0f76b6353c34baef9fd6adcafe4af07bec543 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138888 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-26bump scrtf input len some moreCaolán McNamara
Change-Id: I3690f2ec60eed58bba149c322e92b39cf2f8ba32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138887 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26vcl: implement touchpad rotate gesture support on gtk backendPovilas Kanapickas
This change is enough to support both touchpad and touchscreen gestures, but currently GDK_TOUCH_MASK is not enabled, so only touchpad gestures are supported. Change-Id: Ia36b64cd891321d3a5420ea81dca236c936d9af3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138790 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26vcl: implement touchpad zoom gesture support on gtk backendPovilas Kanapickas
Note that this does not support touchscreen gestures. Enabling support for touchscreen gestures requires enabling GDK_TOUCH_MASK which has higher regression potential for touchscreen users, so it has not been done yet. Change-Id: I1baab36804230484394e638bf8bfb8c7a7ddabe0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138789 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26qt a11y: Set the (un)selected child in selection add/remove eventMichael Weghorn
Qt itself sets the child index when sending `QAccessible::SelectionAdd` or `QAccessible::SelectionRemove` events for its own widgets and the handling in its AT-SPI adapter assumes that this is the case, so do so here as well. Work around QTBUG-105988 [1] by using the `QAccessibleEvent` ctor that takes a `QObject*` instead of the one that takes the `QAccesibleInterface*`, since calling `QAccessibleEvent::setChild` in the event object would otherwise break things. When used in combination with the suggested Qt changes to send AT-SPI `SelectionChanged` events for these event types and `QAccessible::SelectionWithin` [2] [3], the suggested Qt changes to add support for the AT-SPI selection interface [4] [5] and a corresponding LibreOffice demo change [6] that implements the suggested `QAccessibleSelectionInterface`, this makes Orca announce selected Calc cells for the qt6 VCL plugin. [1] https://bugreports.qt.io/browse/QTBUG-105988 [2] https://codereview.qt-project.org/c/qt/qtbase/+/429146 [3] https://codereview.qt-project.org/c/qt/qtbase/+/429147 [4] https://codereview.qt-project.org/c/qt/qtbase/+/428566 [5] https://codereview.qt-project.org/c/qt/qtbase/+/428567 [6] https://gerrit.libreoffice.org/c/core/+/138750 Change-Id: Id1cd28aa8cab208d7713ddd46ede5a7acd73334a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138882 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-26crashtesting: only warn about outsize scretch valueCaolán McNamara
ooo60911-3.odt renders fine with todays freetype and cairo, if there are similar problems elsewhere, better to cut off in CairoTextRender::DrawTextLayout instead Change-Id: I39ed574d441d929f307ca72290a52d2dc41f8356 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138878 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26freetype 2.9 was relesed in Jan 2018, drop workaround for <= 2.8Caolán McNamara
Change-Id: Iaf95faa15d56e8f26ed57cb4744b039a18223c5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138877 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26improve ImplSubPixelToLogic sanity checkCaolán McNamara
Change-Id: Iae8620e3ef4f989555e0014459fcd8f152db843b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138872 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26retain precision until the endCaolán McNamara
Change-Id: I1986bb5a5d9445ae4efaa54f0a65a35a0a5d5335 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138855 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26cid#1509211 silence Explicit null dereferencedCaolán McNamara
Change-Id: I5f1c1d061a59b3edaa62b988fcbbc8dd6be0093b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138860 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26keep nXOffset as doubleCaolán McNamara
Change-Id: I5a67af97c04e74fed8aa457261c4a7dd9ae79c17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138854 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26aAdjOffset is derived from a DevicePoint, so keep it as a DevicePointCaolán McNamara
Change-Id: Id05963df6ab96ecfdc28c4463415e61b796f8fe0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138852 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26vcl: implement rotate gesture infrastructurePovilas Kanapickas
This change implements internal infrastructure to pass rotate gestures from low-level sources to the consuming GUI widgets. The API follows the established begin-update-update-...-end event convention that is used on various platforms. The API should be enough to support bouth touchpad and touchscreen gestures, as long as the underlying low-level source exposes enough information. The hardware drivers usually expose touchpad gestures already recognized whereas touchscreen gestures come as a set of moving touchpoints and application needs to figure out their meaning itself. Many toolkits recognize both and offer a unified higher-level interface that can be used by us. Change-Id: Iae667b3248d6f78bfb1eef755af6bc996432b6a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138788 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-08-26vcl: implement zoom gesture infrastructurePovilas Kanapickas
This change implements internal infrastructure to pass zoom gestures from low-level sources to the consuming GUI widgets. The API follows the established begin-update-update-...-end event convention that is used on various platforms. The API should be enough to support bouth touchpad and touchscreen gestures, as long as the underlying low-level source exposes enough information. The hardware drivers usually expose touchpad gestures already recognized whereas touchscreen gestures come as a set of moving touchpoints and application needs to figure out their meaning itself. Many toolkits recognize both and offer a unified higher-level interface that can be used by us. Change-Id: I529afcc60459455616de0145fe20077a4dcf3983 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138787 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-08-26Removed duplicated includeAndrea Gelmini
Change-Id: I6852fe11a142d13c71e111b3e4747cd1ca0850b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138856 Tested-by: Jenkins Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2022-08-26FeatureCollector: Drop redundant checkKhaled Hosny
HarfBuzz handles this for us, and it more future-proof this way. Change-Id: Ia8a65f0363a05c74a718a1a9f7d6df6c84373f46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138853 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-08-26aStartPt is derived from a DevicePoint, so keep it as a DevicePointCaolán McNamara
Change-Id: I85f4275593fe491bf5ba06d334312881367ceacf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138851 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26nWidth is set from newWidth which is DeviceCoordinateCaolán McNamara
Change-Id: I9d28fa57847b71383baa4b48d51a176017c0132f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138849 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-26automatically set TextRenderModeForResolutionIndependentLayout if we scaleCaolán McNamara
Always render glyphs with a mode suitable for rendering of resolution-independent layout positions if we scale the text positions. The idea being to typically continue to use the system defaults for font settings for UI elements, but where we are rendering into application canvases where there's a mapmode set then automatically use a good mode to render that. Change-Id: I0e5857e377da72ae1a2ede1d88d6408819fc9200 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138324 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-25FeatureCollector: Fix parameter code for named parametersKhaled Hosny
The code are 1-indexed (since 0 means disabled). Change-Id: I1d4ed80ba91191645305aadbbbb2d621116c5d36 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138842 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-08-25qt a11y: Forward text selection change event as suchMichael Weghorn
Change-Id: I7e208d964c5b5badb0a3ea3a19c3ca3cc7fa4ff4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138838 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-25tdf#150561: Page dimension don't match paper format in Print PreviewJulien Nabet
...like claiming 210x148 to be A4 Page size may have changed so sync mePaper with it Change-Id: I7d7329bbacfb2f0bd56e495b7390eedebecee02c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138736 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-08-25tdf#150507 reenable slight hinting for cairo with ResolutionIndependentLayoutCaolán McNamara
it was disabled because of: tdf#150145 text appears to have a row of pixels cropped out which seems to be the same issue as https://gitlab.freedesktop.org/cairo/cairo/-/issues/390 reenable, drop CAIRO_HINT_METRICS_OFF and emulate a proposed solution of https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/235 by hacking in a route to disable CAIRO_ROUND_GLYPH_POS_ON Change-Id: I3c9f982c9737b84fe0ee6b645f507e1226807d60 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138810 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-25qt a11y: Work around Qt ignoring ActiveDescendantChanged eventsMichael Weghorn
While Qt has a `QAccessible::ActiveDescendantChanged` event type, events of that type are just ignored in Qt's AT-SPI adapter [1]. Work around that by sending a "focused" event for the child instead, for which handling inside Qt has been added in [2]. While adding support for properly handling `QAccessible::ActiveDescendantChanged` in Qt might be worth looking into at some point, this appears to work just fine for now and e.g. makes Orca announce the focused cell in Calc when moving between cells using the keyboard in the qt6 VCL plugin. [1] https://code.qt.io/cgit/qt/qtbase.git/tree/src/gui/accessible/linux/atspiadaptor.cpp?id=0131dbd2f95449c09758208d8b190c9238a5c46a#n1121 [2] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=f3509565480107c2587212f7d55cc5f92facc417 Change-Id: I809695de427b6438d37a5a4840044e7ca3d4cd08 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138809 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-08-25vcl: test removeMnemonicsFromString()Chris Sherlock
Change-Id: Id0a84fb5cb9fa2f6f286ffeab1e1baea641d677a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138728 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-08-25vcl: rename GetNonMnemonicString() and make it standalone functionChris Sherlock
Renamed GetNonMnemonicString() to removeMnemonicFromString() Change-Id: I272714f97bb6d9174360631c18c4fd9bb485698e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138103 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-08-25FeatureCollector: Detect ENUM features in OpenType fontsKhaled Hosny
A bit heavy handed, but the only way to detect the number of alternates a feature has is to get the maximum number of alternates for all lookups in all glyphs of this feature, which is what this code does. Additionally, for cvXX features, parameter names from the font are used when available. Change-Id: Ib7f7ea5e5288b47b03dac8703668ca6c4007f517 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138749 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-08-25FeatureCollector: Get feature labels for ssXX/cvXX features from the fontKhaled Hosny
If the font provides feature labels for ssXX/cvXX features, fetch and use them. Switches also to using the UI language not locale for finding labels as the UI language is what controls the UI localization. Change-Id: Ic7eeae9df25692e7f2924b2db65905666999c904 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138748 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>