summaryrefslogtreecommitdiff
path: root/vcl/source/app
AgeCommit message (Collapse)Author
2021-02-19rename get_vscroll_width to get_scroll_thicknessCaolán McNamara
and add split customize_scrollbars to form a separate set_scroll_thickness Change-Id: Ia4b1c85d6ae85b0fb7aeb852d3a91b36b63143db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111207 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-19loplugin:refcounting in vclNoel
Change-Id: Ieca3dd33a7ae40c3f7b8ba30f763d71a548cd144 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111171 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-18loplugin:referencecasting add check for new rtl::Reference operatorNoel
rtl::Reference now has a conversion operator to uno::Reference, so look for places where we can simplify the code and use that. Change-Id: Ic81db50d670bed5e875300577d4bf5f3599cc2c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110798 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-15use GetPopupParent for editeng transient dialogsCaolán McNamara
Change-Id: Ie799643b68ea41b4c4d0d0493755d09d3983d9e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110934 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-15tdf#140414 add getting mouse pos to EditViewCallbacksCaolán McNamara
Change-Id: I09172e0cb24f5c45d2837cf2f2fc7cc4baa456a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110932 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-12weld impress annotation windowCaolán McNamara
Change-Id: Idc89f4e382392103d373b6a84edaae10abd56056 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110650 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-12allow using css::graphic::XGraphic to set menu imageCaolán McNamara
Change-Id: Ice5062f26ea300aec73d5fd849484c8bc4fc43bd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110793 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-11tdf#139429 Convert Style previews widget to IconViewSzymon Kłos
- this adds labels to easily identify the styles - easier to work with many styles - nice native widget in gtk3 - double click opens the style settings - added Command callback fro iconview Change-Id: I08743515cbd2a4e4bd592d1509e48bbe2a43b129 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110408 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-02-07invoke idle priority timers only when actually idleLuboš Luňák
The 'Idle' timers are misnamed. They are zero-timeout times, i.e. they are invoked immediately after returning to the main loop. But that does not necessarily mean they are invoked when idle, there may be e.g. user input pending in the system event queue. In fact, LO events are processed before system events, which means that 'Idle' timers are normally processed before user input. Besides being confused, this also leads to poor performance in some cases, such as when using mouse wheel to zoom in a large document. This results in several mouse wheel events, each of which will result in adjusting the zoom and that causing a repaint. Repaints are internally handled using a TaskPriority::REPAINT 'Idle', and so what happens is zoom->repaint->zoom->repaint->zoom->repaint instead of the more efficient zoom->zoom->zoom->repaint. This change (besides trying to clarify the confusion in the docs) delays invoking tasks with priorities TaskPriority::HIGH_IDLE and lower if there is user input or repaint events in the OS queue. That means that tasks using idle priorities actually will be invoked only when idle (barring background threads etc.). I'm reasonably certain this is a safe change, there's no guarantee when exactly tasks will be invoked (e.g. other tasks with a higher priority go first) and explicitly specifying such a priority means asking for it. I already implemented this once in 06d731428ef6cf93c7333e8228b, and it was also again done in 87199d3829257420429057336283, but apparently these have been removed. There was d348035a60361a1b9ba9e 'Drop special idle handling' with the reasoning that 'Idles are just instant timers'. Which strictly technically speaking is true due to 'Idle' being a misnomer, but the point is that some idles should be actual idles and that's why they need to be handled specially. Change-Id: I36c2b02a80ae7e1476b731f878d9b28aa87975f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110538 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-02-06move MenuButton to vcl/toolkitCaolán McNamara
Change-Id: I3f228c36e3f35ba54cab2ee87fcfbbae7992668d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107265 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-05improve SalInstanceWidget::drawCaolán McNamara
Change-Id: I9acb8dfceee586b343feb184e0788491d66d24a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110427 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-04split rect arg into dest pos and source rectCaolán McNamara
Change-Id: I622979fa54e54f1c6e00b5a16546fdbc12957422 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110383 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-30add something to override scrollbar colorsCaolán McNamara
Change-Id: Ibc2e428fcda41f4e9150f3e5029ba346c459c4b7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110159 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-28MouseFollowFlags::DDList is deadNoel Grandin
has been since initial import Change-Id: Ib3e708cddd114f63fd6c77e743b56e35d5929d89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110049 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-27Fix crash in ProcessEventsToIdle debug codeJan-Marek Glogowski
... and that code formatting is from clang-format. Change-Id: Ia73780f5f756a8c3493d27263347190289e4c953 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109999 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-01-22Fix MouseClick shoud be MouseLeft for drawing areaMert Tumer
Change-Id: I4dd0c6862c6473d3cbfcc4535c2d2ebe4a0a238a Signed-off-by: Mert Tumer <mert.tumer@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108683 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109215 Tested-by: Jenkins
2021-01-20tdf#139115 vcl tree list: add new toggle behaviorsAttila Szűcs
at clicking on list items with checkboxes to clean-up generic VCL plugin commit 2471d6f44c7e8ecbe86a90eeb593b899a08a7408 (tdf#116675 vcl tree list: toggle by label click (e.g. in AutoFilter)). This limits the new toggle-always to ScCheckListMenuControl (e.g. AutoFilter). set_clicks_to_toggle() options to set the effect of the click on a treeview list item: 0 == clicking never toggles the checkbox (default setting) 1 == clicking always toggles the checkbox 2 == clicking only toggles the checkbox of a selected list item, i.e. the first click selects a not selected list item, and only the second click toggles its checkbox. It would be better if we could set this information in the .ui files, but I did not find a good way for that. A good place in the code to call this function can be found by searching for the .ui filename. Co-authored-by: Tibor Nagy (NISZ) Change-Id: I5c72d710508fc397f2b6f959d7680b23f8dc6f67 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108947 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-01-20Move SalInstanceRadioButton decl to header fileSzymon Kłos
Change-Id: Ic99187477459d424e9c731a29b41a8f06d598864 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109633 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-01-20use unique_ptr for GraphicConverterNoel Grandin
Change-Id: If2651d03eb878c499dd5e21df479dcdbcaf93987 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109653 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-19tdf#138890 : weld::LabelType::Warning font color in dark themesAnshu
Change-Id: Ia0315037b0edee921a6a24b23673ad04c7821388 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108929 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2021-01-16tdf#138829 don't grab focus to roadmap label when sync timer firesCaolán McNamara
Change-Id: Icc8a03a2ce5d63f3a2c477671a9aa52aefd1df96 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109385 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-16make the Color constructors explicitly specify transparencyNoel
to reduce the churn, we leave the existing constructor in place, and add a clang plugin to detect when the value passed to the existing constructor may contain transparency/alpha data. i.e. we leave expressions like Color(0xffffff) alone, but warn about any non-constant expression, and any expression like Color(0xff000000) Change-Id: Id2ce58e08882d9b7bd0b9f88eca97359dcdbcc8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109362 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-14Move SalInstanceIconView decl to header fileSzymon Kłos
Change-Id: I179f044b3db38ee51f539ef4023b136eac55f4ed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108982 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109182 Tested-by: Jenkins
2021-01-14Fontwork dialog: use iconviewSzymon Kłos
Change-Id: I5bb35407ca83c9b0cda6f6355e6e25c21fecb459 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108960 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109181 Tested-by: Szymon Kłos <szymon.klos@collabora.com>
2021-01-05lok: add missing global notifierHenry Castro
Occurs when server shows the "Macro Security Warning" before load the document if enable/disable macros, but there are no instances for document/view/controller yet. So it is required to use the global notifier so it can be sent messages to the client side using the JSDialog framework. Change-Id: I67f15b21cbaf21906b88145f3c5835cf0e1ff79d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108288 Tested-by: Jenkins Reviewed-by: Henry Castro <hcastro@collabora.com>
2021-01-04loplugin:stringviewparam: operator +=Stephan Bergmann
Change-Id: I30ce1b5bd8fb168da7067c1967c5af2569df2653 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108512 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-29loplugin:stringviewparam: operator +Stephan Bergmann
Change-Id: I044dd21b63d7eb03224675584fa143009c6b6008 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108418 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-29lok: don't use focus window to request helpSzymon Kłos
Use clicked button instead - what leads to the correct window. If only focused window was taken into account sometimes it caused incorrect help link to be used. Change-Id: I645dc1ffa6a6d6d363ea5f9874fa830c441516c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107882 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108429 Tested-by: Jenkins
2020-12-22jsdialog: add the "expand" actionHenry Castro
to the tree list view control Change-Id: I69f1b06748053fdfe9164c52e889629e51f91409 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107914 Tested-by: Jenkins Reviewed-by: Henry Castro <hcastro@collabora.com>
2020-12-22replace margin-left with margin-start and margin-right with margin-endCaolán McNamara
Change-Id: Iee3cc8c22b393ca420d0ed68673c61fe7ef240ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108113 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-20tdf#139063 crash when add a new sheet to a RTL sheetCaolán McNamara
Change-Id: Icbfb45036f93ed92e5c83039cd4c3b536f0df0d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108036 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-20No longer need to worry about ambiguous operator== in loplugin:stringviewparamStephan Bergmann
...after 46c5de832868d2812448b2caace3eeaa9237b9f6 "make *String(string_view) constructors explicit" Change-Id: I6e884c762a2fc91f5dd6fbb197a596fd60f17cae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108043 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-17add Menu::get_sensitiveCaolán McNamara
Change-Id: I242ace497d7f049d9908cc6461b7eefc6d4a2b87 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107889 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
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-15add a way to correctly position a weld::Menu given a vcl::WindowCaolán McNamara
Change-Id: I7fc6a1bb6cfca40a4a97568f957d127445b4d31c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107727 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-14Fix and clean up SalAbort implementations on macOS and WindowsStephan Bergmann
Since "forever", SalAbort has been declared as non-exported in vcl/inc/salinst.hxx and (only) called from Application::Abort (vcl/source/app/svapp.cxx) in Library_vcl. Its various implementations for different platforms have always been scattered across Library_vcl. For Windows, SalAbort was originally implemented in vcl/win/app/salinst.cxx, until 1698debed2993fc5f262aa3ebbdb32fc112ac556 "Implement Windows VCL backend as plugin" introduced an incompatible implementation in vcl/win/app/salplug.cxx (which was added to Library_vcl) and moved the original implementation in vcl/win/app/salinst.cxx from Library_vcl to Library_vclplug_win, where it thus became dead code (and where it now gets removed). For macOS, SalAbort was originally implemented in vcl/osx/salinst.cxx, until 3af4e1a0825c5b11ae4ef58fc411378aab669387 "Implement MacOSX VCL backend as plugin" introduced a different implementation in vcl/osx/salplug.cxx (which was added to Library_vcl) and moved the original implementation in vcl/osx/salinst.cxx from Library_vcl to Library_vclplug_win, where it thus became dead code (and where it now gets removed). (In 0f3be2e19fa408d7069d586ccf04cb3f3eccd6b9 "Unify sal plugin loaders", the--- identical---new implementations in vcl/osx/salinst.cxx and vcl/win/app/salinst.cxx where then consolidated with other---also identical--- implementations in vcl/source/app/salplug.cxx.) For macOS, the original, now removed implementation in vcl/osx/salinst.cxx and the consolidated implementation in vcl/source/app/salplug.cxx only differed in an added CrashReporter::addKeyValue("AbortMessage", rErrorText, CrashReporter::Write); which is presumably harmless to add. But for Windows, the original, now removed implementation in vcl/win/app/salinst.cxx differed substantially from the consolidated implementation in vcl/source/app/salplug.cxx, which is updated here to reflect those differences. The one thing that cannot easily be updated, though, is the //TODO: ImplFreeSalGDI(); call, as ImplFreeSalGDI is defined in Library_vclplug_win. I'll thus leave fixing that TODO for another commit (if calling ImplFreeSalGDI from SalAbort is even necessary, given that it ends in FatalAppExitW anyway)---my gut feeling is that the whole 1698debed2993fc5f262aa3ebbdb32fc112ac556 "Implement Windows VCL backend as plugin" was somewhat misguided. Change-Id: I641a3d7b1bc27ae14c38eb1ec0838bc04e4290d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107666 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
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-10salvtables.cxx isn't in clang-format/excludelist for 7-1Caolán McNamara
but is in master, which was a surprising find on a backport, keep it in master too seeing as its just a diff in new changes Change-Id: I4bc38c366fe2533b943499c877074173bd5e516e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107502 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-12-10Online: "Copy hyperlink location" feature improvement.gokaysatir
Lambda functions are replaced with class pointers. Change-Id: I48628d3105533aad2463bd8ade1f65cf5b154b0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104058 Tested-by: Jenkins Reviewed-by: Jan Holesovsky <kendy@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-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-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-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-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-11-30weld ImplTabButtonsCaolán McNamara
create a separate .ui for the ltr-in-rtl scroll arrow region Change-Id: I2ec9099f7441ba82555270b5a99541cd7a989890 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106288 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-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>