Change-Id: Ie7222a335e455c4bc8e10534c214995bf05c8bc3
// Unregister from gesture event processor if we do not have any actors
if ( mAttachedActors.empty() )
{
// Unregister from gesture event processor if we do not have any actors
if ( mAttachedActors.empty() )
{
- mGestureEventProcessor.RemoveGestureDetector(this);
+ // Guard to allow handle destruction after Core has been destroyed
+ if( Stage::IsInstalled() )
+ {
+ mGestureEventProcessor.RemoveGestureDetector(this);
+ }
- // Unregister from gesture event processor
- mGestureEventProcessor.RemoveGestureDetector(this);
+ // Guard to allow handle destruction after Core has been destroyed
+ if ( Stage::IsInstalled() )
+ {
+ // Unregister from gesture event processor
+ mGestureEventProcessor.RemoveGestureDetector(this);
+ }
// Unregister from gesture event processor if we do not have any actors
if ( mAttachedActors.empty() )
{
// Unregister from gesture event processor if we do not have any actors
if ( mAttachedActors.empty() )
{
- mGestureEventProcessor.RemoveGestureDetector(this);
+ // Guard to allow handle destruction after Core has been destroyed
+ if ( Stage::IsInstalled() )
+ {
+ mGestureEventProcessor.RemoveGestureDetector(this);
+ }
{
LongPressGestureDetector* current(*iter);
{
LongPressGestureDetector* current(*iter);
- unsigned int minimum = current->GetMinimumTouchesRequired();
- if (minimum < minimumRequired)
- minimumRequired = minimum;
- }
+ unsigned int minimum = current->GetMinimumTouchesRequired();
+ if (minimum < minimumRequired)
+ {
+ minimumRequired = minimum;
+ }
- unsigned int maximum = current->GetMaximumTouchesRequired();
- if ( maximum > maximumRequired )
- {
- maximumRequired = maximum;
+ unsigned int maximum = current->GetMaximumTouchesRequired();
+ if ( maximum > maximumRequired )
+ {
+ maximumRequired = maximum;
+ }
{
PanGestureDetector* detector(*iter);
{
PanGestureDetector* detector(*iter);
- unsigned int minimum = detector->GetMinimumTouchesRequired();
- if (minimum < minimumRequired)
- minimumRequired = minimum;
- }
+ unsigned int minimum = detector->GetMinimumTouchesRequired();
+ if (minimum < minimumRequired)
+ {
+ minimumRequired = minimum;
+ }
- unsigned int maximum = detector->GetMaximumTouchesRequired();
- if (maximum > maximumRequired)
- {
- maximumRequired = maximum;
+ unsigned int maximum = detector->GetMaximumTouchesRequired();
+ if (maximum > maximumRequired)
+ {
+ maximumRequired = maximum;
+ }
{
TapGestureDetector* detector(*iter);
{
TapGestureDetector* detector(*iter);
- const unsigned int minTapsRequired = detector->GetMinimumTapsRequired();
- const unsigned int maxTapsRequired = detector->GetMaximumTapsRequired();
- const unsigned int touchesRequired = detector->GetTouchesRequired();
-
- minTaps = minTapsRequired < minTaps ? minTapsRequired : minTaps;
- maxTaps = maxTapsRequired > maxTaps ? maxTapsRequired : maxTaps;
- minTouches = touchesRequired < minTouches ? touchesRequired : minTouches;
- maxTouches = touchesRequired > maxTouches ? touchesRequired : maxTouches;
+ if( detector )
+ {
+ const unsigned int minTapsRequired = detector->GetMinimumTapsRequired();
+ const unsigned int maxTapsRequired = detector->GetMaximumTapsRequired();
+ const unsigned int touchesRequired = detector->GetTouchesRequired();
+
+ minTaps = minTapsRequired < minTaps ? minTapsRequired : minTaps;
+ maxTaps = maxTapsRequired > maxTaps ? maxTapsRequired : maxTaps;
+ minTouches = touchesRequired < minTouches ? touchesRequired : minTouches;
+ maxTouches = touchesRequired > maxTouches ? touchesRequired : maxTouches;
+ }
}
if ( (minTaps != mMinTapsRequired)||(maxTaps != mMaxTapsRequired) ||
}
if ( (minTaps != mMinTapsRequired)||(maxTaps != mMaxTapsRequired) ||