Age | Commit message (Collapse) | Author | Files | Lines |
|
drop hint of previous window to get mouse wheel event
when that window is disposed in order to drop any
references to it immediately that happens to avoid
anything else lingering too late
move the VclPtr into ImplSVData alongside the rest of the things like this so
we can remove the static VclPtr which itself replaced a relatively harmless
static Window*
(cherry picked from commit bdfccfde308f0267965933a8273e6e9201a2c67c)
(cherry picked from commit 35205c6e3e2f85d9b7db935689ec949c98e7e431)
Change-Id: I1e172071b711b6e4ded9a813ee3de730d3dfdf38
Reviewed-on: https://gerrit.libreoffice.org/26337
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit f7ad46993279d1da56980fc100b3961e5e349400)
|
|
Every time the periodic timer fires, it does a PostMessage() to the
main thread. The main thread will only process the first message and
discard the rest anyway, but with a short enough timer and other
threads hogging the SolarMutex it's possible that the message queue
overflows and other PostMessage calls fail with ERROR_NOT_ENOUGH_QUOTA.
Try to avoid the problem by having the WinSalTimer always be a one-shot
timer; when it fires and the main thread processes the posted message,
it is restarted with the new due time.
This requires creating a new TimerQueueTimer because
ChangeTimerQueueTimer only works on periodic timers.
Change-Id: I816bd3fa5fbfbea4f26be8ff680a1c916618d3f9
Reviewed-on: https://gerrit.libreoffice.org/24024
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Reviewed-on: https://gerrit.libreoffice.org/26257
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit 25ba37abcc8ad381be6038ddb332dd60d3dcf4b1)
|
|
Currently the Windows-specific method ImplSalYieldMutexAcquireWithWait()
uses a messaging mechanism to learn about the SolarMutex being free again.
This is not reliable when the MessageQueue overflows (MS allows 10000
messages per queue). It is more safe to use MsgWaitForMultipleObjects.
This also allows to not only wait for the SolarMutex to be freed, but
also to detect when SendMessage() is used which needs to lead to a
reschedule to not block current Window handling.
Change-Id: Id317dda62aaa1fe7677d8d28929e6936e5a22705
Reviewed-on: https://gerrit.libreoffice.org/23921
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Reviewed-on: https://gerrit.libreoffice.org/26256
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit 69fa1e78febb4991e8e8b8b53ddf5b2d4f7e9f00)
|
|
these menubar things can be menu things and can then do
away with the casting, no logic changes intended
Change-Id: Ibb1b5354d5e1483327f172d6890e134f1e4b9ee4
|
|
drawAlphaBitmap didn't use a high quality scaler for scaling
the texture but used the default scaling method in OpenGL (either
GL_NEAREST or GL_LINEAR, whichever is defined when texture
is created) which are low quality scalers - especially when
downscaling textures.
Change-Id: I6236b2ee92b9e5044b176a40a444027072b09b58
(cherry picked from commit 19baa61e1d7b140b9e24717f7080617ab3d324d4)
Reviewed-on: https://gerrit.libreoffice.org/26100
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit 86fef4ea205f3001305a6122bfa127b196e2d345)
|
|
(cherry picked from commit 1d18db339242a535d956b7e944ad1488fd2b4fd8)
Change-Id: I926881bcfa4911f3d7f4899711be44a2f6d82026
Reviewed-on: https://gerrit.libreoffice.org/26087
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
(cherry picked from commit c55d703ea00de67793765f8da7ca17dfb54281fc)
|
|
Change-Id: I29863ca95e64ccd31795f78c29c89ff35009d718
(cherry picked from commit f120abb446bf3f5230ed06a3b148654dde36bb94)
(cherry picked from commit f7b0cbf1df98a1c42fe25cfdbd9977fba78347c8)
Reviewed-on: https://gerrit.libreoffice.org/26057
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
(cherry picked from commit 62a30dd22805eab1785703114ebf060a00cf9170)
|
|
In the pre-init stage the devices were initialized with no
font list, but later the font list is updated. So those devices
were not updated.
Change-Id: I157d4c7079f9b1252916eb92b512aadb8e77329f
(cherry picked from commit 260f3ff257d7839119c8221397d18a516afd8799)
|
|
Change-Id: I2ae50c826f7fc66367a379447ab3b99cd1f29b4d
(cherry picked from commit 205b2be73a970508fda071310f26c0e1156da057)
|
|
In the preinit stage, the Desktop terminate() method is never called
when lo_startmain thread is disposing objects. This produces debug
assertions and osl assertions.
It is forced to call terminate() method, when a tiled rendering case is
active then it has a clean disposing objects process.
However DBGGUI_DEINIT_SOLARMUTEXCHECK() check is moved at the end to
prevent debug assertions solar mutex complains.
Change-Id: I4a9b6398296d9150ab748a8d48868a08e7232909
(cherry picked from commit ba29b6ddf4c079a93a8484e95aa42daf2b54a54b)
(cherry picked from commit 58c4cd90d34aab5eb13380ef05d67ea7d2aaa225)
|
|
In the preinit stage, the VCL initialization is done by the parent process
and when the lo_startmain thread de-initialize the VCL, some services are
disposed early, and it causes segmentation violation.
So it is ensured that pointers to service objetcs is set NULL after the
delete.
Change-Id: I65ecfc2d2694a981ec2986988efabdfd28d0cce4
(cherry picked from commit fca0980ec866279cc40ed1233bbddb2e4abe2fae)
(cherry picked from commit 48eac22cce93c08d13022a7215b9549379453695)
|
|
In the preinit stage, the VCL is initialized in the parent process
and when the lo_startmain thread is started, the thread initialize
VCL again.
It is not necessary to initialize twice.
Change-Id: I819cf0125afe7760c3f4d91c420d36a3a383902c
(cherry picked from commit f0f7eb475ba402ceafa1d6f1956e7dfe7779615d)
(cherry picked from commit 19349554e77a23c0cb551b886f51e854ca174df0)
|
|
Conflicts:
vcl/Module_vcl.mk
Change-Id: I1b095586b66fbbe582b0e7266609895bb288c6fb
(cherry picked from commit bb431cd1e089aa5f4f7d28bdd07e594dacaaaf0d)
|
|
This reverts commit 5deedec2ab708b841d0d696c8039c7fbcd4e62a7.
It is a bad idea to use Ctrl+Alt accelerator keys.
It fixes tdf#97908.
(cherry picked from commit df00c67da8e8701179dbe66efa00e4a795d51700)
|
|
Change-Id: Ib0eaba0767ff18d03464ba7d1ec1ffdd2ba3ca78
(cherry picked from commit 55066180e80b77cdf8520b11cc60dec73c6e0d58)
|
|
Change-Id: I8988a42e7e505c967661c4a5f3c1e4ef3fbc08e0
(cherry picked from commit f89b9d8b8064a2f323f5b3362f88cb873bad8fcc)
(cherry picked from commit 7def34c0f013b0c9ac1b8ee39e800577bfa800e7)
Reviewed-on: https://gerrit.libreoffice.org/26125
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit 11ca1ad43cc2def184ff7629e3880ccab6b8a1f1)
|
|
to give traditional amounts of scroll on a single mouse wheel event
ditch non smooth scroll events now seeing as apparently they are always
available so the other types are irrelevent now
if we get x and y scroll, then like macosx just dispatch x and y scroll events.
Note: there seems to be a bug in the stack below us where the first scroll
event after getting focus is one of a 0 x and y delta. Because we now check x
and y against 0, we don't launch a scroll event in the case of a 0x0 scroll
which stops us occasionally appearing to go backwards on the first scroll after
getting focus. Which is the same thing I see on e.g. gedit, the first mouse
wheel scroll after getting focus doesn't actually do anything.
(cherry picked from commit 0159ef4fbfd23ba97b20f97eb0677564bebd4ee7)
(cherry picked from commit 23ba7c6c05d6331815a05a01d657f5e30b3bc252)
Change-Id: Iec8f2e4627cd84e3896270a0847a5c4907fa083f
reported abs narrowing complaint
Change-Id: Icd27fea97e720607263e5f8a2d233c462f979e1b
(cherry picked from commit f75ead4293d3b9d63f2596d66c411c44c0c70f38)
(cherry picked from commit 6ad72c9c613766aabc15abaa676f5647b724b12b)
Reviewed-on: https://gerrit.libreoffice.org/26101
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit d0ccf67442a14a1d48435954865c42af744a5117)
|
|
Change-Id: I8634589bc0c8ef317089eb08c07974ed81d98982
Reviewed-on: https://gerrit.libreoffice.org/26050
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
(cherry picked from commit 8a94e538c3306b2af1a76c724e4dcae0e3968164)
|
|
Change-Id: I12b45b499bdf2041d6b50fa85e30612916462b3e
(cherry picked from commit 2cf09f0dcfa4b24a6c3c5560aa82b72a95a7b41b)
Reviewed-on: https://gerrit.libreoffice.org/25822
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
This filter reads entire structs at a time from the SvStream, including
structs that are derived from other structs. This happens to work fine
with GCC by chance, but MSVC AMD64 by default aligns structs to 8 bytes,
and that means if sizeof(super-stuct) = 20 then 4 bytes of padding are
inserted and that ruins the import.
This causes vcl_filters_test to go into an infinite loop reading
SaveAsPicture.sgv.
Fix this by reading each member of the structs separately, which also
means that the filter doesn't need to byte-swap every member on
big-endian platforms since SvStream methods already do that.
Change-Id: I237725dbcde5232006728179e645776fcb79cac3
(cherry picked from commit af8509fa194e6747c82a9df9a1c465be82a32637)
Reviewed-on: https://gerrit.libreoffice.org/25830
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
__LP64__ is not defined in MSVC AMD64 builds, since it doesn't have
64-bit longs. This caused the vcl_filters_test to fail because loading
the file for which that check is a work-around succeeded.
Change-Id: I4df48d4b196a1d08e9bd5ef61b64ec63501037c9
(cherry picked from commit f6ed2305abb0289ad51605ceeaee607a0bc8d7bd)
Reviewed-on: https://gerrit.libreoffice.org/25829
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
When feather is 0.0 (used when anti-aliasing is disabled) then
we get a "division by zero" situation. As per OpenGL secs. the
shader should not fail in this situation however the result is
undetermined. Most GPUs handled this correctly but on some the
lines didn't draw at all. This should fix this issue.
(cherry picked from commit 7aae883b90850af3f3a0aaada5704682f77c3d02)
Change-Id: I56ca2f10c393491807321969c72085ef7690d16a
Reviewed-on: https://gerrit.libreoffice.org/25810
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
This is a combination of multiple commits in master, adapted for this
branch as necessary:
Don't claim to be reading a file before trying to open it
Avoid redundancy: The same information was logged in readProgramBinary()
Use VCL_GL_INFO here
Failing to open a cached shader binary is a no reason for a
SAL_WARN. It is normal that they don't exist when first trying, that
is the very nature of a 'cache'.
Move exithelper.h to include. We will want to use EXITHELPER_NORMAL_RESTART
in vcl, too.
If the shader compilation or loading of an already compiled shader
fails, disable OpenGL in the registry and exit with the
EXITHELPER_NORMAL_RESTART status. The wrapper process will thus
run soffice.bin once more, and this time OpenGL will not be used.
Change-Id: I54d92f150975d3fa72d93f3f679b16c90ee38f02
Reviewed-on: https://gerrit.libreoffice.org/25708
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Low priority idles can fire more or less randomly, and consequently two
consequent runs of LibreOffice differ in the amount of the idles that have
been performed during an operation.
This commit adds a possibility to turn on a 'deterministic mode' where two
subsequent runs of LibreOffice trigger about the same amount of events when
they perform the same set of operations.
Change-Id: I92566ef4eee20e7d604cfd48f01c4df30c77e653
Reviewed-on: https://gerrit.libreoffice.org/25712
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
|
|
(cherry picked from commit ab0dc9524a36a394e97df9499bf1f5e4b94cfdca)
(cherry picked from commit c845c7bf597caa11b1617ab71029c499819028bc)
Related: tdf#92695 we already have ImplGetItem from mnHighItemId here
no logic change intended
(cherry picked from commit c380f0fc125f50ad8efca2ce032d3d2a67d78f0a)
(cherry picked from commit df668868917d1dac11d49f1f650c43666fadea54)
Change-Id: Ide54fddf7b217e65a405bd80853d5302a419f046
a53a21db56c857e1274c60f846fc955fef9e3dfb
Reviewed-on: https://gerrit.libreoffice.org/25711
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
AMD drivers don't work well if a shader has a defined but not
enabled shader attributes. For this reason we need to make sure
that all attributes are set to some value even if the shader
doesn't use that attribute. Intel drivers, on the other hand,
crash if you enable an attribute and don't set it (set it
to null) - so we can't use this workaround.
(cherry picked from commit fdcd13c1c2b8b9fbc3480c8fa92920d8c8d4e5a7)
Change-Id: If0abcfb664c3b71bb657b9a810d2d2a14fe5d9b4
Reviewed-on: https://gerrit.libreoffice.org/25592
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
on drop that it set on drag. It does some uno tunnel foo to drag the data it
needs back out of it in some grotesque fashion.
So we have to follow the same style of hackery as under MacOSX to detect
on drop that there is an active drag started by ourself and so use that
active drag's transferable as the source transferable for the drop, rather
that use the intermediate universal GtkDnDTransferable.
Change-Id: I3c3a94416db908603bde8f15dc5b1c9d726b8dbd
(cherry picked from commit 73f84ab139cb1d2564f9292fba08d69a0ab822c1)
(cherry picked from commit 6f41a9b06219c2d8e176f84a5ae4b80b22dc9ce5)
Reviewed-on: https://gerrit.libreoffice.org/25659
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
|
|
Change-Id: Iddd18280c780d8b9f5e11fcc2af80749917192c4
(cherry picked from commit a9d2302d4d0732a0c1203bbb7c0182b8de59403d)
(cherry picked from commit 6fb88a0c67150a751f59ebcba5f5419b24e6f4a7)
Reviewed-on: https://gerrit.libreoffice.org/25533
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
(cherry picked from commit 81a8d1250319023f6ca272e0b233ef638cae40f7)
Change-Id: I1feca80dd75f7a09e05ac43293e8645da391a775
Reviewed-on: https://gerrit.libreoffice.org/25436
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
Rendering polylines, polygons, polypolygons which take an array
as parameter ("legacy" code) can re-use the other, already
existing code paths (same thing as "headless" svp backend does).
(cherry picked from commit 6473093d4f6ee7d06905ddd71c90180fcffb0bef)
opengl: use line shader for all line drawing not just polylines
Line drawing using the line shader was used only when drawing
polylines. With this commit every line drawing is using the line
shader. This gives a marginal performance win and removes the old
code for doing anti-aliased line drawing.
(cherry picked from commit c8fc1f40ad8e20af32574e0aa73bdec51ae64e14)
opengl: combined shaders to reduce shader switching
Combine most common shaders for non-texture drawing and texture
drawing into two combined shaders. Inside the shader we switch
between the code paths with if statements.
Using if statements (or any other branching statements) is
discouraged inside shaders but on the other hand we reduce program
state changes if we have less shader changes - which is more
important for us as we want to push more work to the GPU.
(cherry picked from commit 3cac38b2311538a0aecca765eb62c30c5098a85c)
Change-Id: I19a486b6f65b1c4db0b15a54e5e4d12f42a9f6d5
Reviewed-on: https://gerrit.libreoffice.org/25382
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Remove the subdivider we used until now as there is a better
way to subdivide a polygon with getDefaultAdaptiveSubdivision,
which in additiona also caches the result. The subdivider used in
getDefaultAdaptiveSubdivision was a limited count based subdivider
so this exchanges that with an angle based one which gives much
better results.
Reviewed-on: https://gerrit.libreoffice.org/25033
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit 37ed508022e0be8b793caa4748cfee634c1c8a9c)
Change-Id: I95c009ccf3d54305df0d8eef177cab0df0a23bea
Reviewed-on: https://gerrit.libreoffice.org/25381
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
This adds tracking of GL_BLEND and glBlendFunc which are usually
set when setting up the current draw call on OpenGLProgram with
SetBlendFunc method.
Until now the final draw call (glDrawArrays) was called outside
of OpenGLProgram. This is a problem because we need to know if
we did call SetBlendFunc or not between when we used or reused
the current program. So we added DrawArrays to OpenGLProgram and
refactored all draw calls in OpenGLSalGraphicsImpl to use this.
From now on glDrawArrays should not be called directly but always
through OpenGLProgram.
(cherry picked from commit e480b2cf3e362760de8e35cbb950104e47ebe7ec)
Change-Id: I530b4b948af8a962669a3751e1a95ff3986ffec9
Reviewed-on: https://gerrit.libreoffice.org/25359
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
... because they are also used internally by vcl controls,
so we want let those controls handle them when they are
focused.
[VCL_NSApplication sendEvent] is more natural place for
this probably, but doing it there we'll lose the "blinking"
effect of the menu bar, even when the focus is in the
document area. So try harder, and handle it inside the menu
code. If this will create any trouble, we can always switch
to the simpler solution.
Change-Id: I827ab0585aabe1ed53fc31c5b8e1dddadef3361d
(cherry picked from commit 0975b5e4bdcd564b38b244589a44f5dd6cbdc63d)
Reviewed-on: https://gerrit.libreoffice.org/24915
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I34e87ac580aa1ddb6bc3851bbe99689189c787f6
(cherry picked from commit 9f0e3802e621fb02efde1778c151b93630cdd2fa)
Reviewed-on: https://gerrit.libreoffice.org/24912
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
For some reason, in this branch, when OpenGL is used, the fixes by
Michael Stahl to make the code avoid non-scalable fonts don't work,
and text that uses the old 'MS Sans Serif' raster font just doesn't
show up at all. Fix this by bluntly using the metric equivalent
'Microsoft Sans Serif' instead.
Change-Id: I218328b0515ee0eb1b5a4a12ace7036322efbbaa
Reviewed-on: https://gerrit.libreoffice.org/24951
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
Having SolarMutexReleaser effectively do Reschedule() on WNT and not on
other platforms doesn't seem such a good idea. Let's try to restrict it
so that it still calls ImplSalYieldMutexAcquireWithWait() but no longer
dispatches messages, timers and idles.
(regression from 482c52e91fe41a52e68827e9bf64a9736427d517)
Change-Id: I52a2c88e9c2473e35909bf270b9e3ae7acbe0d17
(cherry picked from commit ea3ce0b3073c72f474365e438ddabd19de915b76)
Reviewed-on: https://gerrit.libreoffice.org/24623
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
"GtkScrollbar:min-slider-length has been deprecated since version 3.20 and
should not be used in newly-written code.
Use min-height/min-width CSS properties on the slider element instead. The
value of this style property is ignored."
sigh....
Change-Id: I0fe44b0a3dd31bd60c07f58ae5245496a7463fe2
(cherry picked from commit 2f5bba2511ef5ef3ad92f8f9547e25128570c324)
Reviewed-on: https://gerrit.libreoffice.org/25031
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
|
|
... which is surprising, but means that these arguments are too small.
(cherry picked from commit 5a7b0d2c7f3a305eb5f4eb629c0a08a256cc9ae3)
Change-Id: I9c58e7fefa30d19c701df4f04043ddb474b28986
Reviewed-on: https://gerrit.libreoffice.org/24947
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
|
|
For some reason, in this branch, when OpenGL is used, the code crashes
when attempting to display a Writer document that uses a non-scalable
font. With this change, instead of the crash, text in such a font
simply doesn't show up. This of course is not acceptable either, but
better than a crash.
Change-Id: I702a48fe78f2bec303aa5682dde0035275a7bb26
Reviewed-on: https://gerrit.libreoffice.org/24946
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Look not only for fonts with rotated glyphs (where the first character
of the face name is '@') but also for font objects with non-zero
orientation or escapement in general.
(cherry-picked from the commit 43c95611d2621d1f2f9d60b26c07aad25c62baed)
Change-Id: Ia88d38010e52ada8193f2b8057d9f3250108e9f1
Reviewed-on: https://gerrit.libreoffice.org/24929
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
|
|
Since we don't need cairo's svg feature, and we build internal cairo
with --disable-svg. Also remove commented-out codes which use svg.
Change-Id: I5a8e8c672588bb6eca28696f21221770972ec3d3
Reviewed-on: https://gerrit.libreoffice.org/23456
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit f9ddd6e317a7bfd662516d197c3caea976aef3b3)
Reviewed-on: https://gerrit.libreoffice.org/24890
|
|
(cherry picked from commit d22ca8d8cb050b9006720f39c612c5c32eab8795)
also includes coverity fixes from commits:
coverity#1358428 fix "Null pointer dereferences"
4e07c7e279b21c4ae93b832a65e221e2dab5391d
cid#1358836 reorganize to silence Resource leak in object
6e970c11645f1a05638e49da9e2911fe59628838
Check if we have an OpenGL context before using API that requires it
347e46da399b8cc96d9dd8dbfd62120db473b555
opengl: Check if texture is valid before asking for Id
0214aa8ce427905477602dbf1d55278c4959fcac
Change-Id: I830e313352b69a7665bff953aadb1334be0dc847
Reviewed-on: https://gerrit.libreoffice.org/24829
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
|
|
Direct 2D accepts colours specified as UINT32 ARGB values or
floats. However GDI presents colours as COLOREFS which are 32 bit
FBGR (F is a flag not an alpha) values. Passing a COLORREF to
D2D1:ColorF swaps the red and blue channels. This patch converts
the COLORREF into RGB float triples using the GDI colour macros.
Change-Id: Iee5c00bfb10fa8771a2a1019976f70633cca4094
Reviewed-on: https://gerrit.libreoffice.org/24819
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Martin Hosken <martin_hosken@sil.org>
Reviewed-on: https://gerrit.libreoffice.org/24823
|
|
Includes commits:
opengl: track state of active and bound textures in context
ba0a5708803d899de4c40cfe2c1697ae83b4827a
opengl: track the state of scissor test and the dimensions
51e953a3579fb91f30f7f0d6159b737684976959
opengl: track the state of stencil test
b8f0e6452cc019744c44997c92831d94086b35b7
opengl: sync scissor and stencil state, generic capability state
a57d048f88ba6cac3ce1550e2a8a143a8887eb05
opengl: track the state of glViewport
540fee2dc7553152914f7f1d8a41921e765087ef
Change-Id: I770a6a744c0c41850c576b928f027375962088aa
Reviewed-on: https://gerrit.libreoffice.org/24508
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: David Tardon <dtardon@redhat.com>
|
|
so active tabs don't look active without this on recent gtks
(cherry picked from commit 235411c9d47ecba88e46d859ea93bcecefb0c46e)
Change-Id: Iafa1e65fb0cc096513cdfe12a09fb0ef4c4d2db0
Reviewed-on: https://gerrit.libreoffice.org/24651
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
|
|
Change-Id: I58e4a63bce17b880a97c7ccfb4d42dfb930e54c5
Reviewed-on: https://gerrit.libreoffice.org/24268
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit eca3455190ed9a2c4796e7954f2533dc71cd1ab6)
Reviewed-on: https://gerrit.libreoffice.org/24654
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
|
|
Image flipping can be processed following different code paths in bitmap.cxx.
Has been verified that it was broken in Linux Mint (with cinnamon) because
there a buggy code path was chosen which was not fixed
in commit 3119440a80282692640378fde5e37974ab63f096 in master.
This commit solves the problem for this code path
Change-Id: I22257e70761ca5469c0424b5f9925681cfd4e2e3
Reviewed-on: https://gerrit.libreoffice.org/22753
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jacobo Aragunde Pérez <jaragunde@igalia.com>
(cherry picked from commit 1e3d634e413abf2b4c2a6c70a87586d8c598054c)
Reviewed-on: https://gerrit.libreoffice.org/23852
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
It seems that D2D1DCRenderrTarget cannot bind to a DC on a printer
device. Now whenever that attempt to bind the DC fails we run the
legacy API path as a fallback.
Change-Id: I6ad8d82e5280fd2dcf669310bab0f5bfc23a138a
Reviewed-on: https://gerrit.libreoffice.org/23366
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Martin Hosken <martin_hosken@sil.org>
Reviewed-on: https://gerrit.libreoffice.org/24603
|
|
Originally in 2004 commit 0339e43208cd7b98d302e420b39ac32911acaa56 added a
"DBG_ASSERT( GetOutDevType() != OUTDEV_PRINTER, "DrawImage(): Images can't
be drawn on any mprinter" );"
Recently commit f749ffbdf4c007f1a42bcafc9c2723c47bac22d1 made the mistake
of trusting this assertion to be correct and added Printer::DrawImage()
overrides that do a hard "assert()" now and don't do any drawing.
Armin claims that the implementation of OutputDevice::DrawImage() should
actually work for Printer as well due to fall-backs and thus the
original DBG_ASSERT was misleading.
This matters when printing documents that contain form controls
such as ImageControl.
Additionally, Image::Draw() should not return early when
IsDeviceOutputNecessary() is false, because that is the case when
printing, where instead a meta-file is recorded.
The called OutputDevice::DrawBitmapEx() will check
IsDeviceOutputNecessary() internally anyway.
This check was actually always there, so i do not understand how this
should have worked in LO 4.2, as the bug reporters claim.
(cherry picked from commit ef52ce82bf55b37279e344ea5fef67b4277fb009)
Change-Id: I92ba19e7036197d1dde88c361f8e1cb59fae3a60
Reviewed-on: https://gerrit.libreoffice.org/24439
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
Change-Id: I50b57b3e78758271411bdb4c3d58a2413578db1c
(cherry picked from commit d0e1cb02d87968bdfd6bbedecf41cd5a6ed1c644)
Signed-off-by: David Tardon <dtardon@redhat.com>
Reviewed-on: https://gerrit.libreoffice.org/24405
Tested-by: Jenkins <ci@libreoffice.org>
|