summaryrefslogtreecommitdiff
path: root/vcl/source
AgeCommit message (Collapse)Author
2017-01-26ofz#424 vcl: reset nLen tooMichael Stahl
Change-Id: I8794bfebaf729345bfd1aa44dcd66099db7ca1cd Reviewed-on: https://gerrit.libreoffice.org/33583 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-01-26Resolves: tdf#94457 our EmfPlusSetPageTransform is malformedCaolán McNamara
we write a single short, resulting in a record of 0x000C in length MS-EMFPLUS spec has EmfPlusSetPageTransform as 0x0010 in length because we're not writing the 4 byte PageScale value. the previous pageunit unit we are writing is of value 1, which is UnitTypeDisplay, the same spec says... "The unit of measure for page space coordinates, from the UnitType enumeration. This value SHOULD NOT be UnitTypeDisplay or UnitTypeWorld" and footnotes that with... "Windows never writes those values to the PageUnit field, but they are accepted with undefined results." Change-Id: Ic8b5ec463b59aab28ae9897947dfcdbd35b22048 Reviewed-on: https://gerrit.libreoffice.org/33559 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-01-26fix guardCaolán McNamara
Change-Id: If7787ca67f3c0d45ac0425a12719e92e0040bcc3 Reviewed-on: https://gerrit.libreoffice.org/33518 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2017-01-25ofz#463 unable to mmapCaolán McNamara
Reviewed-on: https://gerrit.libreoffice.org/33519 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit f6c465bc8e7583a8321f5c881cb008b980e0e3fa) Change-Id: I509faeda019f42bbe7cdc5fc249f2ea2076bb702 Reviewed-on: https://gerrit.libreoffice.org/33521 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2017-01-25ofz#439 protect against 0 len textCaolán McNamara
Change-Id: Ib67284636235b0d43df626a4aeed67f2bc64b491 Reviewed-on: https://gerrit.libreoffice.org/33375 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-01-24Resolves: ofz#424 guard against broken dxary lengthCaolán McNamara
Change-Id: Ia2569e963edd75cd6c27399d33e73bafe8b3f073 Reviewed-on: https://gerrit.libreoffice.org/33320 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-01-19Resolves: tdf#98593 buttons in writer show different text at different zoomsCaolán McNamara
The DrawControlText always renders with a reference device positions but we pass in a rectangle which is derived a different way. So, add a GetControlTextRect which operates on the same reference device as DrawControlText so the rectangles match The rectangle is mapped from pixels to logic and back from logic to pixel, so add an argument to store the logic size from GetControlTextRect and re-use it without conversion on the cases where we pass back the original rectangle zooming in/out on the button in writer is now stable wrt text shown at all zoom levels Change-Id: Ic581eca67d0ff265e2753ab8b6c40e8fca7e6ae4 Reviewed-on: https://gerrit.libreoffice.org/33277 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 db9ef688edd86b31606e0dd6df6a77732faca49b) change DrawControlText to return new rect rather than change old one Change-Id: Id5c80ff263e429d4239a844db216e87a656edb2e (cherry picked from commit bc6479e92b56df742dd7339d337ffc78d2f9e4a1) Ref...DeviceTextLayout::GetTextArray is only called by Ref...DeviceTextLayout so set it as private to de-confuse this a little Change-Id: Idde7f78a767227cc2d52e417b6c39d12e1339745 (cherry picked from commit 3d002fdb8738d9bbc9b04c0270510e349bd58149) Reviewed-on: https://gerrit.libreoffice.org/33281 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-01-18ofz#419 same problem as wmf and emfCaolán McNamara
this is the *third* effective copy of this, see the other two uses of LF_FACESIZE in wmf parsing Change-Id: I475b18314784ad072fe58730c361fc5ca6e65819 Reviewed-on: https://gerrit.libreoffice.org/33256 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-01-18ofz: reduce scope, check stream, validate nActionsCaolán McNamara
(cherry picked from commit bd78b28a1233e26c023a52df6b119d60a61d53ad) Change-Id: Ie420ad40b0d852708828620cd26c2f746398f5a8 Reviewed-on: https://gerrit.libreoffice.org/33259 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-01-17ofz#411: XPMReader::ImplGetColKey short readCaolán McNamara
Change-Id: I2e47ef6478b8349a562b294d0fbdad65c2a3b543 Reviewed-on: https://gerrit.libreoffice.org/33217 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-01-17tdf#105017 Crash when click a "New Theme..." in Gallery on detached SideBarNoel Grandin
caused by VclPtr fixes which meant instead of the dialog staying in an always-zero ref-count state, it went up to a ref-count of 1, then down to zero, which triggered a delete before the dialog had finished displaying. And revert my fix in commit 0c1cd678f71e519f5a4e623d93442e046485005a which just worked around the underlying problem Change-Id: Icb35535dd06a2d1db1016d00d106760847d87430 (cherry picked from commit cd9d8315141c3070f43e145ed4ee390e837eb73f) Reviewed-on: https://gerrit.libreoffice.org/33209 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-14tdf#105017 Crash when click a "New Theme..." in Gallery on detached SideBarNoel Grandin
Change-Id: I6a3c44a0a08cf036776976d40c985889698c08ac Reviewed-on: https://gerrit.libreoffice.org/33041 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit a076a062ceb02bd34a460819db61dcbfbca5c8d7) Reviewed-on: https://gerrit.libreoffice.org/33056 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-13ofz: ensure all not explicitly set indexes are zeroCaolán McNamara
Change-Id: Idbe6ceeb61d3dfe26f281349181e7a60f7e59000 (cherry picked from commit 14d9b3519adac8543b52ddb84e49eecbdd1d9eb2) Reviewed-on: https://gerrit.libreoffice.org/33035 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-01-12tdf#105151 - be more conservative about EndTracking / Tracking calls.Michael Meeks
We really shouldn't be emitting these into widgets after they are disposed - it serves only to confuse things. Restore behaviour to how it was before the VclPtr change for this. Change-Id: Ife666929f8aac0e4431a5e43970769692c11888c Reviewed-on: https://gerrit.libreoffice.org/32785 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> (cherry picked from commit d788d37a16d382d7ff32a19e8d65e5c605ac55dd) Reviewed-on: https://gerrit.libreoffice.org/32789 Reviewed-by: Eike Rathke <erack@redhat.com>
2017-01-10ofz#394 xbm ParseDefine problemCaolán McNamara
Change-Id: I75fb761d23fdb3780088a9d209200429edb57a26 Reviewed-on: https://gerrit.libreoffice.org/32877 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
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-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-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-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-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-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-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-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-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-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-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-22Resolves: rhbz#1397181 toolbar layout manager not respecting drag cancelCaolán McNamara
plus restore original mbDockCanceled state after wayland-enforced cancel otherwise next drag won't work Change-Id: Idefed25b925b36d0bf72b77609c4fc2eb47f71b9
2016-11-22vcl NSS PDF sign: write IssuerSerial sequenceMiklos Vajna
Nominally this is optional, but RFC 5035 says: "The encoding of the ESSCertIDv2 for this certificate SHOULD include the issuerSerial field." So do write it, it fixes a warning issued by the PAdES validator from <https://github.com/esig/dss>. Change-Id: I344f79e17febe82a697a0936a837c17aefa242df