can't find an easy way of removing the duplication, even though
that BeginLocking() stuff looks ripe for simplification.
Change-Id: I97b580b3668381c12b62136ea09772d91ab11eac
Reviewed-on: https://gerrit.libreoffice.org/44884
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This is a new, simple non-linear solver that uses a swarm
(population) to do global optimization. It uses two algoritms -
Particle Swarm Optimization (PSO) or Differential Evolution (DE)
to find a (non-optimal) solution.
It is experimental as not all functions are implemented and it
needs a lot more testing so that it performs well.
Change-Id: If55dad7eda17394851a9d178ad892de771eca7c9
Reviewed-on: https://gerrit.libreoffice.org/44382
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Textline offset was based on horizontal font metrics.
In vertical writing for CJK fonts, use descent
as its underline offset so that the line is drawn at the edge
of the bounding box to prevent overlap the CJK glyphs.
Change-Id: Iaa01bdf3cbb694dcf925975cde3f0f7ba7b97dac
Reviewed-on: https://gerrit.libreoffice.org/44720
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mark Hung <marklh9@gmail.com>
The offsets were 0 in HarfBuzz 1.3.3 but the value became
something else and made text offsets toward upper-right
after upgrading to HarfBuzz 1.4.8. Those values are offsets
relative to the horizontal origin. But underlying renderer
expect positionos relative to the vertical origin. Translate
them back by adding the horizontal origin.
Change-Id: If58d2c082b198bfd8789efb3df2be49869a04bf9
Reviewed-on: https://gerrit.libreoffice.org/44556
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mark Hung <marklh9@gmail.com>
for current monitor mode as well as all-monitors mode
Change-Id: I9de864dc0b416d18937f6ee90f432a8254fe987f
Reviewed-on: https://gerrit.libreoffice.org/44870
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Excel's find macro is able to search for an empty string
and find an empty cell, without giving a script error.
LibreOffice was raising a "missing params" error if it was passed
an empty string to search for, causing execution failure,
a misleading error code, and failing to find an empty cell.
Also fixed the other copy/paste error codes to indicate
that this is the find function, not the replace function.
Also added a sanity control line to the VBA test. First select
cell A1 - instead of assuming that no one has touched the
file.
Change-Id: Iabbac7333c37886a667ab5670af819b1cd53c086
Reviewed-on: https://gerrit.libreoffice.org/44618
Reviewed-by: Justin Luth <justin_luth@sil.org>
Tested-by: Justin Luth <justin_luth@sil.org>
Tested-by: Jenkins <ci@libreoffice.org>
Language-specific user dictionaries (en-US, de-DE, etc.)
have got a new "Grammar By" field to specify
optional automatic affixation and compounding of the
new words by adding an example dictionary word.
Test example:
Create an en-US user dictionary. Add the new word
"crowdfund" to it, also an example, the Hunspell
en-US dictionary word "fund" in the optional
"Grammar By" field.
This way, the word "crowdfund" will be recognized
by the spell checker with suffixes of the word "fund",
too: crowdfund’s, crowdfunds, crowdfunder, crowdfunders
and crowdfunding.
Hunspell dictionaries with compound flag usage (German,
Hungarian, etc.) can support automatic compounding of
the new words, too.
Change-Id: Id70dbee4544643967153f730ae64938e5cee0c82
Reviewed-on: https://gerrit.libreoffice.org/44562
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
to use in new "Affixation/Compounding By" feature of
language-specific LibreOffice user dictionaries.
Change-Id: Icb4181717f0ff1145ac5acc130266b165132cfe9
Reviewed-on: https://gerrit.libreoffice.org/44561
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: László Németh <nemeth@numbertext.org>
This was breaking keyboard functions in other locales, by essentially
disabling use of left Ctrl-Alt as AltGr equivalent - fixes tdf#97908
This reverts commit 3ac9942c62
Change-Id: Ibee8cf0cb663f1995d0696afde8baea995f35f37
Reviewed-on: https://gerrit.libreoffice.org/44824
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
this automagically fixes also ODF export i.e. shrink to 25% in both
directions gets saved as smil:by="-0.75,-0.75"
Change-Id: I977deefb11cc4baa6a3caac5c9774940b5bc047e
Reviewed-on: https://gerrit.libreoffice.org/44814
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
the inner loop checks the kashida validity so reuse the
same check outside to avoid index 3 into vector of len 3
Change-Id: I27c30aec1a61ccc8ca6611498d3281eddb4b54eb
Reviewed-on: https://gerrit.libreoffice.org/44831
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Martin Hosken <martin_hosken@sil.org>
Move initialization of FullstopCenteredFlag out
of ImplFontMetricData::ImplInitTextLineSize since it has
nothing to do with text lines.
Change-Id: I1c2e383d980514c8727d736a3158325c1e0ccfda
Reviewed-on: https://gerrit.libreoffice.org/44712
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mark Hung <marklh9@gmail.com>
Transparent icons have a black frame on the iPad, changed
transparent background to a green background
(after all green is the color of LO).
Change-Id: Id0703c63bab0f6cb5d5a9c268124daba5d6323b1
...in the type at the start of a ParmVarDecl, so that it does not erroneously
assume in isSharedCAndCppCode that the whole decl is in "the body of a macro
definition". (Even better might be to check the whole ParmVarDecl is inside one
macro body.)
Turns out that vcl/unx/gtk/gtkdata.cxx indirectly includes stdbool.h via some
vcl/inc/unx/saldisp.hxx -> workdir/UnpackedTarball/epoxy/include/epoxy/glx.h ->
workdir/UnpackedTarball/epoxy/include/epoxy/gl.h, and Clang's stdbool.h contains
> /* Don't define bool, true, and false in C++, except as a GNU extension. */
> #ifndef __cplusplus
> #define bool _Bool
> #define true 1
> #define false 0
> #elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
> /* Define _Bool, bool, false, true as a GNU extension. */
> #define _Bool bool
> #define bool bool
> #define false false
> #define true true
> #endif
since <http://llvm.org/viewvc/llvm-project?view=revision&revision=115028>
"Define _Bool, bool, true, and false macros in <stdbool.h> when we're in a
GNU-compatible C++ dialect. Fixes <rdar://problem/8477819>" while GCC's
stdbool.h has meanwhile been improved with
<https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=216679> "C++11
explicitly forbids macros for bool, true and false" to
> #ifndef __cplusplus
>
> #define bool _Bool
> #define true 1
> #define false 0
>
> #else /* __cplusplus */
>
> /* Supporting _Bool in C++ is a GCC extension. */
> #define _Bool bool
>
> #if __cplusplus < 201103L
> /* Defining these macros in C++98 is a GCC extension. */
> #define bool bool
> #define false false
> #define true true
> #endif
>
> #endif /* __cplusplus */
Change-Id: I42caab83ac6e4d5e5297376136a6bbe6f3d70818