include/vcl/svapp.hxx | 4 ++ sd/source/ui/annotations/annotationmanager.cxx | 4 ++ sd/source/ui/annotations/annotationwindow.cxx | 4 -- sd/source/ui/annotations/annotationwindow.hxx | 2 - sd/source/ui/dlg/sdtreelb.cxx | 2 + svtools/source/control/valueset.cxx | 2 - svx/source/sidebar/possize/PosSizePropertyPanel.cxx | 7 +++-- svx/source/svdraw/svdmrkv.cxx | 4 ++ vcl/inc/svdata.hxx | 1 vcl/source/app/svapp.cxx | 28 +++++++++++++++----- 10 files changed, 41 insertions(+), 17 deletions(-)
New commits: commit 7fb1b147507ad991de974c7c331816225dc5c088 Author: Caolán McNamara <[email protected]> Date: Mon Oct 19 15:41:03 2015 +0100 add Application::EndAllPopups Change-Id: Id4548aa2e32f736f4cd332ba824137d88fe963fc diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx index 1755b50..429cf08 100644 --- a/include/vcl/svapp.hxx +++ b/include/vcl/svapp.hxx @@ -1485,6 +1485,10 @@ public: */ static void EndAllDialogs(); + /** Cancel all open popups + */ + static void EndAllPopups(); + ///@} // For vclbootstrapprotector: diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx index 0c850c03..48749ea 100644 --- a/vcl/inc/svdata.hxx +++ b/vcl/inc/svdata.hxx @@ -163,6 +163,7 @@ struct ImplSVAppData DECL_STATIC_LINK_TYPED(ImplSVAppData, ImplQuitMsg, void*, void); DECL_STATIC_LINK_TYPED(ImplSVAppData, ImplEndAllDialogsMsg, void*, void); + DECL_STATIC_LINK_TYPED(ImplSVAppData, ImplEndAllPopupsMsg, void*, void); DECL_STATIC_LINK_TYPED(ImplSVAppData, ImplVclEventTestingHdl, void*, void); DECL_LINK_TYPED(VclEventTestingHdl, Idle*, void); }; diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx index 16467e8..7a474de 100644 --- a/vcl/source/app/svapp.cxx +++ b/vcl/source/app/svapp.cxx @@ -37,6 +37,7 @@ #include <unotools/syslocaleoptions.hxx> #include "vcl/dialog.hxx" +#include "vcl/floatwin.hxx" #include "vcl/settings.hxx" #include "vcl/keycod.hxx" #include "vcl/event.hxx" @@ -328,6 +329,13 @@ const vcl::KeyCode* Application::GetReservedKeyCode( sal_uLong i ) return &ImplReservedKeys::get()->first[i].mKeyCode; } +IMPL_STATIC_LINK_NOARG_TYPED( ImplSVAppData, ImplEndAllPopupsMsg, void*, void ) +{ + ImplSVData* pSVData = ImplGetSVData(); + while (pSVData->maWinData.mpFirstFloat) + pSVData->maWinData.mpFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel); +} + IMPL_STATIC_LINK_NOARG_TYPED( ImplSVAppData, ImplEndAllDialogsMsg, void*, void ) { vcl::Window* pAppWindow = Application::GetFirstTopLevelWindow(); @@ -343,6 +351,12 @@ void Application::EndAllDialogs() Application::PostUserEvent( LINK( NULL, ImplSVAppData, ImplEndAllDialogsMsg ) ); } +void Application::EndAllPopups() +{ + Application::PostUserEvent( LINK( NULL, ImplSVAppData, ImplEndAllPopupsMsg ) ); +} + + namespace { bool InjectKeyEvent(SvStream& rStream) @@ -382,6 +396,7 @@ namespace void CloseDialogsAndQuit() { + Application::EndAllPopups(); Application::EndAllDialogs(); Application::Quit(); } commit 6c39f7bba64fd55488f840675fa83c3ba241bc74 Author: Caolán McNamara <[email protected]> Date: Mon Oct 19 15:33:43 2015 +0100 afl-eventtesting: pCursor is null Change-Id: I24d29ffc3cfcb00e513a5267619e143b028355ce diff --git a/sd/source/ui/dlg/sdtreelb.cxx b/sd/source/ui/dlg/sdtreelb.cxx index fafaafe..7993f5d 100644 --- a/sd/source/ui/dlg/sdtreelb.cxx +++ b/sd/source/ui/dlg/sdtreelb.cxx @@ -1083,6 +1083,8 @@ void SdPageObjsTLB::KeyInput( const KeyEvent& rKEvt ) { // commented code from svtools/source/contnr/svimpbox.cxx SvTreeListEntry* pCursor = GetCurEntry(); + if (!pCursor) + return; if( pCursor->HasChildren() || pCursor->HasChildrenOnDemand() ) { if( IsExpanded( pCursor ) ) commit 4ec44fc1a8cf7cdfb6ddceacdaf7354551064971 Author: Caolán McNamara <[email protected]> Date: Mon Oct 19 15:24:02 2015 +0100 afl-eventtesting: view is null but docshell isn't and we're using the view apparently to get the shell we already have Change-Id: Ibc2021245191a75f65ec655a2d1929601a2611b5 diff --git a/sd/source/ui/annotations/annotationwindow.cxx b/sd/source/ui/annotations/annotationwindow.cxx index 693f84e..e8ea2e9 100644 --- a/sd/source/ui/annotations/annotationwindow.cxx +++ b/sd/source/ui/annotations/annotationwindow.cxx @@ -204,7 +204,6 @@ void AnnotationTextWindow::MouseButtonDown( const MouseEvent& rMEvt ) GrabFocus(); if ( mpOutlinerView ) mpOutlinerView->MouseButtonDown( rMEvt ); - // todo mpOutlinerView->DocView()->GetViewFrame()->GetBindings().InvalidateAll(sal_False); } void AnnotationTextWindow::MouseButtonUp( const MouseEvent& rMEvt ) @@ -276,7 +275,6 @@ AnnotationWindow::AnnotationWindow( AnnotationManagerImpl& rManager, DrawDocShel : FloatingWindow(pParent, WB_SYSTEMWINDOW|WB_BORDER|WB_NEEDSFOCUS) , mrManager( rManager ) , mpDocShell( pDocShell ) -, mpView( pDocShell->GetViewShell()->GetView() ) , mpDoc( pDocShell->GetDoc() ) , mpOutlinerView(0) , mpOutliner(0) @@ -638,7 +636,7 @@ void AnnotationWindow::Deactivate() if( mpDoc->IsUndoEnabled() ) mpDoc->EndUndo(); - DocView()->GetDocSh()->SetModified(); + mpDocShell->SetModified(); } } diff --git a/sd/source/ui/annotations/annotationwindow.hxx b/sd/source/ui/annotations/annotationwindow.hxx index 0dc405c..9e25f44 100644 --- a/sd/source/ui/annotations/annotationwindow.hxx +++ b/sd/source/ui/annotations/annotationwindow.hxx @@ -79,7 +79,6 @@ class AnnotationWindow : public FloatingWindow private: AnnotationManagerImpl& mrManager; DrawDocShell* mpDocShell; - View* mpView; SdDrawDocument* mpDoc; OutlinerView* mpOutlinerView; @@ -114,7 +113,6 @@ class AnnotationWindow : public FloatingWindow DrawDocShell* DocShell() { return mpDocShell; } OutlinerView* getView() { return mpOutlinerView; } - sd::View* DocView() { return mpView; } Outliner* Engine() { return mpOutliner; } SdDrawDocument* Doc() { return mpDoc; } commit cfcf0254afe0ce9f4fd80606527bd1f14777f7e1 Author: Caolán McNamara <[email protected]> Date: Mon Oct 19 15:11:59 2015 +0100 afl-eventtesting: div by zero Change-Id: If070da723858b5e1221bda86e69225ee57ec9d02 diff --git a/svtools/source/control/valueset.cxx b/svtools/source/control/valueset.cxx index c88042d..5f780ca 100644 --- a/svtools/source/control/valueset.cxx +++ b/svtools/source/control/valueset.cxx @@ -1326,7 +1326,7 @@ void ValueSet::KeyInput( const KeyEvent& rKeyEvent ) { if (nCurPos == nLastItem) { - const size_t nCol = nLastItem % mnCols; + const size_t nCol = mnCols ? nLastItem % mnCols : 0; if (nCol < mnCurCol) { // Move to previous row/page, keeping the old column commit cbe2b9cb69a685ab89384f98a9e62b2623afcd9b Author: Caolán McNamara <[email protected]> Date: Mon Oct 19 14:56:32 2015 +0100 afl-eventtesting: deref of null GetMainViewShell Change-Id: Ie6863f446aa688bc1bb3f725ee31e9984dadc7a4 diff --git a/sd/source/ui/annotations/annotationmanager.cxx b/sd/source/ui/annotations/annotationmanager.cxx index 166b8c1..79c8997 100644 --- a/sd/source/ui/annotations/annotationmanager.cxx +++ b/sd/source/ui/annotations/annotationmanager.cxx @@ -1140,7 +1140,9 @@ SdPage* AnnotationManagerImpl::GetLastPage() SdPage* AnnotationManagerImpl::GetCurrentPage() { - return mrBase.GetMainViewShell()->getCurrentPage(); + if (rBase.GetMainViewShell().get()) + mrBase.GetMainViewShell()->getCurrentPage(); + return nullptr; } AnnotationManager::AnnotationManager( ViewShellBase& rViewShellBase ) commit 27ccddf5034ec9e80a5adf93c630247bb5807676 Author: Caolán McNamara <[email protected]> Date: Mon Oct 19 14:16:50 2015 +0100 afl-eventtesting: deref of null GetSdrPageView Change-Id: Iec3266746c78e58e3c3a094e6511d79dadc4e4c6 diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx index 5bb2310..3b1e764 100644 --- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx +++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx @@ -1152,12 +1152,15 @@ void PosSizePropertyPanel::DisableControls() void PosSizePropertyPanel::SetPosXYMinMax() { + SdrPageView* pPV = mpView->GetSdrPageView(); + if (!pPV) + return; Rectangle aTmpRect(mpView->GetAllMarkedRect()); - mpView->GetSdrPageView()->LogicToPagePos(aTmpRect); + pPV->LogicToPagePos(aTmpRect); maRect = basegfx::B2DRange(aTmpRect.Left(), aTmpRect.Top(), aTmpRect.Right(), aTmpRect.Bottom()); Rectangle aTmpRect2(mpView->GetWorkArea()); - mpView->GetSdrPageView()->LogicToPagePos(aTmpRect2); + pPV->LogicToPagePos(aTmpRect2); maWorkArea = basegfx::B2DRange(aTmpRect2.Left(), aTmpRect2.Top(), aTmpRect2.Right(), aTmpRect2.Bottom()); const Fraction aUIScale(mpView->GetModel()->GetUIScale()); commit c21db7b9a5502bf849ac890c20fac10d3ba32fcb Author: Caolán McNamara <[email protected]> Date: Mon Oct 19 11:21:36 2015 +0100 afl-eventtesting: fix deadlock Change-Id: Ifa75a0344c444f589c165562262a8d843cd12ef7 diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx index fe4fb71..16467e8 100644 --- a/vcl/source/app/svapp.cxx +++ b/vcl/source/app/svapp.cxx @@ -368,16 +368,15 @@ namespace return false; } - SalKeyEvent aKeyEvent; - aKeyEvent.mnTime = 0; - rStream.ReadUInt16(aKeyEvent.mnCode); - rStream.ReadUInt16(aKeyEvent.mnCharCode); - aKeyEvent.mnRepeat = 0; + sal_uInt16 nCode, nCharCode; + rStream.ReadUInt16(nCode); + rStream.ReadUInt16(nCharCode); if (!rStream.good()) return false; - ImplWindowFrameProc(xWin.get(), NULL, SALEVENT_KEYINPUT, &aKeyEvent); - ImplWindowFrameProc(xWin.get(), NULL, SALEVENT_KEYUP, &aKeyEvent); + KeyEvent aVCLKeyEvt(nCharCode, nCode); + Application::PostKeyEvent(VCLEVENT_WINDOW_KEYINPUT, xWin.get(), &aVCLKeyEvt); + Application::PostKeyEvent(VCLEVENT_WINDOW_KEYUP, xWin.get(), &aVCLKeyEvt); return true; } commit e63c6fe93ebd702c8c62378830d69343003b91bc Author: Caolán McNamara <[email protected]> Date: Mon Oct 19 10:00:11 2015 +0100 afl-eventtesting: deref of null MarkedSdrObj Change-Id: I0fe9cb55de114c7e2ad45cd946e94f9c0e93b85c diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx index 5d4f77b..06494c6 100644 --- a/svx/source/svdraw/svdmrkv.cxx +++ b/svx/source/svdraw/svdmrkv.cxx @@ -2006,7 +2006,9 @@ const Rectangle& SdrMarkView::GetMarkedObjRect() const Rectangle aRect2; for (size_t nm=0; nm<GetMarkedObjectCount(); ++nm) { SdrMark* pM=GetSdrMarkByIndex(nm); - SdrObject* pO=pM->GetMarkedSdrObj(); + SdrObject* pO = pM->GetMarkedSdrObj(); + if (!pO) + continue; Rectangle aR1(pO->GetSnapRect()); // apply calc offset to marked object rect // ( necessary for handles to be displayed in
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
