}
static void
-_e_comp_wl_evas_cb_state_update(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
+_e_comp_wl_evas_cb_maximize_pre(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
+{
+ E_Client *ec = data;
+
+ ec->comp_data->maximize_pre = 1;
+}
+
+static void
+_e_comp_wl_evas_cb_maximize_done(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
+{
+ E_Client *ec = data;
+ int w, h;
+
+ if (e_object_is_del(E_OBJECT(ec))) return;
+
+ if (ec->comp_data->shell.configure_send)
+ {
+ e_client_maximized_geometry_get(ec, NULL, NULL, &w, &h);
+ ec->comp_data->shell.configure_send(ec->comp_data->shell.surface, 0, w, h);
+ }
+ ec->comp_data->maximize_pre = 0;
+}
+
+static void
+_e_comp_wl_evas_cb_unmaximize_pre(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
+{
+ E_Client *ec = data;
+
+ ec->comp_data->maximize_pre = 1;
+}
+
+static void
+_e_comp_wl_evas_cb_unmaximize_done(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
{
E_Client *ec = data;
if (ec->comp_data->shell.configure_send)
_e_comp_wl_configure_send(ec, 0, 0);
+
ec->comp_data->maximize_pre = 0;
}
static void
-_e_comp_wl_evas_cb_maximize_pre(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
+_e_comp_wl_evas_cb_fullscreen(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
{
E_Client *ec = data;
- ec->comp_data->maximize_pre = 1;
+ if (e_object_is_del(E_OBJECT(ec))) return;
+
+ /* check for wayland pixmap */
+
+ if (ec->comp_data->shell.configure_send)
+ _e_comp_wl_configure_send(ec, 0, 1);
+
+ ec->comp_data->maximize_pre = 0;
}
static void
-_e_comp_wl_evas_cb_maximize_done(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
+_e_comp_wl_evas_cb_unfullscreen(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
{
E_Client *ec = data;
- int w, h;
if (e_object_is_del(E_OBJECT(ec))) return;
+ /* check for wayland pixmap */
+
if (ec->comp_data->shell.configure_send)
- {
- e_client_maximized_geometry_get(ec, NULL, NULL, &w, &h);
- ec->comp_data->shell.configure_send(ec->comp_data->shell.surface, 0, w, h);
- }
+ _e_comp_wl_configure_send(ec, 0, 0);
+
ec->comp_data->maximize_pre = 0;
}
if (!ec->override)
{
- 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_maximize_done,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, "maximize_pre", _e_comp_wl_evas_cb_maximize_pre, ec);
- evas_object_smart_callback_add(ec->frame, "unmaximize_pre", _e_comp_wl_evas_cb_maximize_pre, 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);
+ evas_object_smart_callback_add(ec->frame, "client_resize", _e_comp_wl_evas_cb_resize, ec);
+ evas_object_smart_callback_add(ec->frame, "maximize_pre", _e_comp_wl_evas_cb_maximize_pre, ec);
+ evas_object_smart_callback_add(ec->frame, "maximize_done", _e_comp_wl_evas_cb_maximize_done, ec);
+ evas_object_smart_callback_add(ec->frame, "unmaximize_pre", _e_comp_wl_evas_cb_unmaximize_pre, ec);
+ evas_object_smart_callback_add(ec->frame, "unmaximize_done", _e_comp_wl_evas_cb_unmaximize_done, ec);
+ evas_object_smart_callback_add(ec->frame, "fullscreen", _e_comp_wl_evas_cb_fullscreen, ec);
+ evas_object_smart_callback_add(ec->frame, "unfullscreen", _e_comp_wl_evas_cb_unfullscreen, ec);
}
/* setup delete/kill callbacks */
if (!ec->override)
{
evas_object_smart_callback_del(ec->frame, "client_resize", _e_comp_wl_evas_cb_resize);
- evas_object_smart_callback_del(ec->frame, "maximize_done", _e_comp_wl_evas_cb_maximize_done);
- evas_object_smart_callback_del(ec->frame, "unmaximize_done", _e_comp_wl_evas_cb_state_update);
evas_object_smart_callback_del(ec->frame, "maximize_pre", _e_comp_wl_evas_cb_maximize_pre);
- evas_object_smart_callback_del(ec->frame, "unmaximize_pre", _e_comp_wl_evas_cb_maximize_pre);
- evas_object_smart_callback_del(ec->frame, "fullscreen", _e_comp_wl_evas_cb_state_update);
- evas_object_smart_callback_del(ec->frame, "unfullscreen", _e_comp_wl_evas_cb_state_update);
+ evas_object_smart_callback_del(ec->frame, "maximize_done", _e_comp_wl_evas_cb_maximize_done);
+ evas_object_smart_callback_del(ec->frame, "unmaximize_pre", _e_comp_wl_evas_cb_unmaximize_pre);
+ evas_object_smart_callback_del(ec->frame, "unmaximize_done", _e_comp_wl_evas_cb_unmaximize_done);
+ evas_object_smart_callback_del(ec->frame, "fullscreen", _e_comp_wl_evas_cb_fullscreen);
+ evas_object_smart_callback_del(ec->frame, "unfullscreen", _e_comp_wl_evas_cb_unfullscreen);
}
evas_object_smart_callback_del(ec->frame, "delete_request", _e_comp_wl_evas_cb_delete_request);