From 9427bb62cc89999ceee5e9fbd6a98c78db84ea8d Mon Sep 17 00:00:00 2001 From: Erwan Tulou Date: Wed, 15 Sep 2010 17:59:04 +0200 Subject: [PATCH] skins2: small optimisation Only update image and notify for those mouse events that we care about. This removes the job being done twice (once on mouse pressed and once on mouse released) --- modules/gui/skins2/controls/ctrl_tree.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/modules/gui/skins2/controls/ctrl_tree.cpp b/modules/gui/skins2/controls/ctrl_tree.cpp index 914dd529ec..508eb41ea7 100644 --- a/modules/gui/skins2/controls/ctrl_tree.cpp +++ b/modules/gui/skins2/controls/ctrl_tree.cpp @@ -512,6 +512,9 @@ void CtrlTree::handleEvent( EvtGeneric &rEvent ) it->m_selected = (*it).m_selected || select; select = nextSelect; } + // Redraw the control + makeImage(); + notifyLayout(); } else if( rEvent.getAsString().find( "mouse:left:down:ctrl" ) != string::npos ) @@ -523,6 +526,9 @@ void CtrlTree::handleEvent( EvtGeneric &rEvent ) it->m_selected = !it->m_selected; m_pLastSelected = &*it; } + // Redraw the control + makeImage(); + notifyLayout(); } else if( rEvent.getAsString().find( "mouse:left:down:shift" ) != string::npos ) @@ -551,6 +557,9 @@ void CtrlTree::handleEvent( EvtGeneric &rEvent ) it->m_selected = select; select = nextSelect; } + // Redraw the control + makeImage(); + notifyLayout(); } else if( rEvent.getAsString().find( "mouse:left:down" ) != string::npos ) @@ -585,8 +594,10 @@ void CtrlTree::handleEvent( EvtGeneric &rEvent ) } } } + // Redraw the control + makeImage(); + notifyLayout(); } - else if( rEvent.getAsString().find( "mouse:left:dblclick" ) != string::npos ) { @@ -596,10 +607,10 @@ void CtrlTree::handleEvent( EvtGeneric &rEvent ) // Execute the action associated to this item m_rTree.action( &*it ); } + // Redraw the control + makeImage(); + notifyLayout(); } - // Redraw the control - makeImage(); - notifyLayout(); } else if( rEvent.getAsString().find( "scroll" ) != string::npos ) -- 2.39.2