summaryrefslogtreecommitdiff
path: root/vcl/source/window
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-11-15 10:18:43 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-11-15 12:13:42 +0100
commit5b74eb68113d3721e1a3f9fa40024bf9b2a15f0c (patch)
tree1c959ccc7769fd8530a16cc904b5424d04faa208 /vcl/source/window
parentb4aa631867638b993fda98b1c4fcfc47e5c6a1aa (diff)
loplugin:flatten in vcl
Change-Id: I3527477277a9ae96eaf9fd068232f672da7c28c3 Reviewed-on: https://gerrit.libreoffice.org/44753 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/source/window')
-rw-r--r--vcl/source/window/EnumContext.cxx108
-rw-r--r--vcl/source/window/dialog.cxx85
-rw-r--r--vcl/source/window/menubarwindow.cxx33
-rw-r--r--vcl/source/window/menufloatingwindow.cxx77
-rw-r--r--vcl/source/window/mouse.cxx185
-rw-r--r--vcl/source/window/splitwin.cxx318
-rw-r--r--vcl/source/window/toolbox.cxx59
-rw-r--r--vcl/source/window/toolbox2.cxx77
8 files changed, 476 insertions, 466 deletions
diff --git a/vcl/source/window/EnumContext.cxx b/vcl/source/window/EnumContext.cxx
index f2e46f1cf1ba..3e3431412e2d 100644
--- a/vcl/source/window/EnumContext.cxx
+++ b/vcl/source/window/EnumContext.cxx
@@ -111,22 +111,23 @@ void EnumContext::AddEntry (const ::rtl::OUString& rsName, const Application eAp
void EnumContext::ProvideApplicationContainers()
{
- if (maApplicationMap.empty())
- {
- AddEntry("com.sun.star.text.TextDocument", EnumContext::Application::Writer);
- AddEntry("com.sun.star.text.GlobalDocument", EnumContext::Application::WriterGlobal);
- AddEntry("com.sun.star.text.WebDocument", EnumContext::Application::WriterWeb);
- AddEntry("com.sun.star.xforms.XMLFormDocument", EnumContext::Application::WriterXML);
- AddEntry("com.sun.star.sdb.FormDesign", EnumContext::Application::WriterForm);
- AddEntry("com.sun.star.sdb.TextReportDesign", EnumContext::Application::WriterReport);
- AddEntry("com.sun.star.sheet.SpreadsheetDocument", EnumContext::Application::Calc);
- AddEntry("com.sun.star.chart2.ChartDocument", EnumContext::Application::Chart);
- AddEntry("com.sun.star.drawing.DrawingDocument", EnumContext::Application::Draw);
- AddEntry("com.sun.star.presentation.PresentationDocument", EnumContext::Application::Impress);
-
- AddEntry("any", EnumContext::Application::Any);
- AddEntry("none", EnumContext::Application::NONE);
- }
+ if (!maApplicationMap.empty())
+ return;
+
+ AddEntry("com.sun.star.text.TextDocument", EnumContext::Application::Writer);
+ AddEntry("com.sun.star.text.GlobalDocument", EnumContext::Application::WriterGlobal);
+ AddEntry("com.sun.star.text.WebDocument", EnumContext::Application::WriterWeb);
+ AddEntry("com.sun.star.xforms.XMLFormDocument", EnumContext::Application::WriterXML);
+ AddEntry("com.sun.star.sdb.FormDesign", EnumContext::Application::WriterForm);
+ AddEntry("com.sun.star.sdb.TextReportDesign", EnumContext::Application::WriterReport);
+ AddEntry("com.sun.star.sheet.SpreadsheetDocument", EnumContext::Application::Calc);
+ AddEntry("com.sun.star.chart2.ChartDocument", EnumContext::Application::Chart);
+ AddEntry("com.sun.star.drawing.DrawingDocument", EnumContext::Application::Draw);
+ AddEntry("com.sun.star.presentation.PresentationDocument", EnumContext::Application::Impress);
+
+ AddEntry("any", EnumContext::Application::Any);
+ AddEntry("none", EnumContext::Application::NONE);
+
}
EnumContext::Application EnumContext::GetApplicationEnum (const ::rtl::OUString& rsApplicationName)
@@ -155,43 +156,44 @@ void EnumContext::AddEntry (const ::rtl::OUString& rsName, const Context eContex
void EnumContext::ProvideContextContainers()
{
- if (maContextMap.empty())
- {
- AddEntry("any", Context::Any);
- AddEntry("default", Context::Default);
- AddEntry("empty", Context::Empty);
- AddEntry("3DObject", Context::ThreeDObject);
- AddEntry("Annotation", Context::Annotation);
- AddEntry("Auditing", Context::Auditing);
- AddEntry("Axis", Context::Axis);
- AddEntry("Cell", Context::Cell);
- AddEntry("Chart", Context::Chart);
- AddEntry("ChartElements", Context::ChartElements);
- AddEntry("Draw", Context::Draw);
- AddEntry("DrawLine", Context::DrawLine);
- AddEntry("DrawPage", Context::DrawPage);
- AddEntry("DrawText", Context::DrawText);
- AddEntry("EditCell", Context::EditCell);
- AddEntry("ErrorBar", Context::ErrorBar);
- AddEntry("Form", Context::Form);
- AddEntry("Frame", Context::Frame);
- AddEntry("Graphic", Context::Graphic);
- AddEntry("Grid", Context::Grid);
- AddEntry("HandoutPage", Context::HandoutPage);
- AddEntry("MasterPage", Context::MasterPage);
- AddEntry("Media", Context::Media);
- AddEntry("MultiObject", Context::MultiObject);
- AddEntry("NotesPage", Context::NotesPage);
- AddEntry("OLE", Context::OLE);
- AddEntry("OutlineText", Context::OutlineText);
- AddEntry("Pivot", Context::Pivot);
- AddEntry("Series", Context::Series);
- AddEntry("SlidesorterPage", Context::SlidesorterPage);
- AddEntry("Table", Context::Table);
- AddEntry("Text", Context::Text);
- AddEntry("TextObject", Context::TextObject);
- AddEntry("Trendline", Context::Trendline);
- }
+ if (!maContextMap.empty())
+ return;
+
+ AddEntry("any", Context::Any);
+ AddEntry("default", Context::Default);
+ AddEntry("empty", Context::Empty);
+ AddEntry("3DObject", Context::ThreeDObject);
+ AddEntry("Annotation", Context::Annotation);
+ AddEntry("Auditing", Context::Auditing);
+ AddEntry("Axis", Context::Axis);
+ AddEntry("Cell", Context::Cell);
+ AddEntry("Chart", Context::Chart);
+ AddEntry("ChartElements", Context::ChartElements);
+ AddEntry("Draw", Context::Draw);
+ AddEntry("DrawLine", Context::DrawLine);
+ AddEntry("DrawPage", Context::DrawPage);
+ AddEntry("DrawText", Context::DrawText);
+ AddEntry("EditCell", Context::EditCell);
+ AddEntry("ErrorBar", Context::ErrorBar);
+ AddEntry("Form", Context::Form);
+ AddEntry("Frame", Context::Frame);
+ AddEntry("Graphic", Context::Graphic);
+ AddEntry("Grid", Context::Grid);
+ AddEntry("HandoutPage", Context::HandoutPage);
+ AddEntry("MasterPage", Context::MasterPage);
+ AddEntry("Media", Context::Media);
+ AddEntry("MultiObject", Context::MultiObject);
+ AddEntry("NotesPage", Context::NotesPage);
+ AddEntry("OLE", Context::OLE);
+ AddEntry("OutlineText", Context::OutlineText);
+ AddEntry("Pivot", Context::Pivot);
+ AddEntry("Series", Context::Series);
+ AddEntry("SlidesorterPage", Context::SlidesorterPage);
+ AddEntry("Table", Context::Table);
+ AddEntry("Text", Context::Text);
+ AddEntry("TextObject", Context::TextObject);
+ AddEntry("Trendline", Context::Trendline);
+
}
EnumContext::Context EnumContext::GetContextEnum (const ::rtl::OUString& rsContextName)
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index 720153d5c7d2..a409bdc6e126 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -1102,59 +1102,60 @@ void Dialog::StartExecuteModal( const Link<Dialog&,void>& rEndDialogHdl )
void Dialog::EndDialog( long nResult )
{
- if ( mbInExecute )
- {
- SetModalInputMode(false);
+ if ( !mbInExecute )
+ return;
- // remove dialog from the list of dialogs which are being executed
- ImplSVData* pSVData = ImplGetSVData();
- Dialog* pExeDlg = pSVData->maWinData.mpLastExecuteDlg;
- while ( pExeDlg )
+ SetModalInputMode(false);
+
+ // remove dialog from the list of dialogs which are being executed
+ ImplSVData* pSVData = ImplGetSVData();
+ Dialog* pExeDlg = pSVData->maWinData.mpLastExecuteDlg;
+ while ( pExeDlg )
+ {
+ if ( pExeDlg == this )
{
- if ( pExeDlg == this )
- {
- pSVData->maWinData.mpLastExecuteDlg = mpPrevExecuteDlg;
- break;
- }
- pExeDlg = pExeDlg->mpPrevExecuteDlg;
+ pSVData->maWinData.mpLastExecuteDlg = mpPrevExecuteDlg;
+ break;
}
- // set focus to previous modal dialogue if it is modal for
- // the same frame parent (or NULL)
- if( mpPrevExecuteDlg )
+ pExeDlg = pExeDlg->mpPrevExecuteDlg;
+ }
+ // set focus to previous modal dialogue if it is modal for
+ // the same frame parent (or NULL)
+ if( mpPrevExecuteDlg )
+ {
+ vcl::Window* pFrameParent = ImplGetFrameWindow()->ImplGetParent();
+ vcl::Window* pPrevFrameParent = mpPrevExecuteDlg->ImplGetFrameWindow()->ImplGetParent();
+ if( ( !pFrameParent && !pPrevFrameParent ) ||
+ ( pFrameParent && pPrevFrameParent && pFrameParent->ImplGetFrame() == pPrevFrameParent->ImplGetFrame() )
+ )
{
- vcl::Window* pFrameParent = ImplGetFrameWindow()->ImplGetParent();
- vcl::Window* pPrevFrameParent = mpPrevExecuteDlg->ImplGetFrameWindow()->ImplGetParent();
- if( ( !pFrameParent && !pPrevFrameParent ) ||
- ( pFrameParent && pPrevFrameParent && pFrameParent->ImplGetFrame() == pPrevFrameParent->ImplGetFrame() )
- )
- {
- mpPrevExecuteDlg->GrabFocus();
- }
+ mpPrevExecuteDlg->GrabFocus();
}
- mpPrevExecuteDlg = nullptr;
+ }
+ mpPrevExecuteDlg = nullptr;
- Hide();
- if ( GetParent() )
- {
- NotifyEvent aNEvt( MouseNotifyEvent::ENDEXECUTEDIALOG, this );
- GetParent()->CompatNotify( aNEvt );
- }
+ Hide();
+ if ( GetParent() )
+ {
+ NotifyEvent aNEvt( MouseNotifyEvent::ENDEXECUTEDIALOG, this );
+ GetParent()->CompatNotify( aNEvt );
+ }
- mpDialogImpl->mnResult = nResult;
+ mpDialogImpl->mnResult = nResult;
- if ( mpDialogImpl->mbStartedModal )
+ if ( mpDialogImpl->mbStartedModal )
+ {
+ ImplEndExecuteModal();
+ if (mpDialogImpl->maEndDialogHdl.IsSet())
{
- ImplEndExecuteModal();
- if (mpDialogImpl->maEndDialogHdl.IsSet())
- {
- mpDialogImpl->maEndDialogHdl.Call( *this );
- mpDialogImpl->maEndDialogHdl = Link<Dialog&,void>();
- }
- mpDialogImpl->mbStartedModal = false;
- mpDialogImpl->mnResult = -1;
+ mpDialogImpl->maEndDialogHdl.Call( *this );
+ mpDialogImpl->maEndDialogHdl = Link<Dialog&,void>();
}
- mbInExecute = false;
+ mpDialogImpl->mbStartedModal = false;
+ mpDialogImpl->mnResult = -1;
}
+ mbInExecute = false;
+
}
long Dialog::GetResult() const
diff --git a/vcl/source/window/menubarwindow.cxx b/vcl/source/window/menubarwindow.cxx
index 647eac636494..6486ffb86a9c 100644
--- a/vcl/source/window/menubarwindow.cxx
+++ b/vcl/source/window/menubarwindow.cxx
@@ -87,26 +87,27 @@ void DecoToolBox::SetImages( long nMaxHeight, bool bForce )
if( nMaxHeight < getMinSize().Height() )
nMaxHeight = getMinSize().Height();
- if( (lastSize != nMaxHeight - border) || bForce )
- {
- lastSize = nMaxHeight - border;
+ if( (lastSize == nMaxHeight - border) && !bForce )
+ return;
- Color aEraseColor( 255, 255, 255, 255 );
- BitmapEx aBmpExDst( maImage.GetBitmapEx() );
- BitmapEx aBmpExSrc( aBmpExDst );
+ lastSize = nMaxHeight - border;
- aEraseColor.SetTransparency( 255 );
- aBmpExDst.Erase( aEraseColor );
- aBmpExDst.SetSizePixel( Size( lastSize, lastSize ) );
+ Color aEraseColor( 255, 255, 255, 255 );
+ BitmapEx aBmpExDst( maImage.GetBitmapEx() );
+ BitmapEx aBmpExSrc( aBmpExDst );
- tools::Rectangle aSrcRect( Point(0,0), maImage.GetSizePixel() );
- tools::Rectangle aDestRect( Point((lastSize - maImage.GetSizePixel().Width())/2,
- (lastSize - maImage.GetSizePixel().Height())/2 ),
- maImage.GetSizePixel() );
+ aEraseColor.SetTransparency( 255 );
+ aBmpExDst.Erase( aEraseColor );
+ aBmpExDst.SetSizePixel( Size( lastSize, lastSize ) );
+
+ tools::Rectangle aSrcRect( Point(0,0), maImage.GetSizePixel() );
+ tools::Rectangle aDestRect( Point((lastSize - maImage.GetSizePixel().Width())/2,
+ (lastSize - maImage.GetSizePixel().Height())/2 ),
+ maImage.GetSizePixel() );
+
+ aBmpExDst.CopyPixel( aDestRect, aSrcRect, &aBmpExSrc );
+ SetItemImage( IID_DOCUMENTCLOSE, Image( aBmpExDst ) );
- aBmpExDst.CopyPixel( aDestRect, aSrcRect, &aBmpExSrc );
- SetItemImage( IID_DOCUMENTCLOSE, Image( aBmpExDst ) );
- }
}
MenuBarWindow::MenuBarWindow( vcl::Window* pParent ) :
diff --git a/vcl/source/window/menufloatingwindow.cxx b/vcl/source/window/menufloatingwindow.cxx
index 0ec130ffe654..601434cbb8c7 100644
--- a/vcl/source/window/menufloatingwindow.cxx
+++ b/vcl/source/window/menufloatingwindow.cxx
@@ -64,51 +64,52 @@ MenuFloatingWindow::MenuFloatingWindow( Menu* pMen, vcl::Window* pParent, WinBit
void MenuFloatingWindow::doShutdown()
{
- if( pMenu )
+ if( !pMenu )
+ return;
+
+ // #105373# notify toolkit that highlight was removed
+ // otherwise the entry will not be read when the menu is opened again
+ if( nHighlightedItem != ITEMPOS_INVALID )
+ pMenu->ImplCallEventListeners( VclEventId::MenuDehighlight, nHighlightedItem );
+ if (!bKeyInput && pMenu && pMenu->pStartedFrom && !pMenu->pStartedFrom->IsMenuBar())
{
- // #105373# notify toolkit that highlight was removed
- // otherwise the entry will not be read when the menu is opened again
- if( nHighlightedItem != ITEMPOS_INVALID )
- pMenu->ImplCallEventListeners( VclEventId::MenuDehighlight, nHighlightedItem );
- if (!bKeyInput && pMenu && pMenu->pStartedFrom && !pMenu->pStartedFrom->IsMenuBar())
+ // #102461# remove highlight in parent
+ size_t i, nCount = pMenu->pStartedFrom->pItemList->size();
+ for(i = 0; i < nCount; i++)
{
- // #102461# remove highlight in parent
- size_t i, nCount = pMenu->pStartedFrom->pItemList->size();
- for(i = 0; i < nCount; i++)
- {
- MenuItemData* pData = pMenu->pStartedFrom->pItemList->GetDataFromPos( i );
- if( pData && ( pData->pSubMenu == pMenu ) )
- break;
- }
- if( i < nCount )
- {
- MenuFloatingWindow* pPWin = static_cast<MenuFloatingWindow*>(pMenu->pStartedFrom->ImplGetWindow());
- if (pPWin)
- pPWin->InvalidateItem(i);
- }
+ MenuItemData* pData = pMenu->pStartedFrom->pItemList->GetDataFromPos( i );
+ if( pData && ( pData->pSubMenu == pMenu ) )
+ break;
}
-
- // free the reference to the accessible component
- SetAccessible( css::uno::Reference< css::accessibility::XAccessible >() );
-
- aHighlightChangedTimer.Stop();
-
- // #95056# invalidate screen area covered by system window
- // so this can be taken into account if the commandhandler performs a scroll operation
- if( GetParent() )
+ if( i < nCount )
{
- tools::Rectangle aInvRect( GetWindowExtentsRelative( GetParent() ) );
- GetParent()->Invalidate( aInvRect );
+ MenuFloatingWindow* pPWin = static_cast<MenuFloatingWindow*>(pMenu->pStartedFrom->ImplGetWindow());
+ if (pPWin)
+ pPWin->InvalidateItem(i);
}
- pMenu = nullptr;
- RemoveEventListener( LINK( this, MenuFloatingWindow, ShowHideListener ) );
+ }
- aScrollTimer.Stop();
- aSubmenuCloseTimer.Stop();
- aSubmenuCloseTimer.Stop();
- aHighlightChangedTimer.Stop();
- aHighlightChangedTimer.Stop();
+ // free the reference to the accessible component
+ SetAccessible( css::uno::Reference< css::accessibility::XAccessible >() );
+
+ aHighlightChangedTimer.Stop();
+
+ // #95056# invalidate screen area covered by system window
+ // so this can be taken into account if the commandhandler performs a scroll operation
+ if( GetParent() )
+ {
+ tools::Rectangle aInvRect( GetWindowExtentsRelative( GetParent() ) );
+ GetParent()->Invalidate( aInvRect );
}
+ pMenu = nullptr;
+ RemoveEventListener( LINK( this, MenuFloatingWindow, ShowHideListener ) );
+
+ aScrollTimer.Stop();
+ aSubmenuCloseTimer.Stop();
+ aSubmenuCloseTimer.Stop();
+ aHighlightChangedTimer.Stop();
+ aHighlightChangedTimer.Stop();
+
}
MenuFloatingWindow::~MenuFloatingWindow()
diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx
index 311018a52366..44b520dfe931 100644
--- a/vcl/source/window/mouse.cxx
+++ b/vcl/source/window/mouse.cxx
@@ -275,118 +275,119 @@ void Window::ImplGrabFocus( GetFocusFlags nFlags )
pParent = pParent->mpWindowImpl->mpParent;
}
- if ( ( pSVData->maWinData.mpFocusWin.get() != this &&
- !mpWindowImpl->mbInDispose ) ||
- ( bAsyncFocusWaiting && !bHasFocus && !bMustNotGrabFocus ) )
- {
- // EndExtTextInput if it is not the same window
- if ( pSVData->maWinData.mpExtTextInputWin &&
- (pSVData->maWinData.mpExtTextInputWin.get() != this) )
- pSVData->maWinData.mpExtTextInputWin->EndExtTextInput();
+ if ( !(( pSVData->maWinData.mpFocusWin.get() != this &&
+ !mpWindowImpl->mbInDispose ) ||
+ ( bAsyncFocusWaiting && !bHasFocus && !bMustNotGrabFocus )) )
+ return;
+
+ // EndExtTextInput if it is not the same window
+ if ( pSVData->maWinData.mpExtTextInputWin &&
+ (pSVData->maWinData.mpExtTextInputWin.get() != this) )
+ pSVData->maWinData.mpExtTextInputWin->EndExtTextInput();
- // mark this windows as the last FocusWindow
- vcl::Window* pOverlapWindow = ImplGetFirstOverlapWindow();
- pOverlapWindow->mpWindowImpl->mpLastFocusWindow = this;
- mpWindowImpl->mpFrameData->mpFocusWin = this;
+ // mark this windows as the last FocusWindow
+ vcl::Window* pOverlapWindow = ImplGetFirstOverlapWindow();
+ pOverlapWindow->mpWindowImpl->mpLastFocusWindow = this;
+ mpWindowImpl->mpFrameData->mpFocusWin = this;
- if( !bHasFocus )
+ if( !bHasFocus )
+ {
+ // menu windows never get the system focus
+ // the application will keep the focus
+ if( bMustNotGrabFocus )
+ return;
+ else
{
- // menu windows never get the system focus
- // the application will keep the focus
- if( bMustNotGrabFocus )
- return;
- else
- {
- // here we already switch focus as ToTop()
- // should not give focus to another window
- mpWindowImpl->mpFrame->ToTop( SalFrameToTop::GrabFocus | SalFrameToTop::GrabFocusOnly );
- return;
- }
+ // here we already switch focus as ToTop()
+ // should not give focus to another window
+ mpWindowImpl->mpFrame->ToTop( SalFrameToTop::GrabFocus | SalFrameToTop::GrabFocusOnly );
+ return;
}
+ }
- VclPtr<vcl::Window> pOldFocusWindow = pSVData->maWinData.mpFocusWin;
+ VclPtr<vcl::Window> pOldFocusWindow = pSVData->maWinData.mpFocusWin;
- pSVData->maWinData.mpFocusWin = this;
+ pSVData->maWinData.mpFocusWin = this;
- if ( pOldFocusWindow )
- {
- // Cursor hidden
- if ( pOldFocusWindow->mpWindowImpl->mpCursor )
- pOldFocusWindow->mpWindowImpl->mpCursor->ImplHide();
- }
+ if ( pOldFocusWindow )
+ {
+ // Cursor hidden
+ if ( pOldFocusWindow->mpWindowImpl->mpCursor )
+ pOldFocusWindow->mpWindowImpl->mpCursor->ImplHide();
+ }
- // !!!!! due to old SV-Office Activate/Deactivate handling
- // !!!!! first as before
- if ( pOldFocusWindow )
- {
- // remember Focus
- vcl::Window* pOldOverlapWindow = pOldFocusWindow->ImplGetFirstOverlapWindow();
- vcl::Window* pNewOverlapWindow = ImplGetFirstOverlapWindow();
- if ( pOldOverlapWindow != pNewOverlapWindow )
- ImplCallFocusChangeActivate( pNewOverlapWindow, pOldOverlapWindow );
- }
- else
+ // !!!!! due to old SV-Office Activate/Deactivate handling
+ // !!!!! first as before
+ if ( pOldFocusWindow )
+ {
+ // remember Focus
+ vcl::Window* pOldOverlapWindow = pOldFocusWindow->ImplGetFirstOverlapWindow();
+ vcl::Window* pNewOverlapWindow = ImplGetFirstOverlapWindow();
+ if ( pOldOverlapWindow != pNewOverlapWindow )
+ ImplCallFocusChangeActivate( pNewOverlapWindow, pOldOverlapWindow );
+ }
+ else
+ {
+ vcl::Window* pNewOverlapWindow = ImplGetFirstOverlapWindow();
+ vcl::Window* pNewRealWindow = pNewOverlapWindow->ImplGetWindow();
+ pNewOverlapWindow->mpWindowImpl->mbActive = true;
+ pNewOverlapWindow->Activate();
+ if ( pNewRealWindow != pNewOverlapWindow )
{
- vcl::Window* pNewOverlapWindow = ImplGetFirstOverlapWindow();
- vcl::Window* pNewRealWindow = pNewOverlapWindow->ImplGetWindow();
- pNewOverlapWindow->mpWindowImpl->mbActive = true;
- pNewOverlapWindow->Activate();
- if ( pNewRealWindow != pNewOverlapWindow )
- {
- pNewRealWindow->mpWindowImpl->mbActive = true;
- pNewRealWindow->Activate();
- }
+ pNewRealWindow->mpWindowImpl->mbActive = true;
+ pNewRealWindow->Activate();
}
+ }
+
+ // call Get- and LoseFocus
+ if ( pOldFocusWindow && ! pOldFocusWindow->IsDisposed() )
+ {
+ if ( pOldFocusWindow->IsTracking() &&
+ (pSVData->maWinData.mnTrackFlags & StartTrackingFlags::FocusCancel) )
+ pOldFocusWindow->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Focus );
+ NotifyEvent aNEvt( MouseNotifyEvent::LOSEFOCUS, pOldFocusWindow );
+ if ( !ImplCallPreNotify( aNEvt ) )
+ pOldFocusWindow->CompatLoseFocus();
+ pOldFocusWindow->ImplCallDeactivateListeners( this );
+ }
- // call Get- and LoseFocus
- if ( pOldFocusWindow && ! pOldFocusWindow->IsDisposed() )
+ if ( pSVData->maWinData.mpFocusWin.get() == this )
+ {
+ if ( mpWindowImpl->mpSysObj )
{
- if ( pOldFocusWindow->IsTracking() &&
- (pSVData->maWinData.mnTrackFlags & StartTrackingFlags::FocusCancel) )
- pOldFocusWindow->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Focus );
- NotifyEvent aNEvt( MouseNotifyEvent::LOSEFOCUS, pOldFocusWindow );
- if ( !ImplCallPreNotify( aNEvt ) )
- pOldFocusWindow->CompatLoseFocus();
- pOldFocusWindow->ImplCallDeactivateListeners( this );
+ mpWindowImpl->mpFrameData->mpFocusWin = this;
+ if ( !mpWindowImpl->mpFrameData->mbInSysObjFocusHdl )
+ mpWindowImpl->mpSysObj->GrabFocus();
}
if ( pSVData->maWinData.mpFocusWin.get() == this )
{
- if ( mpWindowImpl->mpSysObj )
+ if ( mpWindowImpl->mpCursor )
+ mpWindowImpl->mpCursor->ImplShow();
+ mpWindowImpl->mbInFocusHdl = true;
+ mpWindowImpl->mnGetFocusFlags = nFlags;
+ // if we're changing focus due to closing a popup floating window
+ // notify the new focus window so it can restore the inner focus
+ // eg, toolboxes can select their recent active item
+ if( pOldFocusWindow &&
+ ! pOldFocusWindow->IsDisposed() &&
+ ( pOldFocusWindow->GetDialogControlFlags() & DialogControlFlags::FloatWinPopupModeEndCancel ) )
+ mpWindowImpl->mnGetFocusFlags |= GetFocusFlags::FloatWinPopupModeEndCancel;
+ NotifyEvent aNEvt( MouseNotifyEvent::GETFOCUS, this );
+ if ( !ImplCallPreNotify( aNEvt ) && !xWindow->IsDisposed() )
+ CompatGetFocus();
+ if( !xWindow->IsDisposed() )
+ ImplCallActivateListeners( (pOldFocusWindow && ! pOldFocusWindow->IsDisposed()) ? pOldFocusWindow : nullptr );
+ if( !xWindow->IsDisposed() )
{
- mpWindowImpl->mpFrameData->mpFocusWin = this;
- if ( !mpWindowImpl->mpFrameData->mbInSysObjFocusHdl )
- mpWindowImpl->mpSysObj->GrabFocus();
- }
-
- if ( pSVData->maWinData.mpFocusWin.get() == this )
- {
- if ( mpWindowImpl->mpCursor )
- mpWindowImpl->mpCursor->ImplShow();
- mpWindowImpl->mbInFocusHdl = true;
- mpWindowImpl->mnGetFocusFlags = nFlags;
- // if we're changing focus due to closing a popup floating window
- // notify the new focus window so it can restore the inner focus
- // eg, toolboxes can select their recent active item
- if( pOldFocusWindow &&
- ! pOldFocusWindow->IsDisposed() &&
- ( pOldFocusWindow->GetDialogControlFlags() & DialogControlFlags::FloatWinPopupModeEndCancel ) )
- mpWindowImpl->mnGetFocusFlags |= GetFocusFlags::FloatWinPopupModeEndCancel;
- NotifyEvent aNEvt( MouseNotifyEvent::GETFOCUS, this );
- if ( !ImplCallPreNotify( aNEvt ) && !xWindow->IsDisposed() )
- CompatGetFocus();
- if( !xWindow->IsDisposed() )
- ImplCallActivateListeners( (pOldFocusWindow && ! pOldFocusWindow->IsDisposed()) ? pOldFocusWindow : nullptr );
- if( !xWindow->IsDisposed() )
- {
- mpWindowImpl->mnGetFocusFlags = GetFocusFlags::NONE;
- mpWindowImpl->mbInFocusHdl = false;
- }
+ mpWindowImpl->mnGetFocusFlags = GetFocusFlags::NONE;
+ mpWindowImpl->mbInFocusHdl = false;
}
}
-
- ImplNewInputContext();
}
+
+ ImplNewInputContext();
+
}
void Window::ImplGrabFocusToDocument( GetFocusFlags nFlags )
diff --git a/vcl/source/window/splitwin.cxx b/vcl/source/window/splitwin.cxx
index 1f05f3fc5be6..0ce98b7e2999 100644
--- a/vcl/source/window/splitwin.cxx
+++ b/vcl/source/window/splitwin.cxx
@@ -1794,185 +1794,186 @@ void SplitWindow::ImplStartSplit( const MouseEvent& rMEvt )
Point aMousePosPixel = rMEvt.GetPosPixel();
mnSplitTest = ImplTestSplit( this, aMousePosPixel, mnMouseOff, &mpSplitSet, mnSplitPos );
- if ( mnSplitTest && !(mnSplitTest & SPLIT_NOSPLIT) )
+ if ( !mnSplitTest || (mnSplitTest & SPLIT_NOSPLIT) )
+ return;
+
+ ImplSplitItem* pSplitItem;
+ long nCurMaxSize;
+ bool bPropSmaller;
+
+ mnMouseModifier = rMEvt.GetModifier();
+ bPropSmaller = (mnMouseModifier & KEY_SHIFT) && (static_cast<sal_uInt16>(mnSplitPos+1) < mpSplitSet->mpItems.size());
+
+ // here we can set the maximum size
+ StartSplit();
+
+ if ( mnMaxSize )
+ nCurMaxSize = mnMaxSize;
+ else
{
- ImplSplitItem* pSplitItem;
- long nCurMaxSize;
- bool bPropSmaller;
+ Size aSize = GetParent()->GetOutputSizePixel();
+ if ( mbHorz )
+ nCurMaxSize = aSize.Height();
+ else
+ nCurMaxSize = aSize.Width();
+ }
- mnMouseModifier = rMEvt.GetModifier();
- bPropSmaller = (mnMouseModifier & KEY_SHIFT) && (static_cast<sal_uInt16>(mnSplitPos+1) < mpSplitSet->mpItems.size());
+ if ( !mpSplitSet->mpItems.empty() )
+ {
+ bool bDown = true;
+ if ( (mpSplitSet == mpMainSet) && mbBottomRight )
+ bDown = false;
- // here we can set the maximum size
- StartSplit();
+ pSplitItem = mpSplitSet->mpItems[mnSplitPos];
+ maDragRect.Left() = pSplitItem->mnLeft;
+ maDragRect.Top() = pSplitItem->mnTop;
+ maDragRect.Right() = pSplitItem->mnLeft+pSplitItem->mnWidth-1;
+ maDragRect.Bottom() = pSplitItem->mnTop+pSplitItem->mnHeight-1;
- if ( mnMaxSize )
- nCurMaxSize = mnMaxSize;
+ if ( mnSplitTest & SPLIT_HORZ )
+ {
+ if ( bDown )
+ maDragRect.Right() += mpSplitSet->mnSplitSize;
+ else
+ maDragRect.Left() -= mpSplitSet->mnSplitSize;
+ }
else
{
- Size aSize = GetParent()->GetOutputSizePixel();
- if ( mbHorz )
- nCurMaxSize = aSize.Height();
+ if ( bDown )
+ maDragRect.Bottom() += mpSplitSet->mnSplitSize;
else
- nCurMaxSize = aSize.Width();
+ maDragRect.Top() -= mpSplitSet->mnSplitSize;
}
- if ( !mpSplitSet->mpItems.empty() )
+ if ( mnSplitPos )
{
- bool bDown = true;
- if ( (mpSplitSet == mpMainSet) && mbBottomRight )
- bDown = false;
-
- pSplitItem = mpSplitSet->mpItems[mnSplitPos];
- maDragRect.Left() = pSplitItem->mnLeft;
- maDragRect.Top() = pSplitItem->mnTop;
- maDragRect.Right() = pSplitItem->mnLeft+pSplitItem->mnWidth-1;
- maDragRect.Bottom() = pSplitItem->mnTop+pSplitItem->mnHeight-1;
-
- if ( mnSplitTest & SPLIT_HORZ )
- {
- if ( bDown )
- maDragRect.Right() += mpSplitSet->mnSplitSize;
- else
- maDragRect.Left() -= mpSplitSet->mnSplitSize;
- }
- else
+ long nTemp = mnSplitPos;
+ while ( nTemp )
{
- if ( bDown )
- maDragRect.Bottom() += mpSplitSet->mnSplitSize;
+ pSplitItem = mpSplitSet->mpItems[nTemp-1];
+ if ( pSplitItem->mbFixed )
+ break;
else
- maDragRect.Top() -= mpSplitSet->mnSplitSize;
- }
-
- if ( mnSplitPos )
- {
- long nTemp = mnSplitPos;
- while ( nTemp )
{
- pSplitItem = mpSplitSet->mpItems[nTemp-1];
- if ( pSplitItem->mbFixed )
- break;
+ if ( mnSplitTest & SPLIT_HORZ )
+ {
+ if ( bDown )
+ maDragRect.Left() -= pSplitItem->mnPixSize;
+ else
+ maDragRect.Right() += pSplitItem->mnPixSize;
+ }
else
{
- if ( mnSplitTest & SPLIT_HORZ )
- {
- if ( bDown )
- maDragRect.Left() -= pSplitItem->mnPixSize;
- else
- maDragRect.Right() += pSplitItem->mnPixSize;
- }
+ if ( bDown )
+ maDragRect.Top() -= pSplitItem->mnPixSize;
else
- {
- if ( bDown )
- maDragRect.Top() -= pSplitItem->mnPixSize;
- else
- maDragRect.Bottom() += pSplitItem->mnPixSize;
- }
+ maDragRect.Bottom() += pSplitItem->mnPixSize;
}
- nTemp--;
}
+ nTemp--;
}
+ }
- if ( (mpSplitSet == mpMainSet) && (mnWinStyle & WB_SIZEABLE) && !bPropSmaller )
+ if ( (mpSplitSet == mpMainSet) && (mnWinStyle & WB_SIZEABLE) && !bPropSmaller )
+ {
+ if ( bDown )
{
- if ( bDown )
- {
- if ( mbHorz )
- maDragRect.Bottom() += nCurMaxSize-mnDY-mnTopBorder;
- else
- maDragRect.Right() += nCurMaxSize-mnDX-mnLeftBorder;
- }
+ if ( mbHorz )
+ maDragRect.Bottom() += nCurMaxSize-mnDY-mnTopBorder;
else
- {
- if ( mbHorz )
- maDragRect.Top() -= nCurMaxSize-mnDY-mnBottomBorder;
- else
- maDragRect.Left() -= nCurMaxSize-mnDX-mnRightBorder;
- }
+ maDragRect.Right() += nCurMaxSize-mnDX-mnLeftBorder;
}
else
{
- std::vector<ImplSplitItem *>::size_type nTemp = mnSplitPos+1;
- while ( nTemp < mpSplitSet->mpItems.size() )
+ if ( mbHorz )
+ maDragRect.Top() -= nCurMaxSize-mnDY-mnBottomBorder;
+ else
+ maDragRect.Left() -= nCurMaxSize-mnDX-mnRightBorder;
+ }
+ }
+ else
+ {
+ std::vector<ImplSplitItem *>::size_type nTemp = mnSplitPos+1;
+ while ( nTemp < mpSplitSet->mpItems.size() )
+ {
+ pSplitItem = mpSplitSet->mpItems[nTemp];
+ if ( pSplitItem->mbFixed )
+ break;
+ else
{
- pSplitItem = mpSplitSet->mpItems[nTemp];
- if ( pSplitItem->mbFixed )
- break;
+ if ( mnSplitTest & SPLIT_HORZ )
+ {
+ if ( bDown )
+ maDragRect.Right() += pSplitItem->mnPixSize;
+ else
+ maDragRect.Left() -= pSplitItem->mnPixSize;
+ }
else
{
- if ( mnSplitTest & SPLIT_HORZ )
- {
- if ( bDown )
- maDragRect.Right() += pSplitItem->mnPixSize;
- else
- maDragRect.Left() -= pSplitItem->mnPixSize;
- }
+ if ( bDown )
+ maDragRect.Bottom() += pSplitItem->mnPixSize;
else
- {
- if ( bDown )
- maDragRect.Bottom() += pSplitItem->mnPixSize;
- else
- maDragRect.Top() -= pSplitItem->mnPixSize;
- }
+ maDragRect.Top() -= pSplitItem->mnPixSize;
}
- nTemp++;
}
+ nTemp++;
}
}
+ }
+ else
+ {
+ maDragRect.Left() = mnLeftBorder;
+ maDragRect.Top() = mnTopBorder;
+ maDragRect.Right() = mnDX-mnRightBorder-1;
+ maDragRect.Bottom() = mnDY-mnBottomBorder-1;
+ if ( mbHorz )
+ {
+ if ( mbBottomRight )
+ maDragRect.Top() -= nCurMaxSize-mnDY-mnBottomBorder;
+ else
+ maDragRect.Bottom() += nCurMaxSize-mnDY-mnTopBorder;
+ }
else
{
- maDragRect.Left() = mnLeftBorder;
- maDragRect.Top() = mnTopBorder;
- maDragRect.Right() = mnDX-mnRightBorder-1;
- maDragRect.Bottom() = mnDY-mnBottomBorder-1;
- if ( mbHorz )
- {
- if ( mbBottomRight )
- maDragRect.Top() -= nCurMaxSize-mnDY-mnBottomBorder;
- else
- maDragRect.Bottom() += nCurMaxSize-mnDY-mnTopBorder;
- }
+ if ( mbBottomRight )
+ maDragRect.Left() -= nCurMaxSize-mnDX-mnRightBorder;
else
- {
- if ( mbBottomRight )
- maDragRect.Left() -= nCurMaxSize-mnDX-mnRightBorder;
- else
- maDragRect.Right() += nCurMaxSize-mnDX-mnLeftBorder;
- }
+ maDragRect.Right() += nCurMaxSize-mnDX-mnLeftBorder;
}
+ }
- StartTracking();
+ StartTracking();
- mbDragFull = bool(GetSettings().GetStyleSettings().GetDragFullOptions() & DragFullOptions::Split);
+ mbDragFull = bool(GetSettings().GetStyleSettings().GetDragFullOptions() & DragFullOptions::Split);
- ImplSplitMousePos( aMousePosPixel );
+ ImplSplitMousePos( aMousePosPixel );
- if (!mbDragFull)
- {
- ImplDrawSplitTracking(aMousePosPixel);
- }
- else
+ if (!mbDragFull)
+ {
+ ImplDrawSplitTracking(aMousePosPixel);
+ }
+ else
+ {
+ std::vector< ImplSplitItem* >& rItems = mpSplitSet->mpItems;
+ sal_uInt16 nItems = mpSplitSet->mpItems.size();
+ mpLastSizes = new long[nItems*2];
+ for ( sal_uInt16 i = 0; i < nItems; i++ )
{
- std::vector< ImplSplitItem* >& rItems = mpSplitSet->mpItems;
- sal_uInt16 nItems = mpSplitSet->mpItems.size();
- mpLastSizes = new long[nItems*2];
- for ( sal_uInt16 i = 0; i < nItems; i++ )
- {
- mpLastSizes[i*2] = rItems[i]->mnSize;
- mpLastSizes[i*2+1] = rItems[i]->mnPixSize;
- }
+ mpLastSizes[i*2] = rItems[i]->mnSize;
+ mpLastSizes[i*2+1] = rItems[i]->mnPixSize;
}
- mnMStartPos = mnMSplitPos;
+ }
+ mnMStartPos = mnMSplitPos;
- PointerStyle eStyle = PointerStyle::Arrow;
- if ( mnSplitTest & SPLIT_HORZ )
- eStyle = PointerStyle::HSplit;
- else if ( mnSplitTest & SPLIT_VERT )
- eStyle = PointerStyle::VSplit;
+ PointerStyle eStyle = PointerStyle::Arrow;
+ if ( mnSplitTest & SPLIT_HORZ )
+ eStyle = PointerStyle::HSplit;
+ else if ( mnSplitTest & SPLIT_VERT )
+ eStyle = PointerStyle::VSplit;
+
+ Pointer aPtr( eStyle );
+ SetPointer( aPtr );
- Pointer aPtr( eStyle );
- SetPointer( aPtr );
- }
}
void SplitWindow::StartSplit()
@@ -2041,34 +2042,35 @@ void SplitWindow::MouseButtonDown( const MouseEvent& rMEvt )
void SplitWindow::MouseMove( const MouseEvent& rMEvt )
{
- if ( !IsTracking() )
- {
- Point aPos = rMEvt.GetPosPixel();
- long nTemp;
- ImplSplitSet* pTempSplitSet;
- sal_uInt16 nTempSplitPos;
- sal_uInt16 nSplitTest = ImplTestSplit( this, aPos, nTemp, &pTempSplitSet, nTempSplitPos );
- PointerStyle eStyle = PointerStyle::Arrow;
- tools::Rectangle aFadeInRect;
- tools::Rectangle aFadeOutRect;
+ if ( IsTracking() )
+ return;
- ImplGetFadeInRect( aFadeInRect );
- ImplGetFadeOutRect( aFadeOutRect );
- if ( !aFadeInRect.IsInside( aPos ) &&
- !aFadeOutRect.IsInside( aPos ) )
+ Point aPos = rMEvt.GetPosPixel();
+ long nTemp;
+ ImplSplitSet* pTempSplitSet;
+ sal_uInt16 nTempSplitPos;
+ sal_uInt16 nSplitTest = ImplTestSplit( this, aPos, nTemp, &pTempSplitSet, nTempSplitPos );
+ PointerStyle eStyle = PointerStyle::Arrow;
+ tools::Rectangle aFadeInRect;
+ tools::Rectangle aFadeOutRect;
+
+ ImplGetFadeInRect( aFadeInRect );
+ ImplGetFadeOutRect( aFadeOutRect );
+ if ( !aFadeInRect.IsInside( aPos ) &&
+ !aFadeOutRect.IsInside( aPos ) )
+ {
+ if ( nSplitTest && !(nSplitTest & SPLIT_NOSPLIT) )
{
- if ( nSplitTest && !(nSplitTest & SPLIT_NOSPLIT) )
- {
- if ( nSplitTest & SPLIT_HORZ )
- eStyle = PointerStyle::HSplit;
- else if ( nSplitTest & SPLIT_VERT )
- eStyle = PointerStyle::VSplit;
- }
+ if ( nSplitTest & SPLIT_HORZ )
+ eStyle = PointerStyle::HSplit;
+ else if ( nSplitTest & SPLIT_VERT )
+ eStyle = PointerStyle::VSplit;
}
-
- Pointer aPtr( eStyle );
- SetPointer( aPtr );
}
+
+ Pointer aPtr( eStyle );
+ SetPointer( aPtr );
+
}
void SplitWindow::Tracking( const TrackingEvent& rTEvt )
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index 8541bed438dd..71172415fc49 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -2963,35 +2963,36 @@ void ToolBox::ImplDrawItem(vcl::RenderContext& rRenderContext, ImplToolItems::si
void ToolBox::ImplDrawFloatwinBorder(vcl::RenderContext& rRenderContext, ImplToolItem const * pItem)
{
- if ( !pItem->maRect.IsEmpty() )
- {
- tools::Rectangle aRect( mpFloatWin->ImplGetItemEdgeClipRect() );
- aRect.SetPos( AbsoluteScreenToOutputPixel( aRect.TopLeft() ) );
- rRenderContext.SetLineColor(rRenderContext.GetSettings().GetStyleSettings().GetShadowColor());
- Point p1, p2;
-
- p1 = pItem->maRect.TopLeft();
- p1.X()++;
- p2 = pItem->maRect.TopRight();
- p2.X()--;
- rRenderContext.DrawLine( p1, p2);
- p1 = pItem->maRect.BottomLeft();
- p1.X()++;
- p2 = pItem->maRect.BottomRight();
- p2.X()--;
- rRenderContext.DrawLine( p1, p2);
-
- p1 = pItem->maRect.TopLeft();
- p1.Y()++;
- p2 = pItem->maRect.BottomLeft();
- p2.Y()--;
- rRenderContext.DrawLine( p1, p2);
- p1 = pItem->maRect.TopRight();
- p1.Y()++;
- p2 = pItem->maRect.BottomRight();
- p2.Y()--;
- rRenderContext.DrawLine( p1, p2);
- }
+ if ( pItem->maRect.IsEmpty() )
+ return;
+
+ tools::Rectangle aRect( mpFloatWin->ImplGetItemEdgeClipRect() );
+ aRect.SetPos( AbsoluteScreenToOutputPixel( aRect.TopLeft() ) );
+ rRenderContext.SetLineColor(rRenderContext.GetSettings().GetStyleSettings().GetShadowColor());
+ Point p1, p2;
+
+ p1 = pItem->maRect.TopLeft();
+ p1.X()++;
+ p2 = pItem->maRect.TopRight();
+ p2.X()--;
+ rRenderContext.DrawLine( p1, p2);
+ p1 = pItem->maRect.BottomLeft();
+ p1.X()++;
+ p2 = pItem->maRect.BottomRight();
+ p2.X()--;
+ rRenderContext.DrawLine( p1, p2);
+
+ p1 = pItem->maRect.TopLeft();
+ p1.Y()++;
+ p2 = pItem->maRect.BottomLeft();
+ p2.Y()--;
+ rRenderContext.DrawLine( p1, p2);
+ p1 = pItem->maRect.TopRight();
+ p1.Y()++;
+ p2 = pItem->maRect.BottomRight();
+ p2.Y()--;
+ rRenderContext.DrawLine( p1, p2);
+
}
void ToolBox::ImplFloatControl( bool bStart, FloatingWindow* pFloatWindow )
diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx
index c931c47c5553..c636b4023be0 100644
--- a/vcl/source/window/toolbox2.cxx
+++ b/vcl/source/window/toolbox2.cxx
@@ -1663,56 +1663,57 @@ IMPL_LINK( ToolBox, ImplCustomMenuListener, VclMenuEvent&, rEvent, void )
IMPL_LINK_NOARG(ToolBox, ImplCallExecuteCustomMenu, void*, void)
{
mpData->mnEventId = nullptr;
- if( IsMenuEnabled() )
- {
- if( GetMenuType() & ToolBoxMenuType::Customize )
- // call button handler to allow for menu customization
- mpData->maMenuButtonHdl.Call( this );
+ if( !IsMenuEnabled() )
+ return;
+
+ if( GetMenuType() & ToolBoxMenuType::Customize )
+ // call button handler to allow for menu customization
+ mpData->maMenuButtonHdl.Call( this );
- GetMenu()->AddEventListener( LINK( this, ToolBox, ImplCustomMenuListener ) );
+ GetMenu()->AddEventListener( LINK( this, ToolBox, ImplCustomMenuListener ) );
- // make sure all disabled entries will be shown
- GetMenu()->SetMenuFlags(
- GetMenu()->GetMenuFlags() | MenuFlags::AlwaysShowDisabledEntries );
+ // make sure all disabled entries will be shown
+ GetMenu()->SetMenuFlags(
+ GetMenu()->GetMenuFlags() | MenuFlags::AlwaysShowDisabledEntries );
- // toolbox might be destroyed during execute
- bool bBorderDel = false;
+ // toolbox might be destroyed during execute
+ bool bBorderDel = false;
- VclPtr<vcl::Window> pWin = this;
- tools::Rectangle aMenuRect = mpData->maMenuRect;
- mpData->maMenuRect.SetEmpty();
- VclPtr<ImplBorderWindow> pBorderWin;
- if( aMenuRect.IsEmpty() && IsFloatingMode() )
+ VclPtr<vcl::Window> pWin = this;
+ tools::Rectangle aMenuRect = mpData->maMenuRect;
+ mpData->maMenuRect.SetEmpty();
+ VclPtr<ImplBorderWindow> pBorderWin;
+ if( aMenuRect.IsEmpty() && IsFloatingMode() )
+ {
+ // custom menu is placed in the decoration
+ pBorderWin = dynamic_cast<ImplBorderWindow*>( GetWindow( GetWindowType::Border ) );
+ if( pBorderWin && !pBorderWin->GetMenuRect().IsEmpty() )
{
- // custom menu is placed in the decoration
- pBorderWin = dynamic_cast<ImplBorderWindow*>( GetWindow( GetWindowType::Border ) );
- if( pBorderWin && !pBorderWin->GetMenuRect().IsEmpty() )
- {
- pWin = pBorderWin;
- aMenuRect = pBorderWin->GetMenuRect();
- bBorderDel = true;
- }
+ pWin = pBorderWin;
+ aMenuRect = pBorderWin->GetMenuRect();
+ bBorderDel = true;
}
+ }
- sal_uInt16 uId = GetMenu()->Execute( pWin, tools::Rectangle( ImplGetPopupPosition( aMenuRect ), Size() ),
- PopupMenuFlags::ExecuteDown | PopupMenuFlags::NoMouseUpClose );
+ sal_uInt16 uId = GetMenu()->Execute( pWin, tools::Rectangle( ImplGetPopupPosition( aMenuRect ), Size() ),
+ PopupMenuFlags::ExecuteDown | PopupMenuFlags::NoMouseUpClose );
- if ( pWin->IsDisposed() )
+ if ( pWin->IsDisposed() )
+ return;
+
+ if( GetMenu() )
+ GetMenu()->RemoveEventListener( LINK( this, ToolBox, ImplCustomMenuListener ) );
+ if( bBorderDel )
+ {
+ if( pBorderWin->IsDisposed() )
return;
+ }
- if( GetMenu() )
- GetMenu()->RemoveEventListener( LINK( this, ToolBox, ImplCustomMenuListener ) );
- if( bBorderDel )
- {
- if( pBorderWin->IsDisposed() )
- return;
- }
+ pWin->Invalidate( aMenuRect );
- pWin->Invalidate( aMenuRect );
+ if( uId )
+ GrabFocusToDocument();
- if( uId )
- GrabFocusToDocument();
- }
}
void ToolBox::ExecuteCustomMenu( const tools::Rectangle& rRect )