// EXTERNAL_HEADERS
#include <dali/public-api/object/any.h>
+#include <dali/public-api/events/mouse-button.h>
#include <dali/integration-api/debug.h>
#include <Ecore_Input.h>
#include <vconf.h>
if( touchEvent->window == static_cast< unsigned int >( ecore_wl2_window_id_get( mEcoreWindow ) ) )
{
- PointState::Type state ( PointState::DOWN );
-
- // Check if the buttons field is set and ensure it's the primary touch button.
- // If this event was triggered by buttons other than the primary button (used for touch), then
- // just send an interrupted event to Core.
- if( touchEvent->buttons && (touchEvent->buttons != PRIMARY_TOUCH_BUTTON_ID ) )
- {
- state = PointState::INTERRUPTED;
- }
-
Device::Class::Type deviceClass;
Device::Subclass::Type deviceSubclass;
GetDeviceClass( ecore_device_class_get( touchEvent->dev ), deviceClass );
GetDeviceSubclass( ecore_device_subclass_get( touchEvent->dev ), deviceSubclass );
+ PointState::Type state ( PointState::DOWN );
+
+ if( deviceClass != Device::Class::Type::MOUSE )
+ {
+ // Check if the buttons field is set and ensure it's the primary touch button.
+ // If this event was triggered by buttons other than the primary button (used for touch), then
+ // just send an interrupted event to Core.
+ if( touchEvent->buttons && (touchEvent->buttons != PRIMARY_TOUCH_BUTTON_ID ) )
+ {
+ state = PointState::INTERRUPTED;
+ }
+ }
+
Integration::Point point;
point.SetDeviceId( touchEvent->multi.device );
point.SetState( state );
point.SetAngle( Degree( touchEvent->multi.angle ) );
point.SetDeviceClass( deviceClass );
point.SetDeviceSubclass( deviceSubclass );
+ point.SetMouseButton( static_cast< MouseButton::Type >( touchEvent->buttons) );
mTouchEventSignal.Emit( point, touchEvent->timestamp );
}
point.SetAngle( Degree( touchEvent->multi.angle ) );
point.SetDeviceClass( deviceClass );
point.SetDeviceSubclass( deviceSubclass );
+ point.SetMouseButton( static_cast< MouseButton::Type >( touchEvent->buttons) );
mTouchEventSignal.Emit( point, touchEvent->timestamp );
}
// EXTERNAL_HEADERS
#include <dali/public-api/object/any.h>
+#include <dali/public-api/events/mouse-button.h>
#include <dali/integration-api/debug.h>
#include <Ecore_Input.h>
{
PointState::Type state ( PointState::DOWN );
- // Check if the buttons field is set and ensure it's the primary touch button.
- // If this event was triggered by buttons other than the primary button (used for touch), then
- // just send an interrupted event to Core.
- if( touchEvent->buttons && ( touchEvent->buttons != PRIMARY_TOUCH_BUTTON_ID ) )
- {
- state = PointState::INTERRUPTED;
- }
-
Integration::Point point;
point.SetDeviceId( touchEvent->multi.device );
point.SetState( state );
point.SetRadius( touchEvent->multi.radius, Vector2( touchEvent->multi.radius_x, touchEvent->multi.radius_y ) );
point.SetPressure( touchEvent->multi.pressure );
point.SetAngle( Degree( touchEvent->multi.angle ) );
+ if( touchEvent->buttons)
+ {
+ point.SetMouseButton( static_cast< MouseButton::Type >( touchEvent->buttons) );
+ }
mTouchEventSignal.Emit( point, touchEvent->timestamp );
}
point.SetRadius( touchEvent->multi.radius, Vector2( touchEvent->multi.radius_x, touchEvent->multi.radius_y ) );
point.SetPressure( touchEvent->multi.pressure );
point.SetAngle( Degree( touchEvent->multi.angle ) );
+ if( touchEvent->buttons)
+ {
+ point.SetMouseButton( static_cast< MouseButton::Type >( touchEvent->buttons) );
+ }
mTouchEventSignal.Emit( point, touchEvent->timestamp );
}