Implement ability to call the ecore_evas state_change function if
authorChris Michael <cp.michael@samsung.com>
Thu, 31 Oct 2013 11:47:53 +0000 (11:47 +0000)
committerChris Michael <cp.michael@samsung.com>
Thu, 31 Oct 2013 11:48:59 +0000 (11:48 +0000)
needed.

NB: Currently, this will only work for fullscreen or maximized states
as other ones like sticky, withdrawn, iconic, etc, etc are not
supported via wayland protocol yet.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c

index fd2f52e..a40717e 100644 (file)
@@ -201,8 +201,7 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
    if ((prev_max != ee->prop.maximized) ||
        (prev_full != ee->prop.fullscreen))
      {
-        if (ee->func.fn_state_change)
-          ee->func.fn_state_change(ee);
+        _ecore_evas_wl_common_state_update(ee);
 
         if (prev_full != ee->prop.fullscreen)
           _ecore_evas_wl_common_border_update(ee);
@@ -664,6 +663,12 @@ _ecore_evas_wl_common_move(Ecore_Evas *ee, int x, int y)
      }
 }
 
+void 
+_ecore_evas_wl_common_state_update(Ecore_Evas *ee)
+{
+   if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+}
+
 /* Frame border:
  *
  * |------------------------------------------|
@@ -1063,6 +1068,7 @@ _ecore_evas_wl_common_layer_set(Ecore_Evas *ee, int layer)
    if (layer < 1) layer = 1;
    else if (layer > 255) layer = 255;
    ee->prop.layer = layer;
+   _ecore_evas_wl_common_state_update(ee);
 }
 
 void
@@ -1111,6 +1117,7 @@ _ecore_evas_wl_common_borderless_set(Ecore_Evas *ee, int borderless)
    ee->prop.borderless = borderless;
 
    _ecore_evas_wl_common_border_update(ee);
+   _ecore_evas_wl_common_state_update(ee);
 }
 
 void
@@ -1124,6 +1131,7 @@ _ecore_evas_wl_common_maximized_set(Ecore_Evas *ee, int max)
    wdata = ee->engine.data;
    if (ee->prop.maximized == max) return;
    ecore_wl_window_maximized_set(wdata->win, max);
+   _ecore_evas_wl_common_state_update(ee);
 }
 
 void
@@ -1137,6 +1145,7 @@ _ecore_evas_wl_common_fullscreen_set(Ecore_Evas *ee, int full)
    if (ee->prop.fullscreen == full) return;
    wdata = ee->engine.data;
    ecore_wl_window_fullscreen_set(wdata->win, full);
+   _ecore_evas_wl_common_state_update(ee);
 }
 
 void