forked from enlightenment/enlightenment
handle xdg-shell maximize/unmaximize calls correctly
This commit is contained in:
parent
d3b5b5a48d
commit
bf40d92ad8
|
@ -75,7 +75,7 @@ _xdg_shell_surface_send_configure(struct wl_resource *resource, Eina_Bool fullsc
|
||||||
{
|
{
|
||||||
if (fullscreen)
|
if (fullscreen)
|
||||||
pending |= STATE_FULLSCREEN;
|
pending |= STATE_FULLSCREEN;
|
||||||
else
|
else if (ec->fullscreen)
|
||||||
pending |= STATE_UNFULLSCREEN;
|
pending |= STATE_UNFULLSCREEN;
|
||||||
}
|
}
|
||||||
shd->fullscreen = fullscreen;
|
shd->fullscreen = fullscreen;
|
||||||
|
@ -83,7 +83,7 @@ _xdg_shell_surface_send_configure(struct wl_resource *resource, Eina_Bool fullsc
|
||||||
{
|
{
|
||||||
if (maximized)
|
if (maximized)
|
||||||
pending |= STATE_MAXIMIZED;
|
pending |= STATE_MAXIMIZED;
|
||||||
else
|
else if (ec->maximized)
|
||||||
pending |= STATE_UNMAXIMIZED;
|
pending |= STATE_UNMAXIMIZED;
|
||||||
}
|
}
|
||||||
shd->maximized = maximized;
|
shd->maximized = maximized;
|
||||||
|
@ -349,11 +349,13 @@ _e_xdg_shell_surface_cb_ack_configure(struct wl_client *client EINA_UNUSED, stru
|
||||||
{
|
{
|
||||||
ec->comp_data->shell.set.maximize = 1;
|
ec->comp_data->shell.set.maximize = 1;
|
||||||
ec->comp_data->shell.set.unmaximize = 0;
|
ec->comp_data->shell.set.unmaximize = 0;
|
||||||
|
ec->comp_data->max = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
|
||||||
}
|
}
|
||||||
if (ps->state & STATE_UNMAXIMIZED)
|
if (ps->state & STATE_UNMAXIMIZED)
|
||||||
{
|
{
|
||||||
ec->comp_data->shell.set.unmaximize = 1;
|
ec->comp_data->shell.set.unmaximize = 1;
|
||||||
ec->comp_data->shell.set.maximize = 0;
|
ec->comp_data->shell.set.maximize = 0;
|
||||||
|
ec->comp_data->unmax = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
|
||||||
}
|
}
|
||||||
shd->pending = eina_list_remove_list(shd->pending, l);
|
shd->pending = eina_list_remove_list(shd->pending, l);
|
||||||
free(ps);
|
free(ps);
|
||||||
|
@ -427,7 +429,6 @@ _e_xdg_shell_surface_cb_maximized_unset(struct wl_client *client EINA_UNUSED, st
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
|
|
||||||
if (ec->lock_user_maximize) return;
|
if (ec->lock_user_maximize) return;
|
||||||
ec->comp_data->unmax = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
|
|
||||||
if (e_config->window_maximize_animate && (!ec->maximize_anims_disabled))
|
if (e_config->window_maximize_animate && (!ec->maximize_anims_disabled))
|
||||||
w = ec->w, h = ec->h;
|
w = ec->w, h = ec->h;
|
||||||
else
|
else
|
||||||
|
@ -489,7 +490,6 @@ _e_xdg_shell_surface_cb_minimized_set(struct wl_client *client EINA_UNUSED, stru
|
||||||
|
|
||||||
if (ec->lock_user_iconify) return;
|
if (ec->lock_user_iconify) return;
|
||||||
ec->comp_data->shell.set.minimize = 1;
|
ec->comp_data->shell.set.minimize = 1;
|
||||||
ec->comp_data->max = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct xdg_surface_interface _e_xdg_surface_interface =
|
static const struct xdg_surface_interface _e_xdg_surface_interface =
|
||||||
|
|
|
@ -322,7 +322,7 @@ _xdg_shell_surface_send_configure(struct wl_resource *resource, Eina_Bool fullsc
|
||||||
{
|
{
|
||||||
if (fullscreen)
|
if (fullscreen)
|
||||||
pending |= STATE_FULLSCREEN;
|
pending |= STATE_FULLSCREEN;
|
||||||
else
|
else if (ec->fullscreen)
|
||||||
pending |= STATE_UNFULLSCREEN;
|
pending |= STATE_UNFULLSCREEN;
|
||||||
}
|
}
|
||||||
shd->fullscreen = fullscreen;
|
shd->fullscreen = fullscreen;
|
||||||
|
@ -330,7 +330,7 @@ _xdg_shell_surface_send_configure(struct wl_resource *resource, Eina_Bool fullsc
|
||||||
{
|
{
|
||||||
if (maximized)
|
if (maximized)
|
||||||
pending |= STATE_MAXIMIZED;
|
pending |= STATE_MAXIMIZED;
|
||||||
else
|
else if (ec->maximized)
|
||||||
pending |= STATE_UNMAXIMIZED;
|
pending |= STATE_UNMAXIMIZED;
|
||||||
}
|
}
|
||||||
shd->maximized = maximized;
|
shd->maximized = maximized;
|
||||||
|
@ -475,11 +475,13 @@ _e_xdg_surface_cb_ack_configure(struct wl_client *client EINA_UNUSED, struct wl_
|
||||||
{
|
{
|
||||||
ec->comp_data->shell.set.maximize = 1;
|
ec->comp_data->shell.set.maximize = 1;
|
||||||
ec->comp_data->shell.set.unmaximize = 0;
|
ec->comp_data->shell.set.unmaximize = 0;
|
||||||
|
ec->comp_data->max = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
|
||||||
}
|
}
|
||||||
if (ps->state & STATE_UNMAXIMIZED)
|
if (ps->state & STATE_UNMAXIMIZED)
|
||||||
{
|
{
|
||||||
ec->comp_data->shell.set.unmaximize = 1;
|
ec->comp_data->shell.set.unmaximize = 1;
|
||||||
ec->comp_data->shell.set.maximize = 0;
|
ec->comp_data->shell.set.maximize = 0;
|
||||||
|
ec->comp_data->unmax = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
|
||||||
}
|
}
|
||||||
shd->pending = eina_list_remove_list(shd->pending, l);
|
shd->pending = eina_list_remove_list(shd->pending, l);
|
||||||
free(ps);
|
free(ps);
|
||||||
|
@ -553,7 +555,6 @@ _e_xdg_toplevel_cb_maximized_unset(struct wl_client *client EINA_UNUSED, struct
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
|
|
||||||
if (ec->lock_user_maximize) return;
|
if (ec->lock_user_maximize) return;
|
||||||
ec->comp_data->unmax = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
|
|
||||||
if (e_config->window_maximize_animate && (!ec->maximize_anims_disabled))
|
if (e_config->window_maximize_animate && (!ec->maximize_anims_disabled))
|
||||||
w = ec->w, h = ec->h;
|
w = ec->w, h = ec->h;
|
||||||
else
|
else
|
||||||
|
@ -615,7 +616,6 @@ _e_xdg_toplevel_cb_minimized_set(struct wl_client *client EINA_UNUSED, struct wl
|
||||||
|
|
||||||
if (ec->lock_user_iconify) return;
|
if (ec->lock_user_iconify) return;
|
||||||
ec->comp_data->shell.set.minimize = 1;
|
ec->comp_data->shell.set.minimize = 1;
|
||||||
ec->comp_data->max = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
Loading…
Reference in New Issue