[view] layout/skin fixes

This commit is contained in:
2019-04-18 17:51:17 +03:00
parent 3638c8d2b6
commit cd6ad0e3ed
4 changed files with 11 additions and 3 deletions

View File

@@ -7,12 +7,17 @@ import haxework.view.core.HAlign;
class DefaultLayout extends Layout {
override public function place(group:IGroupView, views:Array<IView<Dynamic>>):Void {
var width:Float = 0;
var height:Float = 0;
for (view in views) {
setViewWidth(group, view);
setViewHeight(group, view);
placeViewHorizontal(group, view);
placeViewVertical(group, view);
width = Math.max(width, view.width);
height = Math.max(height, view.height);
}
if (!overflow) group.setContentSize(width, height, "group");
}
private function filterViews(group:IGroupView, views:Array<IView<Dynamic>>):Array<IView<Dynamic>> {

View File

@@ -62,7 +62,8 @@ class PopupView<R> extends GroupView {
public function reject(reason:Dynamic):Void {
manager.close(this);
if (deferred != null) {
deferred.throwError(reason);
//deferred.throwError(reason);
deferred.resolve(null);
deferred = null;
}
}

View File

@@ -44,6 +44,7 @@ class GeometrySkin implements ISkin<IView<Dynamic>> {
}
if (updated) {
view.toUpdate();
view.toUpdateParent();
}
}
}

View File

@@ -18,16 +18,17 @@ class LayoutSkin implements ISkin<IGroupView> {
view.layout.margin = layout.margin;
updated = true;
}
if (layout.hAlign != NONE && layout.hAlign != view.geometry.hAlign) {
if (layout.hAlign != NONE && layout.hAlign != view.layout.hAlign) {
view.layout.hAlign = layout.hAlign;
updated = true;
}
if (layout.vAlign != NONE && layout.vAlign != view.geometry.vAlign) {
if (layout.vAlign != NONE && layout.vAlign != view.layout.vAlign) {
view.layout.vAlign = layout.vAlign;
updated = true;
}
if (updated) {
view.toUpdate();
view.toUpdateParent();
}
}
}