summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)AuthorFilesLines
2016-06-18crashreport: 644837b5-c445-4779-a75d-dd69fc2e3a6fCaolán McNamara3-5/+11
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)
2016-06-18tdf#96887 vcl: stop using periodic timers on WNTMichael Stahl4-14/+31
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)
2016-06-18tdf#96887 enhance SolarMutex AcquireWithWait for WindowsArmin Le Grand3-93/+34
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)
2016-06-16gtk3: some changes towards enabling native gtk3 popup menusCaolán McNamara3-16/+13
these menubar things can be menu things and can then do away with the casting, no logic changes intended Change-Id: Ibb1b5354d5e1483327f172d6890e134f1e4b9ee4
2016-06-13tdf#99795 drawAlphaBitmap should scale the bitmap if necessaryTomaž Vajngerl1-3/+16
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)
2016-06-13Related: tdf#99446 cairo text + xrender bodgeCaolán McNamara1-0/+18
(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)
2016-06-13Resolves: rhbz#1343766 a11y queries during dispose trigger combobox crashesCaolán McNamara1-0/+6
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)
2016-06-12lok: reset the font list when there are no itemsHenry Castro1-0/+10
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)
2016-06-12Unit test hook for online / fonts.Michael Meeks1-0/+21
Change-Id: I2ae50c826f7fc66367a379447ab3b99cd1f29b4d (cherry picked from commit 205b2be73a970508fda071310f26c0e1156da057)
2016-06-12vcl: desktop terminate, to dispose objectsHenry Castro1-2/+9
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)
2016-06-12vcl: assign NULL after deletingHenry Castro2-4/+8
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)
2016-06-12vcl: add isInitVCL, to not initialize twiceHenry Castro1-1/+11
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)
2016-06-11Don't build ui-previewer in the App Store caseAndras Timar1-1/+1
Conflicts: vcl/Module_vcl.mk Change-Id: I1b095586b66fbbe582b0e7266609895bb288c6fb (cherry picked from commit bb431cd1e089aa5f4f7d28bdd07e594dacaaaf0d)
2016-06-11Revert "tdf#95761 All Hotkeys with CTRL+ALT+ not worked"Andras Timar1-3/+8
This reverts commit 5deedec2ab708b841d0d696c8039c7fbcd4e62a7. It is a bad idea to use Ctrl+Alt accelerator keys. It fixes tdf#97908. (cherry picked from commit df00c67da8e8701179dbe66efa00e4a795d51700)
2016-06-11Collabora Office: hackish fix of repaint problem of vcl widgetsAndras Timar1-15/+3
Change-Id: Ib0eaba0767ff18d03464ba7d1ec1ffdd2ba3ca78 (cherry picked from commit 55066180e80b77cdf8520b11cc60dec73c6e0d58)
2016-06-11Resolves: tdf#100248 vcl menu scroll timer still active post disposeCaolán McNamara1-0/+6
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)
2016-06-11Resolves: rhbz#1344042 deb#826654 scale gtk3 smooth scaling events...Caolán McNamara2-44/+35
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)
2016-06-11only init the OpenGL context if we need itMarkus Mohrhard1-6/+40
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)
2016-06-03tdf#99919: Blacklist that specific vendor, version, and device combinationTor Lillqvist1-0/+4
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>
2016-06-03vcl: fix "sgv" import filter on 64-bit MSVCMichael Stahl2-133/+216
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>
2016-06-03vcl: GIF import: don't use __LP64__ to check for a 64-bit systemMichael Stahl1-1/+1
__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>
2016-06-02tdf#100187 fix division by zero in comboFragmentShaderTomaž Vajngerl1-1/+1
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>
2016-05-31tdf#100159: On Windows, compile GL shaders in advance, disable GL on failureTor Lillqvist2-5/+113
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>
2016-05-31tdf#100092: Deterministic scheduling to prevent unpredictable behavior.Jan Holesovsky2-1/+38
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>
2016-05-31Resolves: tdf#92695 protect both branches against missing ToolItemCaolán McNamara1-8/+7
(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>
2016-05-30tdf#100080 set unused shader attribs with values, fixes GL on AMDTomaž Vajngerl4-28/+78
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>
2016-05-30Resolves: tdf#100097 dbaccess self-dnd depends on getting its own transferableCaolán McNamara4-9/+41
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>
2016-05-30Related: tdf#87967 valgrind reported invalid reads on 1 pixel wide bitmapCaolán McNamara1-5/+5
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>
2016-05-26Resolves: tdf#99874 gtk3: all-black xbm cursorsCaolán McNamara1-7/+17
(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>
2016-05-25opengl: use existing code for "legacy" polyline, polygon render.Tomaž Vajngerl9-294/+306
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>
2016-05-25tdf#99130 use subdivision on B2DPolygon, angle based subdivisionTomaž Vajngerl1-3/+1
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>
2016-05-25opengl: track the state of blend, DrawArrays on OpenGLProgramTomaž Vajngerl5-84/+115
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>
2016-05-19tdf#49853 Some shortcuts should always end up in the viewMaxim Monastirsky1-0/+20
... 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>
2016-05-18tdf#99574 fix sluggish scrollbar for an immediate paintTomaž Vajngerl1-0/+5
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>
2016-05-17tdf#98983: Use 'Microsoft Sans Serif' instead of 'MS Sans Serif'Tor Lillqvist1-0/+4
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>
2016-05-17tdf#99383 vcl: don't dispatch events from SolarMutexReleaserMichael Stahl2-3/+9
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>
2016-05-17gtk3: min slider size too small since 3.20.0Caolán McNamara1-8/+20
"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>
2016-05-16vcl: lstrcpynW actually takes length *including* null terminatorMichael Stahl1-2/+2
... 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>
2016-05-16tdf#97249: Don't crash if BindFont failsTor Lillqvist1-1/+6
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>
2016-05-13tdf#99369: Try harder to bail out for non-horizontal textTor Lillqvist1-4/+8
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>
2016-05-11Change #include <cairo-svg.h> to <cairo.h>Korrawit Pruegsanusak1-4/+1
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
2016-05-11tdf#99258 bail out if we fail to reserve the texture + moreTomaž Vajngerl5-25/+46
(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>
2016-05-10tdf#99207: Fix incorrect RGB ordering in Graphite DWrite pathTim Eves1-6/+8
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
2016-05-06opengl: combined commits for state trackingTomaž Vajngerl9-99/+340
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>
2016-05-06gtk3: various bits means different things againCaolán McNamara1-2/+8
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>
2016-05-06Resolves: tdf#98940 (-1 not mapping to maximum string length anymore)Matteo Casalin1-1/+1
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>
2016-05-03tdf#90319: make image flipping work when aLinearContext(...) code path chosenpasqualm1-14/+5
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>
2016-05-03Fix failure to print when using the D2DWrite pathTim Eves1-1/+5
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
2016-04-28tdf#89866 tdf#96504 vcl: fix printing of form controls with imagesMichael Stahl2-14/+2
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>
2016-04-26-Werror=misleading-indentation (GCC 6)Stephan Bergmann2-4/+8
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>