derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4f1c858928c196d77c69e78254d50217ef4ae2b2

commit 4f1c858928c196d77c69e78254d50217ef4ae2b2
Author: Derek Foreman <[email protected]>
Date:   Wed Mar 8 14:10:10 2017 -0600

    ecore_wl2: Fix initial maximized/fullscreen state
    
    This defers the fullscreen/maximized states if we don't have a shell
    surface, and sets them in the first shell surface commit.
    
    ref T5044
---
 src/lib/ecore_wl2/ecore_wl2_window.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c 
b/src/lib/ecore_wl2/ecore_wl2_window.c
index ebb10f2..4093bec 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -455,6 +455,12 @@ _ecore_wl2_window_shell_surface_init(Ecore_Wl2_Window 
*window)
 
         window->pending.configure = EINA_TRUE;
 
+        if (window->maximized)
+          zxdg_toplevel_v6_set_maximized(window->zxdg_toplevel);
+
+        if (window->fullscreen)
+          zxdg_toplevel_v6_set_fullscreen(window->zxdg_toplevel, NULL);
+
         wl_surface_commit(window->surface);
      }
    else if ((window->display->wl.xdg_shell) && (!window->xdg_surface))
@@ -475,6 +481,11 @@ _ecore_wl2_window_shell_surface_init(Ecore_Wl2_Window 
*window)
 
         window->configure_ack = xdg_surface_ack_configure;
         window->pending.configure = EINA_FALSE;
+        if (window->maximized)
+          xdg_surface_set_maximized(window->xdg_surface);
+        if (window->fullscreen)
+          xdg_surface_set_fullscreen(window->xdg_surface, NULL);
+
         _ecore_wl2_window_type_set(window);
      }
 
@@ -960,6 +971,9 @@ ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, 
Eina_Bool maximized)
    maximized = !!maximized;
    if (prev == maximized) return;
 
+   if (!ecore_wl2_window_shell_surface_exists(window))
+     window->maximized = maximized;
+
    if (maximized)
      {
         window->saved = window->geometry;
@@ -997,6 +1011,9 @@ ecore_wl2_window_fullscreen_set(Ecore_Wl2_Window *window, 
Eina_Bool fullscreen)
    fullscreen = !!fullscreen;
    if (prev == fullscreen) return;
 
+   if (!ecore_wl2_window_shell_surface_exists(window))
+     window->fullscreen = fullscreen;
+
    if (fullscreen)
      {
         window->saved = window->geometry;

-- 


Reply via email to