diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2023-10-05 12:35:05 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-10-05 16:48:45 +0200 |
commit | 6d9393f3ced54821645bfdc5596ba13d44bd4a0a (patch) | |
tree | d63e21f578369eb8136d115e52b87faa4eee641b /vcl | |
parent | eeb685b0f12911c696abbf847a22bd3bcc00fc2c (diff) |
cool#7254 crash on double click of value set item in bullets and numbering
#0 0x00007f6d6f39e7a8 in vcl::Window::MouseButtonUp (this=this@entry=0x34177ef0, rMEvt=...) at libreoffice/vcl/source/window/mouse.cxx:430
#1 0x00007f6d6f6e6a32 in VclDrawingArea::MouseButtonUp (rMEvt=..., this=0x34177ef0) at libreoffice/include/vcl/layout.hxx:707
#2 SalInstanceDrawingArea::dblclick (this=0x31351fd0, rPos=...) at libreoffice/vcl/source/app/salvtables.cxx:6288
#3 0x00007f6d6f8c989c in LOKTrigger::trigger_dblclick (rPos=..., rDrawingArea=warning: can't find linker symbol for virtual table for `weld::DrawingArea' value
warning: found `construction vtable for SalInstanceDrawingArea-in-JSDrawingArea' instead
...) at libreoffice/include/vcl/jsdialog/executor.hxx:66
#4 jsdialog::ExecuteAction (nWindowId=..., rWidget=..., rData=...) at libreoffice/vcl/jsdialog/executor.cxx:239
#5 0x00007f6d6e46cebe in lcl_sendDialogEvent (nWindowId=<optimized out>, pArguments=<optimized out>)
at libreoffice/desktop/source/lib/init.cxx:4961
#6 0x000000000051eeee in lok::Document::sendDialogEvent (pArguments=<optimized out>, nWindowId=<optimized out>, this=0x30a67ca0)
at libreoffice/include/LibreOfficeKit/LibreOfficeKit.hxx:323
#7 ChildSession::dialogEvent (this=this@entry=0x32d5e410, tokens=...) at kit/ChildSession.cpp:1640
#8 0x0000000000540465 in ChildSession::_handleInput (this=<optimized out>, buffer=<optimized out>, length=<optimized out>) at kit/ChildSession.cpp:257
Change-Id: I655beb2a33cdb5d266db3bb50d8dc857192e5a4c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157610
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/app/salvtables.cxx | 10 | ||||
-rw-r--r-- | vcl/source/window/mouse.cxx | 4 |
2 files changed, 8 insertions, 6 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index b577a64862f2..d79b755ae489 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -6277,15 +6277,17 @@ OutputDevice& SalInstanceDrawingArea::get_ref_device() { return *m_xDrawingArea- void SalInstanceDrawingArea::click(const Point& rPos) { MouseEvent aEvent(rPos, 1, MouseEventModifiers::NONE, MOUSE_LEFT, 0); - m_xDrawingArea->MouseButtonDown(aEvent); - m_xDrawingArea->MouseButtonUp(aEvent); + VclPtr<VclDrawingArea> xDrawingArea(m_xDrawingArea); + xDrawingArea->MouseButtonDown(aEvent); + xDrawingArea->MouseButtonUp(aEvent); } void SalInstanceDrawingArea::dblclick(const Point& rPos) { MouseEvent aEvent(rPos, 2, MouseEventModifiers::NONE, MOUSE_LEFT, 0); - m_xDrawingArea->MouseButtonDown(aEvent); - m_xDrawingArea->MouseButtonUp(aEvent); + VclPtr<VclDrawingArea> xDrawingArea(m_xDrawingArea); + xDrawingArea->MouseButtonDown(aEvent); + xDrawingArea->MouseButtonUp(aEvent); } void SalInstanceDrawingArea::mouse_up(const Point& rPos) diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx index 943543ce0d16..6ed64463fec9 100644 --- a/vcl/source/window/mouse.cxx +++ b/vcl/source/window/mouse.cxx @@ -420,14 +420,14 @@ void Window::MouseMove( const MouseEvent& rMEvt ) void Window::MouseButtonDown( const MouseEvent& rMEvt ) { NotifyEvent aNEvt( NotifyEventType::MOUSEBUTTONDOWN, this, &rMEvt ); - if (!EventNotify(aNEvt)) + if (!EventNotify(aNEvt) && mpWindowImpl) mpWindowImpl->mbMouseButtonDown = true; } void Window::MouseButtonUp( const MouseEvent& rMEvt ) { NotifyEvent aNEvt( NotifyEventType::MOUSEBUTTONUP, this, &rMEvt ); - if (!EventNotify(aNEvt)) + if (!EventNotify(aNEvt) && mpWindowImpl) mpWindowImpl->mbMouseButtonUp = true; } |