forked from enlightenment/enlightenment
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:
parent
6b606cde41
commit
1b3500f31a
|
@ -49,6 +49,7 @@ typedef struct Client_Extra {
|
||||||
} orig;
|
} orig;
|
||||||
overlay_t overlay;
|
overlay_t overlay;
|
||||||
char key[4];
|
char key[4];
|
||||||
|
int last_frame_adjustment; // FIXME: Hack for frame resize bug.
|
||||||
} Client_Extra;
|
} Client_Extra;
|
||||||
|
|
||||||
struct tiling_g tiling_g = {
|
struct tiling_g tiling_g = {
|
||||||
|
@ -242,6 +243,15 @@ _e_client_move_resize(E_Client *ec,
|
||||||
int w,
|
int w,
|
||||||
int h)
|
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);
|
DBG("%p -> %dx%d+%d+%d", ec, w, h, x, y);
|
||||||
evas_object_geometry_set(ec->frame, x, y, w, h);
|
evas_object_geometry_set(ec->frame, x, y, w, h);
|
||||||
}
|
}
|
||||||
|
@ -639,6 +649,13 @@ static void _move_or_resize(E_Client *ec)
|
||||||
return;
|
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);
|
Window_Tree *item = tiling_window_tree_client_find(_G.tinfo->tree, ec);
|
||||||
if (!item)
|
if (!item)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue