elm_win: simplify/fix recalc logic when changing csd
authorMike Blumenkrantz <zmike@osg.samsung.com>
Mon, 7 Aug 2017 17:26:41 +0000 (13:26 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Mon, 7 Aug 2017 17:26:51 +0000 (13:26 -0400)
forcing a full eval here is unnecessary and broken since such an eval could
either change geometry in unexpected ways or fail to accurately change
the underlying canvas geometry

@fix

src/lib/elementary/efl_ui_win.c

index ab947cd..1caa4e1 100644 (file)
@@ -1460,14 +1460,17 @@ _elm_win_frame_obj_update(Efl_Ui_Win_Data *sd)
 {
    int ox, oy, ow, oh;
    int cx, cy, cw, ch;
+   int w, h;
 
    if (!sd->frame_obj) return;
    _elm_win_opaque_dirty(sd);
    _elm_win_frame_geometry_adjust(sd);
    evas_object_geometry_get(sd->frame_obj, &ox, &oy, &ow, &oh);
    edje_object_part_geometry_get(sd->frame_obj, "elm.spacer.content", &cx, &cy, &cw, &ch);
-   if (_elm_win_framespace_set(sd, cx, cy, ow - cw, oh - ch))
-     _elm_win_resize_objects_eval(sd->obj, EINA_TRUE);
+   if (!_elm_win_framespace_set(sd, cx, cy, ow - cw, oh - ch)) return;
+   _elm_win_frame_geometry_adjust(sd);
+   evas_object_geometry_get(sd->obj, NULL, NULL, &w, &h);
+   TRAP(sd, resize, w, h);
 }
 
 static void