devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6a6b56ce245ed073fa030be681ed213bdaa4a4ab

commit 6a6b56ce245ed073fa030be681ed213bdaa4a4ab
Author: Chris Michael <cp.mich...@samsung.com>
Date:   Mon Sep 28 11:28:23 2015 -0400

    ecore-wl2: Add API function to set if a window is maximized
    
    Signed-off-by: Chris Michael <cp.mich...@samsung.com>
---
 src/lib/ecore_wl2/Ecore_Wl2.h        |  3 +++
 src/lib/ecore_wl2/ecore_wl2_window.c | 30 ++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)

diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h
index ff66248..8205dc3 100644
--- a/src/lib/ecore_wl2/Ecore_Wl2.h
+++ b/src/lib/ecore_wl2/Ecore_Wl2.h
@@ -398,6 +398,9 @@ EAPI void 
ecore_wl2_window_opaque_region_set(Ecore_Wl2_Window *window, int x, in
 EAPI Eina_Bool ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window);
 
 /* TODO: doxy */
+EAPI void ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool 
maximized);
+
+/* TODO: doxy */
 EAPI Eina_Bool ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window);
 
 /* TODO: doxy */
diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c 
b/src/lib/ecore_wl2/ecore_wl2_window.c
index 1e0e26a..255051e 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -593,6 +593,36 @@ ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window)
    return EINA_FALSE;
 }
 
+EAPI void
+ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool maximized)
+{
+   EINA_SAFETY_ON_NULL_RETURN(window);
+
+   if ((window->type == ECORE_WL2_WINDOW_TYPE_MAXIMIZED) == maximized)
+     return;
+
+   if (window->type == ECORE_WL2_WINDOW_TYPE_TOPLEVEL)
+     {
+        if (window->xdg_surface)
+          xdg_surface_set_maximized(window->xdg_surface);
+        else if (window->wl_shell_surface)
+          wl_shell_surface_set_maximized(window->wl_shell_surface, NULL);
+
+        window->type = ECORE_WL2_WINDOW_TYPE_MAXIMIZED;
+     }
+   else if (window->type == ECORE_WL2_WINDOW_TYPE_MAXIMIZED)
+     {
+        if (window->xdg_surface)
+          xdg_surface_unset_maximized(window->xdg_surface);
+        else if (window->wl_shell_surface)
+          wl_shell_surface_set_toplevel(window->wl_shell_surface);
+
+        window->type = ECORE_WL2_WINDOW_TYPE_TOPLEVEL;
+     }
+
+   /* TODO: send configure ? */
+}
+
 EAPI Eina_Bool
 ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window)
 {

-- 


Reply via email to