forked from enlightenment/enlightenment
fix toggling sticky state on clients
previously this would break windows if it was set based on persisting X hints
This commit is contained in:
parent
3dd0ea5189
commit
35aaabc491
|
@ -3649,12 +3649,17 @@ e_client_urgent_set(E_Client *ec, Eina_Bool urgent)
|
||||||
EAPI void
|
EAPI void
|
||||||
e_client_stick(E_Client *ec)
|
e_client_stick(E_Client *ec)
|
||||||
{
|
{
|
||||||
|
E_Desk *desk;
|
||||||
|
|
||||||
E_OBJECT_CHECK(ec);
|
E_OBJECT_CHECK(ec);
|
||||||
E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
|
E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
|
||||||
if (ec->sticky) return;
|
if (ec->sticky) return;
|
||||||
|
desk = ec->desk;
|
||||||
|
ec->desk = NULL;
|
||||||
ec->sticky = 1;
|
ec->sticky = 1;
|
||||||
|
ec->hidden = 0;
|
||||||
e_hints_window_sticky_set(ec, 1);
|
e_hints_window_sticky_set(ec, 1);
|
||||||
evas_object_show(ec->frame);
|
e_client_desk_set(ec, desk);
|
||||||
|
|
||||||
if (e_config->transient.desktop)
|
if (e_config->transient.desktop)
|
||||||
{
|
{
|
||||||
|
@ -3676,12 +3681,17 @@ e_client_stick(E_Client *ec)
|
||||||
EAPI void
|
EAPI void
|
||||||
e_client_unstick(E_Client *ec)
|
e_client_unstick(E_Client *ec)
|
||||||
{
|
{
|
||||||
|
E_Desk *desk;
|
||||||
|
|
||||||
E_OBJECT_CHECK(ec);
|
E_OBJECT_CHECK(ec);
|
||||||
E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
|
E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
|
||||||
/* Set the desk before we unstick the client */
|
/* Set the desk before we unstick the client */
|
||||||
if (!ec->sticky) return;
|
if (!ec->sticky) return;
|
||||||
|
desk = ec->desk;
|
||||||
|
ec->desk = NULL;
|
||||||
ec->sticky = 0;
|
ec->sticky = 0;
|
||||||
e_hints_window_sticky_set(ec, 0);
|
e_hints_window_sticky_set(ec, 0);
|
||||||
|
e_client_desk_set(ec, desk);
|
||||||
|
|
||||||
if (e_config->transient.desktop)
|
if (e_config->transient.desktop)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue