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) { --