View Issue Details

IDProjectCategoryView StatusLast Update
0001743NoesisGUIC++ SDKpublic2020-07-01 18:07
Reporternikobarli Assigned Tosfernandez  
PrioritynormalSeveritycrash 
Status resolvedResolutionfixed 
Product Version2.2.6 
Target Version3.0.3Fixed in Version3.0.3 
Summary0001743: Crash when playing visual state animations
Description

There is a crash inside UpdateView that we had. It happens if we operate on NoesisGUI quickly. In this case, switching tabs quickly.

Callstack:

Noesis.dll!Noesis::Ptr<Noesis::DependencyObject>::Reset(Noesis::DependencyObject ptr) Line 170 C++
Noesis.dll!Noesis::TimeManager::AddFinishedClocks(Noesis::Clock
clock, Noesis::Vector<Noesis::Ptr<Noesis::Clock>,128> & finishedClocks, Noesis::Vector<Noesis::Ptr<Noesis::DependencyObject>,128> & aliveTargets) Line 591 C++
Noesis.dll!Noesis::TimeManager::AddFinishedClocks(Noesis::Clock clock, Noesis::Vector<Noesis::Ptr<Noesis::Clock>,128> & finishedClocks, Noesis::Vector<Noesis::Ptr<Noesis::DependencyObject>,128> & aliveTargets) Line 600 C++
Noesis.dll!Noesis::TimeManager::EvaluateMasterClock(Noesis::Clock
clock, double time, double elapsedTime, Noesis::Vector<Noesis::Ptr<Noesis::Clock>,128> & finishedClocks, Noesis::Vector<Noesis::Ptr<Noesis::DependencyObject>,128> & aliveTargets) Line 483 C++
Noesis.dll!Noesis::TimeManager::Tick(double time) Line 363 C++
Noesis.dll!Noesis::View::UpdateAnimation(double timeInSeconds) Line 725 C++
Noesis.dll!Noesis::View::InternalUpdate(double timeInSeconds) Line 715 C++
Noesis.dll!Noesis::View::Update(double timeInSeconds) Line 653 C++

Steps To Reproduce

<Grid
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.Resources>
<!-- ToggleButton Style -->
<Style x:Key="ToggleButtonStyle" TargetType="{x:Type ToggleButton}" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0:0:0.1" To="MouseOver"/>
<VisualTransition From="MouseOver" GeneratedDuration="0:0:0.5"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(Brush.Opacity)" Storyboard.TargetName="OverBorder">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
</DoubleAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="ContentHost">
<EasingColorKeyFrame KeyTime="0" Value="White"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="OverBorder">
<Border.Background>
<SolidColorBrush Color="Black" Opacity="0.5"/>
</Border.Background>
</Border>
<Border>
<ContentPresenter x:Name="ContentHost"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>

 <ToggleButton Style="{StaticResource ToggleButtonStyle}">111</ToggleButton>

</Grid>
</Grid>

PlatformAny

Activities

sfernandez

sfernandez

2020-07-01 18:07

manager   ~0006485

I will bring this fix to 2.2 branch so you can use it.

Issue History

Date Modified Username Field Change
2020-07-01 17:14 sfernandez New Issue
2020-07-01 17:14 sfernandez Reporter sfernandez => nikobarli
2020-07-01 17:14 sfernandez Assigned To => sfernandez
2020-07-01 17:14 sfernandez Status new => assigned
2020-07-01 17:14 sfernandez Target Version => 3.0.3
2020-07-01 17:14 sfernandez Steps to Reproduce Updated
2020-07-01 18:07 sfernandez Status assigned => resolved
2020-07-01 18:07 sfernandez Resolution open => fixed
2020-07-01 18:07 sfernandez Fixed in Version => 3.0.3
2020-07-01 18:07 sfernandez Note Added: 0006485