elementary: Supports window always top function. 31/314731/5 accepted/tizen/unified/20240722.104241 accepted/tizen/unified/dev/20240724.110137 accepted/tizen/unified/x/20240723.043614
authorjykeon <jykeon@samsung.com>
Thu, 18 Jul 2024 07:04:19 +0000 (16:04 +0900)
committerjykeon <jykeon@samsung.com>
Fri, 19 Jul 2024 01:18:51 +0000 (10:18 +0900)
Change-Id: I1023e4670b76408622b5588e11a31f66fd669f39
Signed-off-by: jykeon <jykeon@samsung.com>
src/lib/elementary/efl_ui_win.c
src/lib/elementary/elm_win_legacy.h

index 7d005f8..bde8a70 100644 (file)
@@ -8411,6 +8411,35 @@ elm_win_trap_set(const Elm_Win_Trap *t)
    return EINA_TRUE;
 }
 
+//TIZEN_ONLY(20240718): implement elm_win_always_on_top_set and get
+EAPI void
+elm_win_always_on_top_set(Evas_Object *obj, Eina_Bool pinned)
+{
+   Efl_Ui_Win_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
+   if (!sd) return;
+
+#if HAVE_ELEMENTARY_WL2
+    _elm_win_wlwindow_get(sd);
+    if (sd->wl.win)
+        ecore_wl2_window_pin_mode_set(sd->wl.win, pinned);
+#endif
+}
+
+EAPI Eina_Bool
+elm_win_always_on_top_get(Evas_Object *obj)
+{
+   Efl_Ui_Win_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
+   if (!sd) return EINA_FALSE;
+
+#if HAVE_ELEMENTARY_WL2
+    _elm_win_wlwindow_get(sd);
+    if (sd->wl.win)
+       return ecore_wl2_window_pin_mode_get(sd->wl.win);
+#endif
+   return EINA_FALSE;
+}
+//
+
 EAPI void
 elm_win_floating_mode_set(Evas_Object *obj, Eina_Bool floating)
 {
index d3128a3..b8fc08f 100644 (file)
@@ -2364,6 +2364,27 @@ EAPI void elm_win_minimum_size_set(Elm_Win *obj, int w, int h);
  * @ingroup Elm_Win_Group
  */
 
+//TIZEN_ONLY(20240718): add always on top API.
+EAPI void elm_win_always_on_top_set(Evas_Object *obj, Eina_Bool pinned);
+/**
+ * @brief Enables or disables the window always is on top.
+ *
+ * @param[in] window The window instance.
+ * @param[in] alwaysOnTop true to enable the window always is on top, false to disable.
+ *
+ * @ingroup Elm_Win_Group
+ */
+EAPI Eina_Bool elm_win_always_on_top_get(Evas_Object *obj);
+/**
+ * @brief Returns whether the window always is on top.
+ *
+ * @param[in] window The window instance.
+ * @return True if the window always is on top, false otherwise.
+ *
+ * @ingroup Elm_Win_Group
+ */
+//
+
 EAPI void elm_win_maximum_size_set(Elm_Win *obj, int w, int h);
 //