[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 { class DefaultLayout extends Layout {
override public function place(group:IGroupView, views:Array<IView<Dynamic>>):Void { override public function place(group:IGroupView, views:Array<IView<Dynamic>>):Void {
var width:Float = 0;
var height:Float = 0;
for (view in views) { for (view in views) {
setViewWidth(group, view); setViewWidth(group, view);
setViewHeight(group, view); setViewHeight(group, view);
placeViewHorizontal(group, view); placeViewHorizontal(group, view);
placeViewVertical(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>> { 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 { public function reject(reason:Dynamic):Void {
manager.close(this); manager.close(this);
if (deferred != null) { if (deferred != null) {
deferred.throwError(reason); //deferred.throwError(reason);
deferred.resolve(null);
deferred = null; deferred = null;
} }
} }

View File

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

View File

@@ -18,16 +18,17 @@ class LayoutSkin implements ISkin<IGroupView> {
view.layout.margin = layout.margin; view.layout.margin = layout.margin;
updated = true; 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; view.layout.hAlign = layout.hAlign;
updated = true; 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; view.layout.vAlign = layout.vAlign;
updated = true; updated = true;
} }
if (updated) { if (updated) {
view.toUpdate(); view.toUpdate();
view.toUpdateParent();
} }
} }
} }