do not send duplicate configures for wayland clients during maximize

this seems to not have caused any real issues, but it made debugging
more of a pain and is unnecessary connection noise
This commit is contained in:
Mike Blumenkrantz 2015-07-24 16:33:06 -04:00
parent dd1577a169
commit 0321fd690e
3 changed files with 15 additions and 2 deletions

View File

@ -627,7 +627,7 @@ _e_comp_wl_evas_cb_resize(void *data, Evas_Object *obj EINA_UNUSED, void *event
e_comp->wl_comp_data->resize.edges,
x, y);
}
else
else if ((!ec->fullscreen) && (!ec->maximized) && (!ec->comp_data->maximize_pre))
ec->comp_data->shell.configure_send(ec->comp_data->shell.surface,
e_comp->wl_comp_data->resize.edges,
ec->client.w, ec->client.h);
@ -644,6 +644,15 @@ _e_comp_wl_evas_cb_state_update(void *data, Evas_Object *obj EINA_UNUSED, void *
if (ec->comp_data->shell.configure_send)
ec->comp_data->shell.configure_send(ec->comp_data->shell.surface, 0, ec->client.w, ec->client.h);
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_Client *ec = data;
ec->comp_data->maximize_pre = 1;
}
static void
@ -775,6 +784,10 @@ _e_comp_wl_client_evas_init(E_Client *ec)
_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, "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",

View File

@ -286,6 +286,7 @@ struct _E_Comp_Wl_Client_Data
Eina_Bool first_damage : 1;
Eina_Bool set_win_type : 1;
Eina_Bool frame_update : 1;
Eina_Bool maximize_pre : 1;
};
struct _E_Comp_Wl_Output

View File

@ -846,7 +846,6 @@ _e_xdg_shell_surface_cb_maximized_set(struct wl_client *client EINA_UNUSED, stru
{
e_client_maximize(ec, ((e_config->maximize_policy & E_MAXIMIZE_TYPE) |
E_MAXIMIZE_BOTH));
_e_xdg_shell_surface_configure_send(resource, 0, ec->w, ec->h);
}
}