Age | Commit message (Collapse) | Author |
|
Modify the definiton of the DrawServerFontLayout method.
Add new DrawSalLayout method which will be used for drawing text
independent of the platform.
Change-Id: Ie3eefb172b1781c685def1ef549db2538f672a62
|
|
the gen vclplug, which is then unused for the gtk/gtk3 case
so only possible to use in gen/kde.
Make the default impl the no-op case and override just in
gen
Change-Id: Id0dd3fe4ae4e5b94bfc56219defab56905ec710a
Reviewed-on: https://gerrit.libreoffice.org/28675
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ic6f6e11437e75d17630683196c1b94dc25dd888f
|
|
Change-Id: Ifbfcf3557ca2a16d21e7a1d613ee54c1c6625f07
|
|
Change-Id: I7a1e4448dfff0ea6909149533d228829d980796c
|
|
Change-Id: I4c913dc62efe3f3747e78670f4efb0216d95c4ad
Reviewed-on: https://gerrit.libreoffice.org/28585
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Id5323cb6f52666f85965e11b07e4f2bca8af4e78
|
|
I think it's best to not use cairo on iOS, even if we do use it on
Android. We probably want to use native APIs for the functionality
that cairo would provide. Just like we do on OS X.
No idea whether the resulting TiledLibreOffice will still work like it
used to in May last year, when I last tried.
Change-Id: Ie15cad6918d7a66e2aff7faabfcade7f3246b060
|
|
Just to get this one file to compile. More errors come later. I just
spent a short time on this while waiting for something else.
Actually I have no idea what we should do on iOS nowadays. Do we want
to use cairo? Do we want to use OpenGL? Would it make sense to mimic
what we do on Android as much as possible? (But what do we do on
Android, and is that by choice or accident?) Even if that might mean
not using APIs native to iOS, but slower (not HW accelerated) FLOSS
alternatives that perform the same functionality, broadly speaking?
Change-Id: Id88a895b90f753417eced744141376656bcf72c3
|
|
Change-Id: Id36e716253768321e1ddfb977a22470c6b694147
Reviewed-on: https://gerrit.libreoffice.org/27510
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I909adaab3dca3c1bac4331b164343cdbc1205df2
Reviewed-on: https://gerrit.libreoffice.org/27365
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
|
|
verify that parameters on override methods have the same set of default
values for their params as their parent/super-methods do.
Change-Id: Ibdbc1c6e417fbaa680ea025a6bbf5ba9c2e5bcd2
Reviewed-on: https://gerrit.libreoffice.org/27437
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: Icea880a824f57ca74eb9e22820893faf6cbf7945
|
|
as seen in tdf#100909 with gtk3 backend
Change-Id: I67a270a96df980489cd2cb37461b3bf88de4df03
|
|
This fixes the missing-invalidation problem outlined in commit
22023b104cd1e024aecc28a6161bea519a584407 (vcl lok: fix missing paints
due to zero-sized windows, 2016-07-12) also in Writer, not only in
Impress. Starting text edit, doing a change, and ending text edit now
results in the expected invalidations.
Ignoring visibility seems to be a better fix for the missing paints.
This way the headless case doesn't hit the corner cases of 0x0-sized
windows. Also, the gtk vclplug's GetClientSize() only returns 0x0 in
case the underlying window is disposed or it's minimized, but it does
hand out the size before Show() is called, so now the headless backend
is in sync with that.
Change-Id: I78698cbfce954c8c593d279ab057a87cfbe87260
Reviewed-on: https://gerrit.libreoffice.org/27224
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
|
|
Change-Id: Ib543e45d8eb1d54ef5c27769c601379fe615b23d
|
|
Change-Id: Icb8761e5ff89e1c0e0e034a751fe9a50ad5ab90a
|
|
Change-Id: I902acd90797ab26304bc5b239b862cae9f3075ef
|
|
Besides:
* Convert ImplJobSetup to be a class.
* Use ImplJobSetup's setters and getters everywhere
* add some const-correctness at places
Change-Id: I32101048e9be4f3950a4540b0666ed548bbcb211
Reviewed-on: https://gerrit.libreoffice.org/24594
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
|
|
ASAN usually aborts on operator new[] allocation failure but with
allocator_may_return_null=1 in ASAN_OPTIONS it returns null instead; it
doesn't throw std::bad_alloc though.
Change-Id: I28d67a787e90604c12ad06fd97d265664bd62ef2
|
|
Change-Id: I4ac1bb25d3d63f150b42d9e1708efc344bbdb6a7
Reviewed-on: https://gerrit.libreoffice.org/26113
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I901e5de3e4e25f0cae5c71d6e83fd94459fe7b7e
Signed-off-by: melikeyurtoglu <aysemelikeyurtoglu@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/21951
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: jan iversen <jani@documentfoundation.org>
|
|
to match CAIRO_FORMAT_A1 ordering
as seen under gtk3 with animated gif of tdf#99519
Change-Id: I62d7197522ad779683e46837ddeabbfe21f3717b
|
|
Change-Id: I751ab762b6e6f961e9e73a8a2ca92a3f5a5eb1c8
Reviewed-on: https://gerrit.libreoffice.org/25189
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: Id782278645789d0b252ba3c096ca9e5538a3e5b3
|
|
Change-Id: I636d9bdac907000e4089aebdc5548ea89ec58083
Reviewed-on: https://gerrit.libreoffice.org/25252
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
which, at least theoretically, allows there to be vclplug
specific ones. i.e. a gtk3 specific one which doesn't
assume gtk3 is running under X
Change-Id: I6c007a87abbd3049b6fffc70d349e3b7ac445eec
|
|
Change-Id: I79e97a4826bfe3918de223cccf48646a1404f901
Reviewed-on: https://gerrit.libreoffice.org/24922
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: Iaaef4d90d7fe817a32cd51652d41c2e49c8909a4
Reviewed-on: https://gerrit.libreoffice.org/24832
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: Id996e1e6fc29f6323bd4e82785386de26d075cae
Reviewed-on: https://gerrit.libreoffice.org/24834
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I0ca41130f5e1028a70f1242f7af3366b7c57c572
Reviewed-on: https://gerrit.libreoffice.org/24833
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
...which (in LIBO_INTERNAL_ONLY) for Clang expands to [[clang::fallthrough]] in
preparation of enabling -Wimplicit-fallthrough. (This is only relevant for
C++11, as neither C nor old C++ has a way to annotate intended fallthroughs.)
Could use BOOST_FALLTHROUGH instead of introducing our own SAL_FALLTHROUGH, but
that would require adding back in dependencies on boost_headers to many
libraries where we carefully removed any remaining Boost dependencies only
recently. (At least make SAL_FALLTHROUGH strictly LIBO_INTERNAL_ONLY, so its
future evolution will not have any impact on the stable URE interface.) C++17
will have a proper [[fallthroug]], eventually removing the need for a macro
altogether.
Change-Id: I342a7610a107db7d7a344ea9cbddfd9714d7e9ca
|
|
Change-Id: If9f725c791f9d01efba098caed8387f21862fa04
Reviewed-on: https://gerrit.libreoffice.org/24825
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I2c49ec843c0f95e8246cdf9d3185c11e81a3bde3
Reviewed-on: https://gerrit.libreoffice.org/24824
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I4e605e7acfe9d4fe409d32f20880b4c0e85a0ea7
|
|
Posix requires that a process forked from a multi-threaded process only calls
async-signal-safe functions between fork and exec. This has been observed to
cause trouble at least in an ASan build, where a forked sub-process (that wants
to proceed to exec java from getJavaProps,
jvmfwk/plugins/sunmajor/pluginlib/util.cxx) hangs in
__sanitizer::BlockingMutex::Lock from within ASan's operator new replacement,
from within the SAL_INFO in SvpSalInstance::CloseWakeupPipe, from within the
atfork_child handler established with pthread_atfork. The rest of the calls in
SvpSalInstance::Create-/CloseWakupPipe appear to be async-signal-safe.
This pthread_atfork handler got introduced with
dbced8e8584b631524dacf607f752ebb734901db "Don't share the wakeup pipe with child
processes". It is irrelevant when the child process will proceed to call exec.
And if the child process does not proceed to call exec (which is the intented
use case why it got added), the above-mentioned Posix requirement makes it look
unlikely that the child will operate properly (i.e., not call any async-signal-
safe functions), unless the parent process was single-threaded.
Change-Id: I9ecaf98597b396e0db83fe98fb11a7df7686e1d6
|
|
Change-Id: I5448c7e46042850f18970c7613ec5a37df57bce7
|
|
Change-Id: Ic8259d81d8080c518aa07697e253a59cd6efaa4b
|
|
unnecessarily passing primitives by const ref.
Suggested by Tor Lillqvist
Change-Id: I445e220542969ca3e252581e5953fb01cb2b2be6
Reviewed-on: https://gerrit.libreoffice.org/24672
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
The property stroke-miterlimit is transported to the renderers
via a new member mfMiterMinimumAngle in class LineAttribute
Several drawPolyLine methods are adapted. This patch does not
include changes in MetaAction. Presentation mode, printing, and
PDF-export is still wrong.
Corrected LineJoinMiter to LineJoinBevel in canvas, that s closer
to NONE. Removed DrawPolyLine method without MiterMinimumAngle
and adapted calls accordingly.
Change-Id: I6bcd24add5d85c4d9a39e3788e0682091c5fc9c4
Reviewed-on: https://gerrit.libreoffice.org/23946
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
|
|
Change-Id: Ifdcdc50bab452408d1c50530095c6fbf77aa600f
|
|
Change-Id: I5090b2e55eb618b53748966133fe9166ee736866
|
|
Create a new pipe in the child process.
In a normal desktop LibreOffice each fork() will be followed quickly
by an exec(), so the FD_CLOEXEC would be enough for that. In
LibreOfficeKit-based software that uses the preinit mechanism, though,
the intent is that one can fork child processes without exec().
This solution uses pthread_atfork(). Another way would be to add
suitable public API callable from the LibreOfficeKit client
initialisation code in desktop/source/lib/init.cxx to explicitly close
and reopen the wakeup pipe in the default SvpSalInstance.
Change-Id: I03fad4ce4adf14c16cb0f537b3baab58fba38922
Reviewed-on: https://gerrit.libreoffice.org/24256
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Some graphic sub systems cannot handle cases where control points of
bezier curves are not set and produce wrong geometry for fat line drawing
when MITER or similar LineCap and/or LineJoin is used. To avoid that,
provide the mathematically correct fallback control points instead.
Change-Id: Iabc724e51fb89e702f858db820c920f7b5b7d302
Reviewed-on: https://gerrit.libreoffice.org/24031
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
|
|
Change-Id: I8b8d0322e62a64379eb72ca648c06b092c363f6a
|
|
At least JunitTest_framework_copmlex triggered the UBSan failure
> vcl/headless/svpgdi.cxx:924:46: runtime error: division by zero
> #0 0x2b7114500e3b in renderSource(_cairo*, SalTwoRect const&, _cairo_surface*) vcl/headless/svpgdi.cxx:924:46
> #1 0x2b711450074c in SvpSalGraphics::copySource(SalTwoRect const&, _cairo_surface*) vcl/headless/svpgdi.cxx:937:33
> #2 0x2b7114501f37 in SvpSalGraphics::copyBits(SalTwoRect const&, SalGraphics*) vcl/headless/svpgdi.cxx:980:5
> #3 0x2b7113461871 in SalGraphics::CopyBits(SalTwoRect const&, SalGraphics*, OutputDevice const*, OutputDevice const*) vcl/source/gdi/salgdilayout.cxx:529:9
> #4 0x2b711359a1fc in VirtualDevice::InnerImplSetOutputSizePixel(Size const&, bool, unsigned char*) vcl/source/gdi/virdev.cxx:352:17
> #5 0x2b711359bef6 in VirtualDevice::ImplSetOutputSizePixel(Size const&, bool, unsigned char*) vcl/source/gdi/virdev.cxx:391:9
> #6 0x2b711359edc0 in VirtualDevice::SetOutputSizePixel(Size const&, bool) vcl/source/gdi/virdev.cxx:437:12
> #7 0x2b70fa4b6f3f in sdr::overlay::OverlayManagerBuffered::ImpPrepareBufferDevice() svx/source/sdr/overlay/overlaymanagerbuffered.cxx:45:17
> #8 0x2b70fa4c0c2c in sdr::overlay::OverlayManagerBuffered::ImpSaveBackground(vcl::Region const&, OutputDevice*) svx/source/sdr/overlay/overlaymanagerbuffered.cxx:159:13
> #9 0x2b70fa4cecab in sdr::overlay::OverlayManagerBuffered::completeRedraw(vcl::Region const&, OutputDevice*) const svx/source/sdr/overlay/overlaymanagerbuffered.cxx:414:17
> #10 0x2b70fa787fc4 in SdrPaintWindow::DrawOverlay(vcl::Region const&) svx/source/svdraw/sdrpaintwindow.cxx:334:13
> #11 0x2b70fb9d388f in SdrPaintView::EndCompleteRedraw(SdrPaintWindow&, bool) svx/source/svdraw/svdpntv.cxx:753:9
> #12 0x2b70fd77da81 in FmFormView::EndCompleteRedraw(SdrPaintWindow&, bool) svx/source/form/fmview.cxx:474:5
> #13 0x2b70fb9d64a0 in SdrPaintView::EndDrawLayers(SdrPaintWindow&, bool) svx/source/svdraw/svdpntv.cxx:789:5
> #14 0x2b7182085fe9 in SwViewShell::DLPostPaint2(bool) sw/source/core/view/viewsh.cxx:240:9
> #15 0x2b71820d94c5 in SwViewShell::Paint(OutputDevice&, Rectangle const&) sw/source/core/view/viewsh.cxx:1797:21
> #16 0x2b717c26e635 in SwCursorShell::Paint(OutputDevice&, Rectangle const&) sw/source/core/crsr/crsrsh.cxx:1273:5
> #17 0x2b71839ae182 in SwEditWin::Paint(OutputDevice&, Rectangle const&) sw/source/uibase/docvw/edtwin2.cxx:475:9
> #18 0x2b71100ee7e0 in PaintHelper::DoPaint(vcl::Region const*) vcl/source/window/paint.cxx:309:13
> #19 0x2b71100ff14a in vcl::Window::ImplCallPaint(vcl::Region const*, unsigned short) vcl/source/window/paint.cxx:611:9
> #20 0x2b71100fb252 in PaintHelper::~PaintHelper() vcl/source/window/paint.cxx:549:17
> #21 0x2b71100ff463 in vcl::Window::ImplCallPaint(vcl::Region const*, unsigned short) vcl/source/window/paint.cxx:614:1
> #22 0x2b71100fb252 in PaintHelper::~PaintHelper() vcl/source/window/paint.cxx:549:17
> #23 0x2b71100ff463 in vcl::Window::ImplCallPaint(vcl::Region const*, unsigned short) vcl/source/window/paint.cxx:614:1
> #24 0x2b71100fb252 in PaintHelper::~PaintHelper() vcl/source/window/paint.cxx:549:17
> #25 0x2b71100ff463 in vcl::Window::ImplCallPaint(vcl::Region const*, unsigned short) vcl/source/window/paint.cxx:614:1
> #26 0x2b71100fb252 in PaintHelper::~PaintHelper() vcl/source/window/paint.cxx:549:17
> #27 0x2b71100ff463 in vcl::Window::ImplCallPaint(vcl::Region const*, unsigned short) vcl/source/window/paint.cxx:614:1
> #28 0x2b71100fb252 in PaintHelper::~PaintHelper() vcl/source/window/paint.cxx:549:17
> #29 0x2b71100ff463 in vcl::Window::ImplCallPaint(vcl::Region const*, unsigned short) vcl/source/window/paint.cxx:614:1
> #30 0x2b7110100536 in vcl::Window::ImplCallOverlapPaint() vcl/source/window/paint.cxx:635:9
> #31 0x2b7110102811 in vcl::Window::ImplHandlePaintHdl(Idle*) vcl/source/window/paint.cxx:667:9
> #32 0x2b7110100ee7 in vcl::Window::LinkStubImplHandlePaintHdl(void*, Idle*) vcl/source/window/paint.cxx:645:1
> #33 0x2b71101446d7 in Link<Idle*, void>::Call(Idle*) const include/tools/link.hxx:84:45
> #34 0x2b711380dff9 in Idle::Invoke() vcl/source/app/idle.cxx:25:5
> #35 0x2b711385011b in ImplSchedulerData::Invoke() vcl/source/app/scheduler.cxx:45:5
> #36 0x2b71138535e5 in Scheduler::ProcessTaskScheduling(bool) vcl/source/app/scheduler.cxx:177:9
> #37 0x2b71139a90d4 in ImplYield(bool, bool, unsigned long) vcl/source/app/svapp.cxx:521:5
> #38 0x2b7113982d83 in Application::Yield() vcl/source/app/svapp.cxx:553:5
> #39 0x2b7113982b1a in Application::Execute() vcl/source/app/svapp.cxx:473:9
> #40 0x2b70df7a4294 in desktop::Desktop::DoExecute() desktop/source/app/app.cxx:1322:5
> #41 0x2b70df7aeda3 in desktop::Desktop::Main() desktop/source/app/app.cxx:1647:17
> #42 0x2b7113a0208e in ImplSVMain() vcl/source/app/svmain.cxx:172:19
> #43 0x2b7113a0f776 in SVMain() vcl/source/app/svmain.cxx:210:16
> #44 0x2b70df9e9d01 in soffice_main desktop/source/app/sofficemain.cxx:135:12
> #45 0x4f0f0c in sal_main desktop/source/app/main.c:48:15
> #46 0x4f0ee6 in main desktop/source/app/main.c:47:1
> #47 0x2b70e137057f in __libc_start_main (/lib64/libc.so.6+0x2057f)
> #48 0x418f48 in _start (instdir/program/soffice.bin+0x418f48)
Change-Id: I2bc4abe48c129e006582b9870229f44d2d2bb1ed
|
|
This reverts commit 6b2889b3c4b2da175c4f95bde4495a1a89deedc3.
It breaks several TBs
eg:
/Users/cloph/source/libo-core/sw/source/uibase/dbui/dbmgr.cxx:140:10: fatal error: 'config_cups.h' file not found
^
|
|
Change-Id: I17a8d361b6c24dd9c4853d82e788c48084133e69
|
|
disables OpenGL and glew usage, lets --without-gui do what
--without-x did before and disables X related test
Change-Id: I680b47c9962a0d43c8ece593db0b82e347ceebdb
Reviewed-on: https://gerrit.libreoffice.org/23474
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Oliver Specht <oliver.specht@cib.de>
|
|
Change-Id: I90282c86b45845fc35b23b275301be24a2f18a4d
Reviewed-on: https://gerrit.libreoffice.org/23248
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|