Age | Commit message (Collapse) | Author |
|
Since commit cb8bfa9a32799bcde4e960fa56e388d5f7b2a928 the main thread
will read from the timer pipe until it is empty. But evidently this
introduces the problem that the poll() in another thread will not
return, as the file descriptor will no longer be readable; see
https://paste.debian.net/1011306/ for a reproducer of that rather
under-documented poll behaviour. So other threads can get stuck
forever in poll, and then the main thread can block in poll too with
no other thread to wake it up. This is the problem that plagues
UITest_writerperfect_epubexport.
The timer pipe is difficult to fix, since the main thread can block on
either the poll or the subsequent AcquireYieldMutex().
So replace the timer pipe with a condition etc. that is mostly
copied from the OSX AquaSalInstance/SalYieldMutex implementation.
The main thread now does something different than the other threads,
and blocks on a condition_variable with a timeout, while other
threads still block on acquiring the mutex.
Non-main threads can poke the main thread to do a DoYield()
on their behalf, and then get the result back with a blocking
read from a pipe, all while holding the YieldMutex. This
requires some fudging of the YieldMutex so that the main
thread can borrow the ownership temporarily.
Unfortunately SvpSalInstance, in addition to being directly
instantiable for --headless, has a whole bunch of subclasses:
* HeadlessSalInstance
* AndroidSalInstance
* IosSalInstance
* GtkInstance (in the gtk3 case)
* KDE5SalInstance
Of these GtkInstance overrides everything related to the
DoYield/SalYieldMutex implementation, but the others will be
affected by the change.
This commit will probably break IOS due to me not understanding the
point of the undocumented random #ifdef IOS in svpinst.cxx.
Change-Id: I1bbb143952dda89579e97ac32cd147e5b987573c
Reviewed-on: https://gerrit.libreoffice.org/50237
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
It seems that on some Macs that the
NSApplicationDidChangeScreenParametersNotification is sent for unknown
reasons quite often. I can reproduce the problem by changing the Dock
size in System Preferences while LibreOffice is running, but others
seem to get it without resorting to such trickery.
The code used to invoke the SalEvent::DisplayChanged callback in all
cases, which can be extremely heavy, as it involves re-measuring text
layouts all over the place in all open document windows.
Avoid that if the geometry in fact has not changed.
Sure, there still is the problem that LibreOffice can become
unresponsive for several seconds when the display geometry *does*
change, like when you attach or detach a display.
Change-Id: I659881e5e392bd599f6be190835e32a77d9f4725
Reviewed-on: https://gerrit.libreoffice.org/50249
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
|
|
On some Macs, it seems that LibreOffice (or any app?) gets an
NSApplicationDidChangeScreenParametersNotification as soon as it has
started and asked for such a notification. Our handler for that
notification assumes that VCL is initialised. Thus we should not ask
for such notifications before VCL has been initialised.
I could not reproduce the reported crash with an unmodified
LibreOffice, only after inserting a sleep after the notifications had
been set up. But I am fairly sure this change fixes the problem.
Change-Id: I18d342eb7dc0c77cb7fc8623756bead65a1bd329
Reviewed-on: https://gerrit.libreoffice.org/50164
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
|
|
and keep the current legacy ownership behaviour when welding the
legacy backend
Change-Id: I7e1f90f2d235abf0e10062b4be11ba5150bbdbfb
Reviewed-on: https://gerrit.libreoffice.org/49918
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I392be563e38257390f748c70bb71c67a66778ddd
Reviewed-on: https://gerrit.libreoffice.org/49677
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
to avoid doing a read-modify-write cycle on the item images on the
toolbar, add an overlay image member to Toolbox items.
part of the process of making Bitmap an internal detail of vcl/
Change-Id: Ie4a886c48484a06694fc4c066ee0845b39d27f0b
Reviewed-on: https://gerrit.libreoffice.org/49649
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I73e7377c2049211de0b464efff03058dc5de33a6
Reviewed-on: https://gerrit.libreoffice.org/49554
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
TYPEFLAG_PS_OPENTYPE is set but never used, and dropping it means we no
longer need TYPEFLAG_COPYRIGHT_MASK either.
Change-Id: Iefb45b32f53a806f2477ce54b7062b5846a6a806
Reviewed-on: https://gerrit.libreoffice.org/49427
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
|
|
Change-Id: I66b17dbee0a04e61b99e23933a7fed4be30f3a93
Reviewed-on: https://gerrit.libreoffice.org/49426
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
|
|
This adds the selectbox to (hopefully) all filepickers:
- LO native
- GTK/GTK3
- KDE4
- KDE5
- Windows
- macOS
Change-Id: I01bd42b1ca18e0f691b879647a6cb1b62177d3ce
Reviewed-on: https://gerrit.libreoffice.org/49311
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
Change-Id: If8693b106f8755e506375f1a65754c972971700f
Reviewed-on: https://gerrit.libreoffice.org/49129
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ia98080d5c214824624ca4cbe875038374919f662
Reviewed-on: https://gerrit.libreoffice.org/49132
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I010339eaf7874e61b5d0e5d41574c54e98ea1921
Reviewed-on: https://gerrit.libreoffice.org/49094
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
by reverting parts of
commit de8f6b25de6fbe813fe172542e7eff1596b37335
loplugin:unused-returns in vcl
and reverting
commit 78bb1a2a51a991f605ae5c51d813697673bbc67
Fix --enable-kde4 codeHEAD
<noelgrandin> sberg, is that safe ^^ ? I was just about to push a partial revert of the commit that caused the breakage
<sberg> noelgrandin, oops, I'd naively assumed that all impls of Dispatch had just always returned true
Change-Id: Icbca450a76de30a04bc90a2887066840191c9d5f
|
|
Change-Id: I507320900a47f604d17ed7d402d531a7cbdf744e
Reviewed-on: https://gerrit.libreoffice.org/48331
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ibcbfd951d2a7c7862fbc7e6b17c89344ae5bf930
Reviewed-on: https://gerrit.libreoffice.org/48399
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Surely we should not be using it for our own things in our Quartz
code, that is misleading.
Also bin a silly typedef.
Change-Id: Ie932e8784128246ca449608aad3dc96a575ec9d5
|
|
Automatic rewrite (of loplugin:cstylecast and loplugin:unnecessaryparen) after
cab0427cadddb3aaf1349c66f2fa13a4234ba4b2 "Enable loplugin:cstylecast for some
more cases" and a409d32e7f6fc09e041079d6dbc3c927497adfed "More
loplugin:cstylecast"
Change-Id: Ib3355159dd08333e1b7a8d091caf2069cdcc7862
Reviewed-on: https://gerrit.libreoffice.org/48317
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Automatic rewrite (of loplugin:cstylecast and loplugin:unnecessaryparen) after
cab0427cadddb3aaf1349c66f2fa13a4234ba4b2 "Enable loplugin:cstylecast for some
more cases" and a409d32e7f6fc09e041079d6dbc3c927497adfed "More
loplugin:cstylecast"
Change-Id: Iff4877e8a42804c952c48c13332caf0a83c92870
Reviewed-on: https://gerrit.libreoffice.org/48216
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I0d0e4da9c081c890ffd7dcaf051e3a3900345c35
|
|
Change-Id: Id3f8cf95479aa4e03bc6dcb05c5475ae462cfe5a
|
|
Change-Id: I812fb31ec802d2c20e2e82693be127d42df73a69
|
|
Change-Id: I77494fca8f0c326aa35872640b99596597116ef2
|
|
Change-Id: I029cb5e5c117ea1c337509420b11589aa29cb383
|
|
Change-Id: I4d6cca83f321f74faae7d2c6d0481a864f5f0b95
|
|
Change-Id: Id0ba44d9080294576dbafc47e68dff41a8257d29
|
|
Change-Id: I26824107dbcf5d313409e301059a37a59b59a05b
|
|
Change-Id: I6a24f9fdf574276281d4a67caec426df14b2dd8c
|
|
Change-Id: Iea0e657bed5a8008f82534494cb0965a9749f1b2
|
|
Instead use a simple vector.
Change-Id: I50652468cf06ba681d5caccb74a52b32c6c507a0
Reviewed-on: https://gerrit.libreoffice.org/47910
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Change-Id: I5a88f6052899c9dcea818084aefcb63b0460cf2d
Reviewed-on: https://gerrit.libreoffice.org/47838
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable
loplugin:cstylecast for some more cases" plus
solenv/clang-format/reformat-formatted-files
Change-Id: I363c01a1ae9e863fca4fb4589829492d7280d711
|
|
Change-Id: Ie7968fc709255b07a7045d50aa7641aa4fa70098
Reviewed-on: https://gerrit.libreoffice.org/47728
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Previously we cached an icon only if we changed the scaling factor
or re-colored the icon, however if we have svg icons we want to
cache all of the variants, including the unscaled/un-colored one
as svg rendering is slower than loading cached png icons.
Change-Id: Ie2c14687892bbd12b8e04c690a66c5a1a92ac8b0
Reviewed-on: https://gerrit.libreoffice.org/47498
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
first attempt was in commit e75abe6e0a4ea250366bb29c0ece697e9b1b80a1,
reverted in 7accac097688832d8682a88a0176c3e1482ffade
Change-Id: I460e9ab5fcca3a99656e5d8434fa04c2387d7183
Reviewed-on: https://gerrit.libreoffice.org/47463
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
revert
commit e75abe6e0a4ea250366bb29c0ece697e9b1b80a1
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Tue Dec 12 09:33:14 2017 +0200
convert tolerance params to sal_uInt8
for now.
Change-Id: Iafaada0fb338f60ecc9f94aafe138500dfb27cf7
Reviewed-on: https://gerrit.libreoffice.org/47453
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
adds no value
Change-Id: I14c168d16eb98eb8c065c4c9a8f2a486c59feebb
Reviewed-on: https://gerrit.libreoffice.org/47341
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I3006cf4397df6b04fa66bd181470756f39dac1e5
|
|
ImplFontCache::Invalidate deletes unused entries (with zero ref
count), and keeps other entries, but clears everything (including
still used fonts) from its instance list. In the same time, those
fonts' mpFontCache pointers kept pointing to this cache object.
External clients released font instance by calling its cache's
Release method; this itself allows for broken invariants that
cache's mnRef0Count is equal to number of unused font instances
in its list. Also, those fonts never got released, leaking because
ImplFontCache only ever deletes objects in its list.
What is worse, sometimes font caches get deleted after invalidation
(see OutputDevice::ImplClearFontData). As the instance list of the
cache is empty at the point of delete, the cache destructor doesn't
delete those fonts that were orphaned at the moment of invalidation
(those fonts are still used by some client objects, so deleting
them is clearly wrong). But since the font instances still have
cache pointer referring the already deleted cache, releasing the
instances (by calling deleted cache's Release member function)
must lead do some weird results.
This patch moves the Acquire/Release to LogicalFontInstance, which
now checks if its cache pointer is valid, and if it is, the cache
is used to do the work (as before); otherwise, the font handles
its lifetime itself, and deletes itself when its reference counter
is zero. The cache invalidation clears the cache pointer of the
still-used instances.
Change-Id: I29811272dda814cbc81f14668d63e385ce772332
Reviewed-on: https://gerrit.libreoffice.org/47111
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
This adds support in headless rendering for more
compact 24-bit RGB image storage in 3-byte pixels
instead of 4 bytes.
There is a conversion necessary to accomodate Cairo,
which requires 4-byte pixels, but that is relatively.
Early tests show no loss of performance at runtime.
Unit tests updated since the bitmap memory bytes
are crc-ed, which obviously are different in size
if not in content.
(cherry picked from commit 354ad875092fd0c3b12f232950375206ec5d66a6)
Reviewed-on: https://gerrit.libreoffice.org/46679
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
(cherry picked from commit 11adb51f2553dc4a838c8668d94909771d70e1ab)
Change-Id: I3919f7c56d14d09e67f163f035b4c7683b49087c
Reviewed-on: https://gerrit.libreoffice.org/47009
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
|
|
Change-Id: I0b103df2e7ce59093869f547225c95865d33da27
Reviewed-on: https://gerrit.libreoffice.org/46916
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
don't need to have two implementations here and
can reduce ifdef forest
Change-Id: I972159ece9cce417aefd5ec4acf5ba5d1d08317b
Reviewed-on: https://gerrit.libreoffice.org/46968
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I30121764303579a7cb4ded0f0f48cc1f8fff6c33
Reviewed-on: https://gerrit.libreoffice.org/46946
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
|
|
Change-Id: I3cf63d06c3c238ed936a8dd0287cfbe02e8e39be
Reviewed-on: https://gerrit.libreoffice.org/46936
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
|
|
when we predict what it will be and use that flag to decide
to forward notification of arrival of confirmation of geometry
Change-Id: I4a7334d75eb7977c85aebcf2b652cc4b2d6b25bb
Reviewed-on: https://gerrit.libreoffice.org/46911
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
There's a callback processing loop, introduced by
a7c84375db517769035080c8fed33b2f303fc42f, which releases the
SolarMutex and is triggered by a queued user event. Such a
scenario can easily be reproduced by any LOK client resulting in
hitting the empty user event processing list assertion.
I'm not sure this should be handled via LO events at all.
So this - again - gets rid of the the assertion and tries to
prevent processing the user events out-of-order.
In the case of giving up the SolarMutex while processing a user
event an other thread or even nested loop can "steal" the user
event list and continue processing.
Most VCL backends run the event loop just in the main process,
so for them this scenario is guaranteed. But the headless
backend - running without UI or from LOK - is still allowed to
process events in any thread. This is harder to fix and probably
should use the same solution the gtk* backends use.
This also changes the dequeues into lists to use splice for
appending them.
Change-Id: Id4a93a01dea415271ad96098830f18f06d4a75b9
Reviewed-on: https://gerrit.libreoffice.org/46550
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Henry Castro <hcastro@collabora.com>
Reviewed-by: pranavk <pranavk@collabora.co.uk>
Tested-by: pranavk <pranavk@collabora.co.uk>
|
|
Change-Id: If77c43a7eb97de0a2e23195a9539f00e452343d8
Reviewed-on: https://gerrit.libreoffice.org/45096
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
|
|
It will be required by ICU 61 anyway, see
https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild
Change-Id: Iecb30b903e9a67252147a8cc78c641621d763755
|
|
Change-Id: I6fd7a9fed3a80c91a3766fceefd43c5db0aa5275
Reviewed-on: https://gerrit.libreoffice.org/46763
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I5c3ffc03c26b3428f1f336e6ecba7838a1cf1157
Reviewed-on: https://gerrit.libreoffice.org/46764
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|