From 72260de4dd71838bd737b0e5b03901e61171a3c5 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Tue, 7 Mar 2023 19:02:17 +0900 Subject: [PATCH] ecore_wl2: support pin mode feature Change-Id: I90a329829c7b70b2e6016f0a915179ee4eaff1fd --- src/lib/ecore_wl2/Ecore_Wl2.h | 5 +++++ src/lib/ecore_wl2/ecore_wl2_private.h | 4 ++++ src/lib/ecore_wl2/ecore_wl2_window.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index e43259a..fb8be68 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -2555,6 +2555,11 @@ EAPI void ecore_wl2_window_resize_request_set(Ecore_Wl2_Window *window, int w, i EAPI void ecore_wl2_window_resize_request_unset(Ecore_Wl2_Window *window); // +//TIZEN_ONLY(20230306): support pin mode +EAPI void ecore_wl2_window_pin_mode_set(Ecore_Wl2_Window *window, Eina_Bool pinned); +EAPI Eina_Bool ecore_wl2_window_pin_mode_get(Ecore_Wl2_Window *window); +// + # undef EAPI # define EAPI diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h b/src/lib/ecore_wl2/ecore_wl2_private.h index d9af9c3..a86103d 100644 --- a/src/lib/ecore_wl2/ecore_wl2_private.h +++ b/src/lib/ecore_wl2/ecore_wl2_private.h @@ -458,6 +458,10 @@ struct _Ecore_Wl2_Window // TIZEN_ONLY(20221121): for maximize direction Ecore_Wl2_Maximize_Direction maximize_direction; // + + // TIZEN_ONLY(20230306): support pin mode + Eina_Bool pinned : 1; + // }; struct _Ecore_Wl2_Output diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c index ec79794..7f7840d 100644 --- a/src/lib/ecore_wl2/ecore_wl2_window.c +++ b/src/lib/ecore_wl2/ecore_wl2_window.c @@ -965,6 +965,13 @@ _ecore_wl2_window_tz_ext_init(Ecore_Wl2_Window *window) tizen_policy_set_floating_mode(window->display->wl.tz_policy, window->surface); } + + if (window->pinned) + { + if (window->surface) + tizen_policy_set_pin_mode(window->display->wl.tz_policy, + window->surface); + } } if (window->display->wl.tz_policy_ext && !window->tz_rotation) @@ -4589,3 +4596,27 @@ ecore_wl2_window_resize_request_unset(Ecore_Wl2_Window *window) window->pending.user_resize = EINA_FALSE; } // + +//TIZEN_ONLY(20230306): support pin mode +EAPI void +ecore_wl2_window_pin_mode_set(Ecore_Wl2_Window *window, Eina_Bool pinned) +{ + EINA_SAFETY_ON_NULL_RETURN(window); + + window->pinned = pinned; + if ((window->surface) && (window->display->wl.tz_policy)) + { + if (pinned) + tizen_policy_set_pin_mode(window->display->wl.tz_policy, window->surface); + else + tizen_policy_unset_pin_mode(window->display->wl.tz_policy, window->surface); + } +} + +EAPI Eina_Bool +ecore_wl2_window_pin_mode_get(Ecore_Wl2_Window *window) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(window, EINA_FALSE); + return window->pinned; +} +// -- 2.7.4