summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)AuthorFilesLines
2019-06-12Revert "improve empty tools::Rectangle (width)"Noel Grandin6-10/+4
This reverts commit a46a257794f1f53b294735fc876c394be23a3811. Too many issues, I'm going to try landing this in smaller pieces to make it easier to fix regressions Change-Id: Ie5e8979838017af86c119c887b580385ba068d54 Reviewed-on: https://gerrit.libreoffice.org/73859 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-12tdf#125814 sc autofilter popup: perform non-partial paint on entry invalidateMiklos Vajna1-1/+5
... in the double-buffering case. Commit a4cb27f61376d8f2d8faed0022c291af68d437bd (refactor ScMenuFloatingWindow to use RenderContext, 2015-05-14) changed the partial paints to invalidate + full paint, so invalidate the whole treelist, this makes sure that no checkboxes go missing on mouse click. Change-Id: I43377b7e29d1cdfb43c60256bd57531a8251e2ed Reviewed-on: https://gerrit.libreoffice.org/73815 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-06-11Resolves: rhbz#1719378 wrong signature for GtkGestureLongPress::pressedCaolán McNamara2-9/+6
Change-Id: Ib4c47189d5c9c89433f0c7de194ebb9777dc7bac Reviewed-on: https://gerrit.libreoffice.org/73829 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-06-11tdf#125591 DOC import: lazy-load metafiles with explicit sizeMiklos Vajna3-20/+29
Regression from commit 69b62cfcbd364d7f62142149c2f690104b217ca1 (tdf#125281 DOC import: fix size of lazy-loaded metafiles, 2019-05-27), the problem is that setting the preferred size of a Graphic swaps it in. Avoid this by extending ImportUnloadedGraphic(): if a size hint is provided, then that will be used instead of info from the graphic descriptor (which is usually only meaningful for bitmaps). This way we maintain the correct size and we're back to lazy-loading metafiles from binary MSO files as well. Change-Id: Ide12d12166110e98ea47b5347dd24fb203b22da3 Reviewed-on: https://gerrit.libreoffice.org/73798 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-06-11vcl: prefix members of SvImpLBoxMiklos Vajna3-953/+953
Change-Id: Ida7ca49ee99cf13029c6a1cb84b8d3b7ffe44ed7 Reviewed-on: https://gerrit.libreoffice.org/73799 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-06-10tdf#74702 partial cleanup of OutDevTypeAdrien Ollier2-0/+10
VirtualDevice and children are virtual, others not. Change-Id: I9ef7f4d13b26e554b000b2b51216fbdbc6892b08 Signed-off-by: Adrien Ollier <adr.ollier@hotmail.fr> Reviewed-on: https://gerrit.libreoffice.org/71875 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-10use std::array in TrueTypeFontNoel Grandin2-28/+23
Change-Id: Ib19e907a9b6fcce3a3938c5dee29ff658b12e9c4 Reviewed-on: https://gerrit.libreoffice.org/73735 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-09loplugin:constantparamNoel Grandin1-5/+4
Change-Id: I7bbc4e1546acf58f1ca24bfec5e465bad5ca90de Reviewed-on: https://gerrit.libreoffice.org/73732 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-09Sequence->vector in FilterConfigCacheNoel Grandin2-9/+11
Change-Id: Iabcad25980977e31e8800a0d2086d097f38037de Reviewed-on: https://gerrit.libreoffice.org/73728 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-09tdf#125219 qt5: Try qwidget5videosink on WaylandMichael Weghorn2-2/+2
Try to use GStreamer's qwidget5videosink when using the qt5 (or kde5) VCL plugin on Wayland. This is strongly inspired by commit 8543fbc72fafc0d71a8760752ca2ef5b7119cb5c ("gtk3+wayland: play video via gtksink gstreamer element"). qwidget5videosink allows to directly set a 'QWidget*' for the sink's "widget" property to make it paint into this widget, s. [1] for more details. In order for this to work, the relevant Qt5 packages for QtGStreamer need to be installed (provided e.g. by package 'qtgstreamer-plugins-qt5' on Debian). If qwidget5videosink is available, video playback works as expected on Wayland. If it is not available, GStreamer will create it's own (misplaced) window(s) to show the video as is the case without this commit. Switching to e.g. qtglvideosink in the future may theoretically improve performance, since that one uses OpenGL/OpenGLES and supports hardware colorspace conversion and color balance, while qwidgetvideosink does software painting (s. [1]). Also, extending commit 9d18bc40416b651340804f44ba5fae65f3bbbcfa ("tdf#125271 under wayland without gtksink, try waylandsink") to also work with (i.e. set the right window for) waylandsink on qt5 may be worth to take a look at in the future, but didn't "just work" in a quick attempt. [1] https://gstreamer.freedesktop.org/data/doc/gstreamer/head/qt-gstreamer/html/qtvideosink_overview.html Change-Id: I6e17838dcdf5c31a1a8a07f7836a4cf36c63bd06 Reviewed-on: https://gerrit.libreoffice.org/72968 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2019-06-09Qt5Widget: lcl_retrieveSurrounding needs SolarMutexMichael Weghorn1-0/+1
Otherwise * starting Writer * "File" -> "New" -> "Spreadsheet" * switching back to Writer window using Alt+Tab in Plasma Wayland session results in Thread 1 "soffice.bin" received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0 0x00007ffff7b287bb in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007ffff7b13535 in __GI_abort () at abort.c:79 #2 0x00007ffff7b1340f in __assert_fail_base (fmt=0x7ffff7c75ee0 "%s%s%s:%u: %s%sAssertion `%s' failed. %n", assertion=0x7ffff14b0410 "ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && \"SolarMutex not owned!\"", file=0x7ffff14b03d0 "/mnt/data/development/git/libreoffice/vcl/source/app/dbggui.cxx", line=46, function=<optimized out>) at assert.c:92 #3 0x00007ffff7b21102 in __GI___assert_fail (assertion=0x7ffff14b0410 "ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && \"SolarMutex not owned!\"", file=0x7ffff14b03d0 "/mnt/data/development/git/libreoffice/vcl/source/app/dbggui.cxx", line=46, function=0x7ffff14b0470 <ImplDbgTestSolarMutex()::__PRETTY_FUNCTION__> "void ImplDbgTestSolarMutex()") at assert.c:101 #4 0x00007ffff0e495db in ImplDbgTestSolarMutex() () at /mnt/data/development/git/libreoffice/vcl/source/app/dbggui.cxx:46 #5 0x00007ffff2026c2f in DbgTestSolarMutex() () at /mnt/data/development/git/libreoffice/tools/source/debug/debug.cxx:91 #6 0x00007ffff4eea765 in SfxBroadcaster::AddListener(SfxListener&) (this=0x555558e61620, rListener=...) at /mnt/data/development/git/libreoffice/svl/source/notify/SfxBroadcaster.cxx:94 #7 0x00007ffff4effe4e in SfxListener::StartListening(SfxBroadcaster&, DuplicateHandling) (this=0x55555a1ebe50, rBroadcaster=..., eDuplicateHanding=DuplicateHandling::Unexpected) at /mnt/data/development/git/libreoffice/svl/source/notify/lstner.cxx:104 #8 0x00007fffbfdff188 in ScTabViewShell::AddAccessibilityObject(SfxListener&) (this=0x555558c27080, rObject=...) at /mnt/data/development/git/libreoffice/sc/source/ui/view/tabvwshh.cxx:215 #9 0x00007fffbf65754a in ScAccessibleDocument::PreInit() (this=0x55555a1ebdb0) at /mnt/data/development/git/libreoffice/sc/source/ui/Accessibility/AccessibleDocument.cxx:1303 #10 0x00007fffbfd12754 in ScGridWindow::CreateAccessible() (this=0x555558c2dd50) at /mnt/data/development/git/libreoffice/sc/source/ui/view/gridwin5.cxx:443 #11 0x00007ffff06ef948 in vcl::Window::GetAccessible(bool) (this=0x555558c2dd50, bCreate=true) at /mnt/data/development/git/libreoffice/vcl/source/window/accessibility.cxx:129 #12 0x00007fffe730f9c6 in lcl_retrieveSurrounding(sal_Int32&, sal_Int32&, QString*, QString*) (rPosition=@0x7fffffffcb90: -12560, rAnchor=@0x7fffffffcba0: -13392, pText=0x0, pSelection=0x0) at /mnt/data/development/git/libreoffice/vcl/qt5/Qt5Widget.cxx:598 #13 0x00007fffe730ff17 in Qt5Widget::inputMethodQuery(Qt::InputMethodQuery) const (this=0x555556c50ec0, property=Qt::ImCursorPosition) at /mnt/data/development/git/libreoffice/vcl/qt5/Qt5Widget.cxx:656 #14 0x00007fffe786c7f7 in QWidget::event(QEvent*) (this=0x555556c50ec0, event=0x7fffffffcef0) at kernel/qwidget.cpp:8993 #15 0x00007fffe730f0d3 in Qt5Widget::event(QEvent*) (this=0x555556c50ec0, pEvent=0x7fffffffcef0) at /mnt/data/development/git/libreoffice/vcl/qt5/Qt5Widget.cxx:466 #16 0x00007fffe782e4b1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x5555556480f0, receiver=receiver@entry=0x555556c50ec0, e=e@entry=0x7fffffffcef0) at kernel/qapplication.cpp:3726 #17 0x00007fffe7835950 in QApplication::notify(QObject*, QEvent*) (this=0x555555647fe0, receiver=0x555556c50ec0, e=0x7fffffffcef0) at kernel/qapplication.cpp:3485 #18 0x00007fffe851b5a9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555556c50ec0, event=event@entry=0x7fffffffcef0) at ../../include/QtCore/5.11.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307 #19 0x00007fffe5bdbf6a in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fffffffcef0, receiver=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:234 #20 0x00007fffe5bdbf6a in QtWaylandClient::QWaylandTextInput::updateState(QFlags<Qt::InputMethodQuery>, unsigned int) (this=0x555555655ab0, queries=..., flags=2) at qwaylandinputcontext.cpp:134 #21 0x00007fffe5bdc433 in QtWaylandClient::QWaylandTextInput::commit() (this=0x555555655ab0) at qwaylandinputcontext.cpp:98 #22 0x00007fffe5bdc4b9 in QtWaylandClient::QWaylandInputContext::commit() (this=0x555555652300) at qwaylandinputcontext.cpp:544 #23 0x00007fffe5bdc4b9 in QtWaylandClient::QWaylandInputContext::commit() (this=0x555555652300) at qwaylandinputcontext.cpp:410 #24 0x00007fffe7833aa5 in QApplication::setActiveWindow(QWidget*) (act=act@entry=0x555556f29a60) at kernel/qapplication.cpp:2088 #25 0x00007fffe7833b53 in QApplicationPrivate::notifyActiveWindowChange(QWindow*) (this=<optimized out>, previous=<optimized out>) at kernel/qapplication.cpp:2182 #26 0x00007fffe7e42ce5 in QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate::ActivatedWindowEvent*) (e=<optimized out>) at kernel/qguiapplication.cpp:2292 #27 0x00007fffe7e42f1d in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x555559c186d0) at kernel/qguiapplication.cpp:1838 #28 0x00007fffe7e1d06b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=...) at kernel/qwindowsysteminterface.cpp:1032 #29 0x00007fffe5bfc6cb in QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5WaylandClient.so.5 #30 0x00007fffe72e9d7d in Qt5Instance::ImplYield(bool, bool) (this=0x5555556c46a0, bWait=true, bHandleAllCurrentEvents=false) at /mnt/data/development/git/libreoffice/vcl/qt5/Qt5Instance.cxx:345 #31 0x00007fffe72e9e8d in Qt5Instance::DoYield(bool, bool) (this=0x5555556c46a0, bWait=true, bHandleAllCurrentEvents=false) at /mnt/data/development/git/libreoffice/vcl/qt5/Qt5Instance.cxx:356 #32 0x00007ffff0ec1a66 in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at /mnt/data/development/git/libreoffice/vcl/source/app/svapp.cxx:457 #33 0x00007ffff0ec1f89 in Application::Yield() () at /mnt/data/development/git/libreoffice/vcl/source/app/svapp.cxx:521 #34 0x00007ffff0ec185e in Application::Execute() () at /mnt/data/development/git/libreoffice/vcl/source/app/svapp.cxx:438 #35 0x00007ffff7d3dfea in desktop::Desktop::Main() (this=0x7fffffffda80) at /mnt/data/development/git/libreoffice/desktop/source/app/app.cxx:1621 #36 0x00007ffff0edc6c9 in ImplSVMain() () at /mnt/data/development/git/libreoffice/vcl/source/app/svmain.cxx:203 #37 0x00007ffff0edc7ee in SVMain() () at /mnt/data/development/git/libreoffice/vcl/source/app/svmain.cxx:237 #38 0x00007ffff7d977a9 in soffice_main() () at /mnt/data/development/git/libreoffice/desktop/source/app/sofficemain.cxx:170 #39 0x000055555555495d in sal_main () at /mnt/data/development/git/libreoffice/desktop/source/app/main.c:48 #40 0x0000555555554943 in main (argc=2, argv=0x7fffffffddd8) at /mnt/data/development/git/libreoffice/desktop/source/app/main.c:47 Change-Id: I40bf501d07dde0c4610496aa1b2bb2a4051fdf2d Reviewed-on: https://gerrit.libreoffice.org/73696 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2019-06-08tdf#125620 add Korean Hangul Jamo codepoint rangesDaeHyun Sung2-0/+4
In LibreOffice's Korean Hangul part, It check Korean code points only 3 part ranges. (such as, U+AC00 - U+D7AF - Hangul Syllables U+3130 - U+318F - Hangul Compatibility Jamo U+1100 - U+11FF - Hangul Jamo ) So, add Korean Hangul jamo code point ranges. such as, U+A960 - U+A97F: Hangul Jamo Extended-A U+D7B0 - U+D7FF: Hangul Jamo Extended-B Below is Korean Hangul Jamo and Syllables code point ranges on Unicode Consortium Hangul Jamo (Range: U+1100 - U+11FF) http://www.unicode.org/charts/PDF/U1100.pdf Hangul Jamo Extended-A (Range: U+A960 - U+A97F) http://www.unicode.org/charts/PDF/UA960.pdf Hangul Jamo Extended-B (Range: U+D7B0 - U+D7FF) http://www.unicode.org/charts/PDF/UD7B0.pdf Hangul Compatibility Jamo (Range: U+3130 - U+318F) http://www.unicode.org/charts/PDF/U3130.pdf Hangul Syllables (Range: U+AC00 - U+D7AF) http://www.unicode.org/charts/PDF/UAC00.pdf Change-Id: I65da4d9c6c43e01eb61f2e420faf1ad6cd986d86 Reviewed-on: https://gerrit.libreoffice.org/73309 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-06-08loplugin:unusedmethodsNoel Grandin1-6/+0
Change-Id: I52efd8d843d0e4cc7a6adefb0eb95aa50469af38 Reviewed-on: https://gerrit.libreoffice.org/73693 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-08gbuild: treat $({QT,KF}5_CFLAGS) as cxxflags, not definesMichael Weghorn4-10/+8
Treat all of QT5_CFLAGS, QT5_GLIB_CFLAGS and KF5_CFLAGS as C++ flags, since those contain C++ flags in the first place. Therefore, set them using 'gb_Library_add_cxxflags', not 'gb_Library_add_defs'. (Strictly speaking, those variables contain includes as well, but handling that properly would require splitting this up further, either in 'configure.ac' or see e.g. how it's done in 'RepositoryExternal.mk'.) This also prevents the values of those variables from ending up in the wrong section in IDE integration generated by gbuild-to-ide. Handling them as includes previously resulted e.g. in 'vcl/vcl.pro' (generated by 'make qtcreator-ide-integration') containing DEFINES += BOOST_ALL_NO_LIB \ ... \ VCLPLUG_GTK3_KDE5_IMPLEMENTATION -isystem /usr/include//KF5 -isystem /usr/include//KF5/KCoreAddons [...] and Qt Creator would show a (rather unhelpful) warning like the following when opening a header file inside 'vcl/inc/': > Warning: The code model could not parse an included file, > which might lead to incorrect code completion and highlighting, > for, example. > > 4:9: error: macro name must be an identifier Change-Id: I2bb0c37fdf1112650e8adc712f60737888a8169b Reviewed-on: https://gerrit.libreoffice.org/73699 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2019-06-08loplugin:singlevalfieldsNoel Grandin1-1/+0
Change-Id: I7c00b7d932bf96a0725eac5482580461baea6977 Reviewed-on: https://gerrit.libreoffice.org/73697 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-08KDE5 merge KDE5SalGraphics into Qt5SvpGraphicsJan-Marek Glogowski13-214/+117
Nothing KDE specific left in there, so just merge it. Change-Id: I11712961f2abc5e11256a158300ec6b388f9ee44 Reviewed-on: https://gerrit.libreoffice.org/73680 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-08tdf#125673 KDE5 implement a KDE5SalVirtualDeviceJan-Marek Glogowski7-6/+72
We just need AcquireGraphics() to return a KDE5Graphics. Otherwise the BufferDevice's SVP will use a SvpSalGraphics instead of the KDE5Graphics, which knows about Qt's theming. Change-Id: I0ea646df260f2067d61c753f03dee01a003f382a Reviewed-on: https://gerrit.libreoffice.org/73673 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-07fix assert in make screenshotNoel Grandin1-1/+1
after commit a46a257794f1f53b294735fc876c394be23a3811 Date: Wed Jun 5 15:24:04 2019 +0200 improve empty tools::Rectangle (width) Change-Id: I496d92712aa7627f7d6932d7d01f70a68a1ee781 Reviewed-on: https://gerrit.libreoffice.org/73657 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-07android: Fix build after welding AboutDialog.Jan Holesovsky3-4/+5
Without this, the vcl's AboutDialog conflicts with the AboutDialog from cui during linking of liblo-native-code.so. Change-Id: Ie6e5ddd52bb7bdee1c7d53c37ea566d7ce6c9385 Reviewed-on: https://gerrit.libreoffice.org/73613 Tested-by: Jenkins Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2019-06-07drop some unneeded includesCaolán McNamara2-2/+0
Change-Id: Ifdafc97c8616da5d844a1ade7694265a833e8f53 Reviewed-on: https://gerrit.libreoffice.org/73598 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-06-07improve empty tools::Rectangle (width)Noel Grandin6-4/+10
This is the width part, the height part will come next. Instead of storing "empty" as a special value (which is easy to get wrong, eg. some image filters pass in that special value, expecting it to be a valid width), just use separate boolean values for width and height empty. Also lots of code was calling GetBottom() or GetRight() on an empty rectangle, getting back that magic value and doing calculations on it, resulting in completely bogus data. So (1) make the various Rectangle methods do something reasonable when the empty flags are set (2) fix various other code to handle empty better (3) assert when code accesses Bottom or Right and the empty flag is set. Change-Id: I1163378cd2773dd8b386210f83400bb6b4701069 Reviewed-on: https://gerrit.libreoffice.org/73564 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-07Bin the much too verbose SAL_INFO() calls for the "vcl.cg" tagTor Lillqvist6-204/+5
Quikee agreed that they aren't really useful. Doing even the simplest things causes such a huge amount of logging that it is questionable whether anybody could have any use of it. Parts of it might be useful to restore later, if need arises. Like the mnContextStackDepth logging in vcl/inc/quartz/CGHelpers.hxx. Change-Id: If635e6492a50e5955c56c54fa310e7c0ab2986ae Reviewed-on: https://gerrit.libreoffice.org/73639 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2019-06-07Fix typoAndrea Gelmini1-1/+1
Change-Id: Icbfc9276e09f2d50647c4e800b6d688d978b875b Reviewed-on: https://gerrit.libreoffice.org/73632 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-06-06lok: remove ext text event re-entrancy hazard.Michael Meeks1-0/+6
Change-Id: I7566c158330bab77589d422c61c64210727ab835 Reviewed-on: https://gerrit.libreoffice.org/73625 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-06-06tdf#125201 fix QWheelEvent angleDelta() handlingJan-Marek Glogowski2-10/+25
Comming back to my initial, known broken implementation from 2017-11 (see commit 1426437be053 ("QT5 implement some mouse handling")), which just works with mouse scroll wheels. This just fixes angleDelta() based scrolling. An additional patch might be needed, if some driver just uses pixelDelta() values, but Qt explicitly states: "On X11 the pixelDelta() value is driver specific and unreliable, use angleDelta() instead.", so we'll do just that for now. Change-Id: I1be5f9392ed475aea7ab4d965a07e1e3c2574fe7 Reviewed-on: https://gerrit.libreoffice.org/73614 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-06tdf#125670 just check gradient clipping on drawingJan-Marek Glogowski1-6/+3
Otherwise the gradient won't be commited to the Metafile, as mbOutputClipped will be true, because the output device will have just one pixel size. Change-Id: I73084eb715ee6313f6478eded24feb9abfc411f3 Reviewed-on: https://gerrit.libreoffice.org/73423 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-06-06tdf#124118 Qt5 post non-code keys via ExtTextInputJan-Marek Glogowski2-19/+32
Originally I tried to implement the gtk3 way by shoving all key input in some way through the QInputMethod. But that turned out to be impossible, because all the nice input event filtering is privately hidden in the platform abstraction. And it took me much longer to realize that gtk3 is doing this. Still the delivered code point in the KeyEvent is correct, so this simply uses ExtTextInput events for non-code key events, if LO has enabled input method support for a frame. Change-Id: Ia9bb6baf013cf790deecb9675f8309e32294e982 Reviewed-on: https://gerrit.libreoffice.org/73322 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-06duplicated about dialog close button when headerbars not enabledCaolán McNamara1-0/+5
Change-Id: Idd69b37ff0dc85dc96349c4e85fc5d4a93597e62 Reviewed-on: https://gerrit.libreoffice.org/73601 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-06-06CoreTextStyle::mbFauxBold shall presumably be boolStephan Bergmann1-1/+1
...it was added as float with eb5606511fac2a8ee1af7cc03c12d6c5b16f7c96 "tdf#101854 Move to CommonSalLayout removed faux bold in macos", but that causes loplugin:implicitboolconversion warnings, and was probably just a typo. Change-Id: Ib35c5b001f0a77befa17e7bbb6447129e36a42ba Reviewed-on: https://gerrit.libreoffice.org/73590 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins
2019-06-06tdf#124947 fix hit area of the radio buttons, size in ios themeTomaž Vajngerl2-3/+4
The hit area of the radio buttons was not calculated correctly, so sometimes when you hit the radio button at the "wrong" place, nothing happened. This fixes the hit area to correctly cover the radio button and the text. Another issue was that the ios theme size of the radio button was not defined correctly (32px instead of 26px), which increased the error when calculating the hit are even more. The height of the radio button should be the same as defined in the definition.xml, and not bigger (or smaller). Change-Id: I4b03f36ca9d9c82bd6dc442bd6e06af938c62bdd Reviewed-on: https://gerrit.libreoffice.org/73592 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-06-06loplugin:simplifyconstruct (macOS)Stephan Bergmann1-4/+4
Change-Id: I7c46c231f720c7d35a24e19833fb3239a31946ef Reviewed-on: https://gerrit.libreoffice.org/73589 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-06-06loplugin:data (macOS)Stephan Bergmann5-24/+24
Change-Id: I404a8364a4c7f8d48533fb3c7757a5b7798de9d8 Reviewed-on: https://gerrit.libreoffice.org/73588 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-06-06vcl: move bitmap scale test to its own fileTomaž Vajngerl3-242/+301
Change-Id: I21e01f63da1c95c3a2c8bae9b998a28fc0a27bc1 Reviewed-on: https://gerrit.libreoffice.org/73560 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-06-06weld AboutDialogCaolán McNamara7-5/+551
use a native GtkAboutDialog on that platform and refactor the current cui about dialog body to form the body of a vcl AboutDialog use add_button to add the buttons to whichever is preferred of the headerbar or action-area Change-Id: I67e0b36dcb8d3fa08ec4f0397b0f6185b0778675 Reviewed-on: https://gerrit.libreoffice.org/73439 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-06-05ofz#15068 build failureCaolán McNamara2-0/+7
Change-Id: Ic306faa25c726be39bc76fa9d492204ad0602810 Reviewed-on: https://gerrit.libreoffice.org/73554 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-06-05make OutputDevice::LogicToLogic respect empty Rectangle in more casesNoel Grandin1-8/+12
follow the logic from the block at the top of the function Change-Id: I3756eac9eb4fddb239a433927c52a505c7ab9b36 Reviewed-on: https://gerrit.libreoffice.org/73547 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-05Linguistic: new underlining styles for grammar checkersOlivier R2-12/+4
This patch adds two new underlining styles: - BOLDWAVE: a thicker version of the default WAVE style - BOLD: a thick straight line No default setting changed. It's up to the grammar checkers to specify the underlining style they want. This contribution to LibreOffice is licensed under the MPLv2/LGPLv3+ dual license. modified : include/vcl/outdev.hxx modified : offapi/com/sun/star/text/TextMarkupDescriptor.idl modified : sw/source/core/inc/wrong.hxx modified : sw/source/core/txtnode/fntcache.cxx modified : vcl/source/outdev/textline.cxx modified : vcl/workben/outdevgrind.cxx Change-Id: I5629253905ba40c51cc748a7ceeb84170ef5d94c Reviewed-on: https://gerrit.libreoffice.org/73412 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-06-05Qt5 workaround modal change after show bugJan-Marek Glogowski1-9/+16
The presentation minimizer dialog calls setVisible before execute. This results in the dialog being shown before setting the modality in execute. And this triggers a bug in the Qt / Xcb stack (gtk is fine because it directly uses XSendEvent to change the state). The result is an unmapped, modal dialog window: it's invisible and blocks the GUI. Qt believes it's show; isVisible() returns true. And my ~/.xsession-errors shows a "qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow) ... major code: 18 (ChangeProperty)" with an invalid resource id, according to 'xwininfo -tree -root'. You can find the window resource of the minimizer by its name in the full root tree and its unmapped state with 'xwininfo -id'. I originally thought of a Scheduler bug so enabled debug output for it. This is already responsible for a delay long enough to prevent the bug often. Same for doing an additional hide() and show() sequence. In the end I went with a fixed delay, but that is just a guess. In theory we could check the mapped state via Xlib in Qt's show event and manually map it using XMapWindow and the winId... I also noted that the minimizer leaks, as there are multiple new presenter resources after each show and hide... Change-Id: I2060918aa9c63d385ebb2ffee9e7a3e4196ea766 Reviewed-on: https://gerrit.libreoffice.org/73462 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-05Qt5/KDE5 always use either Qt5 or KDE5 pickersJan-Marek Glogowski4-34/+34
And use RunInMain for both SalInstances and for both picker types, as there is no reason to assume just the file and not the folder picker can be called from the non-GUI thread. Little drawback is the inclusion of Qt5FilePicker header in the Qt5Instance header, as Qt's enums aren't forward-declarable. Change-Id: Ie170d247a76134df9aff835393c71c9d6e907d32 Reviewed-on: https://gerrit.libreoffice.org/73416 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-05-[NSWindow setRestorable:] is present since 10.7Tor Lillqvist1-4/+1
No need to use objc_msgSend(). Change-Id: I56c824e3206c37be4b60fb7d82b65c9d5e89958b
2019-06-04tdf#122221: Bin apparently unnecessary early returnTor Lillqvist1-6/+0
Removing these few lines of code fixes the problem on iOS, and has no apparent ill effect on macOS. But sure, I didn't check that thoroughly on macOS, so in case this has a bad effect on macOS after all, need to reinstate the few lines but make them #ifndef IOS. (Still passes make check.) Change-Id: I2380d010ba223a698acfe916fca4580a1502be98
2019-06-04Fix "external" graphic filter code for the DISABLE_DYNLOADING caseTor Lillqvist1-16/+14
The DISABLE_DYNLOADING case in ImpFilterLibCacheEntry::GetImportFunction() had apparently been broken from the start, but nobody never noticed as the common formats (PNG, JPEG, GIF etc) use a more "internal"code path. The problem was noticed now with a TIFF image in a presentation. The fix for the import case seems to work, but I could not test the fix for the export case. Change-Id: Icbd33c7cb654136a562f18b06d5b0896e701bf3d
2019-06-04Use ICU UCHAR_VERTICAL_ORIENTATION when availableKhaled Hosny1-0/+13
Starting from ICU 63, the vertical orientation property is provided by ICU so we use it instead of our inyternal, and potentially outdated data file. Old code is kept until support for ICU < 63 is dropped. Change-Id: I0df1f3f5e853ca90945a36a8123bec9ae7f691cc Reviewed-on: https://gerrit.libreoffice.org/73425 Tested-by: Jenkins Reviewed-by: Mark Hung <marklh9@gmail.com>
2019-06-04Rendering notebookbar*.ui file from user/share directorySumit Chauhan1-2/+22
This patch will get the modified customized notebookbar*.ui files from user directory(if present) otherwise the files will be rendered from default shared directory. Change-Id: I9393083bc0429659039c8dd5c10541ffa6661bf7 Reviewed-on: https://gerrit.libreoffice.org/72313 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2019-06-04Qt5 introduce Qt5Frame::asChild() helperJan-Marek Glogowski2-96/+28
Just a little refactoring. Gets rid of the common used idom in the code: m_pTopLevel ? m_pTopLevel : m_pQWidget Change-Id: I3e96687d9d02c0b1a5537c6b6cea53e1ca3a2067 Reviewed-on: https://gerrit.libreoffice.org/73414 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-03KDE5 header cleanup and Q_OBJECT dropJan-Marek Glogowski5-88/+5
Uneeded since the merge of most of the KDE5FilePicker code into Qt5FilePicker. KDE5SalInstance also uses no signals or slots, so Q_OBJECT + moc can go for them. Change-Id: If48c677106b78c759ca165563ad3c081ca5442a5 Reviewed-on: https://gerrit.libreoffice.org/73393 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-03Qt5 use precise timer to prevent unneeded restartsJan-Marek Glogowski1-0/+1
We just have one driving timer. Not much to sync with. Gets rid of these annoying scheduler restart messages. The idea of coarse, synced timer events sounds nice to have, but LO currently can't handle it in a sensible sense.. Change-Id: I169c2bb582aca0e03b00e24dc364ac9b19162c3b Reviewed-on: https://gerrit.libreoffice.org/73392 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-03Qt5 refactor and move XTransferable implementationsJan-Marek Glogowski8-236/+239
There is already duplicate code getTransferDataFlavorsAsVector. Maybe getTransferData can be also merged later. Change-Id: Iaa1c16990c1f19757f04944bcd21f395f6b8f69b Reviewed-on: https://gerrit.libreoffice.org/73301 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-03Qt5 remove header using namespaces and Vcl prefixJan-Marek Glogowski4-81/+84
This is mainly about the using namespace in the Qt5Clipboard header. While at it get rid of the Vcl prefix. Change-Id: I62a804a83afe2feb4bf130eb5475790bc52365c4 Reviewed-on: https://gerrit.libreoffice.org/73287 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-03tdf#122200 Qt5AccessibleWidget: Handle special offset valuesMichael Weghorn1-0/+16
Handle special values for offset in 'Qt5AccessibleWidget::attributes' the same way that the base class's 'QAccessibleTextWidget::attributes' does, s. [1]. In particular, an offset matching the text length can be passed e.g. by "accerciser" or screen readers, which previously resulted in an 'IndexOutOfBoundsException' being thrown when the index was later checked in the call to 'VCLXAccessibleStatusBarItem::getCharacterAttributes'. See also 'IAccessibleText::attributes' documentation at [2] and the page on special offset values referenced there [3]. [1] https://code.qt.io/cgit/qt/qtbase.git/tree/src/widgets/accessible/qaccessiblewidgets.cpp?h=5.12.4#n791 [2] https://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/interface_i_accessible_text.html#a29e5c8f69ec13c683ed6bca53333e6a5 [3] https://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/_general_info.html#_specialOffsets Change-Id: I623995aeb689b31c5b49fb3ace8e4dd4c18927d2 Reviewed-on: https://gerrit.libreoffice.org/73225 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>