summaryrefslogtreecommitdiff
path: root/vcl/inc
AgeCommit message (Collapse)Author
2020-12-16Scheduler assert mbInScheduler stateJan-Marek Glogowski
Since the introduction of the scheduler stack, this became merely a debugging and assertion hint. So actually handle it like that and don't use it for any decisions, even in debug code. Change-Id: Ibeb247279d9e94ea4ff3a7b4652e98e179d6c76e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107824 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-12-15DrawGradient variant only called by FileDefinitionWidgetDrawCaolán McNamara
which doesn't do any mirroring on any of its drawing calls. Change-Id: I4f531ee01147b34f36a6d4235f3340bd1a8e62ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107769 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-15tdf#138936 gradient missing under RTL from writer comment marginsCaolán McNamara
Change-Id: I57533f033f9528b7c89162967b392eb5abb4d76a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107750 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-15do not free SkiaSalBitmap buffer if a read access points to itLuboš Luňák
When conserving memory in raster mode, SkiaSalBitmap may decide to drop the pixel buffer if SkImage is created from it, since having both wastes memory and converting between them is cheap. But if there is still a Bitmap::ScopedReadAccess existing for the bitmap (e.g. VclCanvasBitmap keeps it as a member), then dropping the pixel buffer would make the data pointed to by the read access invalid. Technically this patch should distinguish between info and read accesses, as info accesses do not point to pixels, but this is simpler and hopefully doesn't make a difference in practice. Change-Id: I307170ad4651b849feda0cf224976ca5a87e5207 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107752 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-12-15graphic: Rework swapping algorithm to take GfxLink into accountTomaž Vajngerl
This reworks the Graphic swap algorithm to not swap to a file when GfxLink is available and leaves the compressed data in memory. With such a sheme, at swap-out we just remember the need specific properties of the Graphic, and delete the graphic content (Bitmap, Animation, VectorGraphic, Metafile). At swap-in use the GfxLink data to decompress and recreate the graphic content, then set the properties back as they were before (if needed). If a GfxLink is not available it swaps out to a file and back, but uses a simpler data format that is specific for swapping only. In the future this case can be removed, when we switch to automatic creation of GfxLink if that one is not present. For reworking of swapping it was also necessary to extensively add and extend the tests that check various swapping scenarios. Change-Id: I135a224f74aa48e6006f48dd2be74b8026614728 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107287 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-12-14Bin a few unused forward declarationsTor Lillqvist
Change-Id: I1f0b8938f2174f9b8eee01714ea176fa4df38504 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107715 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-12-14loplugin:unusedenumconstantsNoel
Change-Id: I49996ad433409a9189c0f7adc997858e1512f40c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107687 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-12-14loplugin:unusedmethodsNoel
Change-Id: I442d99e8f6a7df11dc950c5073f683bffc41a852 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107661 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-12-14loplugin:unnecessaryvirtualNoel
Change-Id: Ie083afe2763b21e0abada228e4007b9b387c2d39 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107660 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-12-11Adapt the remaining OUString functions to std string_viewStephan Bergmann
...for LIBO_INTERNAL_ONLY. These had been missed by 1b43cceaea2084a0489db68cd0113508f34b6643 "Make many OUString functions take std::u16string_view parameters" because they did not match the multi-overload pattern that was addressed there, but they nevertheless benefit from being changed just as well (witness e.g. the various resulting changes from copy() to subView()). This showed a conversion from OStringChar to std::string_view to be missing (while the corresponding conversion form OUStringChar to std::u16string_view was already present). The improvement to loplugin:stringadd became necessary to fix > [CPT] compilerplugins/clang/test/stringadd.cxx > error: 'error' diagnostics expected but not seen: > File ~/lo/core/compilerplugins/clang/test/stringadd.cxx Line 43 (directive at ~/lo/core/compilerplugins/clang/test/stringadd.cxx:42): simplify by merging with the preceding assignment [loplugin:stringadd] > File ~/lo/core/compilerplugins/clang/test/stringadd.cxx Line 61 (directive at ~/lo/core/compilerplugins/clang/test/stringadd.cxx:60): simplify by merging with the preceding assignment [loplugin:stringadd] > 2 errors generated. Change-Id: Ie40de0616a66e60e289c1af0ca60aed6f9ecc279 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107602 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-10make Skia image cache size configurableLuboš Luňák
As asked for in tdf#136244 comment #11. The default fits 4x 2000px 32bpp images, which is 64MiB, which is not that little, but then 4x 2000px is not that much either. So, yes, configurable ... A good further improvement would be to make the cache grow more if the memory is available and reduce the size on memory pressure (https://lists.freedesktop.org/archives/libreoffice/2020-December/086404.html). Change-Id: Ifa05025ab34630e456465ac8a96950463fd18b60 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107468 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-12-09tdf#138778 add has_child_focus which considers a related popup a 'child'Caolán McNamara
Change-Id: Iab23e399f2650ece702fb1f62d1387acca472b42 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107499 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-08Replace SchedulerMutex with (non-recursive) std::mutexStephan Bergmann
...following up on the TODO from 84af20ef3ea72190784e9e7be820684c2558ba8c "Make SchedulerMutex non-recursive" Change-Id: I3be98f2dba7c7486b79ec1f166431333cc69451a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107423 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-08jsdialog: send close on dialog responseSzymon Kłos
Change-Id: I730d99cc9aa519f07d6b1c436d749f2c0b044bfd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107151 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107349 Tested-by: Szymon Kłos <szymon.klos@collabora.com>
2020-12-08remove more no longer needed OpenGL-related codeLuboš Luňák
Change-Id: If7f47cf6dad860e4f8eab68931b72a38a7eda136 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107362 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-12-07move various notebookbar widgets into vclCaolán McNamara
and we can drop their factories then Change-Id: I1e261886dd7700710ba628da4bbeeba65efa1531 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107134 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-07remove WinGlyphCache and related codeLuboš Luňák
The code for separately rendering glyphs was used only by OpenGL code (and temporarily by Skia code). Change-Id: I8eee764045273705c108f3734b330a2237de15f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107291 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-12-07remove OpenGL VCL backend codeLuboš Luňák
It is by now practically unmaintained, even bugreports in bugzilla have been already closed for it. AFAICT this used to be really used only on Windows, where it's no longer the default. There's still some OpenGL code left, because there are still two other places that use OpenGL. One is OpenGL slideshows, which reuse some of the base OpenGL code (and I've checked they still work even after this removal). Second one is OpenGL canvas, which it seems has never been finished or enabled (or so it most probably should be dumped too). Change-Id: I7ea5aef77ec252eb8e712d167db591209be84a13 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107290 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-12-07Make SchedulerMutex non-recursiveJan-Marek Glogowski
While thinking about the "Unlock scheduler in deinit for ProcessEventsToIdle" patch, I came to the conclusion, that this mutex should actually be non-recursive. I had a look at the code and did run "make check" for my symbol build on Linux, but for the rest I'm reying on the LO CI. Maybe this can be converted to a std::mutex later. I've updated the vcl/README.scheduler and added a TODO. Change-Id: Ib9cb086af74b51e48f99ebfa1201d14db12b140e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107254 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-12-07Unlock scheduler in deinit for ProcessEventsToIdleJan-Marek Glogowski
The scheduler is normally never locked when not processing its own task lists. So while the fix is correct, that ProcessEventsToIdle shouldn't run with a locked scheduler, just unlock it in the actual shutdown case, where the deadlock occurred. This also reverts commit 46f6b39c6d8acd064bafb2416feba757ba0d0fbc. Change-Id: If1603c1563772dd1d156dc6d9bcddbf58aa721c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107241 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-12-06vcl: duplicate {Read,Write}ImpGraphic for swappingTomaž Vajngerl
For swapping we can change the algroithm of saving and rading graphics to/from the swap file as the file format doesn't need to be stable. This duplicates the algorithm, but doesn't change it yet. Change-Id: I0b0854b19f4e3f9a34d278f44bd61cd94e133def Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107284 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-12-04move ManagedMenuButton to vclCaolán McNamara
Change-Id: Ie2dd1635a5f5f677d286011a14b734af7435612a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107231 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-04Unlock scheduler when calling ProcessEventsToIdleMike Kaganski
When processing the events, solar mutex will be temporarily released, and then it's possible that another thread will acquire solar mutex and try to lock scheduler. This will result in deadlock. Seen in CppunitTest_sw_core_undo that deadlocked locally on Windows frequently. Main thread call stack: win32u.dll!NtUserMsgWaitForMultipleObjectsEx() user32.dll!RealMsgWaitForMultipleObjectsEx() sal3.dll!osl_waitCondition(void * Condition, const TimeValue * pTimeout) Line 82 vclplug_winlo.dll!osl::Condition::wait(const TimeValue * pTimeout) Line 120 vclplug_winlo.dll!SalYieldMutex::doAcquire(unsigned long nLockCount) Line 159 comphelper.dll!comphelper::SolarMutex::acquire(unsigned long nLockCount) Line 87 vclplug_winlo.dll!ImplSalYieldMutexAcquireWithWait(unsigned long nCount) Line 204 vclplug_winlo.dll!WinSalTimer::ImplHandleElapsedTimer() Line 163 vclplug_winlo.dll!WinSalTimer::ImplHandle_WM_TIMER(unsigned __int64 aWPARAM) Line 197 vclplug_winlo.dll!SalComWndProc(HWND__ * __formal, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 638 vclplug_winlo.dll!SalComWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 665 user32.dll!UserCallWinProcCheckWow() user32.dll!DispatchMessageWorker() vclplug_winlo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) Line 426 vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 457 vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 528 vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 447 vcllo.dll!Application::Reschedule(bool i_bAllEvents) Line 461 vcllo.dll!Scheduler::ProcessEventsToIdle() Line 466 vcllo.dll!Scheduler::ImplDeInitScheduler() Line 129 vcllo.dll!DeInitVCL() Line 483 vclbootstrapprotector.dll!`anonymous namespace'::Protector::~Protector() Line 34 vclbootstrapprotector.dll!`anonymous namespace'::Protector::`scalar deleting destructor'(unsigned int) cppunitd_dll.dll!CppUnit::ProtectorChain::pop() Line 56 cppunitd_dll.dll!CppUnit::TestResult::popProtector() Line 197 cppunittester.exe!`anonymous namespace'::ProtectedFixtureFunctor::run() Line 332 cppunittester.exe!sal_main() Line 473 cppunittester.exe!main(int argc, char * * argv) Line 380 cppunittester.exe!invoke_main() Line 79 cppunittester.exe!__scrt_common_main_seh() Line 288 cppunittester.exe!__scrt_common_main() Line 331 cppunittester.exe!mainCRTStartup() Line 17 kernel32.dll!BaseThreadInitThunk() ntdll.dll!RtlUserThreadStart() Clipboard thread call stack: ntdll.dll!NtWaitForAlertByThreadId() ntdll.dll!RtlpWaitOnAddressWithTimeout() ntdll.dll!RtlpWaitOnAddress() ntdll.dll!RtlpWaitOnCriticalSection() ntdll.dll!RtlpEnterCriticalSectionContended() ntdll.dll!RtlEnterCriticalSection() sal3.dll!osl_acquireMutex(_oslMutexImpl * Mutex) Line 66 vcllo.dll!osl::Mutex::acquire() Line 57 vcllo.dll!SchedulerMutex::acquire(unsigned long nLockCount) Line 213 vcllo.dll!Scheduler::Lock(unsigned long nLockCount) Line 237 vcllo.dll!SchedulerGuard::SchedulerGuard() Line 60 vcllo.dll!Task::~Task() Line 660 vcllo.dll!Timer::~Timer() Line 61 vcllo.dll!Idle::~Idle() svxcorelo.dll!SdrPaintView::~SdrPaintView() Line 189 svxcorelo.dll!SdrSnapView::~SdrSnapView() Line 200 svxcorelo.dll!SdrMarkView::~SdrMarkView() Line 193 svxcorelo.dll!SdrEditView::~SdrEditView() Line 125 svxcorelo.dll!SdrPolyEditView::~SdrPolyEditView() Line 58 svxcorelo.dll!SdrGlueEditView::~SdrGlueEditView() Line 40 svxcorelo.dll!SdrObjEditView::~SdrObjEditView() Line 95 svxcorelo.dll!SdrExchangeView::~SdrExchangeView() svxcorelo.dll!SdrDragView::~SdrDragView() Line 65 svxcorelo.dll!SdrCreateView::~SdrCreateView() Line 200 svxcorelo.dll!SdrView::~SdrView() Line 159 swlo.dll!SdrView::`scalar deleting destructor'(unsigned int) swlo.dll!std::default_delete<SdrView>::operator()(SdrView * _Ptr) Line 2537 swlo.dll!std::unique_ptr<SdrView,std::default_delete<SdrView>>::~unique_ptr<SdrView,std::default_delete<SdrView>>() Line 2649 swlo.dll!SwDrawFrameFormat::MakeGraphic(ImageMap * __formal) Line 7491 swlo.dll!OutHTML_FrameFormatAsImage(Writer & rWrt, const SwFrameFormat & rFrameFormat) Line 1746 swlo.dll!SwHTMLWriter::OutFrameFormat(AllHtmlFlags nMode, const SwFrameFormat & rFrameFormat, const SdrObject * pSdrObject) Line 507 swlo.dll!SwHTMLWriter::OutFlyFrame(unsigned __int64 nNdIdx, long nContentIdx, HtmlPosition nPos, HTMLOutContext * pContext) Line 401 swlo.dll!OutHTML_SwTextNode(Writer & rWrt, const SwContentNode & rNode) Line 2509 swlo.dll!SwHTMLWriter::Out_SwDoc(SwPaM * pPam) Line 834 swlo.dll!SwHTMLWriter::WriteStream() Line 471 swlo.dll!Writer::Write(SwPaM & rPaM, SvStream & rStrm, const rtl::OUString * pFName) Line 272 swlo.dll!SwWriter::Write(const tools::SvRef<Writer> & rxWriter, const rtl::OUString * pRealFileName) Line 861 swlo.dll!SwTransferable::WriteObject(tools::SvRef<SotStorageStream> & xStream, void * pObject, unsigned long nObjectType, const com::sun::star::datatransfer::DataFlavor & __formal) Line 823 vcllo.dll!TransferableHelper::SetObject(void * pUserObject, unsigned long nUserObjectId, const com::sun::star::datatransfer::DataFlavor & rFlavor) Line 879 swlo.dll!SwTransferable::GetData(const com::sun::star::datatransfer::DataFlavor & rFlavor, const rtl::OUString & rDestDoc) Line 619 vcllo.dll!TransferableHelper::getTransferData2(const com::sun::star::datatransfer::DataFlavor & rFlavor, const rtl::OUString & rDestDoc) Line 389 vcllo.dll!TransferableHelper::getTransferData(const com::sun::star::datatransfer::DataFlavor & rFlavor) Line 287 vclplug_winlo.dll!CXTDataObject::renderSynthesizedHtmlAndSetupStgMedium(tagFORMATETC & fetc, tagSTGMEDIUM & stgmedium) Line 516 vclplug_winlo.dll!CXTDataObject::renderSynthesizedFormatAndSetupStgMedium(tagFORMATETC & fetc, tagSTGMEDIUM & stgmedium) Line 419 vclplug_winlo.dll!`CXTDataObject::GetData'::`1'::catch$1() Line 269 vcruntime140_1d.dll!_CallSettingFrame_LookupContinuationIndex() Line 98 vcruntime140_1d.dll!__FrameHandler4::CxxCallCatchBlock(_EXCEPTION_RECORD * pExcept) Line 1367 ntdll.dll!RcConsolidateFrames() vclplug_winlo.dll!CXTDataObject::GetData(tagFORMATETC * pFormatetc, tagSTGMEDIUM * pmedium) Line 261 vclplug_winlo.dll!CXNotifyingDataObject::GetData(tagFORMATETC * pFormatetc, tagSTGMEDIUM * pmedium) Line 86 ole32.dll!HandleFromHandle(IDataObject * pDataObj, tagFORMATETC * pformatetc, tagSTGMEDIUM * pmedium) Line 2048 ole32.dll!RenderCurrentFormat(HWND__ * hClipWnd, unsigned int cf, tagSTGMEDIUM * pmedium, IDataObject * pDataObj) Line 4057 ole32.dll!RenderFormat(HWND__ * hClipWnd, unsigned int cf, IDataObject * pDataObj, void * pvMTADataObject) Line 4191 ole32.dll!ClipboardWndProc(HWND__ * hWnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 683 user32.dll!UserCallWinProcCheckWow() user32.dll!DispatchClientMessage() user32.dll!__fnDWORD() ntdll.dll!KiUserCallbackDispatcherContinue() win32u.dll!NtUserGetMessage() user32.dll!GetMessageW() vclplug_winlo.dll!CMtaOleClipboard::run() Line 654 vclplug_winlo.dll!CMtaOleClipboard::oleThreadProc(void * pParam) Line 676 ucrtbased.dll!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) Line 97 kernel32.dll!BaseThreadInitThunk() ntdll.dll!RtlUserThreadStart() Main thread hold solar mutex when it locked scheduler in ImplDeInitScheduler; then it released solar mutex in WinSalInstance::DoYield, and finally tried to acquire it again in WinSalTimer::ImplHandleElapsedTimer. At the same time, clipboard thread acquired solar mutex in TransferableHelper::getTransferData2. Then it attempted to lock scheduler in Task::~Task. Change-Id: I2ac87c8ac298104043f5b9b5d6760bea0f408f54 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107218 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-12-04update pchesCaolán McNamara
Change-Id: I3e22c2000da03f6f3345353846213203993aa865 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107192 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-03support completely styling a welded buttonCaolán McNamara
Change-Id: I6e45c711b406a3836dd230ceaa738c5a250ff846 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107173 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-03cid#1468270 Wrapper object use after freeCaolán McNamara
I think this is a better reflection of the original intent here before commit 1441ab9c75a2f0ac664983db22b681a1b602f8a9 fix possible SIGSEGV and commit 8f54136caa786523fd224f6c98fc8e7c45cd805d use std::unique_ptr for SalLayout Change-Id: Ib4ab63334e644a8136b9f7da20916715850563ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107171 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-03There is nothing called "Quartz layer"Tor Lillqvist
We mean CGLayer, so say so. Change-Id: Iaa24471ce790114dc5cf2bbf353f9aa4a1d59893
2020-12-01tdf#132350 gtk: implement extra update button in menubarCaolán McNamara
Change-Id: I00c91c3b0ee1fd2ebfb3662bae2caf79962654f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106973 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-01DrawPolyLine/DrawPolyPolygon never called with null OutputDevice*Caolán McNamara
so we can remove some redundant nullptr checks, maybe making this a tiny less confusing Change-Id: Icba4ea1edd5b4883a294f52e0facaab631d94aed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106860 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-30FileDefinitionWidgetDraw never provides OutputDevice*s for RTL mirroringCaolán McNamara
I'm not certain if the lack of an OutputDevice* to allow mirroring the drawing in a RTL environment is deliberate or not, but it seems plausible that is what we want here and that we are already mirrored by the time we get here, so let FileDefinitionWidgetDraw call the underlying post-mirror stage drawing functions directly Change-Id: Ia80a5c0438ed28ab3f9bd91b19494a19875bcab3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106858 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-30identify the only callers that don't provide an OutputDevice for mirroringCaolán McNamara
Change-Id: I57ff433551457c609d3809bb2ad1f7e4b10cf364 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106857 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-30loplugin:stringviewparam include comparisons with string literalsNoel
Change-Id: I8ba1214500dddaf413c506a4b82f43d63cda804b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106559 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-30split CopyBits into two functionsCaolán McNamara
to capture that if pSrcGraphics is non-null then pSrcOutDev is always non-null and that if pSrcGraphics is null then pSrcOutDev is unused Change-Id: I7b1ecb35724ef9a7afb4ab4021b33e9f00a9ea3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106808 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-28drawOutDevDirect always passed a non-null OutputDevice*Caolán McNamara
likewise: DrawOutDevDirectProcess ImplDrawWavePixel DrawOutDevDirectCheck and various members of SalGraphics dropping redundant nullptr checks Change-Id: Iaa1ab7c8a605361a7c9cce0aeee974eec9ff246e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106788 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-27with RTL UI the LTR scrollbar in 'gen' calc is rendered incorrectlyCaolán McNamara
this is noticable since... commit 4deadc3c78949c18bb886eb1f66caa8f3cd7a2df Date: Fri Sep 25 13:30:11 2020 +0200 disentangle AA and B2D use in VCL drawing but is probably a problem since around... commit b5f081e1ac14f60497f62a27be86b07b0baa42f7 Date: Thu Aug 30 23:41:36 2018 +0200 Support RTL layout in VCL using Matrices Change-Id: I6bcad30982ee1eaee96bc6721d73e1e545f0d86a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106761 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-27WinSalFrame::mnWidth/Height should presumably be of type LONGStephan Bergmann
...as they are only ever set to LO-/HIWORD values cast to a signed integer type Change-Id: I82f9a80bab7c3b7e3ee5545725efd0d88601b8c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106755 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-27jsdialog: drag and drop support for TreeViewSzymon Kłos
Change-Id: I67e2eb986b48591b7f758bbb5c1d72b6a322d4d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106705 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-11-26tdf#138486 Artifacts in some impress templatesNoel Grandin
fields need to be signed regression from commit 548d77d0c06f7088dd3eb408797aa1fc1d7eb277 Author: Noel <noelgrandin@gmail.com> Date: Fri Nov 13 10:23:36 2020 +0200 tools::Long->sal_uInt16 in ImpErrorQuad Change-Id: Ia2a70d55d9af2ea3712ace3394c0de3931bee95c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106709 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-26jsdialog: implemented Expander widgetSzymon Kłos
Change-Id: Ib0aee0e01c662a4d6a9231d9a1a951c9fa68eff4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106693 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-11-26Move SalInstanceExpander decl to header fileSzymon Kłos
Change-Id: I5399f5aca07dd27dfc668cad66cf347936bbba7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106664 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-11-26Fix "single print jobs" function in print dlgSamuel Mehrbrodt
Did not work at all Change-Id: I388ce579691a1e7ad2eff8420c2f8b6b3e939ef0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106665 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2020-11-26jsdialog: signal when treeview element is toggledSzymon Kłos
Change-Id: If69eac02db386fd94420aff5a8b082281e913c15 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106658 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-11-26jsdialog: cleanup when destroying builderSzymon Kłos
Change-Id: I38bf65eb96b560970fb03eafaea89446e89a2896 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106591 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-11-25jsdialog: implement TreeViewSzymon Kłos
Change-Id: I7c1cc683e8c5d5bdc00c1e3d3d0a2c85846bbda0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106560 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-11-25tdf#138425 vcl/gtk activate main menu in UpdateFullThomas Viehmann
VCL GTK (in contrast to X11 and apparently Windows) pre-activates popup menus in GtkSalMenu::UpdateFull by calling GtkSalMenu::ActivateAllSubmenus. Before this patch, this, called on the main menu, would not activate the main menu itself (which does get activated in X11 eventually). This patch changes the logic to also activate the main menu. This patch deals only with gtk3. A followup patch would do the analogous change in the VCL Qt5 plugin in Qt5Menu::DoFullMenuUpdate. I haven't discovered yet where this type of functionality is currently tested, so sadly I don't have an idea how to test this and so didn't include a test case. Change-Id: I6cd9929acfd3b3af731bbc62d649d643044ca692 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106454 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-25Move SalInstanceTreeView decl to header fileSzymon Kłos
Change-Id: Ie49f4113332de5c4fa825f93dde46bb408187fe4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106536 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-11-25tdf#138326 impress template thumbnails are blurredNoel Grandin
regression from commit 548d77d0c06f7088dd3eb408797aa1fc1d7eb277 Author: Noel <noelgrandin@gmail.com> Date: Fri Nov 13 10:23:36 2020 +0200 tools::Long->sal_uInt16 in ImpErrorQuad Change-Id: I29403afcb7d88dee27f1565793ffbd7ad4c53a17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106545 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-24jsdialog: use separate content and notificator windowsSzymon Kłos
Change-Id: I42208dd69bc790d136637253d7f1ae39a6306820 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106503 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-11-24add set_buildable_name to enable distinguishing different instancesCaolán McNamara
of widgets loaded from the same .ui snippet in the same dialog so ui-testing can identify the right one Change-Id: I2ecc7fd60ab891ae9f94971a3035585d4500f694 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106500 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-24Remove unused parameter (flagged now by loplugin:stringview)Stephan Bergmann
Change-Id: I78e2b60945f256de5e7455373a2ecff72f9eaae7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106484 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>