set maximizing flag during maximize resizing for wl clients

a helpful indicator for when to avoid potentially leaking positioning info
This commit is contained in:
Mike Blumenkrantz 2016-04-04 14:02:39 -04:00
parent 6617a8440c
commit 687b5fb6b6
2 changed files with 26 additions and 2 deletions

View File

@ -587,6 +587,15 @@ _e_comp_wl_evas_cb_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U
}
}
static void
_e_comp_wl_evas_cb_maximize_pre(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
E_Client *ec = data;
if (!e_object_is_del(E_OBJECT(ec)))
ec->comp_data->maximizing = 1;
}
static void
_e_comp_wl_evas_cb_resize(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
{
@ -661,6 +670,16 @@ _e_comp_wl_evas_cb_state_update(void *data, Evas_Object *obj EINA_UNUSED, void *
_e_comp_wl_configure_send(ec, 0);
}
static void
_e_comp_wl_evas_cb_maximize_done(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
E_Client *ec = data;
if (e_object_is_del(E_OBJECT(ec))) return;
ec->comp_data->maximizing = 0;
_e_comp_wl_evas_cb_state_update(ec, NULL, NULL);
}
static void
_e_comp_wl_evas_cb_delete_request(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
{
@ -783,10 +802,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_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, "maximize_done",
_e_comp_wl_evas_cb_state_update, ec);
_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);
_e_comp_wl_evas_cb_maximize_done, 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",

View File

@ -314,6 +314,7 @@ struct _E_Comp_Wl_Client_Data
Eina_Bool frame_update : 1;
Eina_Bool cursor : 1;
Eina_Bool moved : 1;
Eina_Bool maximizing : 1;
};
struct _E_Comp_Wl_Output