X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=internal%2Fwidget_view%2Fwidget_view_impl.cpp;h=a98d16b43e09f4b90e4ae468da8c78896561a166;hb=e8d741b0c9fa00b763818c0bb71225b5a6444c92;hp=4d4487e87adb2341400108b9a96ebfc0b7be0ae9;hpb=be4ae157a5083354b0a4625007102db24c78bf1c;p=platform%2Fcore%2Fuifw%2Fwidget-viewer-dali.git diff --git a/internal/widget_view/widget_view_impl.cpp b/internal/widget_view/widget_view_impl.cpp index 4d4487e..a98d16b 100644 --- a/internal/widget_view/widget_view_impl.cpp +++ b/internal/widget_view/widget_view_impl.cpp @@ -89,40 +89,7 @@ DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "activateFaultedWidget", DALI_TYPE_REGISTRATION_END() -static Eina_Bool OnKeyDown( void* data, int type, void* eventInfo ) -{ - Ecore_Event_Key *event = static_cast< Ecore_Event_Key* >( eventInfo ); - tizen_remote_surface* surface = static_cast< tizen_remote_surface* >( data ); - - tizen_remote_surface_transfer_key_event( surface, - TIZEN_REMOTE_SURFACE_EVENT_TYPE_KEY_DOWN, - event->keycode, - ecore_device_class_get(event->dev), - ecore_device_subclass_get(event->dev), - ecore_device_identifier_get(event->dev), - event->timestamp - ); - - return EINA_TRUE; -} - -static Eina_Bool OnKeyUp(void* data, int type, void* eventInfo) -{ - Ecore_Event_Key *event = static_cast< Ecore_Event_Key* >( eventInfo ); - tizen_remote_surface* surface = static_cast< tizen_remote_surface* >( data ); - - tizen_remote_surface_transfer_key_event( surface, - TIZEN_REMOTE_SURFACE_EVENT_TYPE_KEY_UP, - event->keycode, - ecore_device_class_get(event->dev), - ecore_device_subclass_get(event->dev), - ecore_device_identifier_get(event->dev), - event->timestamp - ); - return EINA_TRUE; -} - -static void OnSurfaceUpdate( struct tizen_remote_surface* surface, wl_buffer* buffer, uint32_t time, void* data ) +static void OnBufferUpdate( struct tizen_remote_surface* surface, wl_buffer* buffer, uint32_t time, void* data ) { Dali::WidgetView::Internal::WidgetView* widgetView = static_cast< Dali::WidgetView::Internal::WidgetView* >( data ); @@ -134,8 +101,6 @@ static void OnSurfaceUpdate( struct tizen_remote_surface* surface, wl_buffer* bu widgetView->CreateWidgetImageView(); widgetView->ConnectSignal( surface ); - ecore_event_handler_add( ECORE_EVENT_KEY_DOWN, OnKeyDown, surface ); - ecore_event_handler_add( ECORE_EVENT_KEY_UP, OnKeyUp, surface ); } //get tbm surface from buffer @@ -146,12 +111,17 @@ static void OnSurfaceUpdate( struct tizen_remote_surface* surface, wl_buffer* bu static void OnSurfaceMissing( struct tizen_remote_surface* surface, void* data ) { - //ToDo: WidgetDeletedSignal + Dali::WidgetView::Internal::WidgetView* widgetView = static_cast< Dali::WidgetView::Internal::WidgetView* >( data ); + + if( widgetView ) + { + widgetView->CloseRemoteSurface(); + } } static struct aul_rsm_handler_s remoteSurfaceHandler = { - OnSurfaceUpdate, + OnBufferUpdate, OnSurfaceMissing, }; @@ -178,14 +148,14 @@ WidgetView::WidgetView() mInstanceId(), mContentInfo(), mTitle(), - mBundle( NULL ), mWidth( 0 ), mHeight( 0 ), mPid( 0 ), mUpdatePeriod( 0.0 ), mPreviewVisible( true ), mStateTextVisible( true ), - mPermanentDelete( true ) + mPermanentDelete( false ), + mRemoteSurface( NULL ) { } @@ -195,14 +165,14 @@ WidgetView::WidgetView( const std::string& widgetId, const std::string& contentI mInstanceId(), mContentInfo( contentInfo ), mTitle(), - mBundle( NULL ), mWidth( width ), mHeight( height ), mPid( 0 ), mUpdatePeriod( updatePeriod ), mPreviewVisible( true ), mStateTextVisible( true ), - mPermanentDelete( true ) + mPermanentDelete( false ), + mRemoteSurface( NULL ) { } @@ -217,11 +187,6 @@ WidgetView::~WidgetView() widget_instance_destroy( mInstanceId.c_str() ); } } - - if( mBundle ) - { - bundle_free( mBundle ); - } } bool WidgetView::PauseWidget() @@ -739,7 +704,9 @@ void WidgetView::OnInitialize() mPreviewImage.SetSize( mWidth, mHeight ); } - Self().SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::ALL_DIMENSIONS ); + Self().SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS ); + Self().SetSize( mWidth, mHeight ); + Self().Add( mPreviewImage ); // State text @@ -803,11 +770,12 @@ void WidgetView::UpdateImageSource( tbm_surface_h source ) void WidgetView::ConnectSignal( tizen_remote_surface* surface ) { - if( mWidgetImageView ) + if( mWidgetImageView && surface ) { mRemoteSurface = surface; - mWidgetImageView.TouchSignal().Connect( this, &WidgetView::OnTouch ); - mWidgetImageView.WheelEventSignal().Connect( this, &WidgetView::OnWheelEvent ); + + Self().TouchSignal().Connect( this, &WidgetView::OnTouch ); + Self().WheelEventSignal().Connect( this, &WidgetView::OnWheelEvent ); } } @@ -816,7 +784,7 @@ bool WidgetView::OnTouch( Dali::Actor actor, const Dali::TouchData& event ) { tizen_remote_surface_event_type type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_NONE; - if( event.GetPointCount() == 0 ) + if( event.GetPointCount() == 0 || mRemoteSurface == NULL ) { return false; } @@ -873,6 +841,10 @@ bool WidgetView::OnTouch( Dali::Actor actor, const Dali::TouchData& event ) bool WidgetView::OnWheelEvent( Dali::Actor actor, const Dali::WheelEvent& event ) { + if( mRemoteSurface == NULL ) + { + return false; + } //ToDo: We should check TIZEN_INPUT_DEVICE_CLAS_MOUSE tizen_remote_surface_transfer_mouse_wheel( mRemoteSurface, event.direction, @@ -926,6 +898,12 @@ float WidgetView::GetWidthForHeight( float height ) } } +void WidgetView::CloseRemoteSurface() +{ + aul_rsm_viewer_unset_surface_handler( mInstanceId.c_str() ); + mRemoteSurface = NULL; +} + } // namespace Internal } // namespace WidgetView