Kaydet (Commit) 1498c4f6 authored tarafından Michael Meeks's avatar Michael Meeks

tdf#101827 - mend busy contour dialog.

Previous impl. had an un-necessary timeout to update the screen constantly.

Change-Id: I28ba50166530d516d299b9c873cf59577043bf82
Reviewed-on: https://gerrit.libreoffice.org/29392Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMichael Meeks <michael.meeks@collabora.com>
üst b32b6c09
......@@ -52,6 +52,7 @@ class SVX_DLLPUBLIC GraphCtrl : public Control
bool bEditMode;
bool bSdrMode;
bool bAnim;
bool mbInIdleUpdate;
DECL_LINK_TYPED( UpdateHdl, Idle*, void );
......@@ -108,6 +109,7 @@ public:
void SetGraphSizeLink( const Link<GraphCtrl*,void>& rLink ) { aGraphSizeLink = rLink; }
void SetUpdateLink( const Link<GraphCtrl*,void>& rLink ) { aUpdateLink = rLink; }
void QueueIdleUpdate();
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
};
......
......@@ -102,8 +102,8 @@ void SvxContourDlg::SetSuperClass( SvxSuperContourDlg& rSuperClass )
}
tools::PolyPolygon SvxContourDlg::CreateAutoContour( const Graphic& rGraphic,
const Rectangle* pRect,
const sal_uIntPtr nFlags )
const Rectangle* pRect,
const sal_uIntPtr nFlags )
{
Bitmap aBmp;
XOutFlags nContourFlags = XOutFlags::ContourHorz;
......@@ -535,6 +535,8 @@ IMPL_LINK_TYPED( SvxSuperContourDlg, Tbx1ClickHdl, ToolBox*, pTbx, void )
m_pContourWnd->SetPipetteMode( bPipette );
}
Invalidate();
m_pContourWnd->QueueIdleUpdate();
}
IMPL_LINK_TYPED( SvxSuperContourDlg, MousePosHdl, GraphCtrl*, pWnd, void )
......@@ -589,6 +591,7 @@ IMPL_LINK_NOARG_TYPED(SvxSuperContourDlg, UpdateHdl, Idle *, void)
}
GetBindings().Invalidate( SID_CONTOUR_EXEC );
m_pContourWnd->QueueIdleUpdate();
}
IMPL_LINK_NOARG_TYPED(SvxSuperContourDlg, CreateHdl, Idle *, void)
......@@ -731,6 +734,9 @@ IMPL_LINK_TYPED( SvxSuperContourDlg, WorkplaceClickHdl, ContourWindow&, rWnd, vo
m_pTbx1->CheckItem(mnWorkSpaceId, false);
m_pTbx1->CheckItem(mnSelectId);
rWnd.SetWorkplaceMode( false );
m_pContourWnd->QueueIdleUpdate();
Invalidate();
}
IMPL_LINK_NOARG_TYPED(SvxSuperContourDlg, MiscHdl, LinkParamNone*, void)
......
......@@ -52,6 +52,7 @@ void GraphCtrlUserCall::Changed( const SdrObject& rObj, SdrUserCallType eType, c
default:
break;
}
rWin.QueueIdleUpdate();
}
GraphCtrl::GraphCtrl( vcl::Window* pParent, WinBits nStyle ) :
......@@ -124,6 +125,8 @@ void GraphCtrl::SetWinStyle( WinBits nWinBits )
if ( bSdrMode )
InitSdrModel();
QueueIdleUpdate();
}
void GraphCtrl::InitSdrModel()
......@@ -203,6 +206,7 @@ void GraphCtrl::SetGraphic( const Graphic& rGraphic, bool bNewModel )
Resize();
Invalidate();
QueueIdleUpdate();
}
void GraphCtrl::Resize()
......@@ -282,14 +286,17 @@ void GraphCtrl::Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRec
void GraphCtrl::SdrObjChanged( const SdrObject& )
{
QueueIdleUpdate();
}
void GraphCtrl::SdrObjCreated( const SdrObject& )
{
QueueIdleUpdate();
}
void GraphCtrl::MarkListHasChanged()
{
QueueIdleUpdate();
}
void GraphCtrl::KeyInput( const KeyEvent& rKEvt )
......@@ -602,6 +609,8 @@ void GraphCtrl::KeyInput( const KeyEvent& rKEvt )
Control::KeyInput( rKEvt );
else
ReleaseMouse();
QueueIdleUpdate();
}
void GraphCtrl::MouseButtonDown( const MouseEvent& rMEvt )
......@@ -641,6 +650,8 @@ void GraphCtrl::MouseButtonDown( const MouseEvent& rMEvt )
}
else
Control::MouseButtonDown( rMEvt );
QueueIdleUpdate();
}
void GraphCtrl::MouseMove(const MouseEvent& rMEvt)
......@@ -672,6 +683,8 @@ void GraphCtrl::MouseMove(const MouseEvent& rMEvt)
aMousePosLink.Call( this );
}
QueueIdleUpdate();
}
void GraphCtrl::MouseButtonUp(const MouseEvent& rMEvt)
......@@ -688,6 +701,8 @@ void GraphCtrl::MouseButtonUp(const MouseEvent& rMEvt)
}
else
Control::MouseButtonUp( rMEvt );
QueueIdleUpdate();
}
SdrObject* GraphCtrl::GetSelectedSdrObject() const
......@@ -716,6 +731,8 @@ void GraphCtrl::SetEditMode( const bool _bEditMode )
}
else
bEditMode = false;
QueueIdleUpdate();
}
void GraphCtrl::SetPolyEditMode( const sal_uInt16 _nPolyEdit )
......@@ -727,6 +744,8 @@ void GraphCtrl::SetPolyEditMode( const sal_uInt16 _nPolyEdit )
}
else
nPolyEdit = 0;
QueueIdleUpdate();
}
void GraphCtrl::SetObjKind( const SdrObjKind _eObjKind )
......@@ -740,15 +759,22 @@ void GraphCtrl::SetObjKind( const SdrObjKind _eObjKind )
}
else
eObjKind = OBJ_NONE;
QueueIdleUpdate();
}
IMPL_LINK_TYPED( GraphCtrl, UpdateHdl, Idle*, pTimer, void )
IMPL_LINK_TYPED( GraphCtrl, UpdateHdl, Idle *, , void )
{
mbInIdleUpdate = true;
aUpdateLink.Call( this );
pTimer->Start();
mbInIdleUpdate = false;
}
void GraphCtrl::QueueIdleUpdate()
{
if (!mbInIdleUpdate)
aUpdateIdle.Start();
}
css::uno::Reference< css::accessibility::XAccessible > GraphCtrl::CreateAccessible()
{
......
......@@ -756,6 +756,7 @@ IMPL_LINK_NOARG_TYPED(SvxIMapDlg, UpdateHdl, Idle *, void)
pOwnData->aUpdateTargetList.clear();
GetBindings().Invalidate( SID_IMAP_EXEC );
pIMapWnd->QueueIdleUpdate();
}
IMPL_LINK_TYPED( SvxIMapDlg, StateHdl, GraphCtrl*, pWnd, void )
......@@ -806,6 +807,8 @@ IMPL_LINK_TYPED( SvxIMapDlg, StateHdl, GraphCtrl*, pWnd, void )
m_pTbxIMapDlg1->CheckItem( mnPolyInsertId, false );
pWnd->SetPolyEditMode( 0 );
}
pIMapWnd->QueueIdleUpdate();
}
IMPL_LINK_NOARG_TYPED(SvxIMapDlg, MiscHdl, LinkParamNone*, void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment