From 5805cafb899e0fad02653aeeca6da46659f2acc5 Mon Sep 17 00:00:00 2001 From: Cyril Deguet Date: Sun, 23 Oct 2005 17:59:52 +0000 Subject: [PATCH] * ctrl_tree.cpp: (un)folding of a playlist item is no triggered by a simple click (was a double click before) which is more natural --- modules/gui/skins2/controls/ctrl_tree.cpp | 38 ++++++++++++----------- modules/gui/skins2/vars/playtree.cpp | 2 -- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/modules/gui/skins2/controls/ctrl_tree.cpp b/modules/gui/skins2/controls/ctrl_tree.cpp index b9c9fc9890..c44c888fef 100644 --- a/modules/gui/skins2/controls/ctrl_tree.cpp +++ b/modules/gui/skins2/controls/ctrl_tree.cpp @@ -396,18 +396,27 @@ void CtrlTree::handleEvent( EvtGeneric &rEvent ) else if( rEvent.getAsString().find( "mouse:left:down" ) != string::npos ) { - // Unselect any previously selected item - for( it = m_rTree.begin(); it != m_rTree.end(); - it = m_rTree.getNextVisibleItem( it ) ) + it = findItemAtPos(yPos); + if( it->size() && xPos > (it->depth() - 1) * itemImageWidth() + && xPos < it->depth() * itemImageWidth() ) { - it->m_selected = false; + // Fold/unfold the item + it->m_expanded = !it->m_expanded; } - // Select the new item - it = findItemAtPos(yPos); - if( it != m_rTree.end() ) + else { - it->m_selected = true; - m_pLastSelected = &*it; + // Unselect any previously selected item + for( it = m_rTree.begin(); it != m_rTree.end(); + it = m_rTree.getNextVisibleItem( it ) ) + { + it->m_selected = false; + } + // Select the new item + if( it != m_rTree.end() ) + { + it->m_selected = true; + m_pLastSelected = &*it; + } } } @@ -417,15 +426,8 @@ void CtrlTree::handleEvent( EvtGeneric &rEvent ) it = findItemAtPos(yPos); if( it != m_rTree.end() ) { - if( it->size() && xPos < it->depth() * itemImageWidth() ) - { - it->m_expanded = !it->m_expanded; - } - else - { - // Execute the action associated to this item - m_rTree.action( &*it ); - } + // Execute the action associated to this item + m_rTree.action( &*it ); } } diff --git a/modules/gui/skins2/vars/playtree.cpp b/modules/gui/skins2/vars/playtree.cpp index b5dfd75bd1..4c674a9f14 100644 --- a/modules/gui/skins2/vars/playtree.cpp +++ b/modules/gui/skins2/vars/playtree.cpp @@ -88,8 +88,6 @@ void Playtree::action( VarTree *pItem ) void Playtree::onChange() { - /* FIXME : updateTree could be a nice idea so we don't have to - * start from scratch each time the playlist changes */ buildTree(); notify(); } -- 2.39.2