e internal dialogs now correctly remember their maximization state and are now less prone to moving around crazily if e is restarted while they are maximized

SVN revision: 81472
This commit is contained in:
Mike Blumenkrantz 2012-12-20 17:51:42 +00:00
parent 5f5c2fb4d3
commit d7bc5ae149
2 changed files with 14 additions and 0 deletions

View File

@ -391,6 +391,10 @@ _e_remember_update(E_Border *bd, E_Remember *rem)
rem->prop.w = bd->client.w;
rem->prop.h = bd->client.h;
}
if (bd->internal)
rem->prop.maximize = bd->maximized & E_MAXIMIZE_DIRECTION;
else
rem->prop.maximize = 0;
}
if (rem->apply & E_REMEMBER_APPLY_LAYER)
{
@ -709,6 +713,14 @@ _e_remember_cb_hook_pre_post_fetch(void *data __UNUSED__, void *border)
}
bd->w = bd->client.w + bd->client_inset.l + bd->client_inset.r;
bd->h = bd->client.h + bd->client_inset.t + bd->client_inset.b;
if (rem->prop.maximize)
{
bd->saved.x = rem->prop.pos_x;
bd->saved.y = rem->prop.pos_y;
bd->saved.w = bd->w;
bd->saved.h = bd->h;
bd->maximized = rem->prop.maximize | e_config->maximize_policy;
}
bd->changes.size = 1;
bd->changes.shape = 1;
}
@ -927,6 +939,7 @@ _e_remember_init_edd(void)
E_CONFIG_VAL(D, T, prop.w, INT);
E_CONFIG_VAL(D, T, prop.h, INT);
E_CONFIG_VAL(D, T, prop.layer, INT);
E_CONFIG_VAL(D, T, prop.maximize, UINT);
E_CONFIG_VAL(D, T, prop.lock_user_location, UCHAR);
E_CONFIG_VAL(D, T, prop.lock_client_location, UCHAR);
E_CONFIG_VAL(D, T, prop.lock_user_size, UCHAR);

View File

@ -62,6 +62,7 @@ struct _E_Remember
int pos_w, pos_h;
int w, h;
int layer;
unsigned int maximize; //just direction
unsigned char lock_user_location;
unsigned char lock_client_location;