summaryrefslogtreecommitdiff
path: root/vcl/unx
AgeCommit message (Collapse)Author
2022-09-24vcl: Removed unused PrintFontInfo and support codeKhaled Hosny
Change-Id: I4e4d67b5ff57585a02eaba9372599e767d31229d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140549 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-24vcl: Remove unused PrintFontManager::getFontBoundingBox()Khaled Hosny
Change-Id: I0aed5ec3bbab91a1fe57996a2f647b758369308c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140548 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-24use faster TempFile for font subset writingNoel Grandin
by not asking for the name or URL, we stay on the happy path, which is faster on Windows Change-Id: Ia333ab251fc0fc4129ad0610412c5c509914a58e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140453 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-22tdf#151107 swap job orientation if paper matching swapped width/heightCaolán McNamara
if we eventually are forced to pick a final paper size which has the orthogonal orientation than that requested, then swap the orientation of the jobdata too and re-init the orientation to defaults in Printer::SetPaperSizeUser when we set a new user paper size rather than keeping the orig Change-Id: Ie9e783575734c7f9eec3984efd1357cae5375130 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140358 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-22pass in bDontSwap rather than use a local staticCaolán McNamara
Change-Id: I8758802064476199f34d57e0937ee56cef6e0363 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140429 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-22convert TrueTypeTable to C++ classNoel Grandin
Change-Id: I06f01c79414380e37dc006cc7f7fdce1976035f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140357 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-22Related: tdf#151107 EnvC65 page size is inconsistent with EnvC5 and EnvC6Caolán McNamara
*PageSize EnvC5/C5 Envelope: "<</PageSize [459 649] /ImagingBBox null>> setpagedevice" *PageSize EnvC6/C6 Envelope: "<</PageSize [323 459] /ImagingBBox null>> setpagedevice" but... *PageSize EnvC65/C65 Envelope: "<</PageSize [324 648] /ImagingBBox null>> setpagedevice" use the EnvC6/EnvC5 dimensions for EnvC65 instead of *PageSize EnvC65/C65 Envelope: "<</PageSize [323 649] /ImagingBBox null>> setpagedevice" Change-Id: I7a13d141435e2d4fc202dab59b8c6be12ff9610f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140409 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-21use more string_view in vclNoel Grandin
Change-Id: I66f96a305bb095716023ae1e565950971826bce0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140242 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-20use O[U]String in TrueType codeNoel Grandin
instead of manual memory management Change-Id: Iccde191bfcfbf9ff2488205fffc12b94b46ab658 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140207 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-16tdf#137341 gtk: Set missing style text colors from themeMichael Weghorn
commit 8d11b953c0a69f4f5eb5ca42dec3812a62d0cd0f Date: Sun Feb 23 21:11:05 2020 +0100 tdf#125532: White text on default/action buttons and selected tabs on macOS had introduced various new text colors to the style settings, but some were not set from the theme for gtk. Add the missing ones. Change-Id: I1bd7ce358626b3f4ff1d6f2794d5c0f19f78a668 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140058 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-09-14gtk4: use left aligned label for GtkToggleButton with xalignCaolán McNamara
Change-Id: Ia9f4ac0132ee6eb309aefe3e43577f864d68df4a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139870 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-13gtk4: move ComboBox "items" to the start to get "active" property workingCaolán McNamara
Change-Id: I6a6c1d2ca7793d1ec83992171f41993b1f736f67 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139872 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-13drop gtk_check_version(4, 3, 2) checks nowCaolán McNamara
Change-Id: Ifaa909f8f1ffc5f6d012769e7fba3a6cab403273 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139871 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-11vcl: Move CreateFontSubset() to PhysicalFontFaceKhaled Hosny
Having it in SalGraphics is not necessary as the code now depends on PhysicalFontFace for accessing raw font data, and this consolidates all the near identical copies of this code into one. Change-Id: I8a411f102fd2188a456bdeb8a0d794078d74e47b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139762 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-11vcl: Add a PhysicalFontFace-backed TrueTypeFontKhaled Hosny
This is mainly to be able to get the font table data from the PhysicalFontFace so that an actual font file or full font data are not required (since they are not always available, e.g. with CoreText fonts). This is slightly based on QtTrueTypeFont that this code replaces. Change-Id: I6926706dfc6765076100ac0314a30f9ff970ddb6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139760 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-08vcl: Pass FontCharMap to OpenTTFont*() when possibleKhaled Hosny
Avoids parsing “cmap” table again to get it. Change-Id: I19eb882efd8c8aaaeb2fa770405ef2d69d985104 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139622 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-07tdf#150810 get visible placeholder text in GtkEntry with focusCaolán McNamara
in gtk3 focus causes placeholders to be not rendered https://gitlab.gnome.org/GNOME/gtk/-/issues/378 https://bugzilla.gnome.org/show_bug.cgi?id=657613 FWIW, currently in gtk4 they are shown when focused Change-Id: I623c81dd71f651d8b24a717a63fe428bc9d6a505 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139592 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-06tdf#150682 - bad shortcut in french langageNoel Grandin
the = key is } on a french keyboard, so remap the ctrl-alt-= shortcuts to ctrl-alt-} which means the user gets to keep pressing keys in roughly the same physical location for this action, regardless of keyboard Change-Id: I03e251dacc1c19e543182a44ae23fde2a57cfa45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139474 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-06vcl: Drop unused SalGraphics::CreateFontSubset() argumentKhaled Hosny
pWidths is always nullptr. Change-Id: I1c666f146865786269e9513cbb6c8ffdc7df96e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139461 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-06vcl: Drop now unused SalGraphics::GetGlyphWidths()Khaled Hosny
Change-Id: Iec8974d6fc67d9d599c5e92aa325225963da0021 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139459 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-05vcl: fontinstance.{cxx,hxx} -> LogicalFontInstance.{cxx,hxx}Khaled Hosny
Every time I need this file, I had to lookup the file name and location. Rename it following the pattern of other font classes and move the header next to their headers. Change-Id: Ia1e3ee4be9375c1110e169c593e1f8e7aad39c76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139446 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-05rework comment a bitCaolán McNamara
Change-Id: I9dff73a7a3e0579af4b6fdeab669a8f99722e2f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139438 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-05vcl: Rename LongPress event to GestureLongPressPovilas Kanapickas
We have 5 gesture types: GestureZoom, GestureRotate, GesturePan, GestureSwipe and LongPress. For consistency all of these will use Gesture as a prefix to reduce confusion and for easier grepping throughout the codebase. Change-Id: I8b9e245d011203a19c1172f9833c172f65382cab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139244 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-05vcl: Rename Swipe event to GestureSwipePovilas Kanapickas
We have 5 gesture types: GestureZoom, GestureRotate, GesturePan, Swipe and LongPress. For consistency all of these will use Gesture as a prefix to reduce confusion and for easier grepping throughout the codebase. Change-Id: I8b9e245d011203a19c1172f9833c172f65382caa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139243 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-05tdf#150507 like skia, even when subpixel rendering snap to a pixel BaselineCaolán McNamara
Change-Id: Iaf064b483d65d25251f733cc6a67d9f1863bb64c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139380 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-05vcl: Consolidate PhysicalFontFace::GetFontCapabilities()Khaled Hosny
All subclasses are doing the same thing in slightly different ways, so move it to the base class that we can now access font tables there. Change-Id: I1f8827dbc345aa852e1f7aaaa4cb4615593289c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139395 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-05vcl: Don’t parse cmap in PrintFontManager::getGlyphWidths()Khaled Hosny
Use PhysicalFontFace::GetFontCharMap() instead which has already parsed the cmap table. Change-Id: Ieba7bace65c9c5d85ffb8feb04e99cd826d7ab48 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139341 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-05vcl: Consolidate PhysicalFontFace::GetFontCharMap()Khaled Hosny
All subclasses are doing the same thing in slightly different ways, so move it to the base class that we can now access font tables there. Also drop unused PhysicalFontFace::HasChar(). Change-Id: I77022b4dc3688de2788c18966f39f407a6abb730 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139340 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-04vcl: Create hb_face_t in PhysicalFontFaceKhaled Hosny
The two map to each other, and we want to access hb_face_t to provide some functionality scattered currently in platform-specific implementations. Change-Id: Ib3842752ec240b8254db828dba95a6a0ad65f16a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139275 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-04vcl: Align GenPspGraphics and FreeTypeTextRenderImpl moreKhaled Hosny
They share lots of code with few small differences, reduce these differences and de-duplicate more of the shared code. The main motivation is to make sure FreetypeFontFace is always created with a non-NULL FreetypeFontInfo. Change-Id: I6f36f5975908d52033fe959cfe2b265c79ebe190 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139280 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-03tdf#150683 gtk3 a11y: Expose AtkTableCell interface for cellsMichael Weghorn
While LO doesn't have any UNO a11y interface for table cells, the methods for the `AtkTableCell` interface can be implemented by using the methods from the `XAccessibleTable` interface of the table (which is the parent of the cell), similar to the way this was impemented for winaccessibility and the qt5/qt6/kf5 VCL plugins in commit 97a88e30e2e084ab860635ff4e0a03442d8a12af Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Sep 8 14:37:53 2021 +0100 tdf#100086 tdf#124832 wina11y: Implement IAccessibleTableCell and commit 6735a37747a3443ebd1c29c870a5eb26990350f2 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Sep 21 14:47:51 2021 +0200 qt5 a11y: Implement QAccessibleTableCellInterface With this and the Orca commit to make use of the AT-SPI TableCell interface to query the position for a cell [1], announcing selected cells that have a cell/child index that doesn't fit into 32 bit now also works for the gtk3 VCL plugin, see the full commit message of commit 206543c7bef58fc559852553a3b2faba0b604259 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Fri Sep 2 13:06:08 2022 +0200 [API CHANGE] tdf#150683 a11y: Switch a11y child index to 64 bit for more background information. In a quick test with Accerciser and the gtk3 VCL plugin as follows, the output looked as expected: 1) start LO Writer, "Table" -> "Insert Table" 2) select to create table with 2 rows, 2 columns 3) make sure "Heading" is checked, "Heading rows": 1 4) "Insert" 5) in the first row, type "First heading" into first column, "Second heading" into second column 5) start Accerciser 7) select the table cell element "A2" in Accerciser's treeview of the a11y hierarchy (which refers to the table cell in the second row, first column) 8) type these in Accerciser's IPython console: In [1]: acc.queryTableCell() Out[1]: <pyatspi.tablecell.TableCell at 0x7fa17cf2b550> In [2]: acc.queryTableCell().position Out[2]: (1, row=1, column=0) In [3]: acc.queryTableCell().rowSpan Out[3]: 1 In [4]: acc.queryTableCell().columnSpan Out[4]: 1 In [5]: acc.queryTableCell().get_table() Out[5]: <Atspi.Accessible object at 0x7fa17cf975c0 (AtspiAccessible at 0x55bfe77b4e10)> In [6]: acc.queryTableCell().get_table().name Out[6]: 'Table1-1' In [7]: acc.queryTableCell().get_columnHeaderCells()[0] Out[7]: <Atspi.Accessible object at 0x7fa17d2e7b00 (AtspiAccessible at 0x55bfe77ab240)> In [8]: acc.queryTableCell().get_columnHeaderCells()[0].name Out[8]: 'A1' [1] https://gitlab.gnome.org/GNOME/orca/-/commit/cb105d4d21c09d3e832273b493a407e8b48887fb Change-Id: Ia6ee90bea5c2f2faef6ed269981702f36496a3e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139278 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-09-02gtk3_kde: Drop unused gtk3_kde5_a11y.cxxMichael Weghorn
The file just has includes of gtk3's a11y source files, but those are also separately included in equivalents in `vcl/unx/gtk3_kde5/a11y/`, and the latter are actually used in the Makefile `vcl/Library_vclplug_gtk3_kde5.mk`. `vcl/unx/gtk3_kde5/gtk3_kde5_a11y.cxx` however is unused, so drop it. Change-Id: Ibca1bc30b8591177b3dd660dd245a6a77bd05271 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139276 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-09-02[API CHANGE] tdf#150683 a11y: Switch a11y child index to 64 bitMichael Weghorn
With 16k column support in Calc enabled by default in commit 4c5f8ccf0a2320432b8fe91add1dcadf54d9fd58 Date: Tue Mar 8 12:44:49 2022 +0100 change default Calc number of columns to 16384 (tdf#50916) , the number of Calc cells in a spreadsheet is larger than SAL_MAX_INT32, meaning that a 32-bit a11y child index is no more enough and using it resulted in integer overflows in methods handling corresponding Calc cells in the a11y layer. This e.g. had the effect of the Orca and NVDA screen readers not announcing focused or selected cells properly when their a11y child index was out of the 32-bit integer range. Switch the internal a11y child indices to 64 bit to be able to handle this properly internally. Since the platform APIs (at least AT-SPI on Linux and IAccessible2 on Windows; from what I can see LO's macOS a11y bridge doesn't directly expose the child index) are still restricted to 32 bit, larger child indices still cannot be exposed via the platform APIs. As a consequence, use of the the IAccessible2 and AT-SPI methods that use the child index remains problematic in those cases where the child index is larger. However, as an alternative to using the AT-SPI Table interface and the IAccessibleTable/ IAccessibleTable2 interfaces with the child index to retrieve information about a specific cell, both AT-SPI and IAccessible2 also provide interfaces to retrieve that information directly from the cell object (TableCell interface for AT-SPI, IAccessibleTableCell for IAccessible2). Those interfaces are already implemented/exposed for winaccessibility (s. `CAccTable`) and the qt5/qt6/kf5 VCL plugins (s. the `QAccessibleTableCellInterface` methods implemented in `QtAccessibleInterface`). With the switch to 64-bit internal a11y child indices, these now behave correctly for cells with a child index that doesn't fit into 32 bit as well. NVDA on Windows already uses the IAccessibleTableCell interface and thus announcing focused cells works fine with this change in place. Orca on Linux currently doesn't make use of the AT-SPI TableCell interface yet, but with a suggested change to do so [1], announcement of selected cells works with the qt6 VCL plugin with a current qtbase dev branch as well - when combined with the suggested changes to implement support for the AT-SPI TableCell interface in Qt [2] [3] and the LO change based on that [4] and a fix for a nullptr dereference [5]. The gtk3 VCL plugin doesn't expose the AT-SPI TableCell interface yet, but once it does so (via `AtkTableCell`), it also works with the suggested Orca change [1] in place. (Adding that is planned for an upcoming change, works with a local WIP patch.) For handling return values that are larger than what platform APIs support, the following approach has been chosen for now: 1) When the return value is for the count of (selected) children, the maximum value N supported by the platform API is returned. (This is what `ScAccessibleTableBase::getAccessibleChildCount` did previously.) The first N elements can be accessed by their actual (selection) indices. 2) When the return value is the child/cell index, -2 is returned for objects whose index is greater than the maximum value supported by the platform API. Using a non-negative value would mean that the index would refer to *another* actually existing child. A child index of -1 on the other hand tends to be interpreted as "child is invalid" or "object isn't actually a child of its (previous) parent any more)". For the Orca case, this would result in objects with a child index of -1 not being announced, as they are considered "zombies" [6]. What's still somewhat problematic is the case where more than 2^31 children are *selected*, since access to those children still happens by the index into the selection in the platform APIs, and not all selected items are accessible this way. (Screen readers usually just retrieve the first and last element from the selection and announce those.) Orca already seems to apply different handling for the case for fully selected rows and columns, so "All cells selected" or "Columns ... to ... selected" is announced just fine even if more than 2^31 cells are selected. (Side note: While Microsoft User Interface Automation - UIA - also uses 32-bit indices, it also has specific methods in the ISelectionProvider2 interface that allow to explicitly retrieve the first and last selected item, `ISelectionProvider2::get_FirstSelectedItem` and `ISelectionProvider2::get_LastSelectedItem`, but we currently don't support UIA on Windows.) Bound checks at the beginning of the methods from the `XAccessibleContext`, `XAccessibleSelection` and `XAccessibleTable` interfaces that take a child index (or in helper methods called by those) should generally already prevent too large indices from being passed to the methods in the lower layer code that take smaller integer types. Such bound checking has been been added in various places where it wasn't present yet. If there any remaining issues of this kind that show after this commit, they can probably be solved in a similar way (s.e.g. the change to `AccessibleBrowseBox::getAccessibleChild` in this commit). A few asserts were also added at places where my understanding is that values shouldn't be larger than what is supported by a called method anyway. A test case will be added in a following change. [1] https://gitlab.gnome.org/GNOME/orca/-/merge_requests/131 [2] https://codereview.qt-project.org/c/qt/qtbase/+/428566 [3] https://codereview.qt-project.org/c/qt/qtbase/+/428567 [4] https://gerrit.libreoffice.org/c/core/+/138750 [5] https://codereview.qt-project.org/c/qt/qtbase/+/430157 [6] https://gitlab.gnome.org/GNOME/orca/-/blob/82c8542002e36e0d3d918088d583162d25136143/src/orca/script_utilities.py#L5155 Change-Id: I3af590c988b0e6754fc72545918412f39e8fea07 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139258 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-09-02Fix setting SAL_NON_APPLICATION_FONT_USEStephan Bergmann
...after a342b72f4218cd617aa6fb413fcf5fbb182c316f "gbuild: set SAL_NON_APPLICATION_FONT_USE in gb_CppunitTest_use_more_fonts" had caused e.g. CppunitTest_vcl_pdfexport to be executed with merely SAL_NON_APPLICATION_FONT_USE=deny rather than the stronger SAL_NON_APPLICATION_FONT_USE=abort that vcl/CppunitTest_vcl_pdfexport.mk asked for. So introduce a dedicated gb_CppunitTest_set_non_application_font_use that accumulates the requested modes and then selects the strongest requested one ("allow" over "abort" over "deny"). That also means we can go back to model "allow" with an unset SAL_NON_APPLICATION_FONT_USE env var. Change-Id: I32ba0a94c1965f0e3336e676b17f4f5efb85efce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139251 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-09-02vcl: set hb_font_t variations from CTFontKhaled Hosny
Without this we will be using the interpolated outlines (done by core text) but apply OpenType features from the default instance. Change-Id: I7a39b5483ba0f35b440841ffa07f587ad966bbf6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139248 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-01tdf#150688 return atk_noop_object_wrapper_new() instead of null on failureCaolán McNamara
Change-Id: I20fd190a36649193ee2a1e536f520344c5f6c89a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139160 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-01we have one CJK text test that explicitly attempts to use not bundled fontsCaolán McNamara
add "allow" to NON_APPLICATION_FONT_USE= =abort to crash and burn if there is font/glyph fallback, and =deny to just restrict to the bundled fonts for the test =allow to explictly denote a tests want to attempt to search for and use some specific system-side installed font. note: currently this only affects fontconfig using platforms Change-Id: Iadc8a70531ac363b4c3f0c52d9f7bd79191b0139 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139148 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-01tdf#150723 "run" will make the dialog visible like "show"Caolán McNamara
so make run drop m_aPosWhileInvis like show Change-Id: Id7c024c487baaa0b2fd9500888e953b9b808921d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139134 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-01change ABORT_ON_NON_APPLICATION_FONT_USE to NON_APPLICATION_FONT_USE=...Caolán McNamara
with =abort to crash and burn if there is font/glyph fallback, and lesser =deny to just restrict to the bundled fonts for the test. Change-Id: I0a8f7046260c24f3bf24ec3a91489924486fb844 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139132 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
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-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-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#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-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-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-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-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>