X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Ftizen-wayland%2Fecore-wl2%2Fwindow-base-ecore-wl2.cpp;h=e307f22374b21037f68e8dc7bd27ad3ea39e1b61;hb=3ceb53acf36fead27a2eb1fde1b9ea99c0fa97eb;hp=86e0bf87259574c405f4873bacfce06162b75f5b;hpb=89596826ec72d5f8a6eac2ca0880d7c9d5c36b41;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/window-system/tizen-wayland/ecore-wl2/window-base-ecore-wl2.cpp b/dali/internal/window-system/tizen-wayland/ecore-wl2/window-base-ecore-wl2.cpp index 86e0bf8..e307f22 100755 --- a/dali/internal/window-system/tizen-wayland/ecore-wl2/window-base-ecore-wl2.cpp +++ b/dali/internal/window-system/tizen-wayland/ecore-wl2/window-base-ecore-wl2.cpp @@ -565,6 +565,23 @@ static void VconfNotifyFontSizeChanged( keynode_t* node, void* data ) } ///////////////////////////////////////////////////////////////////////////////////////////////// +// Window Redraw Request Event Callbacks +///////////////////////////////////////////////////////////////////////////////////////////////// + +static Eina_Bool EcoreEventWindowRedrawRequest(void *data, int type, void *event) +{ + Ecore_Wl2_Event_Window_Redraw_Request *windowRedrawRequest = static_cast(event); + WindowBaseEcoreWl2 *windowBase = static_cast(data); + DALI_LOG_INFO( gWindowBaseLogFilter, Debug::General, "WindowBaseEcoreWl2::EcoreEventWindowRedrawRequest, window[ %d ]\n", windowRedrawRequest->win ); + if ( windowBase ) + { + windowBase->OnEcoreEventWindowRedrawRequest(); + } + + return ECORE_CALLBACK_RENEW; +} + +///////////////////////////////////////////////////////////////////////////////////////////////// // ElDBus Accessibility Callbacks ///////////////////////////////////////////////////////////////////////////////////////////////// @@ -578,6 +595,16 @@ static void EcoreElDBusAccessibilityNotification( void* context, const Eldbus_Me windowBase->OnEcoreElDBusAccessibilityNotification( context, message ); } } + +// Callback for Ecore ElDBus accessibility quickpanel changed event. +static void EcoreElDBusAccessibilityQuickpanelChanged( void* context, const Eldbus_Message* message ) +{ + WindowBaseEcoreWl2* windowBase = static_cast< WindowBaseEcoreWl2* >( context ); + if( windowBase ) + { + windowBase->OnEcoreElDBusAccessibilityQuickpanelChanged( context, message ); + } +} #endif // DALI_ELDBUS_AVAILABLE static void RegistryGlobalCallback( void* data, struct wl_registry *registry, uint32_t name, const char* interface, uint32_t version ) @@ -822,6 +849,9 @@ void WindowBaseEcoreWl2::Initialize( PositionSize positionSize, Any surface, boo // Register Keyboard repeat event mEcoreEventHandler.PushBack( ecore_event_handler_add( ECORE_WL2_EVENT_SEAT_KEYBOARD_REPEAT_CHANGED, EcoreEventSeatKeyboardRepeatChanged, this ) ); + // Register Window redraw request event + mEcoreEventHandler.PushBack( ecore_event_handler_add( ECORE_WL2_EVENT_WINDOW_REDRAW_REQUEST, EcoreEventWindowRedrawRequest, this ) ); + // Register Vconf notify - font name and size vconf_notify_key_changed( DALI_VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, VconfNotifyFontNameChanged, this ); vconf_notify_key_changed( VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, VconfNotifyFontSizeChanged, this ); @@ -1111,7 +1141,7 @@ void WindowBaseEcoreWl2::OnMouseWheel( void* data, int type, void* event ) { DALI_LOG_INFO( gWindowBaseLogFilter, Debug::General, "WindowBaseEcoreWl2::OnMouseWheel: direction: %d, modifiers: %d, x: %d, y: %d, z: %d\n", mouseWheelEvent->direction, mouseWheelEvent->modifiers, mouseWheelEvent->x, mouseWheelEvent->y, mouseWheelEvent->z ); - WheelEvent wheelEvent( WheelEvent::MOUSE_WHEEL, mouseWheelEvent->direction, mouseWheelEvent->modifiers, Vector2( mouseWheelEvent->x, mouseWheelEvent->y ), mouseWheelEvent->z, mouseWheelEvent->timestamp ); + Integration::WheelEvent wheelEvent( Integration::WheelEvent::MOUSE_WHEEL, mouseWheelEvent->direction, mouseWheelEvent->modifiers, Vector2( mouseWheelEvent->x, mouseWheelEvent->y ), mouseWheelEvent->z, mouseWheelEvent->timestamp ); mWheelEventSignal.Emit( wheelEvent ); } @@ -1126,7 +1156,7 @@ void WindowBaseEcoreWl2::OnDetentRotation( void* data, int type, void* event ) int direction = ( detentEvent->direction == ECORE_DETENT_DIRECTION_CLOCKWISE ) ? 1 : -1; int timeStamp = detentEvent->timestamp; - WheelEvent wheelEvent( WheelEvent::CUSTOM_WHEEL, direction, 0, Vector2( 0.0f, 0.0f ), 0, timeStamp ); + Integration::WheelEvent wheelEvent( Integration::WheelEvent::CUSTOM_WHEEL, direction, 0, Vector2( 0.0f, 0.0f ), 0, timeStamp ); mWheelEventSignal.Emit( wheelEvent ); } @@ -1187,7 +1217,7 @@ void WindowBaseEcoreWl2::OnKeyDown( void* data, int type, void* event ) GetDeviceClass( ecore_device_class_get( keyEvent->dev ), deviceClass ); GetDeviceSubclass( ecore_device_subclass_get( keyEvent->dev ), deviceSubclass ); - Integration::KeyEvent keyEvent( keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::Down, compose, deviceName, deviceClass, deviceSubclass ); + Integration::KeyEvent keyEvent( keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::DOWN, compose, deviceName, deviceClass, deviceSubclass ); mKeyEventSignal.Emit( keyEvent ); } @@ -1258,7 +1288,7 @@ void WindowBaseEcoreWl2::OnKeyUp( void* data, int type, void* event ) GetDeviceClass( ecore_device_class_get( keyEvent->dev ), deviceClass ); GetDeviceSubclass( ecore_device_subclass_get( keyEvent->dev ), deviceSubclass ); - Integration::KeyEvent keyEvent( keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::Up, compose, deviceName, deviceClass, deviceSubclass ); + Integration::KeyEvent keyEvent( keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::UP, compose, deviceName, deviceClass, deviceSubclass ); mKeyEventSignal.Emit( keyEvent ); } @@ -1299,6 +1329,33 @@ void WindowBaseEcoreWl2::OnEcoreElDBusAccessibilityNotification( void* context, #endif } +void WindowBaseEcoreWl2::OnEcoreElDBusAccessibilityQuickpanelChanged( void* context, const Eldbus_Message* message ) +{ +#ifdef DALI_ELDBUS_AVAILABLE + AccessibilityInfo info; + + unsigned int type = 0; // For example, type 1 is QuickPanel, type 3 is AllApps + unsigned int state = 0; // 0 is hidden, 1 is shown + + // The string defines the arg-list's respective types. + if( !eldbus_message_arguments_get( message, "uu", &type, &state ) ) + { + DALI_LOG_ERROR( "OnEcoreElDBusAccessibilityQuickpanelChanged: Error getting arguments\n" ); + } + + if( state == 1 ) // Shown + { + info.quickpanelInfo |= 1 << type; + } + else // Hidden + { + info.quickpanelInfo &= ~( 1 << type ); + } + + mQuickPanelSignal.Emit( info.quickpanelInfo ); +#endif +} + void WindowBaseEcoreWl2::OnTransitionEffectEvent( DevelWindow::EffectState state, DevelWindow::EffectType type ) { mTransitionEffectEventSignal.Emit( state, type ); @@ -1309,6 +1366,11 @@ void WindowBaseEcoreWl2::OnKeyboardRepeatSettingsChanged() mKeyboardRepeatSettingsChangedSignal.Emit(); } +void WindowBaseEcoreWl2::OnEcoreEventWindowRedrawRequest() +{ + mWindowRedrawRequestSignal.Emit(); +} + void WindowBaseEcoreWl2::KeymapChanged(void *data, int type, void *event) { Ecore_Wl2_Event_Seat_Keymap_Changed *changed = static_cast( event ); @@ -2397,6 +2459,11 @@ void WindowBaseEcoreWl2::InitializeEcoreElDBus() { DALI_LOG_ERROR( "No signal handler returned\n" ); } + + if( !eldbus_proxy_signal_handler_add( manager, "QuickpanelChanged", EcoreElDBusAccessibilityQuickpanelChanged, this ) ) + { + DALI_LOG_ERROR( "No signal handler returned for QuickpanelChanged signal\n" ); + } #endif }