]> git.xonotic.org Git - xonotic/netradiant.git/commitdiff
Merge commit '3ec33465b13ce35100e1557b499ffc335cd6e22c' into garux-merge
authorThomas Debesse <dev@illwieckz.net>
Mon, 25 May 2020 18:12:36 +0000 (20:12 +0200)
committerThomas Debesse <dev@illwieckz.net>
Mon, 25 May 2020 18:12:36 +0000 (20:12 +0200)
libs/scenelib.h
radiant/brush.h
radiant/patch.h
radiant/renderer.h

index c18f5bdbac20c160ae716b6904ad6272a6959a4f..d15ce8021bdd483c22d84a4dacbda5ba1852e9db 100644 (file)
@@ -740,6 +740,10 @@ bool parentSelected() const {
        }
        return m_parentSelected;
 }
+Instance* parent() const
+{
+       return m_parent;
+}
 };
 }
 
index 21e7d9ca53e530ac0e6b29f06c1fa34a14d456af..56a2ec4a86d5764fca50d118f62c5d99ed41747a 100644 (file)
@@ -3317,6 +3317,11 @@ bool isSelected() const {
 
 void setSelected( bool select ){
        m_selectable.setSelected( select );
+       if ( !select && parent() ){
+               Selectable* sel_parent = Instance_getSelectable( *parent() );
+               if ( sel_parent && sel_parent->isSelected() )
+                       sel_parent->setSelected( false );
+       }
 }
 
 void update_selected() const {
index c9812e614b88820fdc78f8c3a5953156d9f80a3b..79264b003c06da07144f8f1e5609c44270a80265 100644 (file)
@@ -1422,6 +1422,11 @@ void allocate( std::size_t size ){
 
 void setSelected( bool select ){
        m_selectable.setSelected( select );
+       if ( !select && parent() ){
+               Selectable* sel_parent = Instance_getSelectable( *parent() );
+               if ( sel_parent && sel_parent->isSelected() )
+                       sel_parent->setSelected( false );
+       }
 }
 bool isSelected() const {
        return m_selectable.isSelected();
index c67cf0ea1cee2362e052af06d95a9316dfcf83df..d94afcadd3d28716ee75e686d193d5b3e3234c4d 100644 (file)
@@ -149,7 +149,10 @@ bool pre( const scene::Path& path, scene::Instance& instance, VolumeIntersection
                        else if ( renderable ) {
                                renderable->renderComponents( m_renderer, m_volume );
                        }
-                       m_renderer.Highlight( Renderer::ePrimitive );
+                       //if( !(GlobalSelectionSystem().Mode() == SelectionSystem::eComponent && path.size() == 2) )
+                       //if( !( GlobalSelectionSystem().Mode() == SelectionSystem::eComponent && node_is_group( path.top() ) ) )
+                       if( !( GlobalSelectionSystem().Mode() == SelectionSystem::eComponent && Node_isEntity( path.top() ) ) )
+                               m_renderer.Highlight( Renderer::ePrimitive );
                }
 
                if ( renderable ) {