forked from enlightenment/enlightenment
defer netwm maximize hint apply to reduce canvas ops
improves maximize performance on apps like chromium which incrementally apply maximize states
This commit is contained in:
parent
5aa231f53e
commit
1a2f4087db
|
@ -780,49 +780,42 @@ e_hints_window_state_update(E_Client *ec,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT:
|
case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT:
|
||||||
if (ec->lock_client_maximize) return;
|
|
||||||
switch (action)
|
|
||||||
{
|
|
||||||
case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
|
|
||||||
if (ec->maximized & E_MAXIMIZE_VERTICAL)
|
|
||||||
e_client_unmaximize(ec, E_MAXIMIZE_VERTICAL);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ECORE_X_WINDOW_STATE_ACTION_ADD:
|
|
||||||
if (!(ec->maximized & E_MAXIMIZE_VERTICAL))
|
|
||||||
e_client_maximize(ec, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
|
|
||||||
if (ec->maximized & E_MAXIMIZE_VERTICAL)
|
|
||||||
e_client_unmaximize(ec, E_MAXIMIZE_VERTICAL);
|
|
||||||
else
|
|
||||||
e_client_maximize(ec, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ:
|
case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ:
|
||||||
if (ec->lock_client_maximize) return;
|
{
|
||||||
switch (action)
|
E_Maximize max[] =
|
||||||
{
|
{
|
||||||
case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
|
[ECORE_X_WINDOW_STATE_MAXIMIZED_VERT] = E_MAXIMIZE_VERTICAL,
|
||||||
if (ec->maximized & E_MAXIMIZE_HORIZONTAL)
|
[ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ] = E_MAXIMIZE_HORIZONTAL,
|
||||||
e_client_unmaximize(ec, E_MAXIMIZE_HORIZONTAL);
|
};
|
||||||
break;
|
if (ec->lock_client_maximize) return;
|
||||||
|
switch (action)
|
||||||
|
{
|
||||||
|
case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
|
||||||
|
if (ec->maximized & max[state])
|
||||||
|
e_client_unmaximize(ec, E_MAXIMIZE_VERTICAL);
|
||||||
|
break;
|
||||||
|
|
||||||
case ECORE_X_WINDOW_STATE_ACTION_ADD:
|
case ECORE_X_WINDOW_STATE_ACTION_ADD:
|
||||||
if (!(ec->maximized & E_MAXIMIZE_HORIZONTAL))
|
if (ec->maximized & max[state]) break;
|
||||||
e_client_maximize(ec, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_HORIZONTAL);
|
ec->changes.need_maximize = 1;
|
||||||
break;
|
ec->maximized &= ~E_MAXIMIZE_TYPE;
|
||||||
|
ec->maximized |= (e_config->maximize_policy & E_MAXIMIZE_TYPE) | max[state];
|
||||||
|
EC_CHANGED(ec);
|
||||||
|
break;
|
||||||
|
|
||||||
case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
|
case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
|
||||||
if (ec->maximized & E_MAXIMIZE_HORIZONTAL)
|
if (ec->maximized & max[state])
|
||||||
e_client_unmaximize(ec, E_MAXIMIZE_HORIZONTAL);
|
{
|
||||||
else
|
e_client_unmaximize(ec, max[state]);
|
||||||
e_client_maximize(ec, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_HORIZONTAL);
|
break;
|
||||||
break;
|
}
|
||||||
}
|
ec->changes.need_maximize = 1;
|
||||||
|
ec->maximized &= ~E_MAXIMIZE_TYPE;
|
||||||
|
ec->maximized |= (e_config->maximize_policy & E_MAXIMIZE_TYPE) | max[state];
|
||||||
|
EC_CHANGED(ec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ECORE_X_WINDOW_STATE_SHADED:
|
case ECORE_X_WINDOW_STATE_SHADED:
|
||||||
|
|
Loading…
Reference in New Issue