Tiling2: Added an hack to workaround the stupid e resize bug.

The bug with the frame created after the first resize.
This commit is contained in:
Tom Hacohen 2014-01-15 13:03:16 +00:00
parent 6b606cde41
commit 1b3500f31a
1 changed files with 17 additions and 0 deletions

View File

@ -49,6 +49,7 @@ typedef struct Client_Extra {
} orig;
overlay_t overlay;
char key[4];
int last_frame_adjustment; // FIXME: Hack for frame resize bug.
} Client_Extra;
struct tiling_g tiling_g = {
@ -242,6 +243,15 @@ _e_client_move_resize(E_Client *ec,
int w,
int h)
{
Client_Extra *extra;
extra = eina_hash_find(_G.client_extras, &ec);
if (!extra) {
ERR("No extra for %p", ec);
return;
}
extra->last_frame_adjustment = MAX(ec->h - ec->client.h, ec->w - ec->client.w);
DBG("%p -> %dx%d+%d+%d", ec, w, h, x, y);
evas_object_geometry_set(ec->frame, x, y, w, h);
}
@ -639,6 +649,13 @@ static void _move_or_resize(E_Client *ec)
return;
}
if (!extra->last_frame_adjustment)
{
printf("This is probably because of the frame adjustment bug. Return\n");
_reapply_tree();
return;
}
Window_Tree *item = tiling_window_tree_client_find(_G.tinfo->tree, ec);
if (!item)
{