summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)AuthorFilesLines
2017-05-31tdf#108056 PDF export: work with double page sizeMiklos Vajna3-8/+8
Our coordinate system has the origo in the top left corner, PDF's one is at the bottom left corner. So the page height affects the coordinate of all widths and y positions. That page width is 870.25 in the case of the bugdoc, but it was handled as 870 due to the integer rounding. The coordinates and heights are now closer to the expected ones. (cherry picked from commit a05dc747caf5b8fef6bd95a999cb6098f2b4dbc7) Conflicts: include/vcl/pdfwriter.hxx Change-Id: I9c7d77298df3850bbc170c9ace18120900d7e3fa
2017-05-31Resolves: tdf#108111 backport mono checkboxes fixCaolán McNamara1-3/+1
replace the blue which will be set to transparent, with transparent and then we don't "manually" replace a color with transparent which makes tdf#108111 look right again (cherry picked from commit f1a8e00764b32c3b799ecd40dcb4dd632493bc45) Change-Id: I95923685d412145e88b672a50311c767d1425493 Reviewed-on: https://gerrit.libreoffice.org/38223 Reviewed-by: Justin Luth <justin_luth@sil.org> Tested-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit ec49295718144aeeb81683bcfe5923c3610e8d21)
2017-05-30tdf#107682 - Repeated images replace correct ones in exported PDFMarco Cecchetti1-0/+15
The problem was due to the buffer acquire methods: in Bitmap::Checksum (old implementation) Bitmap::AcquireReadAccess is used to get the bitmap buffer: indeed this method relies on SalBitmap::AcquireBuffer (which is used in the new implementation) but in case the buffer acquisition fails, instead of giving up, it tries to update the imp bitmap instance embedded in the bitmap (see BitmapInfoAccess::ImplCreate). The solution is to perform this further attemp in Bitmap::Checksum when the value returned by ImpBitmap::GetChecksum is 0. Change-Id: Ib901ac941db57756e9a951bacbc573ca206316e0 Reviewed-on: https://gerrit.libreoffice.org/38169 Reviewed-by: Marco Cecchetti <mrcekets@gmail.com> Tested-by: Marco Cecchetti <mrcekets@gmail.com>
2017-05-30Resolves: tdf#108069 2nd OpenGLContext::init should dispose earlier resultsCaolán McNamara1-1/+2
Change-Id: If6bb9517a4081576347d71ddf26d020119d34247 (cherry picked from commit 0b9b36cafe29916a9fdeac420a49c174adb10c59) Reviewed-on: https://gerrit.libreoffice.org/38065 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit c76aa66c60bde1fd009f097a0b974b65b295d1ab)
2017-05-30tdf#107868 PDF export of editeng fill color: restrict to logic map modesMiklos Vajna1-1/+4
The original use case was Writer/Impress shape text, but when the map mode is pixels, the reference device gives bogus values for the PixelToLogic() calls, affecting e.g. form controls. Just go back to the old way of not painting the background for those. (cherry picked from commit 919a4ef592b6026a7533a93682f39118fef29ce8) Conflicts: vcl/qa/cppunit/pdfexport/pdfexport.cxx Change-Id: I52f1901af15732274915fa3c77c06909b5164afb Reviewed-on: https://gerrit.libreoffice.org/37977 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit f6a66846f50132fab7be6baf516ab6af04acf7e5)
2017-05-30tdf#103158 ctrl+shift should work on key upMaxim Monastirsky10-51/+26
Under gtk/gtk3 we send CommandEventId::ModKeyChange on key down, to support the auto-accelerator feature. But at least the handler in SwEditWin::Command must get it on key up, in order to not interfere with other ctrl+shift+X shortcuts, which work on key down. To achieve that, we need: - On key up pass the key that was just released, instead of the current state of nothing being pressed. - Have a flag of whether it's a key down or up event, so it can be checked by the application code. Reviewed-on: https://gerrit.libreoffice.org/37275 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com> (cherry picked from commit fe0451259d2fb93c809c1bfa3baf5abd90019c58) Conflicts: include/vcl/commandevent.hxx vcl/source/window/commandevent.cxx vcl/unx/generic/window/salframe.cxx vcl/unx/gtk/gtksalframe.cxx vcl/unx/gtk3/gtk3gtkframe.cxx Change-Id: If188d6ccdc3b214a2c3ed20aad291d74d46b358f Reviewed-on: https://gerrit.libreoffice.org/37516 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 30c17a288b03656633b626f6e7f679ca7c1aa6ff)
2017-05-30Resolves: tdf#103174 & rhbz#1367846 improve gtk3 trackpad scrollingCaolán McNamara6-59/+122
convert number of "lines" scrolled to double and allow fractional parts of lines/columns Change-Id: Ib99c815cfc8823e22fc1d76e201903c34ed0f61b Related: rhbz#1367846 queue and merge scroll events Reviewed-on: https://gerrit.libreoffice.org/37779 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 7f60978b2ccd0e17816b78bde60c6e0e60a9d52e) Change-Id: Ib45f61bbb35bd240829491ac8a79803222974778 Reviewed-on: https://gerrit.libreoffice.org/37913 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit f7d2bf216afa10268e6a7c1d4613a2fd8f7c7f3c)
2017-05-18ofz#1605 check multiply and shiftCaolán McNamara3-4/+50
Change-Id: I6aad9ad23e7bf080b3b610223f92df7074530beb Reviewed-on: https://gerrit.libreoffice.org/37642 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit d881d77429371c3a04b758b151b091267c13d167)
2017-05-11tdf#106265 ScopedHDC to clean-up hDC when rendering glyphsTomaž Vajngerl2-6/+51
Change-Id: I96ecf625126740610200c012c3c7002fac7e1548 Reviewed-on: https://gerrit.libreoffice.org/37347 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit dae61482df7ae540a1fb8feefbb92b5e7238444d)
2017-05-04Resolves: tdf#99467 pasting text from java apps to gtk3 gives bad resultsCaolán McNamara1-0/+4
Change-Id: Ib2625c900def20baa470f0a15e4f72a3f763099e (cherry picked from commit c881756fcfdc1fa63ff534bf4538d551b2139515) Reviewed-on: https://gerrit.libreoffice.org/37147 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com> (cherry picked from commit a090322721222c98f7ccd194eac84e5a76579f8e)
2017-04-26tdf#107205 vcl: don't always use D2DWriteTextOutRendererMichael Stahl2-7/+15
... because it cannot rotate text. (regression from commit df556aa47da22f96b3fcd356c12419d3035cba3c) Change-Id: If9bc6e98b8979c5eb02f1a5cfc12b4d19bdc481b (cherry picked from commit 2eb91035c2f60e9dc476336474d51b23b666bb04) Reviewed-on: https://gerrit.libreoffice.org/36904 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Andras Timar <andras.timar@collabora.com> (cherry picked from commit 8f51b4272450b6220f563740538f143c0bc70175)
2017-04-24Handle keyinput properly in case of BottomToTop vertical textTamás Zolnai1-0/+10
Change-Id: I2b0f7cee9a4a7d7ad154c705f84a8b995b4f23a1 Reviewed-on: https://gerrit.libreoffice.org/36830 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit 8c46185bf28f61e674186694e4944c1f8b3a9c00) Reviewed-on: https://gerrit.libreoffice.org/36887 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
2017-04-24vcl: protect Window from exceptions during construction.Michael Meeks1-2/+8
Probable fix for: http://crashreport.libreoffice.org/stats/crash_details/f69188bd-0fdd-4b74-9ec6-35b544cba0c9 Change-Id: I6442451785867f0fc2daf84776118b092d4d6a18 Reviewed-on: https://gerrit.libreoffice.org/36653 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> (cherry picked from commit 6827da5052bfe975a3b34af8dfa8af75d41e904c) Reviewed-on: https://gerrit.libreoffice.org/36674 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 92edd724dd7f1ca85787480f046d48f9f27c51b8)
2017-04-18catch exception like text_wrapper_get_caret_offset doesCaolán McNamara1-1/+8
Change-Id: I7d681a5cd58af60005eefa9969ec975d5cfc5580 (cherry picked from commit 0d2a607a849e3f1b51092c7d96bc5529420cfab2) Reviewed-on: https://gerrit.libreoffice.org/36635 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com> (cherry picked from commit 615942e388c6dfa48d1edbf645fe6b0dd67cfa40)
2017-04-18tdf#106933 vcl: delete D2DWriteTextOutRenderer before exit()Michael Stahl3-10/+21
As it happens this DirectWrite stuff is using some thread pool internally, and that must be shutdown before exit(), as Win32 will terminate all other threads at that point, and then the thread pool wants to talk to threads that don't exist any more. https://blogs.msdn.microsoft.com/oldnewthing/20120427-00/?p=7763/ So convert this from a global variable that is deleted from DllMain() to a member of SalData, so it is deleted from DeInitVCL(). Change-Id: I51408a07c78758cf0c193ab66b9214d0c9dbd9e3 (cherry picked from commit df556aa47da22f96b3fcd356c12419d3035cba3c) Reviewed-on: https://gerrit.libreoffice.org/36534 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 1ba5bae490f7e14e475e0b80f03e5f444cdce908)
2017-04-14vcl PDF import: don't assume larger offset -> newer trailerMiklos Vajna1-3/+34
Usually when the PDF file contains incremental updates the updates are appended at the end of the document. But this is not required, the various trailers can be in any order. Make sure that we look at the last trailer (logically last, not the one with the largest file offset) when looking for pages. Reviewed-on: https://gerrit.libreoffice.org/36527 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit f15a69bd57e578ca607f14cb62f29a16986b96e6) Conflicts: xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx Change-Id: Idcd85a7c6bbf08c9436dd73933d79cdb683f482c
2017-04-12infinite SetDefaultSize->SetPosSize->SetDefaultSizeCaolán McNamara1-1/+2
https://retrace.fedoraproject.org/faf/reports/1278627/ presumably the 'optimal' starting size hits the invalid size path causing another attempt usin the optimal size, so force a valid initial fallback size Change-Id: I6c38ee5e1b90ce41a4550c8a8370e791f5c351b0 (cherry picked from commit 4930acb18bbd145fd995084cd95e3e9d631424ed) Reviewed-on: https://gerrit.libreoffice.org/36453 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com> (cherry picked from commit 3e4e13300db6a0c2c60dbe733d96ff5a7b0d32e5)
2017-04-12Resolves: tdf#107031 writer depends on ACTION_DEFAULTCaolán McNamara1-0/+8
to do its standard "honor the DragDropMode setting" on drag and drop of outline headings into a document Change-Id: Ie154fb237de57ae18fa22d6f50dbf890fb9ebc77 (cherry picked from commit 55e7f73640d754bf0004a0d8a989e0a20de00351) Reviewed-on: https://gerrit.libreoffice.org/36378 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com> (cherry picked from commit 3247dce15d041d178fa2a855b53415a80df16a28)
2017-04-12Resolves: tdf#106725 paint default window bg before spin button bgCaolán McNamara1-3/+9
Change-Id: I0c7f982c3a47f45d022271eba69ebed896288d78 (cherry picked from commit 6f0f2278662e29d054690a85bad6583b5c65f918) Reviewed-on: https://gerrit.libreoffice.org/36097 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit 1a9eff02e49c11787810b61b23f1d74b5a9e9952)
2017-04-12PDF export of PDF images: compress page stream if requestedMiklos Vajna2-12/+17
compressStream() automatically takes care of VCL_DEBUG_DISABLE_PDFCOMPRESSION, so this also simplifies code. Change-Id: I7661123e6ba73f8f064ec0543a03e2ec15fd2468 Reviewed-on: https://gerrit.libreoffice.org/36415 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 54a4121f2040bd11f3d6056767f2d7ad6c7745ac)
2017-04-12Related: tdf#106972 vcl PDF import: downgrade PDF >= 1.5Miklos Vajna3-37/+109
There are two problems with these newer PDF versions: - the current PDF export code doesn't know how to roundtrip such PDF images (needs work on both the import and export side) - upgrading the default PDF export version would upset readers who can't parse PDF >= 1.5 So instead of raising the default PDF export version, for now just be conservative and depend on pdfium to downgrade the PDF image version to 1.4 if it would be higher. Given that this modifies the input of the graphic filter this also needs changes in the ODF export, so that the filter result will contain that downgraded data, not the original one. Reviewed-on: https://gerrit.libreoffice.org/36413 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 37bdf1659ddb11d8706289511623cc7c8b0d264b) Conflicts: vcl/source/filter/ipdf/pdfread.cxx Change-Id: I1efa97af8110e9a6ee3e8a7339bcc7d70457cfb0
2017-04-12tdf#107089 PDF export of PDF images: handle mixed filters of page streamsMiklos Vajna3-11/+65
It's allowed to compress different page streams differently, and we must have a single object stream for our form XObject, so just incompress all of them to be consistent. Change-Id: I7a20dc2084a902a37dcefa3420d59a576f120bcd Reviewed-on: https://gerrit.libreoffice.org/36409 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 9e8598c42a1a6f2fbd88711aa9bea5961eaf7b4a)
2017-04-12Related: tdf#107013 PDF export of PDF images: improve content streamsMiklos Vajna1-64/+71
It can happen that the list of content streams have an equal number of "q" and "Q" operators when all of them is parsed. This means it's not correct to represent these separate streams with separate form objects, as those require equal number of "q" and "Q" operators by the end of each object. Instead concatenate the streams and always write a single form object, not only in case there is a single content stream. Change-Id: I62e4ee4c86403376155d10447404416686c84ef9 Reviewed-on: https://gerrit.libreoffice.org/36385 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit a876f982a56c0bcc04667d55a53b05c90a8c3354)
2017-04-12tdf#107018 PDF export of PDF images: handle references in nested dictionariesMiklos Vajna4-22/+65
Also get rid of the GetKeyOffset() and GetKeyValueLength() calls when copying dictionaries: the reference already knows its offset and length, so no need to call them. This makes the dictionary and the array handling more similar. Change-Id: I65936acfaf857636a8d83da3a4cec69289eb89d8 Reviewed-on: https://gerrit.libreoffice.org/36282 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit ee73747ab58fbbd5039823767693431223c347d3)
2017-04-12PDF export of PDF images: avoid invalid offset for not used jpeg bitmapsMiklos Vajna1-1/+2
I missed the JPEG case in commit 30102ded91b9ecfea172ffc6443154230ee37cbd (vcl PDF export, norefxobj: avoid replacement bitmap, 2017-03-29). Change-Id: If1f74c7873d05d5d7da5eb881626d4e5e535a0a1 Reviewed-on: https://gerrit.libreoffice.org/36272 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit 39038a3544d1b42388a15e6098ccad8398e8ef36)
2017-04-12tdf#107013 PDF export of PDF images: handle page tree and content streamsMiklos Vajna4-123/+165
Handle when the page objects are not contained in a single list, but a tree of "pages" objects. Also handle when the page object has multiple content streams. Change-Id: I7c5b0949314768af5915d37830a45e843e629446 Reviewed-on: https://gerrit.libreoffice.org/36256 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 4db4b9f016256fc8d2b637ed7a8f2b097aaa864b)
2017-04-07tdf#104686: do not crash if Menu has been somehow disposedAron Budea4-30/+56
The rare crashes in MenuFloatingWindow::ImplGetStartY() and MenuFloatingWindow::ImplScroll(bool) likely happen because of a disposed Menu. Let's guard against invalid accesses. Change-Id: Ie31240abbc48c06edd40d0a95f319725cdb3db16 Reviewed-on: https://gerrit.libreoffice.org/36026 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/36151 Reviewed-by: Aron Budea <aron.budea@collabora.com> (cherry picked from commit 9fcb6cb86893b991ceb6395fbabba63c962f59db)
2017-04-06Related: tdf#106972 vcl PDF export, PDF images: ignore PDF >= 1.5Miklos Vajna3-2/+66
When copying their page steam into ours, we need to make sure their syntax is <= 1.4; so when checking if the image has PDF data, ignore the case when it has, but it's >= 1.5 (at least in the default case when not using reference XObjects). Change-Id: I6bd77803b92fe16bdd327e5e7c3d2b42adeacca4 Reviewed-on: https://gerrit.libreoffice.org/36161 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 4443d7be61a9ae45630183d856a566cecd06ad95)
2017-04-06tdf#106972 vcl PDF export, PDF images: handle indirect font referencesMiklos Vajna4-9/+99
There were a number of problems here: - the /Resources key of a page object may be an indirect object - the /Font key of a resource object may be an indirect object - the /Length key of an object may be an indirect object So in all these cases handle not only a direct dictionary / number but also when we have a reference-to-dictionary/number. Change-Id: Ie74371f0ba43a133a1299843ef20cbfc75fe26d7 (cherry picked from commit 242a9b634213acf03cabc373928555dc81afc672)
2017-03-31vcl PDF export, norefxobj: add test for thisMiklos Vajna2-0/+56
Assert two important properties: - the pdf image is described using the form xobject markup (not the reference xobject one) - the form xobject refers to a vector image, not to a bitmap one Change-Id: I94b88976c1e5392758d56254143fbeeeeba51412 Reviewed-on: https://gerrit.libreoffice.org/35901 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 932f6a8f37fbd99fc2ed16aa37966658d388c975)
2017-03-30vcl PDF export, norefxobj: copy each object only onceMiklos Vajna2-8/+17
Even if they are referenced multiple times. This is especially important as objects can refer to each other, creating a cyclic graph. But it also makes the output a tiny bit smaller. Change-Id: I561ac319683a19a797282fe259cc68f3a4c50c3e Reviewed-on: https://gerrit.libreoffice.org/35855 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 92ddc0409c8d3276183afdee543d28e1c307c2c7)
2017-03-30vcl PDF export, norefxobj: avoid replacement bitmapMiklos Vajna1-1/+14
The whole point of "no reference XObjects" is knowing this vector markup is supported everywhere, so no need to provide a fallback bitmap. It was already unreferenced, but now it's not even written to the file, making the PDF export result smaller. Change-Id: Idf766c8eeded4235ebea49d13698a13c6b60f014 Reviewed-on: https://gerrit.libreoffice.org/35841 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 30102ded91b9ecfea172ffc6443154230ee37cbd)
2017-03-30vcl PDF export, norefxobj: add UI for thisMiklos Vajna1-0/+7
Disable the "use reference XObjects" (old behavior) by default, but keep it as an option in case someone wants it. Summary till the help is updated: the old way is simpler code, so it's always correct, but really only Acrobat supports that markup. The new way is supported by all readers, but more complex, so it's more likely it goes wrong. Change-Id: I4769474f29d98412be496a0aa4e8254ae4f0919e Reviewed-on: https://gerrit.libreoffice.org/35826 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 9c944b0d1bff9a0ab1b7e8454c9ac5e7194aa533)
2017-03-30vcl PDF export, norefxobj: have the list of keys to copy at one placeMiklos Vajna1-11/+11
To avoid repeting ourselves. Change-Id: I39667620b9cf391251327c8f66ad8b9649ead36f Reviewed-on: https://gerrit.libreoffice.org/35810 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit f86c3fd8e95f378061d57b77d1c700e076996086)
2017-03-30tdf#106693 vcl PDF export, norefxobj: handle multiple refs in copied arraysMiklos Vajna2-17/+48
Also fix confusion about dictionaries in arrays and arrays in dictionaries. Change-Id: I0d71d5796b1eb4f89e3fd9a5b1f807d2a7340a35 Reviewed-on: https://gerrit.libreoffice.org/35806 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 30608c66374f8effa9d534f7f9a22d41daa9770f)
2017-03-30tdf#106693 vcl PDF export, norefxobj: copy nested arrays correctlyMiklos Vajna2-2/+10
When copying an array we're only interested in the start/end position of the outermost array, otherwise only part of the array is copied. Change-Id: I9f5cb5e3ed395142fd82db34e1153ddfdf9f0eb3 Reviewed-on: https://gerrit.libreoffice.org/35797 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 3ea5e3401e567bfe956817fd5abd17530da664f5)
2017-03-30tdf#106693 vcl PDF export, norefxobj: handle multiple refs in copied dictsMiklos Vajna2-13/+46
When copying font definitions the dictionary has multiple values where the type is a reference. Improve PDFWriterImpl::copyExternalResource(), so that multiple references are copied correctly as well. With this the bugdoc (from comment 5) text appears in the output. Reviewed-on: https://gerrit.libreoffice.org/35760 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 2ba9d58d5978c94352c4c6cf9c47aa3de79d05fe) Change-Id: I2343e616d8b36e3cdcbd4e713bd3f7fa7bce6d3b
2017-03-30Missing check for rStream.IsEof()Stephan Bergmann1-0/+4
...after a324099538916eae7f7239d32fd98ec8018cbb72 "xmlsecurity PDF signing: only write incremental xref in an incremental update" inserted the 'if' before the 'while (!rStream.IsEof())' Change-Id: Ib527894031f356c3d6df40b70259469ef4c338de (cherry picked from commit e8aaaa52fa5abe4a70224ab6e6eee6265b0d61c8)
2017-03-30vcl PDF export, norefxobj: improve ref handling in dictsMiklos Vajna2-19/+20
When copying objects referenced from the page stream support references in any item value, not just for one single item key. Also move the dictionary entry generator code to PDFWriterImpl::copyExternalResources(), so other keys can be copied without code duplication. Change-Id: I4004e82014cec915c66a8a9d3aed2155fa2452ef Reviewed-on: https://gerrit.libreoffice.org/35755 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 06d073695c764744d308c74f80c40a317255fc05)
2017-03-30tdf#106693 vcl PDF export, norefxobj: copy array objectsMiklos Vajna2-4/+87
So far only the dictionary and the stream of the object was copied, see if it has an array, and take care of that as well. Also check if the array contains a reference and act accordingly. Change-Id: I7f3bb12ec0bbc6f6e1db4f43625c7768b862c895 Reviewed-on: https://gerrit.libreoffice.org/35744 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 044e8d795276cc495c1f796a14ad36e6a5f9cdb9)
2017-03-30tdf#106693 vcl PDF export, norefxobj: update XObject refsMiklos Vajna3-26/+93
Start copying referenced objects recursively, and also take care of updating references to the object IDs as they appear in our output. With this, the 4th image referenced from the PDF image has a correctly updated reference in its dictionary's ColorSpace key. Change-Id: I8b49701c1f60bd0ef5a097b24ce59164554c44fa Reviewed-on: https://gerrit.libreoffice.org/35653 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit f135a8bdeba15cf72dd31c7d613d335bbfc7017b)
2017-03-30tdf#106693 vcl PDF export, norefxobj: copy XObject referencesMiklos Vajna3-8/+97
With this the images inside the PDF image show up correctly. Change-Id: I430502fb6ae9de8111dda7e67db33642ff263317 Reviewed-on: https://gerrit.libreoffice.org/35621 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 1f2bccf2d28d4257aa0e325658d35182367b59d9)
2017-03-30tdf#106693 vcl PDF export, norefxobj: handle compressed page streamMiklos Vajna1-42/+84
Since we want to avoid re-compressing the page stream create two form XObjects: one that resets the graphic state to the default (e.g. line width) and an other one that contains the original page stream as-is. With this PDF images where the page stream is compressed are handled correctly. Change-Id: Ib44dae2e167e4d5604a0a3a3cf91e09795137343 (cherry picked from commit d0c24cbb027130f3781bfc3475dd225190afd560)
2017-03-30tdf#106693 vcl PDF export, norefxobj: copy page streamMiklos Vajna2-7/+58
This gives correct result in very simple cases when the page stream is not compressed and it references no other objects from the original file. Change-Id: I11ed50180a256bdb5c587fd8927d21c925100a4d Reviewed-on: https://gerrit.libreoffice.org/35580 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit d27818c1f34b01190bf419c34d6a174f3cad7894)
2017-03-30tdf#106693 vcl PDF export: initial UseReferenceXObject optionMiklos Vajna1-10/+17
It's still on, but in experimental mode start work towards the ability to not use that markup. Change-Id: Idf11c0e0a3c61ad93af331346ec7107304f6dc0f Reviewed-on: https://gerrit.libreoffice.org/35538 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 5f4826d89bfa1398b16fc85cf593ff58ce5e36a9)
2017-03-30vcl: move in PDF tokenizer from xmlsecurityMiklos Vajna4-25/+2925
The PDF code in xmlsecurity served two purposes: - a generic PDF tokenizer - signature verification The first purpose is useful to have in VCL, so the PDF export code can use it as well when it comes to PDF image handling. This commit just moves most of the PDF code to VCL, it does not touch the PDF export code yet. With this, also the somewhat odd xmlsecurity dependency of CppunitTest_vcl_pdfexport can be removed as well. Change-Id: I6fe8294ed5c4aa4d79f4b2ddef80a4d1c9d566cc Reviewed-on: https://gerrit.libreoffice.org/35513 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 7415b71b7976319b0c04e670facabd20b30e3fe2)
2017-03-30Resolves: tdf#106155 avoid opengl for toplevel X window iconsCaolán McNamara3-0/+30
because an opengl context requires a toplevel window so it recurses to death. Only the gen/kde4 vclplugs are affected here Change-Id: If5396d183d90d1872931b170dc90c3a70d8ea6b6 (cherry picked from commit b012e83e1cd09a0b6f9ede94a5c2d72d24459ce4) Reviewed-on: https://gerrit.libreoffice.org/35803 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit b96c52baa6b9607d9a31cd1b34162e4ee041f9b6)
2017-03-30Resolves: rhbz#1436050 im window misplaced for gtk3Caolán McNamara1-1/+1
events are relative to event window not the toplevel window which includes a menubar widget (and maybe the decoration topbar as well) Change-Id: I5101bd4a35d6e3aee03191594e5f6edb7ca34c69 (cherry picked from commit 32351d1bd34a0a0d3bb8fa41667a770c125de460) Reviewed-on: https://gerrit.libreoffice.org/35761 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit b986fa2c66e272d926b189683c12cca81bcb5125)
2017-03-30Resolves: tdf#106645 gtk3 scrollbar is too wideCaolán McNamara1-24/+429
Change-Id: I4041dff0945c4bd34e085078a7130b637124c6cd (cherry picked from commit aa5d6f5acbab12b1ba76365f776ba228ba5e7e0e) Related: tdf#106645 make gtk3 scrollbar themes with arrows work properly, e.g. breeze-dark has arrows Change-Id: Ic59c0de3fb385adc2f8fddc605edd7498230d5fb (cherry picked from commit 9b7c35b4b7fd5a5347a3602f110d78e1019a54e9) Reviewed-on: https://gerrit.libreoffice.org/35540 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit 97a036e5a4b410b3f260a27566c695ac801b7ffb)
2017-03-29Attempted fix for mirrored geometry crasher.Michael Meeks1-12/+13
Only plausible cause is pWindow->GetParent() being null, while we have a pParent which has to be valid. http://crashreport.libreoffice.org/stats/crash_details/6161398d-17b6-4a93-aa70-a559efa07868 Code was initially introduced in this form: commit 4716735ba7d0ad133ff018481f94d6b4f201bbd9 Author: Stephan Schäfer <ssa@openoffice.org> Date: Thu Sep 19 15:46:19 2002 +0000 #103362# improve positioning and resizing of system windows No public report, sadly. And modified by commit fba46c6efd08d50fee92cc11546f3ed253a57af8 Author: Chris Sherlock <chris.sherlock79@gmail.com> Date: Mon Feb 3 16:46:04 2014 +1100 fdo#74424 Use Window::GetOutDev() to access ImplReMirrored() Part of the decoupling of Window from OutputDevice. We now get he Window's OutputDevice instance and manipulate this. Do not rely on the inherited function. where the GetParent()/pWindow->GetParent() problem surfaces Change-Id: Ia261028a4719525135e3fe4b00074427c1d9df6c Reviewed-on: https://gerrit.libreoffice.org/35796 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 d93b8268da982ad26db9e03156ce9b89f3410486) Reviewed-on: https://gerrit.libreoffice.org/35827 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 39a09641a1d2e1b50c831fe5ecf3dc0b0174a210)