Avoid this segfault:
Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault.
0x00002aaad2a20e4e in VclReferenceBase::acquire (this=0x9999eeeef579c129) at /home/julien/lo/libreoffice/include/vcl/vclreferencebase.hxx:38
38 assert(mnRefCnt>0);
(gdb) bt
0 0x00002aaad2a20e4e in VclReferenceBase::acquire (this=0x9999eeeef579c129) at /home/julien/lo/libreoffice/include/vcl/vclreferencebase.hxx:38
1 0x00002aaad37325ae in rtl::Reference<AbstractScImportAsciiDlg>::Reference (this=0x7ffffffef7c0, pBody=0x55555be02790) at /home/julien/lo/libreoffice/include/rtl/ref.hxx:63
2 0x00002aaad37321b5 in VclPtr<AbstractScImportAsciiDlg>::VclPtr (this=0x7ffffffef7c0, pBody=0x55555be02790) at /home/julien/lo/libreoffice/include/vcl/vclptr.hxx:89
3 0x00002aaad3731e25 in ScopedVclPtr<AbstractScImportAsciiDlg>::ScopedVclPtr (this=0x7ffffffef7c0, pBody=0x55555be02790)
at /home/julien/lo/libreoffice/include/vcl/vclptr.hxx:305
4 0x00002aaad373055e in ScFilterOptionsObj::execute (this=0x555558d8d450) at /home/julien/lo/libreoffice/sc/source/ui/unoobj/filtuno.cxx:179
5 0x00002aaad1c03f50 in (anonymous namespace)::handleFilterOptionsRequest_ (xContext=uno::Reference to (cppu::ComponentContext *) 0x5555559ec960, rRequest=...,
rContinuations=uno::Sequence of length 2 = {...}) at /home/julien/lo/libreoffice/uui/source/iahndl-filter.cxx:259
6 0x00002aaad1c044f4 in UUIInteractionHelper::handleFilterOptionsRequest (this=0x555558c1b400, rRequest=uno::Reference to (RequestFilterOptions *) 0x555558d5edf8)
at /home/julien/lo/libreoffice/uui/source/iahndl-filter.cxx:315
Change-Id: I50f9f5c4c63328a0aaa3ecb2d83a902de6a38add
Reviewed-on: https://gerrit.libreoffice.org/30410
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
I have checked the normal model and the editing model after UNDO, and
all seems to be well, this is purely a rendering/lack-of-invalidation
issue.
The extra invalidation I add here is restricted to the UNDO case to
prevent tripping up a LOK unit test
(SdTiledRenderingTest::testCursorViews).
I confess to not having followed the invalidation logic all the way to
see why exactly it makes the bug go away.
Change-Id: I34f7d84526462665b1ec09aba966c98cd4e8795f
Reviewed-on: https://gerrit.libreoffice.org/30225
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
caused by commit 52b29c60801cf75364fd8275a22e812797cb184d
originally, if there were no visible lines (bFirstLine), then any
line distance was reset to zero, but with AllowPaddingWithoutBorders
that should not be done.
However, the case were there is no boxItem at all was missed - padding
should still be initialized to zero in that case.
Change-Id: I0a95ee1de6781089196a1ba40d2c0365d15926e2
Reviewed-on: https://gerrit.libreoffice.org/30412
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Justin Luth <justin_luth@sil.org>
Use a better rounding strategy so that when the bounding box involves
part of a pixel we include the full pixel, so floor for -ve values and
ceil for +ve ones. Without this I see lots of cut text on Windows.
Change-Id: I258f63eb37911574cd3f6f08da22349756c0775c
Apparently without implementing InitFont(), we might end up drawing with
the wrong font, thanks to the arcane ways GDI API.
Change-Id: I224de138446d4a536e13992efa98b0f04609576a
only use was to merge 2 range tables in SfxItemSet::MergeRange
of which one table always contained a single range.
rewrite the merge algorithm (SfxUShortRanges += operator).
sort new range into the table of ranges and merge overlapping
ranges afterwards. Not as optimal as the original code but it's
short, maintainable and works without 'goto'
inline the DBG_CHECK_RANGES macro
Change-Id: I991c050f069d44fe72b3ea374863f5f26e7099e9
Reviewed-on: https://gerrit.libreoffice.org/30299
Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This adds links to "large" icons (prefixed with "lc_") also for
32px icons automatically so that we don't need to duplicate the
links.txt files.
Change-Id: I5fc3a769aa795060b6ae2d554cadd81938e4d4ec
Reviewed-on: https://gerrit.libreoffice.org/30399
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
This adds support for 32 pixel icons - mainly to get them into
the toolbar.
Most changes made are to change the behavior of having only small
and large icons as a boolean choice, but not every code path was
converted to non-boolean choice yet.
Breeze icon theme has the 32px variants so it can be used already.
Change-Id: Iadf832a87826c16b3a83522104dd6c35d61a0f87
Reviewed-on: https://gerrit.libreoffice.org/30398
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
We cache and reuse the HarfBuzz font, so we need to make sure it always
has the right font size before using it.
Change-Id: I332c7f51f6495effde529c63485cb4ec658b2ca5
We need to update the buffer content type ourselves since we are now
using the low lever shape plan API that does not do this.
Change-Id: I043d15731cf206b142c3153896e194a822a70ffb
(I'm not sure about how good are the changes from ScopedVclPtr
to non-scoped, and disposeAndClear to clear. They aren't really
needed, because of the VclReferenceBase::mbDisposed logic. But
at least they should be safe, as long as we have disposeOnce
calls in Menu's dtor.)
See also previous commits:
4433d95b374c13a3501cdf3a6e273f68eb49873a
("MenuItemData now properly disposes the submenu")
89c23b4aaef931b5d6009efaf44ce6e6c976e8d4
("Sub menus no longer need manual disposing")
Change-Id: I9d455a94590f5eec9b097947f6984f1b3e477b52
This is what it is actually is, we dropped support for server-side fonts
for a long time now. Renamed also a few related classes, but left
ServerFontLayout* ones as they will go away soonish.
Change-Id: I68a6dad51b6972368b7bf85a0b9c8089cc12740e
Reviewed-on: https://gerrit.libreoffice.org/30390
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
Tested-by: Khaled Hosny <khaledhosny@eglug.org>
We don’t have a configure option to turn it off and I don’t think anyone
tries building without it. Furthermore, we use the code guarded by this
even without Graphite.
Change-Id: I0fb434af58a51370a66b5ad7eb89b145e4c015de
Reviewed-on: https://gerrit.libreoffice.org/30389
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
Tested-by: Khaled Hosny <khaledhosny@eglug.org>
Turns out if we don’t adjust the glyph width (not only its X position)
we will apply the DX adjustment more than once when there is font
fallback.
Change-Id: I5e72e5d211adf3b378ec23c0cabe38fd0d5c9b19
Currently we support DPI scaling by a integer factor. This commit
changes that to percentage so we can have scaling factors like
1.5x or 1.25x. This is useful with 2.7k monitors that are in
between standard DPI and HiDPI. Thresholding was adjusted to scale
to 1.5x when DPI is between 120 and 168 DPI.
The old method GetDPIScaleFactor has been changed to return a
float value insted of int. Sometimes it is however more accurate
to use GetDPIScalePercentage which was added in this commit.
Change-Id: Iaecee793ff3d5084d00adeebbcf5d7368c580882
Reviewed-on: https://gerrit.libreoffice.org/30379
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Sometimes we want to surpress automatic scaling and converting
for dark theme. This adds a loadFromResource function with
additional flags which makes this possible.
Change-Id: I893cee82ad6942644755f0c5b772fb5f073bbf00
Reviewed-on: https://gerrit.libreoffice.org/30341
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
We don't need to scale images for HiDPI mode anymore - this is now
done automatically when the image is loaded.
Change-Id: Ie285cf4d672f4c098a468d3f7560ee2700365b92
Reviewed-on: https://gerrit.libreoffice.org/30340
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Also resolves tdf#92248
This extends icon name resolving so that is in addition tries to
find an icon with the "svg" extension and load that instead of
stated (mostly "png") extension. If the filename extension is
"svg" we load the icon with the SVG filter instead.
This also adds icon scaling and conversion for HiDPI or when a
dark theme is wanted. If the SVG icon is available, we render it
at a higher resolution instead of scaling
As loading of SVG icons can be computatunally expensive, a icon
disk cache was added. This saves the rendered SVG as a PNG image
into the "cache" folder. The same caching is also used for HiDPI
and dark theme converted icons so we don't always scale or
convert the icons.
In addition some style changes and DRY fixes were made to the
ImplImageTree source code.
Change-Id: I9e421395a342ffe8da9facea7ea06e5db2778b26
Reviewed-on: https://gerrit.libreoffice.org/30339
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>