summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2022-06-30Don't link against private CoreUI framework when sandboxedChristian Lohmaier
Actual use of the code was already disabled since 2014 with b8bee05dbf85bc4f5834520aa5d64e9ae18aba4e - but the link flags were not conditionalized. Change-Id: Ia1dd299cb78274850eb6a7b10259991bb4970ab9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136614 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> (cherry picked from commit 7a493a7d64dc634ae2d5d6931b8ce33223cb3985) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136553 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-06-25tdf#149626 use recursive_mutex to fix hang in macro callback during dndCaolán McNamara
See frame #5 and frame #45 where both the same DNDEventDispatcher object and both functions lock m_aMutex which is a std::mutex since commit 8de81db4e3fca488d50db2d74734109b31541a6f Date: Mon Aug 2 09:21:17 2021 +0200 osl::Mutex->std::mutex in DNDEventDispatcher #0 0x00007ff094530c40 in __lll_lock_wait () at /lib64/libc.so.6 #1 0x00007ff0945371d2 in pthread_mutex_lock@@GLIBC_2.2.5 () at /lib64/libc.so.6 #2 0x00007ff08b901663 in __gthread_mutex_lock(pthread_mutex_t*) (__mutex=0x1a32c60) at /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/x86_64-redhat-linux/bits/gthr-default.h:749 #3 0x00007ff08b9024d5 in std::mutex::lock() (this=0x1a32c60) at /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/std_mutex.h:100 #4 0x00007ff08b9018f3 in std::scoped_lock<std::mutex>::scoped_lock(std::mutex&) (this=0x7ffdd0d79240, __m=...) at /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/mutex:731 #5 0x00007ff08b9006a8 in DNDEventDispatcher::dragOver(com::sun::star::datatransfer::dnd::DropTargetDragEvent const&) (this=0x1a32c10, dtde=...) at vcl/source/window/dndeventdispatcher.cxx:156 #6 0x00007ff075f47658 in GtkInstDropTarget::fire_dragOver(com::sun::star::datatransfer::dnd::DropTargetDragEvent const&) (this=0x199eb40, dtde=...) at vcl/unx/gtk3/gtkinst.cxx:1710 #7 0x00007ff0760a7010 in GtkInstDropTarget::signalDragMotion(_GtkWidget*, _GdkDragContext*, int, int, unsigned int) (this=0x199eb40, pWidget=0x1c67e40, context=0x1957450, x=89, y=175, time=0) at vcl/unx/gtk3/gtkframe.cxx:5026 #8 0x00007ff07609bb77 in GtkSalFrame::signalDragMotion(_GtkWidget*, _GdkDragContext*, int, int, unsigned int, void*) (pWidget=0x1c67e40, context=0x1957450, x=89, y=175, time=0, frame=0x19b7d70) at vcl/unx/gtk3/gtkframe.cxx:4922 #9 0x00007ff075649527 in _gtk_marshal_BOOLEAN__OBJECT_INT_INT_UINTv () at /lib64/libgtk-3.so.0 #10 0x00007ff0865dcd5b in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0 #11 0x00007ff0865ddeb8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0 #12 0x00007ff07595b491 in gtk_drag_dest_motion.lto_priv () at /lib64/libgtk-3.so.0 #13 0x00007ff0757b8f7d in gtk_main_do_event () at /lib64/libgtk-3.so.0 #14 0x00007ff0754e5463 in _gdk_event_emit () at /lib64/libgdk-3.so.0 #15 0x00007ff075518056 in gdk_event_source_dispatch () at /lib64/libgdk-3.so.0 #16 0x00007ff0864c3faf in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #17 0x00007ff0865192c8 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0 #18 0x00007ff0864c1940 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #19 0x00007ff075f3e60f in GtkSalData::Yield(bool, bool) (this=0x952930, bWait=false, bHandleAllCurrentEvents=false) at vcl/unx/gtk3/gtkdata.cxx:405 #20 0x00007ff075f43e43 in GtkInstance::DoYield(bool, bool) (this=0x9527e0, bWait=false, bHandleAllCurrentEvents=false) at vcl/unx/gtk3/gtkinst.cxx:428 #21 0x00007ff08c2dc5df in ImplYield(bool, bool) (i_bWait=false, i_bAllEvents=false) at vcl/source/app/svapp.cxx:474 #22 0x00007ff08c2dc24d in Application::Reschedule(bool) (i_bAllEvents=false) at vcl/source/app/svapp.cxx:493 #23 0x00007ff091eeeb55 in SbiRuntime::Step() (this=0xa21eb20) at basic/source/runtime/runtime.cxx:801 #24 0x00007ff091e0e659 in (anonymous namespace)::RunInitGuard::run() (this=0x76a6290) at basic/source/classes/sbxmod.cxx:1015 #25 0x00007ff091e0d135 in SbModule::Run(SbMethod*) (this=0xa0ada00, pMeth=0xa16d7e0) at basic/source/classes/sbxmod.cxx:1176 #26 0x00007ff091e0c503 in SbModule::Notify(SfxBroadcaster&, SfxHint const&) (this=0xa0ada00, rBC=..., rHint=...) at basic/source/classes/sbxmod.cxx:775 #27 0x00007ff090b3ee6e in SfxBroadcaster::Broadcast(SfxHint const&) (this=0xa231de0, rHint=...) at svl/source/notify/SfxBroadcaster.cxx:39 #28 0x00007ff091e1372e in SbMethod::Broadcast(SfxHintId) (this=0xa231ca0, nHintId=SfxHintId::BasicDataWanted) at basic/source/classes/sbxmod.cxx:2113 #29 0x00007ff091f6ddfa in SbxObject::Call(rtl::OUString const&, SbxArray*) (this=0xa258670, rName="DTL_dragOver", pParam=0xa1e47d0) at basic/source/sbx/sbxobj.cxx:274 #30 0x00007ff091d9dd76 in StarBASIC::Call(rtl::OUString const&, SbxArray*) (this=0xa258670, rName="DTL_dragOver", pParam=0xa1e47d0) at basic/source/classes/sb.cxx:1324 #31 0x00007ff091dd7127 in (anonymous namespace)::BasicAllListener_Impl::firing_impl(com::sun::star::script::AllEventObject const&, com::sun::star::uno::Any*) (this=0xa2344a0, Event=..., pRet=0x0) at basic/source/classes/sbunoobj.cxx:3831 #32 0x00007ff091dd6ba1 in (anonymous namespace)::BasicAllListener_Impl::firing(com::sun::star::script::AllEventObject const&) (this=0xa2344a0, Event=...) at basic/source/classes/sbunoobj.cxx:3855 #33 0x00007ff091dd792f in (anonymous namespace)::InvocationToAllListenerMapper::invoke(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Sequence<short>&, com::sun::star::uno::Sequence<com::sun::star::uno::Any>&) (this=0xa110b70, FunctionName="dragOver", Params=uno::Sequence of length 1 = {...}) at basic/source/classes/sbunoobj.cxx:3983 #34 0x00007ff091dd7be7 in non-virtual thunk to (anonymous namespace)::InvocationToAllListenerMapper::invoke(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Sequence<short>&, com::sun::star::uno::Sequence<com::sun::star::uno::Any>&) () at /home/caolan/LibreOffice/core/instdir/program/libsblo.so #35 0x00007ff072d19921 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) (pThis=0xa110b98, nVtableIndex=4, pRegisterReturn=0x7ffdd0d7b5c0, pReturnTypeRef=0xa875c0, bSimpleReturn=false, pStack=0x7ffdd0d7b5e0, nStack=0, pGPR=0x7ffdd0d7b900, pFPR=0x7ffdd0d7b8c0) at bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77 #36 0x00007ff072d184fc in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) (pThis=0xa238bb0, aVtableSlot=..., pReturnTypeRef=0xa875c0, nParams=4, pParams=0x2470e40, pUnoReturn=0x7ffdd0d7bb80, pUnoArgs=0x7ffdd0d7bbb0, ppUnoExc=0x7ffdd0d7bb60) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233 #37 0x00007ff072d17c58 in unoInterfaceProxyDispatch(uno_Interface*, typelib_TypeDescription const*, void*, void**, uno_Any**) (pUnoI=0xa238bb0, pMemberDescr=0x24c98c0, pReturn=0x7ffdd0d7bb80, pArgs=0x7ffdd0d7bbb0, ppException=0x7ffdd0d7bb60) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413 #38 0x00007ff0472645ca in stoc_invadp::(anonymous namespace)::AdapterImpl::invoke(_typelib_TypeDescription const*, void*, void**, _uno_Any**) (this=0xa112060, pMemberType=0xa11be80, pReturn=0x7ffdd0d7c4f0, pArgs=0x7ffdd0d7bca0, ppException=0x7ffdd0d7bde0) at stoc/source/invocation_adapterfactory/iafactory.cxx:457 #39 0x00007ff04726379d in stoc_invadp::adapter_dispatch(_uno_Interface*, _typelib_TypeDescription const*, void*, void**, _uno_Any**) (pUnoI=0xa118a50, pMemberType=0xa11be80, pReturn=0x7ffdd0d7c4f0, pArgs=0x7ffdd0d7bca0, ppException=0x7ffdd0d7bde0) at stoc/source/invocation_adapterfactory/iafactory.cxx:605 #40 0x00007ff072d04e95 in cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy*, _typelib_TypeDescription const*, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void**, void**, void**, unsigned long*) (pThis=0xa11b350, pMemberTypeDescr=0xa11be80, pReturnTypeRef=0x939280, nParams=1, pParams=0xa112460, gpreg=0x7ffdd0d7c520, fpreg=0x7ffdd0d7c540, ovrflw=0x7ffdd0d7c590, pRegisterReturn=0x7ffdd0d7c4f0) at bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx:191 #41 0x00007ff072d04611 in cpp_vtable_call(sal_Int32, sal_Int32, void**, void**, void**, sal_uInt64*) (nFunctionIndex=7, nVtableOffset=0, gpreg=0x7ffdd0d7c510, fpreg=0x7ffdd0d7c540, ovrflw=0x7ffdd0d7c590, pRegisterReturn=0x7ffdd0d7c4f0) at bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx:389 #42 0x00007ff072d29836 in privateSnippetExecutor () at /home/caolan/LibreOffice/core/instdir/program/libgcc3_uno.so #43 0x00007ff08b903787 in DNDListenerContainer::fireDragOverEvent(com::sun::star::uno::Reference<com::sun::star::datatransfer::dnd::XDropTargetDragContext> const&, signed char, int, int, signed char) (this=0x5a444c0, context=uno::Reference to ((anonymous namespace)::GtkDropTargetDragContext *) 0xa1dda68, dropAction=1 '\001', locationX=89, locationY=33, sourceActions=3 '\003') at vcl/source/window/dndlistenercontainer.cxx:224 #44 0x00007ff08b900b7d in DNDEventDispatcher::fireDragOverEvent(vcl::Window*, com::sun::star::uno::Reference<com::sun::star::datatransfer::dnd::XDropTargetDragContext> const&, signed char, Point const&, signed char) (pWindow=0x5a27060, xContext=uno::Reference to ((anonymous namespace)::GtkDropTargetDragContext *) 0xa1dda68, nDropAction=1 '\001', rLocation=Point = {...}, nSourceActions=3 '\003') at vcl/source/window/dndeventdispatcher.cxx:297 #45 0x00007ff08b9007f5 in DNDEventDispatcher::dragOver(com::sun::star::datatransfer::dnd::DropTargetDragEvent const&) (this=0x1a32c10, dtde=...) at vcl/source/window/dndeventdispatcher.cxx:178 #46 0x00007ff075f47658 in GtkInstDropTarget::fire_dragOver(com::sun::star::datatransfer::dnd::DropTargetDragEvent const&) (this=0x199eb40, dtde=...) at vcl/unx/gtk3/gtkinst.cxx:1710 Change-Id: I06f24ac50d6d029803d46974162e1afec898d866 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136391 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-23gtk: fix leak in treeview tooltipCaolán McNamara
Change-Id: Ib268729abf501da7e9f217ac3c3700cd853dfd43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134781 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-06-21Fix crash when no valid EntryDescriptor foundSamuel Mehrbrodt
When opening macro run dlg, the last selected entry is displayed again. When no entry was found, a crash occured in some situations (GetLastEntryDescriptor() returned garbage). Initialize m_aLastEntryDesc properly, and make sure the method returns when no last selected macro was found. Also fix some nullptr crashes which occurred during UITests Change-Id: I7bd1a0b8824725f9935876ae26d8222410a3bc25 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136140 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> (cherry picked from commit 499ecbf3a36990c29dc7e1fb9b0ecb1d297c2848) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136170 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 2545a7700f8a4872fd18cb8b1fffeaa4599136d9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136236 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-06-20tdf#141186 ensure child of collapsed expander is not mappedCaolán McNamara
If the expander is initially collapsed then when mapped all its children are mapped too. If they are mapped then the mnemonics of the children are taken into account on shortcuts and non-visible children in a collapsed expander can be triggered which is confusing. If the expander is expanded and collapsed the child is unmapped and the problem doesn't occur. So to avoid the problem of an initially collapsed expander, listen to the map event and if the expander is mapped but collapsed then unmap the child of the expander. Change-Id: Ib4c7a704295b338230357c4c4102a3692f8a9707 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134453 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-06-16Make sure pEntry is not nullSamuel Mehrbrodt
Crash seen: > mergedlo.dll!SvTreeList::GetDepth(const SvTreeListEntry * pEntry) line 106 mergedlo.dll!SalInstanceTreeView::get_iter_depth(const weld::TreeIter & rIter) line 4230 basctllo.dll!basctl::SbTreeListBox::FindVariable(const weld::TreeIter * pEntry) line 271 basctllo.dll!basctl::SbTreeListBox::FindModule(const weld::TreeIter * pEntry) line 695 basctllo.dll!basctl::MacroChooser::BasicSelectHdl(weld::TreeView & __formal) line 473 basctllo.dll!basctl::MacroChooser::RestoreMacroDescription() line 158 basctllo.dll!basctl::MacroChooser::run() line 178 Change-Id: Ic85758c0bbee952d0a23b1d52e8bbdd231e8de26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135914 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> (cherry picked from commit 21747f8ef471080817db464a91ef203813e84677) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135938 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-06-15vcl: restore lost spinner imagesMiklos Vajna
This went wrong in commit 13aa5081793f133077610cd01b7f01ee765b4add (remove unused defines, 2021-11-19), the trouble is that postprocess/CustomTarget_images.mk needs these images to be listed in bitmaps.hlst explictly, and the makefile won't see that the same names are used in Throbber::getDefaultImageURLs(), constructed dynamically. (cherry picked from commit 214438f1dcce52043c27c39e529cf60ff96c98cf) Change-Id: Ie7ea1734ed417d17e1ce54d6a755509ef52572d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135829 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 358391950bf67b689668bc7b4018371d5a846ae3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135850 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-06-13crashtesting: fix crash seen on loading forum-mso-de-98993.xlsxCaolán McNamara
which may explain the backtraces seen with BitmapFilterStackBlur::filter and BitmapBasicMorphologyFilter::filter in crashreporting Change-Id: Ib55cde1603d354b8ca0e336a08fe2d73b548f73f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135695 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-06-07vcl: WhitespaceToSpace() spurious -Werror=maybe-uninitializedMichael Stahl
vcl/source/helper/strhelper.cxx:366:9: error: ‘pBuffer[-1]’ may be used uninitialized [-Werror=maybe-uninitialized] Change-Id: I37250b0790bd9c33eb01c552c8267251bc0026f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134738 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit cd4976646dc2e5b28c3328a7fa96361e147b23b9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134631 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-06-06tdf#137471 Qt return frame pos + client area sizeJan-Marek Glogowski
My code comment about "drawable area" and Michaels bug comment 12 about the "frameGeometry()" usage were both half right. LO expects the window's frame position and the drawable client area size almost everywhere when "geometry" is involved. The frame's border is stored in the decorations members of SalFrameGeometry. Change-Id: Ic00ad1f1d74d7afadcaca0c01e1a41ea7f2833de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135434 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 3f8d3fd4649ef09e86c735617383a4bda0425540) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135375 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-05-31tdf#117006 gtk: detect High ContrastCaolán McNamara
similar to https://bugzilla.mozilla.org/show_bug.cgi?id=1606038 .e.g. gnome a11y menu, pick "High Contrast" Change-Id: I60643b3a37b722230d5ed47082e4a6491d005ce4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135160 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Caolán McNamara <caolanm@redhat.com>
2022-05-31Related: tdf#89131 draw up/down spins disabled if value is at max/minCaolán McNamara
if there is a max/min set. Change-Id: I2dc7ccccad9ec2aa7eb89d8b5fa137e077a846fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135105 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 2896c5dad1799addd72b626d93d7e89b1cf19ff6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135070 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-05-29tdf#144601 Qt fix creating QImage with alpha maskJan-Marek Glogowski
Rechecking the QImage documentation, this actually can be easily done; no more bit twiddling, which I got wrong to begin with. LO's alpha mask is inverted to Qt's expectations, but we have invertPixels() and then apply it with setAlphaChannel(). And we can even set the fAlpha using setOpacity()! Change-Id: If2030d3f87d3a4698d1cd9af005d307c2ee63061 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135044 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins (cherry picked from commit 6959a18d1a8fea4d65498083dc3ba05f640d0f39) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135060
2022-05-28tdf#149329 Qt change cursor via QWidgetJan-Marek Glogowski
... instead of its QWindow No idea, why my initial implementation used the QWindow. Neither do I know, why it's now somehow broken. The code is called, but the cursor doesn't change. But it seems to work via QWidget, so just do that. IMHO less QWindow is preferable generally; let Qt handle more of the low-level stuff. Change-Id: Id23fba719c9a4d7e760991c51e6021c6f89be345 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135051 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins (cherry picked from commit caf862fc843c89cceae2121f743a3822e09bbd46) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135080
2022-05-25tdf#148864 Qt switch QtObjectWindow to QWidgetJan-Marek Glogowski
... and therefore rename it to QtObjectWidget Replacement of the QWidget with QWindow originally happened in commit 56b19f9a814ae5a39ed760ee542d715493cd0bf3 ("tdf#121247, tdf#121266 KDE5: Add basic support for OpenGL"), but that unfortunately has a very sparce commit message with no reason for this change. Then the code was further complicated in commit 25edbded9946801effd117b9c46de0f8b4bc5632 ("tdf#125517 Qt5 implement a minimal Qt5ObjectWindow") and a few follow up fixes to restore input and focus handling. But appearingly all this QWindow handling isn't necessary and just returning to a QWidget based class fixes the problems with the video overlay (AKA QWidget::winId()) and video playback for good. The OpenGL Impress transition (Fade) mentioned in the original tdf#121266 bug still works. This also adds the previously missing SolarMutexGuard to all the overridden QtObjectWidget functions, which call the SalObject's Callback function. I accidently triggered a DBG_TESTSOLARMUTEX crashing Impress while debugging this. Change-Id: Ia22cabfd4f3585dc7fa3f9f18a913c5bd1987dd8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134864 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins (cherry picked from commit 4366e0605214260e55a937173b0c2e02225dc843) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134903 Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2022-05-25tdf#125925 Qt migrate KF5 theme font settings codeJan-Marek Glogowski
Currently all implemented Qt platforms use freetype and fontconfig to handle the font selection, so just move the font styling code from the kf5 VCL plugin to qt. This really minimizes kf5 by just keeping the special file picker handling in that VCL plugin. Change-Id: I0bbb2496379396afc46e34fe0d026702dce1492e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134862 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins (cherry picked from commit 7bf9629d4f3e8504b5d09685d7721275b3287443) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134917
2022-05-24vcl: GCC12 says fclose() causes -Werror=use-after-free on any use of FILE*Michael Stahl
In file included from vcl/inc/unx/cpdmgr.hxx:34, from vcl/unx/generic/printer/cpdmgr.cxx:25: In member function ‘size_t psp::FPtrHash::operator()(const FILE*) const’, inlined from ‘std::__detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Hash, _RangeHash, _Unused, __cache_hash_code>::__hash_code std::__detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Hash, _RangeHash, _Unused, __cache_hash_code>::_M_hash_code(const _Key&) const [with _Key = _IO_FILE*; _Value = std::pair<_IO_FILE* const, rtl::OString>; _ExtractKey = std::__detail::_Select1st; _Hash = psp::FPtrHash; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; bool __cache_hash_code = true]’ at /usr/include/c++/12/bits/hashtable_policy.h:1268:18, inlined from ‘std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::size_type std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::_M_erase(std::true_type, const key_type&) [with _Key = _IO_FILE*; _Value = std::pair<_IO_FILE* const, rtl::OString>; _Alloc = std::allocator<std::pair<_IO_FILE* const, rtl::OString> >; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<_IO_FILE*>; _Hash = psp::FPtrHash; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, false, true>]’ at /usr/include/c++/12/bits/hashtable.h:2358:43, inlined from ‘std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::size_type std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::erase(const key_type&) [with _Key = _IO_FILE*; _Value = std::pair<_IO_FILE* const, rtl::OString>; _Alloc = std::allocator<std::pair<_IO_FILE* const, rtl::OString> >; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<_IO_FILE*>; _Hash = psp::FPtrHash; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, false, true>]’ at /usr/include/c++/12/bits/hashtable.h:971:24, inlined from ‘std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::size_type std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::erase(const key_type&) [with _Key = _IO_FILE*; _Tp = rtl::OString; _Hash = psp::FPtrHash; _Pred = std::equal_to<_IO_FILE*>; _Alloc = std::allocator<std::pair<_IO_FILE* const, rtl::OString> >]’ at /usr/include/c++/12/bits/unordered_map.h:763:26, inlined from ‘virtual bool psp::CPDManager::endSpool(const rtl::OUString&, const rtl::OUString&, FILE*, const psp::JobData&, bool, const rtl::OUString&)’ at vcl/unx/generic/printer/cpdmgr.cxx:725:28: vcl/inc/unx/cupsmgr.hxx:35:43: error: pointer may be used after ‘int fclose(FILE*)’ [-Werror=use-after-free] 35 | { return reinterpret_cast<size_t>(pPtr); } | ^ vcl/unx/generic/printer/cpdmgr.cxx: In member function ‘virtual bool psp::CPDManager::endSpool(const rtl::OUString&, const rtl::OUString&, FILE*, const psp::JobData&, bool, const rtl::OUString&)’: vcl/unx/generic/printer/cpdmgr.cxx:695:15: note: call to ‘int fclose(FILE*)’ here 695 | fclose( pFile ); | ~~~~~~^~~~~~~~~ Change-Id: Ib035f2287649dcf9a2d37bda85ebcf52c6c51aaa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134739 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 02ebfb8ed6175934a1985786e6816ecef1bd59f8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134632 Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-05-23tdf#149068 reject OpenGL versions that don't support glGenVertexArraysCaolán McNamara
use a throwaway toplevel to figure that out, because if the current window is used then gtk will always call glGenVertexArrays on it due to the creation of a GLContext which is the problem we want to avoid. Change-Id: I40ccc48b5ed2d9fd99d3c242244847c8448c3803 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134350 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit da50382b366d6f3de778d8a52136cd812ef5b751) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134628 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-05-22vcl: avoid EXCEPTION_INT_DIVIDE_BY_ZEROXisco Fauli
See https://crashreport.libreoffice.org/stats/signature/FormattedField::Down() or https://crashreport.libreoffice.org/stats/signature/FormattedField::Up() Change-Id: I30dfb06a1261a48a75b9d9c2380ed78121758ec2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134674 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit ce39195e533336ce1482e2be6b1bec2b7f992125) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134627
2022-05-20follow org.freedesktop.appearance.color-scheme settingCaolán McNamara
Change-Id: Id26d01fd19cc3ee12c0e14b785b3a5149d22baf5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134634 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Caolán McNamara <caolanm@redhat.com>
2022-05-19icon-theme not dynamically changing to match desktop if set to 'auto'Caolán McNamara
Change-Id: Id5700cff1000fe4b6df6e73c1ce9ff4f206e0a96 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134613 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-05-18Related: tdf#148197 gtk_tree_view_scroll_to_cell needs either path or columnCaolán McNamara
so a null path is invalid here Change-Id: I1958e9695e3290e0c513bce89c9548908860754f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134187 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-05-18tdf#137639 qt: UTF-16-encode mime data for "text/plain;charset=utf-16"Michael Weghorn
Return a `QVariant` from a `QByteArray` containing the UTF-16-encoded characters when mime data for mime type "text/plain;charset=utf-16" is requested in `QtMimeData::retrieveData`, rather than a `QVariant` created from a a `QString`, to ensure that UTF-16 encoded data is actually used in the end. While `QString` uses UTF-16 encoding itself, `QMimeDataPrivate::retrieveTypedData` from the Qt library would convert the retrieved `QString` data to UTF-8 [1], resulting in a mismatch because UTF-8 encoded data would actually be returned when UTF-16-encoded one has been requested. This gets called as follows: 0 QtMimeData::retrieveData 1 QMimeDataPrivate::retrieveTypedData 2 QMimeData::data 3 QtMimeData::deepCopy [1] https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/kernel/qmimedata.cpp?h=6.3.0#n212 Change-Id: I3db1476838336682584145fb43d397c8eed29ce2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134456 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 6fc3ec85a32cd70216b4bbf21e479b4fc32a38dc) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134451 Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2022-05-17tdf#148706: map value prop in numericfield to textXisco Fauli
Change-Id: Ifc37b0aa8dc657d7a7f05199c8132896d03eb437 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134240 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 3bd7111fe29ce19a007915af87f1f9269d27d9ff) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134183 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-05-16tdf#143612: map SecondaryRefValue in form pdf exportXisco Fauli
Change-Id: I590784eb94fb6f4f3a20c4f6d8e3fb618f60d0fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134227 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134242 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-05-16related: tdf#148442: do not replace 'Yes' if onValue is emptyXisco Fauli
Change-Id: I748422dfbe7a385f4206c5d129eb3091289a180d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134220 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134241 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-05-16tdf#148442: map RefValue property to onValue in pdfXisco Fauli
Similar to what it's already done for radiobuttons Change-Id: I708d23dc5f9d4470a9850d7ecc60bd71fada594e Change-Id: I34107c757b0e0933f392a6d0845fa0d2e07aed62 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134170 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 6ee5fb6d32147e180552f66e615d1de932fdcf9c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134176
2022-05-16tdf#119686: fix tiff with 1 bit per pixelJulien Nabet
On the 30 pixels width images, the 3 first bytes were ok, that's why the 24 first pixels of each line was ok. The pb was in the fourth byte, you must read each bit of this last byte until reaching 30 pixels, so 6 bits (since width 30 corresponds to 3 * 8 + (8 - 2)). Here LO always shifted this byte with the same value, so used the value of the first bit for the last 6 bits of the last byte. => just decrement the shift value at the end of each loop With this patch initial, attachment of the bugtracker https://bugs.documentfoundation.org/attachment.cgi?id=144656 and the more complex one https://bugs.documentfoundation.org/attachment.cgi?id=144656 are ok Change-Id: I17339c54d6822c724184f167fb3a25b240e06543 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134235 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134248 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-05-14tdf#148470 if macOS glyph fallback provided a partial result flag what failedCaolán McNamara
so another font can be attempted for the remainder Change-Id: Ie2c67c7c63510d02c99f2377c0c43ed6050ccd86 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134131 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 4b693a0c594fb3b73f4a4c1e03e9916f1a107012) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134070 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-05-09Delete CJK-style mnemonics on macOSxuenhua
Delete CJK-style mnemonics for the dropdown menu of the 'New button' and lower menu of 'File > New' on macOS Change-Id: Idd0ab671cd75151095c92b37e5b6b5e81ddae7e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133872 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-05-06vertical text test fails with latest harfbuzzCaolán McNamara
with font "Droid Sans Japanese" which doesn't seem to be available in ci, but is by default in the Fedora 37 build roots I suspect since: https://github.com/harfbuzz/harfbuzz/issues/537 Change-Id: I23d9415444668ce379765f32a96ed67f057ebfd7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133858 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-05-04tdf#147283 allow 'fake italic/bold' glyph fallback results to be cachedCaolán McNamara
see also tdf#32665 Change-Id: I69746b815fec3c73f87de4dc3fe84dbc91e61f0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130877 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 04f9a8957c04b8c5abaa58140328d2c83381f4ff) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133724 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-05-04do not allow reusing already used SalLayoutGlyphs (tdf#148477)Luboš Luňák
If the glyphs have already been used, the AdjustLayout() call in OutputDevice::ImplLayout might have altered them, since MultiSalLayout::ImplAdjustMultiLayout() drops glyphs that need falllback from the base layout. And then then GenericSalLayout::LayoutText() would not know to call SetNeedFallback(). Change-Id: I2f79d26c8b861f20d7d52abaa0d917aaeefb37a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133758 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com> (cherry picked from commit 22191901bc91535121a5e8dc7ee6137233824d36) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133726 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-05-03ofz: Use-of-uninitialized-valueCaolán McNamara
Change-Id: I9ca24a135494a49449aec63615b2d945a93e8b27 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133717 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-05-02Delete mnemonics for CJK translations on macOSxuenhua
'Cop~y' translated into Chinese is '复制(~Y)' But the mnemonics '(Y)' is useless on macOS. In English, 'Cop~y' with the '~' removed is the correct result. But in CJK should remove along with '(' and ')', not just only for mbMenuBar. Use the method MnemonicGenerator::EraseAllMnemonicChars already defined in vcl/mnemonic.hxx Change-Id: Ic37ce566923e3dea47535d187b1b3dba2088e960 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133572 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 7fd1b0aa2ba741103a7d9ac835514ebbeae3bcff) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133714
2022-05-02tdf#140272 gtk3: fix crash with dnd using touchCaolán McNamara
gdk_wayland_drag_context_manage_dnd needs gdk_device_window_at_position(device, ...) to succeed similar to the problem of https://gitlab.gnome.org/GNOME/gtk/-/issues/1080 Change-Id: I2e1956b40a622b1d74d3aef3b5fac654fc1256eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133409 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-05-01tdf#141000 replacing underscores with spaces of multi words icon pack nameZain Iftikhar
patch will replace underscores with spaces of multi words icon pack name. Change-Id: If37f6617b7c90eb912ab2f58fff0f1df225efa66 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133094 Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> (cherry picked from commit 02b740a7a047052e60274b8649f3624267eb079f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133280 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-04-30Fix Method EraseAllMnemonicChars bugxuenhua
MNEMONIC_RANGE_2_START and MNEMONIC_RANGE_2_END defined in 'core/include/vcl/mnemonic.hxx' are 'a' and 'z' This variable c is UpperCase, should be converted to lowercase, and thencompare with MNEMONIC_RANGE_2_START and MNEMONIC_RANGE_2_END. Change-Id: I721e293e88bf1b8260b7ea2dc39ae6a7fd4f3d79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133587 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133619
2022-04-28Following tdf#142151: Red cast rendered in 16 bit TIFF imageJulien Nabet
Just simplify by merging both almost identical parts. Change-Id: I1658621609e10312feed530090adfa873602d2f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133115 Tested-by: Jenkins (cherry picked from commit dc97aac5cdfa3789d4e71e9d92df6e7e68802825) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133485 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-04-28Related: tdf#148779 Avoid endless recursion in ImplSmallBorderWindowView::InitStephan Bergmann
At least on macOS, some `make screenshot` tests crashed for me due to endless recursion, like the processing of modules/swriter/ui/converttexttable.ui in CppunitTest_sw_dialogs_test for LO_TEST_LOCALE=gu: [...] > ImplSmallBorderWindowView::Init at vcl/source/window/brdwin.cxx:557:20 > ImplBorderWindow::Resize at vcl/source/window/brdwin.cxx:1736 > vcl::Window::queue_resize at vcl/source/window/window2.cxx:1351:28 > ImplSmallBorderWindowView::Init at vcl/source/window/brdwin.cxx:557:20 > ImplBorderWindow::Resize at vcl/source/window/brdwin.cxx:1736 > vcl::Window::queue_resize at vcl/source/window/window2.cxx:1351:28 > ImplSmallBorderWindowView::Init at vcl/source/window/brdwin.cxx:557:20 [...] where in the calls to ImplSmallBorderWindowView::Init, nWidth=24 and nHeight=31, as well as mnLeftBorder=6, mnTopBorder=6, and mnBottomBorder=6 remain stable, but mnRightBorder keeps changing between 6 and 5. This appears to be caused by instabilities in the ImplLogicToDevicePixel and ImplDevicePixelToLogic calculations in OutputDevice::GetNativeControlRegion (vcl/source/outdev/nativecontrols.cxx), which can be avoided when we compute a hypothetical native control region from aCtrolRegion that includes the borders, and only remove the borders from the resulting aBounds and aContent. (The code to shrink aCtrlRegion prior to calling GetNativeControlRegion had been introduced with 27be8a263eddb54cb6b66cc0f832bfd02016a694 "KDE4 fix edit box borders".) Change-Id: I88c0d15ae7045a6888768226ca4d5fdd66bb41ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128549 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins (cherry picked from commit 31700036e517691d154701f4b8aeecb85cde607f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133482 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-04-25ofz#46905 Null-dereferenceCaolán McNamara
Change-Id: I26427ee1e010ce79e40c550459d9f53598570a7b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133291 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-04-21tdf#148699 Qt track the active / shown popupJan-Marek Glogowski
I have no idea, if there can be multiple active popups in LO in some way. There can be multiple FloatingWindow and gtk does count them in m_nFloats... There is a whole lot going on in gtk3 related to isFloatGrabWindow(), with "funny" comments like: // FIXME: find out who the hell steals the focus from our frame So this goes with some "optimistic" approach: there is just one active popup, so we can track it in QtInstance. It WFM... Change-Id: I9778587696e1ad9e641dba4f102e2e921266eee6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133249 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 347622a98f512dae709f938a85498dcdcf9f225a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133260 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-04-21tdf#140463 Qt handle mouse enter+leave eventsJan-Marek Glogowski
Currently just implemented for the QtWidget, but still as a static function, so it may be used for QtObject at some point too. But there is no (mouse) enter or leave event function in QWindow, so no way to handle these there. And since we can't modify the returned QWidget from QWidget::createWindowContainer, the only way would be to expand the static QtWidget::handleEvent used by QtObjectWindow::event ... if it's actually needed at some point. Includes squashed commit 5d56255c22c79b72c1cedb48cfe0a200f89bdc66 ("qt6: Fix build (QtWidget::enterEvent)"). Change-Id: If9009e5dfca508acd1e702df1a17eb8ad7c29690 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133190 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit dc886bc6de2c0061a840bea2426663c3be2ecd26) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133149 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-04-19tdf#148197 gtk_tree_row_reference_new_proxy warning on docking navigatorCaolán McNamara
Gtk-CRITICAL **: 09:05:11.124: gtk_tree_row_reference_new_proxy: assertion 'path->depth > 0' failed from TreeView::set_cursor(-1) gtk_tree_view_set_cursor is ok (and documented as such) with an "invalid" path to unset the cursor, but there isn't the same for gtk_tree_view_scroll_to_cell, though there null is docs as acceptable. Change-Id: I11b94ba997fbbd2f31031d9e73765ea1882ad9ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132872 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-04-19Related: tdf#147237 change the SalObject background when the settings changeCaolán McNamara
which solves the problem of parts of the gtk ui remaining in the old theme when switching dark<->light Change-Id: I59060dfdf3937ca13cd706eefc9e67c133478992 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133043 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-04-18tdf#142151: Red cast rendered in 16 bit TIFF imageJulien Nabet
I found this fix by testing "pure" red/green/blue files (see attachments in the bugtracker) where red 16 bits file was ok but not green and blue 16 bits ones. Change-Id: Ic700a0fa17c3056d1d4f1d1a7f16a799ff4c7378 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133108 (cherry picked from commit 49ee1c889665c3539fa9a1c99a865a42fc08ee97) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133051 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2022-04-13tdf#148115 Qt handle tooltips via event loopJan-Marek Glogowski
Instead of calling QToolTip::showText directly from LO, this defers showing the tooltip to the QEvent processing, which takes the tooltip timeouts into account. So tooltips are shown with a slight delay, therefore they happen less fast on mouse move, reducing / avoiding artifacts of fast changing windows. This unfortunately comes with yet an other hack in the area of our fake popup windows... New handling is based on the code of the Qt Tool Tips example. Change-Id: I42634ad36dd12171c30f52f07a02a88d3c48a718 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132841 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins (cherry picked from commit af6dd54d53eee0d0de1164bff0a77c6b433b3935) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132864 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-04-13tdf#143447 ignore IME candidate window state.Mark Hung
Some traditional Chinese IMEs ( Input Method Editors ) under Windows10 send WM_IME_NOTIFY with IMN_OPENCANDIDATE but not IMN_CLOSECANDIDATE. The behavior is different if users configure the IME and enable "legacy" option. That caused the cursor been hidden, misled by mbCandidateMode. The patch ignores the candidate window mode in case the length of the composition string is 0, assume in that case candidate window is useless, and resets the candidate window mode when composition ended to maintain the state as much as we can. Change-Id: I91a1c23ee1a031313243e032653f50f39b0f2a3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132512 Tested-by: Jenkins Reviewed-by: Mark Hung <marklh9@gmail.com> (cherry picked from commit 2b2d1c08c94fdc3982971c2b19ea241f05e578c9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132858 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-04-12tdf#148491 Qt reconnect the QMenuBar close buttonJan-Marek Glogowski
When the QMenuBar of a QMainWindow is replaced, an existing corner widget is preserved / transferred, but its connections are still severed; a bit unexpected... The documentation for QMenuBar::setCornerWidget is not really clear what is happening, but the code has this nice comment: "// Reparent corner widgets before we delete the old menu". At least there is no need to explicitly delete the button. Still we must reconnect an existing button on each SetFrame. Regression from commit 9c4ef8ce3183e27ca174475cf4a8d15cc0368f60 ("tdf#145954 Qt unshare QMenubar usage"). This includes commit 4a537cf77affc4f1f2e2e5be9ff0b1ff11724509 ("Qt drop unused QtMenu::mpCloseButton"). Change-Id: I13c31734e665b78231a08cd76ca6305122e08879 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132836 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit f751417b77e6573a0c639778e76ec943449f4573) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132894 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-04-12ofz: Use-of-uninitialized-valueCaolán McNamara
Change-Id: I87cfad2da9b90bc4487dc4deb2fda5bb31a6b763 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132856 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>