update wl xdg states on maximize/fullscreen events
authorMike Blumenkrantz <zmike@osg.samsung.com>
Fri, 27 Feb 2015 03:32:14 +0000 (22:32 -0500)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Fri, 27 Feb 2015 03:32:14 +0000 (22:32 -0500)
src/bin/e_comp_wl.c

index 241082b0074fc855b87b9cae83263fbf0a86ff2f..722a5987431a465ec22b69a63378ef9d1e76c978 100644 (file)
@@ -561,6 +561,18 @@ _e_comp_wl_evas_cb_resize(void *data, Evas_Object *obj EINA_UNUSED, void *event
    _e_comp_wl_client_idler_add(ec);
 }
 
+static void
+_e_comp_wl_evas_cb_state_update(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
+{
+   E_Client *ec = data;
+
+   if (e_object_is_del(E_OBJECT(ec))) return;
+
+   E_COMP_WL_PIXMAP_CHECK;
+   if (ec->comp_data->shell.configure_send)
+     ec->comp_data->shell.configure_send(ec->comp_data->shell.surface, 0, 0, 0);
+}
+
 static void
 _e_comp_wl_evas_cb_delete_request(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
 {
@@ -678,6 +690,14 @@ _e_comp_wl_client_evas_init(E_Client *ec)
      {
         evas_object_smart_callback_add(ec->frame, "client_resize",
                                        _e_comp_wl_evas_cb_resize, ec);
+        evas_object_smart_callback_add(ec->frame, "maximize_done",
+                                       _e_comp_wl_evas_cb_state_update, ec);
+        evas_object_smart_callback_add(ec->frame, "unmaximize_done",
+                                       _e_comp_wl_evas_cb_state_update, ec);
+        evas_object_smart_callback_add(ec->frame, "fullscreen",
+                                       _e_comp_wl_evas_cb_state_update, ec);
+        evas_object_smart_callback_add(ec->frame, "unfullscreen",
+                                       _e_comp_wl_evas_cb_state_update, ec);
      }
 
    /* setup delete/kill callbacks */