fix bug with dialog resize.

This nasty bug was more evident with dialog reuse on configuration
Basic/Advanced toggle, on some resolutions like 1280x1024 it was
always reprodutible.

The problem spotted by Manio is that the dialog contents is resized
but the window is not. The bug follow is:

 * window is at some given size (640x512)
 * user toggles contents, calls e_dialog_show()
 * bg_object (window contents) is resized to MIN (!!!)
 * e_win_resize is called with MIN (so far, so good)
 * something calls e_util_win_auto_resize_fill(), size is back to 640x512
 * _e_border_eval() resizes to the last value 640x512, it's unchanged
   so _ecore_evas_x_resize() checks for size being the same and ignore,
   not even callking back fn_resize (user callback, _e_dialog_cb_resize).
 * window is at 640x512, while bg_object is at MIN, BUG!

One solution is to never change bg_object from outside
_e_dialog_cb_resize, like it's after this patch. The other is to
always call fn_resize even if it did not changed, which could lead to
lots of useless work.

By: manio
Confirmed: barbieri


SVN revision: 41515
This commit is contained in:
Gustavo Sverzut Barbieri 2009-07-27 19:32:04 +00:00
parent 159ac2b3f7
commit f16d0a13ef
1 changed files with 0 additions and 1 deletions

View File

@ -239,7 +239,6 @@ e_dialog_show(E_Dialog *dia)
edje_object_part_swallow(dia->bg_object, "e.swallow.buttons", o);
edje_object_size_min_calc(dia->bg_object, &mw, &mh);
evas_object_resize(dia->bg_object, mw, mh);
e_win_resize(dia->win, mw, mh);
e_win_size_min_set(dia->win, mw, mh);
dia->min_w = mw;