summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2017-01-04vcl: hold VclPtrs to avoid possible lifecycle related crashers.Michael Meeks
Makes code on common EnableInput crash reporter trace safer. Change-Id: Ibcf218d0d2460383d12e19f48aaf0ab08e541532 Reviewed-on: https://gerrit.libreoffice.org/32706 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> (cherry picked from commit 61aa97c1be23398acb7e9160763b621f63c13d88) Reviewed-on: https://gerrit.libreoffice.org/32719 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-01-04tdf#103626 don't scale application icon to prevent a start-up loopTomaž Vajngerl
Reviewed-on: https://gerrit.libreoffice.org/32382 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 96b95f5010be090ebae6f755d4d3891a2334332c) + commit e36d9ae2cbe45f33aaaef3eb33eff9d13ee04a66 Typo: scalePrecentage->scalePercentage Author: Julien Nabet <serval2412@yahoo.fr> Change-Id: I2e65ba16d93167dc4abb029c7e941e91be9a62ab Reviewed-on: https://gerrit.libreoffice.org/32401 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-01-02ofz#355: lsan detected leakCaolán McNamara
Direct leak of 1296 byte(s) in 6 object(s) allocated from: #0 0x5de7a0 in __interceptor_calloc /src/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:72 #1 0xe0f2132 in hb_shape_plan_t* hb_object_create<hb_shape_plan_t>() /work/workdir/UnpackedTarball/harfbuzz/src/./hb-object-private.hh:129:24 #2 0xe0f2132 in hb_shape_plan_create /work/workdir/UnpackedTarball/harfbuzz/src/hb-shape-plan.cc:133 #3 0x85a3488 in CommonSalLayout::LayoutText(ImplLayoutArgs&) /src/libreoffice/vcl/source/gdi/CommonSalLayout.cxx:555:40 #4 0x3d97cf2 in OutputDevice::ImplLayout(rtl::OUString const&, int, int, Point const&, long, long const*, SalLayoutFlags, vcl::TextLayoutCache const*) const /src/libreoffice/vcl/source/outdev/text.cxx:1318:36 #5 0x3d990e1 in OutputDevice::GetTextArray(rtl::OUString const&, long*, int, int, vcl::TextLayoutCache const*) const /src/libreoffice/vcl/source/outdev/text.cxx:966:35 #6 0x3d98d2d in OutputDevice::GetTextWidth(rtl::OUString const&, int, int, vcl::TextLayoutCache const*) const /src/libreoffice/vcl/source/outdev/text.cxx:893:19 #7 0x485f630 in ImplFontMetricData::ImplInitTextLineSize(OutputDevice const*) /src/libreoffice/vcl/source/font/fontmetric.cxx:338:30 #8 0x3d6801e in OutputDevice::ImplNewFont() const /src/libreoffice/vcl/source/outdev/font.cxx:1095:42 #9 0x3d64d92 in OutputDevice::GetFontMetric() const /src/libreoffice/vcl/source/outdev/font.cxx:171:23 #10 0x8695053 in WinMtfFontStyle::WinMtfFontStyle(LOGFONTW&) /src/libreoffice/vcl/source/filter/wmf/winmtf.cxx:265:36 #11 0x8686b9b in std::__1::unique_ptr<WinMtfFontStyle, std::__1::default_delete<WinMtfFontStyle> > o3tl::make_unique<WinMtfFontStyle, LOGFONTW&>(LOGFONTW&) /src/libreoffice/include/o3tl/make_unique.hxx:27:35 #12 0x86eb23c in WMFReader::ReadRecordParams(unsigned short) /src/libreoffice/vcl/source/filter/wmf/winwmf.cxx:937:32 #13 0x86fb901 in WMFReader::ReadWMF() /src/libreoffice/vcl/source/filter/wmf/winwmf.cxx:1371:25 #14 0x47c5949 in ReadWindowMetafile(SvStream&, GDIMetaFile&) /src/libreoffice/vcl/source/filter/wmf/wmf.cxx:78:45 #15 0x61c7ac in LLVMFuzzerTestOneInput /src/libreoffice/vcl/workben/wmffuzzer.cxx:98:11 #16 0x1011f7e8 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/libfuzzer/FuzzerLoop.cpp:541:13 #17 0x10120544 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long) /src/libfuzzer/FuzzerLoop.cpp:492:3 #18 0x1013ecca in fuzzer::Fuzzer::RunOne(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > const&) /src/libfuzzer/FuzzerInternal.h:118:41 #19 0x1011ee3d in fuzzer::Fuzzer::ShuffleAndMinimize(std::__1::vector<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, std::__1::allocator<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >*) /src/libfuzzer/FuzzerLoop.cpp:471:30 #20 0x100d0aea in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/libfuzzer/FuzzerDriver.cpp:533:6 #21 0x100c38c8 in main /src/libfuzzer/FuzzerMain.cpp:20:10 #22 0x7fef8459582f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) Change-Id: Iaa23f8282a45b7c584410b5e8c7b6e9774a34aaf Reviewed-on: https://gerrit.libreoffice.org/32508 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit d19c05bbf0073033573ef428b63f37e7caa12337) Reviewed-on: https://gerrit.libreoffice.org/32586 Tested-by: Jenkins <ci@libreoffice.org>
2016-12-22Fix glyph Y offsetKhaled Hosny
Typo from 9eb4b14ffa57cd7bbdf0fc43096f5f1e65c8e388. Change-Id: I542b84cae50d09f2ed58a58ba9de519354a6900d Reviewed-on: https://gerrit.libreoffice.org/32352 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-22Resolves: ofz#313 cbBmiSrc > getDIBV5HeaderSizeCaolán McNamara
Change-Id: I67fb67dc0a4cb609b8f1391c1eb6dd395755a933 (cherry picked from commit 7485fc2a1484f31631f62f97e5c64c0ae74c6416)
2016-12-22Resolves: tdf#104687 gtk2 paste cell text under a11y is fatalCaolán McNamara
Change-Id: Ia26ecf381e491b5591e05e0051b7162eb1d4bb56 (cherry picked from commit 88dad8fe1a94055dcbb05a6e6f0df2d007914a45)
2016-12-22valgrind: stick 0 at end of successfully read dataCaolán McNamara
Change-Id: Id79f68c9095ab313ac05d2c8b55df71788df81d3 (cherry picked from commit 0dfc6f70ab53a773ee05664235d7c8927ab20f2c)
2016-12-22Resolves: ofz#310: Sanitize 1 bit bitmap palette indexes tooCaolán McNamara
Change-Id: Ied2b71eb1c9088bbbff5fed97f7a04b43f4b4827 (cherry picked from commit b08e48166310ab8a53f06f4fee227a948416cf4a)
2016-12-21tdf#104733: Don't ignore OpenType-CFF fons on WindowsKhaled Hosny
This is a folloup for ef4b9032de55e6b1b182e4ead1bbe6e590df296e, turns out TRUTYPE_FONTTYPE does not cover CFF fonts like I thought (the fonts that I was checking were actually TTF fonts). Reviewed-on: https://gerrit.libreoffice.org/32258 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> (cherry picked from commit 72002992a3c5213882fa4d60c7cd8fab10f0b009) Change-Id: I2d7b34b625aa03134421dc44a24e3c66be25df98 Reviewed-on: https://gerrit.libreoffice.org/32270 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-20vcl: fix Android buildJulien Nabet
lround() is missing in the std namespace on the broken Android toolchain, work it around. (same as https://cgit.freedesktop.org/libreoffice/core/commit/?id=0cb7d76bc5552245642ba423a87831cd9e0b2b92) Change-Id: I84c97e6d6bcbc193565c01db3011eb9d4edba6a1 Reviewed-on: https://gerrit.libreoffice.org/32216 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr> (cherry picked from commit 456363919105253dd344b80b3ad3f649662c5658)
2016-12-20tdf#103765: Round positions instead of truncatingKhaled Hosny
Change-Id: Id0505163e10bb4c76970f2f96af568da453d3d05 Reviewed-on: https://gerrit.libreoffice.org/32211 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 9eb4b14ffa57cd7bbdf0fc43096f5f1e65c8e388) Reviewed-on: https://gerrit.libreoffice.org/32212 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-12-19ImplImageTree extract parameters to own structTomaž Vajngerl
Change-Id: I56e68ab19e63637d21dea7929f093bb1aceb982a Reviewed-on: https://gerrit.libreoffice.org/32135 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 6fd7c0c7714a90a6b99003b67a47b28b800cfdff) Reviewed-on: https://gerrit.libreoffice.org/32166
2016-12-19vcl: separate ImplImageTree - ImageTree singleton and public ifaceTomaž Vajngerl
ImplImageTree was used outside of VCL which is not consistent with the name and the header also contains a lot of implementation detail. This separates the implementation to ImplImageTree and the public interface and singleton to ImageTree only. Change-Id: I3a26444f0f6971a6b1d83472e9cef19c93192d3e Reviewed-on: https://gerrit.libreoffice.org/32134 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit bf5f6df9e47bd31dc052c6411f6f88ec2d4e3cea) Reviewed-on: https://gerrit.libreoffice.org/32165
2016-12-19Related: rhbz#1405521 abrt reported crash in dndCaolán McNamara
Change-Id: I8d8f9379d36dd3dd1a8973cd9f9c14860765630b Reviewed-on: https://gerrit.libreoffice.org/32177 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-12-16tdf#104159: Fix caching glyphs of non-UI fontsKhaled Hosny
Partially reverts "tdf#103725: Fix horizontal scaling on Windows", which didn't work on newer Windows versions anyway. This reverts commit a5750d92b2136d60d698b41ef5760f2efac0ffce. Reviewed-on: https://gerrit.libreoffice.org/32068 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> (cherry picked from commit ab291ac3b8576a086cab60ffb64d60b046a271a2) Change-Id: Ia4bb426a21804517d3ec313ab7494ba121c5751b Reviewed-on: https://gerrit.libreoffice.org/32094 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-16tdf#104159: Re-enable OpenGL glyph caching on WindowsKhaled Hosny
Reviewed-on: https://gerrit.libreoffice.org/32026 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> (cherry picked from commit 9cf20b5f0473db0b4dd2dcf607b7884f40762995) Change-Id: Icafec05a8cf4428d806efcb286addf3042fcf021 Reviewed-on: https://gerrit.libreoffice.org/32066 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-16tdf#104533: Fix font metrics for non-SFNT fontsKhaled Hosny
They can still be used with the old layout engine, so fallback to old code when we encounter one of them. Not needed on master as the old layout engine is gone there. Change-Id: Ibe3e4772cb519843eeb44cfc7efd912ae9737b69 Reviewed-on: https://gerrit.libreoffice.org/32049 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-15tdf#103514: Try harder to ignore non-SFNT fontsKhaled Hosny
It seems that Script (and probably other bitmap fonts) have zero nFontType, so instead if checking for RASTER_FONTTYPE, check for not TRUTYPE_FONTTYPE (which seems to cover both TrueType and CFF-based SFNT fonts). Reviewed-on: https://gerrit.libreoffice.org/32031 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> (cherry picked from commit ef4b9032de55e6b1b182e4ead1bbe6e590df296e) Change-Id: Ie39ed99b219b756885b13b3ecbf3616556a277db Reviewed-on: https://gerrit.libreoffice.org/32040 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-14split markers for galaxy theme, when scaling use splitted markersTomaž Vajngerl
For markers (resize markers, anchors,...) we contain them all in one image atlas. This was generally done because of resource limitiations in Windows 95/98 which aren't a problem anymore in present systems. This is however problematic in HiDPI as we scale the image and the coordinates of aren't correct anymore. Another problem is that it uses its own cache instead of common cache in ImplImageTree. So this commit extracts all the markers into its own images for galaxy theme and uses them when we scale. In the future when we extracted all the markers to its own images for all icon themes we can remvoe the old code with the image atlas. Change-Id: Ibee181b529d30e20050df8cd396d338bd53532c0 (cherry picked from commit 681c2c3f59863d1f2d0123a92ee63baf84e18dfc) Reviewed-on: https://gerrit.libreoffice.org/31960 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2016-12-13move the windows restart because of bad-opengl requirements to a better placeCaolán McNamara
because if the opengl support is such that the opengl-for-vcl requirements don't fit, then on the second run after discovering this (the first having restarted) if you try opengl slide transitions libreoffice will just exit because it thinks this first check of opengl-for-slideshow is the first opengl-for-vcl effort. so move this code into the place which I believe is the opengl-for-vcl entry point the return from ImplInit *is* checked bool WinOpenGLContext::init(HDC hDC, HWND hWnd) { ... return ImplInit(); } rtl::Reference<OpenGLContext> WinOpenGLSalGraphicsImpl::CreateWinContext() { ... if (!xContext->init(mrWinParent.mhLocalDC, mrWinParent.mhWnd)) } etc. Another problem here is ... "If we notice that OpenGL is broken the first time being called, it is not too late to call disableOpenGLAndTerminateForRestart(). The first time this will be called is from displaying the splash screen" isn't true when the first start causes opengl to be disabled, then on subsequent starts you can enter this function from launching an opengl slide transition. (note opengl is disabled if opengl is < 30, so all the versioning checks the slide transitions do is probably pointless now. The only actually useful use of opengl we have seems to be somewhat unloved) Change-Id: I1e159f826447520f39ea063fd4c0c83220b1385f (cherry picked from commit 2109e7d9a0d3dab172961ec19e75da1fa8a6cc61) this is all related to... commit 210c39dd9a6ebaa964c03c20e4b442ea36941ae9 Date: Fri Jun 3 09:25:13 2016 +0300 tdf#100193: Check earlier and harder whether OpenGL is good enough on Windows Change-Id: I3f6a72efff9c533ca9a0602227fd929ac645f60b Reviewed-on: https://gerrit.libreoffice.org/31763 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit d96686e482d2f2649dbd87d7ed9db2775e5d22f5) Reviewed-on: https://gerrit.libreoffice.org/31796 Tested-by: Jenkins <ci@libreoffice.org>
2016-12-13tdf#104034 skip polygons with less than 2 pointsTomaž Vajngerl
We can get polypolgons with polygons that have 0 or 1 point only, so we need to guard agains division-by-zero errors by skipping if we detect such polygons (as we can't draw them anyway). Change-Id: Ia27fcde9467864b10572a78a848ea642a3559185 Reviewed-on: https://gerrit.libreoffice.org/31770 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit cee552d2071601b6f4131eda9e9a0a17768ea272) Reviewed-on: https://gerrit.libreoffice.org/31789
2016-12-13vcl: set toolbox size correctly when using 32px iconsTomaž Vajngerl
Change-Id: Ifacff75f80bc8401ccff2a4d4dc90e56e3b4aa84 Reviewed-on: https://gerrit.libreoffice.org/31801 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 99fd3b2a2759864caf519dfd89173e301b74c24e) Reviewed-on: https://gerrit.libreoffice.org/31802 Tested-by: Jenkins <ci@libreoffice.org>
2016-12-11Resolves: rhbz#1362453 use the cairo scaling approach on both wayland and XCaolán McNamara
so have the same hidpi solution on both setups Change-Id: I669eba55830a28c1850f4679dfa824798bd3a383 Reviewed-on: https://gerrit.libreoffice.org/31540 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> (cherry picked from commit 3a9609653697ac851ee1c55a41aa143d3bca335e) Reviewed-on: https://gerrit.libreoffice.org/31836 Tested-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-10oss-fuzz: handle W_META_CREATEFONTINDIRECT like EMR_EXTCREATEFONTINDIRECTWCaolán McNamara
Change-Id: Iaa142d5d0ac0f00e89e8b7d7ffdef8137157cec9 (cherry picked from commit e718ac0ae415bba2988c96c36995755bbfd9df7f)
2016-12-10tdf#93430: Return the right offsets for runsTamás Zolnai
MultiLineEdit is a special control which can have more text portions with different text attributes. Change-Id: Iab51dba0d0344fad4358f4961c968c031b1660b6 Reviewed-on: https://gerrit.libreoffice.org/31813 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit 8d52045853cecb716138d51b8b6ad0272a86af86) Reviewed-on: https://gerrit.libreoffice.org/31832 Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2016-12-09tdf#100337 Message boxes showup empty with white backgroundNoel Grandin
the bug here was that we had, on the stack, going into the scheduler THREE times. Two of those were idles. The original code would end up always picking the first idle from inside ImplSchedulerData::GetMostImportantTask and then ImplSchedulerData::Invoke would just return because we were still inside that Idle, and the second Idle would never get executed Since the second Idle was responsible for painting the dialog in the bug, sometimes the dialog would never get painted. Change-Id: Ia15b98a06e231c8e1c29450e05a76ad427e41e36 Reviewed-on: https://gerrit.libreoffice.org/31785 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 19a4eaab9a55a2ecb33b727bad6307c5a2badc23) Reviewed-on: https://gerrit.libreoffice.org/31798 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-12-09tdf#93430: Cannot get accessible text attributes for 'Not in dictionary' entryTamás Zolnai
Squashed from two commits: tdf#93430: Get run attributes of text objects .. which are not paragraphs. Note: For some reason in character attributes sequence we have a wrong Any value for "CharPosture" property. Signed-off-by: Tamás Zolnai <tamas.zolnai@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/31591 (cherry picked from commit 17773e1a8dd6e97f57db111819338c418f819cef) tdf#93430: Cannot get accessible text attributes for 'Not in dictionary' entry Reviewed-on: https://gerrit.libreoffice.org/31778 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit e0d8c3821b8fa1e7d00f7b4a7d007f9cb5c592a5) Change-Id: Ia45526c01cc381d3d6a1b56dbf4f03fdd38a0989 aa2b4fdb582025b763d43f0f24960e2ccee708e3 Reviewed-on: https://gerrit.libreoffice.org/31792 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2016-12-09oss-fuzz we don't want this stream to automatically resize on seeks past endCaolán McNamara
Change-Id: Ie42b2e173cd3ed9faaf17c3c978227613129fa84 (cherry picked from commit f212bd45a7c7d97fb16380cd9fa7c6abbfb71e05)
2016-12-06Resolves: rhbz#1401778 gtk3+wayland switching windows from the menu woesCaolán McNamara
ignore 0 timestamps cause they're useless and get the current event time stamp during MenuBarReturnFocus to determine the timestamp of the menu command dispatch (cherry picked from commit adfcd16220444ef3ea318515c5a331210250e45f) Change-Id: Ia4b00aafc9ef47b41dcca2c160e943200db5c524
2016-12-03add the SalAbort message to the crash reporterMarkus Mohrhard
Change-Id: Ibe08034bcf2a73fb12562c87c2898db1e974376c Reviewed-on: https://gerrit.libreoffice.org/31577 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 1b206f37d0f9b61ebc908f58b33515c055ff1a75) Reviewed-on: https://gerrit.libreoffice.org/31585 Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2016-12-03Require HarfBuzz 0.9.42Khaled Hosny
This is the first version where hb_buffer_set_cluster_level() was introduced. The layout engine depends on this feature in a few places and though we can build without it, the result will be wrong in some cases (i.e. any where we assume combining marks will have their own cluster number). Reviewed-on: https://gerrit.libreoffice.org/31521 Reviewed-by: Rene Engelhard <rene@debian.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Khaled Hosny <khaledhosny@eglug.org> (cherry picked from commit b9fe5dc791f56df55495d171ae901a246907c68b) Change-Id: I89187f317052e7933b83ad0350cace239333510b Reviewed-on: https://gerrit.libreoffice.org/31572 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-01tdf#104013: Band aid for overzealous clippingKhaled Hosny
Change-Id: If66b7a61f4165ea2e504625cde36161adf945a53 Reviewed-on: https://gerrit.libreoffice.org/31418 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> (cherry picked from commit ba3e52699bc05911bc1f9e3cbd5d1332902c736a) Reviewed-on: https://gerrit.libreoffice.org/31441
2016-11-30vcl mscrypto PDF sign: bring it up to date with NSS, part 2Miklos Vajna
This is a combination of 6 commits: 1) CppunitTest_xmlsecurity_signing: fix this on Windows with non-empty cert store The NSS code earlier started to save the hash algo ID of the signature into the signature structure and I also added a unit test for this. This failed on Windows when the system had at least one signing certificate installed, as the mscrypto part of the patch was missing. (cherry picked from commit fd3db1cf77c86cd787f912b7bb2ba3ad894203f3) 2) vcl mscrypto PDF sign: don't assume that header length is always 2 bytes For now just assert that the short form doesn't try to handle larger values than expected, the long form has to be implemented once we hit the assert. (cherry picked from commit 5bf32e4e78ffbe34f3b2840a9677ded34e5b4da7) 3) vcl mscrypto PDF sign: write IssuerSerial sequence It fixes a problem detected by the PAdES validator from <https://github.com/esig/dss>, and with this the Windows output is in sync with NSS. (cherry picked from commit e1446e9e25f784a730c0399ba64b52b36a01a91c) 4) vcl mscrypto PDF sign: fix typo in GetDERLengthOfLength() When id-aa-signingCertificateV2 had a value that was larger than 255 bytes, then the header size is expected to be 4 bytes, but it was only 3. The length part of the header is 3 bytes: one byte declaring the length-of-length, and 3 bytes for the length. We added this additional byte to the result too early, that way we counted that e.g. 278 (the number) fits into a single uint8_t, which is not the case. Also introduce named constants for some of the hardwired numbers in the code for better readability. (cherry picked from commit 7339a3d39035ccc7541fbbddc858121ce464dc68) 5) CppunitTest_xmlsecurity_signing: add 2 more ODF / XAdES tests Make sure we handle the case when the document has a signature stream, but it's empty. Make sure we find a given XAdES-enabled ODF document valid. Previously this was tested only dynamically, i.e. breaking both the import and the export at the same time went unnoticed. (cherry picked from commit deaa4701e609f698999c3e05ce79b15f4cb94670) 6) CppunitTest_xmlsecurity_pdfsigning: add first PAdES test As a start just make sure we accept "ETSI.CAdES.detached" as a valid SubFilter value. (cherry picked from commit 568e0394868114457c9dbf7cc1af5bc863ae2a4d) Change-Id: I19f480a5a24df0f451261d6d9a0dd9bd72ff6cc1 Reviewed-on: https://gerrit.libreoffice.org/31435 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-11-30tdf#103747: Don't re-position images when re-playing a metafile.Jan Holesovsky
I am not sure it's a good idea to re-position them at all; but for the moment don't do that only with the metafiles, as I am not sure what the other consequences could be. Change-Id: I50e50663149f7879ddc86149d92d44cf2d5df40d (cherry picked from commit be5369e7aa426be8b88776f58aaaba1ae926229c)
2016-11-30tdf#101458 - check PNG for adequate compressionMarco Cecchetti
Change-Id: I7131d3b721ebb4d47b0bb43f09fcb9767f8ac6d8 Reviewed-on: https://gerrit.libreoffice.org/31411 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Marco Cecchetti <mrcekets@gmail.com>
2016-11-29tdf#104139 state can't be set as context may not be availableTomaž Vajngerl
When RenderState is constructed (and all capability states get constructed) the OpenGL context may not be available yet, so we just set the state to whatever value (false) and make sure we sync with the actual state right away when we have OpenGL context set up and ready. Change-Id: I65a669ab76c1834775007d62efe3d6ac061d6f21 Reviewed-on: https://gerrit.libreoffice.org/31278 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com> (cherry picked from commit 58a6cbfbf309b151b9d1463c734343430f9a1220) Signed-off-by: David Tardon <dtardon@redhat.com>
2016-11-29Resolves: tdf#90214 set gtk[2|3] lightshadow halfway between darkshadow and bgCaolán McNamara
Change-Id: Ie8d41c6b507c837f369b34b6a0290da02f0a1665 (cherry picked from commit 308b0fcd2081e2a2665b572d62f7f07de85e2b45)
2016-11-29Related: tdf#90214 gtk2 use a darkcolor based on the themeCaolán McNamara
this is similar to e6d6e35320984fe4198314e3ea3a91ead6b41392 for gtk3 where... Related: rhbz#1287593 issue 8, set a 'dark shadow' color based on the theme pick something that is supposed to be a large contrast against the bg but is different from the fg Change-Id: If2d3a1b485dc5ec6be58d434394499cf5f851d0e (cherry picked from commit f50270ea5cb20c589edc2111e92412ffff4734ca)
2016-11-29tdf#104139 keep the current OpenGL stateDavid Tardon
This hopefully fixes tdf#104139, which I cannot reproduce on my system. Change-Id: I903f479a1f401804481b9645c9377c4aaeec13f7 (cherry picked from commit 83288089d5efd2cd1d5c76b05a4ba3f782641e88) Signed-off-by: David Tardon <dtardon@redhat.com>
2016-11-29vcl mscrypto PDF sign: bring it up to date with NSS, part 1Miklos Vajna
This is a combination of 6 commits: 1) vcl mscrypto PDF sign: add initial 'signing-certificate' signed attribute Equivalent of the earlier NSS commit, payload is just an empty sequence at the moment. (cherry picked from commit cb851cbb09adc637bb6e8095050292f7a8c6a7b1) 2) vcl mscrypto PDF sign: write ESSCertIDv2 With this, the value of signing-certificate conforms to the RFC on Windows as well. (cherry picked from commit b12410f212658996fdb5fb291a06038e9ac39b2e) 3) xmlsecurity mscrypto PDF sign: conditionally add back CAdES SubFilter We can now write that on Windows as well when requested, after the signing-certificate attribute is implemented using mscrypto. With this, the PAdES validator at <http://signatures-conformance-checker.etsi.org/protected/upload.php?sigtype=padesconf> finds our Windows signature valid. (cherry picked from commit 8a279d7de4cf94c99f655f6edd0da0c24ab4003c) 4) CppunitTest_xmlsecurity_signing: don't assume we always have a signing cert This makes this suite in sync with CppunitTest_xmlsecurity_pdfsigning. A signing certificate is available on 64bit NSS platforms, as there we provide a pre-created NSS db, but on other platforms by default there is just no signing certificate. The certificate.crt I added earlier is not enough, that's just the certificate, but it doesn't provide a private key. (cherry picked from commit 748f778d0f42f2cbb78a7ca7e013bfbd77cdf2b7) 5) CppunitTest_xmlsecurity_signing: add XAdES testcase Assert the two user-visible changes: SHA-256 hashes and the digest of the signing certificate. (cherry picked from commit 426495cb441e6a83cd0d1f74b0ddf656322815b5) 6) CppunitTest_xmlsecurity_pdfsigning: add PAdES testcase Assert the two user-visible changes: SHA-256 hashes and the SubFilter of the signature. (cherry picked from commit 5cb580144c286117db485e605c79ce1139cb94fb) Change-Id: I12a2355e2ddfc368bed4430a7b5ad244b5778afe Reviewed-on: https://gerrit.libreoffice.org/31316 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-11-28tdf#101327 - tolerate exceptions during window construction better.Michael Meeks
It appears we can end up being a frame window, which is not added into the list of frames; so tolerate that. Change-Id: I7696e79636f7794f327027f0ca73363eef1937e5 Reviewed-on: https://gerrit.libreoffice.org/31235 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 115671bf929a82709c535b475bf19f4967a666c8) Reviewed-on: https://gerrit.libreoffice.org/31254 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2016-11-28Simplify things a bitKhaled Hosny
* Drop SortGlyphItems() and update the Kashida insertion code not depend on that sorting. * IS_DIACRITIC flag can now be based solely on the General Category property, since it now is used for non-spacing marks not any OpenType mark glyph. Pending complete removal. * Check whether a glyph can take Kashida or not in one place. We need to stop second-guessing here and pass explicit Kashida insertion points from upper layers. Change-Id: I39caa126a07d08c5725505615acc0c8f7a14e169 Reviewed-on: https://gerrit.libreoffice.org/31300 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> (cherry picked from commit f246542d1f61b5253189676688f59e5f952267a1) Reviewed-on: https://gerrit.libreoffice.org/31301
2016-11-25tdf#103820 & tdf#103824 fix texture refactoring mistakeTomaž Vajngerl
Change-Id: I657a4b46e3e7efbe8b1ea5c1e811e1d125f5146f (cherry picked from commit 6d49a1bb6e2e81d001b8fdf246cb16f85eb79840) Reviewed-on: https://gerrit.libreoffice.org/31216 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2016-11-24Resolves: tdf#99508 ensure sufficient size for hidpi backing surfaceCaolán McNamara
and match virtual device scale with widget device scale Change-Id: I1f35dcbaec94be12758ad6e4276bfd6bda4b1e88 Reviewed-on: https://gerrit.libreoffice.org/31080 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins <ci@libreoffice.org> Tested-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit d9a6e0023c9a192850b9db00f8120fbcc4256ec9) Reviewed-on: https://gerrit.libreoffice.org/31154 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-11-24with wayland scaling cairo is meddling with our fontCaolán McNamara
so I see mixed large scaled and small unscaled letters in the writer header/footer widget among other places so don't give it our FreeType font face (FC_FT_FACE), keep that for ourselves, but instead set the filename and face index and let it make a new one itself. Change-Id: I2e5eceb7bf590ccfeb06123d0404120feacfff97 Reviewed-on: https://gerrit.libreoffice.org/31127 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 8c3e1465223bd8c824c4cecfd0e6fc387583e592) Reviewed-on: https://gerrit.libreoffice.org/31153
2016-11-24Make PS on Unix printing use the new layout engineKhaled Hosny
I’d rather kill PS printing entirely, but this will do for now. Change-Id: I112cc4855ab722ac07d31231f2a1ea8842b4159a Reviewed-on: https://gerrit.libreoffice.org/31133 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> (cherry picked from commit f337e95fb50c9edc10aca859aaf08baab5294d2e) Reviewed-on: https://gerrit.libreoffice.org/31140 Tested-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-22tdf#99327 vcl PDF mscrypto sign: fix SHA-256 OIDMiklos Vajna
The previous OID only worked with NSS as NSS_CMSUtil_MapSignAlgs() has a hack to accept it, saying Windows 2003 generates such OIDs. Don't depend on readers of the signature accepting that incorrect OID. Change-Id: I63e9a363e9e2ad233eeeacea1a354e3190da1ac1
2016-11-22vcl PDF mscrypto sign: upgrade SHA-1 hash to SHA-256Miklos Vajna
Also: - avoid writing ETSI.CAdES.detached for now on Windows till doing so results in an invalid signature in Acrobat - extend the SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION hack to do the same for SHA256 and SHA512 as well, as Acrobat and NSS accepts such signatures Change-Id: Ibb0a204504b29230dd712ffb709d2037c1007218
2016-11-22tdf#55469 Consistent line spacing across platformsKhaled Hosny
We current use platform APIs to calculate line spacing, however different platforms behave differently: * FreeType and Core Text will prefer hhea table over OS/2, and OS/2 Typo metrics over Win ones. * GDI’s TEXTMETRIC only uses OS/2 Win metrics, while NEWTEXTMETRIC seems to use Typo one, but we use only the old TEXTMETRIC. So we get inconsistent line spacing and we have no control which of three competing sets of line spacing metrics we end up using. The current conventional wisdom is that: * hhea metrics should be used, since hhea is a mandatory font table and should always be present. * But if OS/2 is present, it should be used since it is mandatory in Windows. OS/2 has Typo and Win metrics, but the later was meant to control text clipping not line spacing and can be ridiculously large. Unfortunately many Windows application incorrectly use the Win metrics (thanks to GDI’s TEXTMETRIC) and old fonts might be designed with this in mind, so OpenType introduced a flag for fonts to indicate that they really want to use Typo metrics. So for best backward compatibility: * Use Win metrics if available. * Unless USE_TYPO_METRICS flag is set, in which case use Typo metrics. This patch does this by reading the hhea and OS/2 tables directly and implementing the algorithm above. Quick comparison with Microsoft Office 2016 shows similar line spacing as the new line spacing here, so I guess we are improving compatibility as well. Change-Id: I4541e67e3e14508e3529e73083056a09de02e637 Reviewed-on: https://gerrit.libreoffice.org/31053 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-22loplugin:datamembershadowStephan Bergmann
Change-Id: If9e9371569750dd2c970450b808c6c5567faae55