Age | Commit message (Collapse) | Author |
|
Change-Id: I1fca86f6d1f9bd64238b8e75cd98f53df99f91bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111447
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I3c536b766d35b3137d79739c232d0d5cff3652b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111446
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I8ca55870094443f7eb670df06de34ad0ed87ad8c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111445
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: If005139571e46fbf8aedb37e2626c54a43853fd5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111483
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
This allows the VCL backends the apply the extra alpha transformation
as it sees fit, rather than it being done manually elsewhere (and
even if the backend doesn't implement it, at least do it in one
place in the function).
With the document from tdf#136223, going from slide 2 to slide 3,
this easily saves 10-30% of CPU cycles. As an additional bonus,
using AlphaMask::BlendWith() rather than AlphaMask::Replace()
makes edges of shapes noticeably more smooth.
Change-Id: I036dc9b887d6def0c7cdad3982becabdc7cd5206
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111247
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
At least with Skia this is faster than GraphicObject trying
to handle it manually, even in raster mode.
Change-Id: If77d108751f5621878d4ea87a996c2ea0253d111
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111246
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: I9587d97fbdd73844590fd6380e594ec7b4f4df14
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111441
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Win32 API PeekMessage() actually may deliver events, despite
what the name may suggest, even with PM_NOREMOVE argument.
That means this is problematic for use in AnyInput(), as that
function should just check the event queue but not do anything
with it. Using GetQueueStatus() should solve the problem.
See https://lists.freedesktop.org/archives/libreoffice/2021-February/086788.html
for further details.
Change-Id: I10d3423f89f6f050534625110113dee60959f7a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110718
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Jenkins
|
|
But GetMessageW encodes more than true vs. false in its BOOL return value, so
silence the unhelpful loplugin with auto.
Change-Id: I77d053b760e93f918367532c63a6dfe963faa12d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110645
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
we end up trying to process a timer message, but from inside
the vcl de-init function, which means the timer stuff has already
been de-initialised.
Change-Id: I94703219754f1ccabd3065fc5ea437f39264197b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110397
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ie9dab2d4813b986bf7eb4e2f7dee37171e9be9fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110162
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
GetMessageW returns a BOOL with three defined return values; a
bit unexpected (-1 = error, 0 = WM_QUIT, * = dispatch message).
So this tries to handle the non-dispatch results in some way.
It's not clear for me, if there is some sensible way to "recover"
from an error, but from all I've read it doesn't look like it.
"Recover" means in this case, that the last call failed but next
call may still succeed without changing the parameters.
Change-Id: Ib1f366c7ce8b48158d1935938b49d8da991b30e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110043
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
While looking for some reason for multiple ABORTED Jenkins runs,
presumely due to unprocessed Idles, I found the ImplSalYield code
way too hard to follow, so this restructures the PeekMessage loop
and adds some better comments to make that easier.
We now bail out a bit earlier in m_nNoYieldLock mode and also
account for eventual tick wraps in single message mode, which
isn't needed, as we already just process one message, but it
removes additional conditions and further simplifies the code.
We also now explicitly report GetMessageW non-message return
codes.
Change-Id: Ibd745d5540dd9998570ece9aeb0d37886b627eb7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110042
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Missing from commit 9613165239ade3f0b4d3d06e238430aabc9fcff3
("WIN move dtrans code into vcl/win/dtrans").
Change-Id: I257017ae617f72c3ce48828ee34e9246af08fd8b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110073
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Ie66996f905fcb68ee413171c8727cb42dcb28dbc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109178
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I79949789634242eb95cc722bab83e0348775f274
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109174
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
This reverts commit 9617bc9544cd569066ff187c3672a87fe28fe17f "WIN replace
clipboard update thread with Idle" plus follow-up commits
f5ab8bcbfd20ecce4a358f62ee3f81b8b968a5de "WIN don't notify clipboard change with
SolarMutex" and c921f9bd64187823af2356d7a8ceb77444c17219 "Release solar mutex
before using an apartment-threaded COM object".
The Gerrit Jenkins Windows builds had started to abort after timeout for almost
all builds now. Going back to before the youngest of the above three commits,
c921f9bd64187823af2356d7a8ceb77444c17219 "Release solar mutex before using an
apartment-threaded COM object" did not improve things (see the
<https://gerrit.libreoffice.org/c/core/+/109100> "Test build #1, DO NOT SUBMIT"
chain, where three out of three of the Gerrit Jenkins Windows builds timed out).
But going back to before the oldest of the above three commits,
9617bc9544cd569066ff187c3672a87fe28fe17f "WIN replace clipboard update thread
with Idle", does look promising (see the
<https://gerrit.libreoffice.org/c/core/+/109155> "Test build #7, DO NOT SUBMIT"
chain, where three out of three of the Gerrit Jenkins Windows builds succeeded).
So the hope is that reverting all three commits brings back a green master,
allowing us to understand and fix the actual issue later.
Change-Id: Ie83ba742f216396b49f561d19c2cda7758740502
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109158
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
See https://lists.freedesktop.org/archives/libreoffice/2020-December/086448.html
for motivation
This partially reverts f5ab8bcbfd20ecce4a358f62ee3f81b8b968a5de.
Although this change is questionable, it's intended to avoid
crashes (tdf#139074); a better fix should replace this eventually.
Optionally releasing a lock isn't a good API and might hide other
bugs, but the better solution to handle all requests in the main
thread would need an even larger rewrite of the Windows clipboard
code. It's simply too late for that in this LO release cycle.
Change-Id: I60e847599fe873025c9903b9d6290ed4cdf4a961
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107669
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
This removes the need for OutputDevice::ImplIsColorTransparent().
Change-Id: I8f98199c5ce1c171c453b6897f27eacbd53f1eea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108248
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Split class functions into BitmapInfoAccess.cxx, BitmapReadAccess.cxx
and BitmapWriteAccess.cxx
Split header files into BitmapInfoAccess.hxx and BitmapReadAccess.hxx
Change-Id: I7dcbe1d26c5b64d297658a6b809c93d7ad7f053d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108039
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Regression from commit 52a7eb58f5c137b6de76cc49be07dd43c42a6d6c
("WIN replace clipboard update thread with Idle"). Previously the
notification was done without the SolarMutex. Now it's run via
an Idle and SolarMutex is required by the Scheduler, so release
it. Foreign contents is again protected by the clipboard lock.
And also unlock the SolarMutex in getContents, to prevent a
deadlock in the clipboard STA thread, if it's already processing
other request, like CXNotifyingDataObject::GetData, blocking on
the SolarMutex.
Change-Id: I6855b045b3065289ec7833498f6785ee31eda61c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107675
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: I27d28ebeca8425b7750996edae0cf704b5626c49
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107739
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Ie36d7c4dfee5115b5909ed58a0b16b367e05866d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107734
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I91e5a469344ab951225e61237b462ed58ed796be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107733
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Since "forever", SalAbort has been declared as non-exported in
vcl/inc/salinst.hxx and (only) called from Application::Abort
(vcl/source/app/svapp.cxx) in Library_vcl. Its various implementations for
different platforms have always been scattered across Library_vcl.
For Windows, SalAbort was originally implemented in vcl/win/app/salinst.cxx,
until 1698debed2993fc5f262aa3ebbdb32fc112ac556 "Implement Windows VCL backend as
plugin" introduced an incompatible implementation in vcl/win/app/salplug.cxx
(which was added to Library_vcl) and moved the original implementation in
vcl/win/app/salinst.cxx from Library_vcl to Library_vclplug_win, where it thus
became dead code (and where it now gets removed).
For macOS, SalAbort was originally implemented in vcl/osx/salinst.cxx, until
3af4e1a0825c5b11ae4ef58fc411378aab669387 "Implement MacOSX VCL backend as
plugin" introduced a different implementation in vcl/osx/salplug.cxx (which was
added to Library_vcl) and moved the original implementation in
vcl/osx/salinst.cxx from Library_vcl to Library_vclplug_win, where it thus
became dead code (and where it now gets removed).
(In 0f3be2e19fa408d7069d586ccf04cb3f3eccd6b9 "Unify sal plugin loaders", the---
identical---new implementations in vcl/osx/salinst.cxx and
vcl/win/app/salinst.cxx where then consolidated with other---also identical---
implementations in vcl/source/app/salplug.cxx.)
For macOS, the original, now removed implementation in vcl/osx/salinst.cxx and
the consolidated implementation in vcl/source/app/salplug.cxx only differed in
an added
CrashReporter::addKeyValue("AbortMessage", rErrorText, CrashReporter::Write);
which is presumably harmless to add.
But for Windows, the original, now removed implementation in
vcl/win/app/salinst.cxx differed substantially from the consolidated
implementation in vcl/source/app/salplug.cxx, which is updated here to reflect
those differences. The one thing that cannot easily be updated, though, is the
//TODO: ImplFreeSalGDI();
call, as ImplFreeSalGDI is defined in Library_vclplug_win. I'll thus leave
fixing that TODO for another commit (if calling ImplFreeSalGDI from SalAbort is
even necessary, given that it ends in FatalAppExitW anyway)---my gut feeling is
that the whole 1698debed2993fc5f262aa3ebbdb32fc112ac556 "Implement Windows VCL
backend as plugin" was somewhat misguided.
Change-Id: I641a3d7b1bc27ae14c38eb1ec0838bc04e4290d2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107666
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I346cf6cf148cd3b4ac851f8c441d54c858f55935
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107674
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Little "fallout" patch when moving code from /dtrans/** to
/vcl/win/dtrans and merging CWinClipbImpl into CWinClipboard
while I tried to reproduce tdf#62196...
And since we now process the notification in the main thread, we
can get rid of m_pfncClipViewerCallbackMutex, which brings us down
from 6 (!) to 4 mutexes (if Mike counted correct) in the Windows
clipboard code... ok, technically the scheduler / Idle adds its
mutex to this count, but that is not related to the clipboard
handling on Windows ;-)
This also moves the UnregisterClassW into the OLE thread, which
already calls RegisterClassW, to be more consistent.
This now also gets merged, because it seem to fix a deadlocks when
running CppunitTest_sc_macros_test in a loop, which is unclear
where it comes from and I can't reproduce. Tinderboxes and Gerrit
also still seem fine.
Change-Id: Iacbda0bdf6c98f27f6e59964d541524cb45ade24
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107168
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: If7f47cf6dad860e4f8eab68931b72a38a7eda136
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107362
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
The code for separately rendering glyphs was used only by OpenGL
code (and temporarily by Skia code).
Change-Id: I8eee764045273705c108f3734b330a2237de15f7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107291
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
It is by now practically unmaintained, even bugreports in bugzilla
have been already closed for it. AFAICT this used to be really
used only on Windows, where it's no longer the default.
There's still some OpenGL code left, because there are still two
other places that use OpenGL. One is OpenGL slideshows, which
reuse some of the base OpenGL code (and I've checked they
still work even after this removal). Second one is OpenGL canvas,
which it seems has never been finished or enabled (or so it
most probably should be dumped too).
Change-Id: I7ea5aef77ec252eb8e712d167db591209be84a13
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107290
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: I4d2955576925ef6d44b32447d953dc75bf41cf37
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107293
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
If Skia and OpenGL are disabled, rendering in edit mode shows no round
dashes and dots on Windows. This becomes especially visible, when
importing OOXML documents. In that case it looks as if dots are lost.
The patch uses now Gdiplus::DashCapRound instead of the previously
used Gdiplus::DashCapFlat, and it adds a similar tweak as in OOXML
import and increases the dash length by the cap size for rendering.
Change-Id: I98a258809ef253a2cacb7c5c94f2b26b89ee2488
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107181
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I6800e23ead2767d245d5da71d2d40e0f8a6d7e1f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106859
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...as they are only ever set to LO-/HIWORD values cast to a signed integer type
Change-Id: I82f9a80bab7c3b7e3ee5545725efd0d88601b8c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106755
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Ie09e0150bf73efd552e3a3b455ffc395d6b6370c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106754
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I8c0ad0878903c729be7149f81f5844a4baea7883
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106753
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Iec7e8e84b8a6ee9e4ddbbbf5708bf9040418bbb0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106752
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I1ee167ef1bca530be9399dd081d7d25bd4155794
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106750
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I1e8c02a4fdb42a7bbc25764ceaf96972f175130a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106751
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I4e886d1d5f94f8a25591c41e9f03300cfba641dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106729
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Ib3e8e89332399eba443d9ff291f694cfceb95af1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106726
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
MSVC seems not to mind, but a Windows 64-bit build with clang-cl fails with
"error: non-constant-expression cannot be narrowed from type 'tools::Long' (aka
'long long') to 'LONG' (aka 'long') in initializer list". But adding explicit
casts would have the downside of preventing tools like
-fsanitize=implict-conversion (if we ever use that on Windows) from detecting
truncation, so introduce o3tl::narrowing.
Change-Id: Ia33a9ae4d8134b5ad0c8b7cf6812fbdd625ca89e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106577
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Ia162ad5b7499c0ddfdbfca59ae76b81335ce2d45
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105728
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
|
|
...more likely to pick an appropriate version for the involved integer types,
esp. after the recent long -> tools::Long changes
Change-Id: Ia91259ca35aaf74b0e907de6831fc926f30057f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105949
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
<caolan> that "SalPoint" doesn't really seem to to have a purpose
except to highlight that "Point" is assumed to use LONG under windows
and can be passed unchanged to those windows drawing apis
<caolan> so I guess remove SalPoint entirely, use Point instead,
and convert to "POINT" under windows ?
Change-Id: Ic15a7f4516e2075a228fa65cac4e8494d5b3abaa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105634
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ieeef0309faa77558fb30fceaed83ad97fb6e26ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105590
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
found by grepping and changed by hand.
Change-Id: I3c720859dba430fde3abc76c6c5cb58269efaf4b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105512
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This is only for the 64-bit windows platform.
I don't see the point in messing with the 32-bit platforms, they are
(a) become more and more rare
(b) unlikely to even have enough available process memory to load extremely large calc spreadsheets
The primary problem we are addressing here is bringing
Windows-64bit up to same capability as Linux-64bit when it
comes to handling very large spreadsheets,
which is caused by things like tools::Rectangle using "long",
which means that all the work done to make Libreoffice on 64-bit
Linux capable of loading large spreadsheets is useless on Windows,
where long is 32-bit.
The operator<< for tools::Rectangle needs to be inside
the tools namespace because of an interaction with the cppunit
printing template stuff that I don't understand.
SalPoint changed to use sal_Int32, since it needs to be
the same definition as the Windows POINT structure.
Change-Id: Iab6f1af88847b6c8d46995e8ceda3f82b6722ff7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104913
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
grepping for stuff in template params this time
Change-Id: Ia37bfd85480b3a72c3c465489581d56ad8dde851
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104855
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
partly to flush some use of "long" out the codebase,
but also to make it obvious which units are being used
for angle values.
Change-Id: I1dc22494ca42c4677a63f685d5903f2b89886dc2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104548
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|