Skip to content

Commit 3107fae

Browse files
committed
take also from Width into account
1 parent 7a159ca commit 3107fae

File tree

1 file changed

+42
-10
lines changed
  • services/static-webserver/client/source/class/osparc/ui/markdown

1 file changed

+42
-10
lines changed

services/static-webserver/client/source/class/osparc/ui/markdown/Markdown.js

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,25 @@ qx.Class.define("osparc.ui.markdown.Markdown", {
138138
} else {
139139
this.setMinHeight(elemHeight);
140140
}
141+
142+
const elemMaxWidth = this.__getChildrenElementMaxWidth(domElement.children);
143+
if (this.getMaxWidth() && elemMaxWidth > this.getMaxWidth()) {
144+
this.setWidth(elemMaxWidth);
145+
} else {
146+
this.setMinWidth(elemMaxWidth);
147+
}
148+
}
149+
},
150+
151+
__getDomElement: function() {
152+
if (!this.getContentElement || this.getContentElement() === null) {
153+
return null;
141154
}
155+
const domElement = this.getContentElement().getDomElement();
156+
if (domElement) {
157+
return domElement;
158+
}
159+
return null;
142160
},
143161

144162
__getChildrenElementHeight: function(children) {
@@ -155,23 +173,37 @@ qx.Class.define("osparc.ui.markdown.Markdown", {
155173
if (this.getNoMargin()) {
156174
element.style.marginTop = 0;
157175
element.style.marginBottom = 0;
158-
const size = qx.bom.element.Dimension.getSize(element);
176+
const size = this.__getElementSize(element);
159177
return size.height;
160178
}
161-
const size = qx.bom.element.Dimension.getSize(element);
179+
const size = this.__getElementSize(element);
162180
// add padding
163181
return size.height + 20;
164182
},
165183

166-
__getDomElement: function() {
167-
if (!this.getContentElement || this.getContentElement() === null) {
168-
return null;
184+
__getChildrenElementMaxWidth: function(children) {
185+
let maxWidth = 0;
186+
for (let i=0; i < children.length; i++) {
187+
maxWidth = Math.max(this.__getElementWidth(children[i]), maxWidth);
169188
}
170-
const domElement = this.getContentElement().getDomElement();
171-
if (domElement) {
172-
return domElement;
189+
return maxWidth;
190+
},
191+
192+
__getElementWidth: function(element) {
193+
const size = this.__getElementSize(element);
194+
return size.width;
195+
},
196+
197+
__getElementSize: function(element) {
198+
if (
199+
element &&
200+
element.children &&
201+
element.children.length &&
202+
element.children[0].localName === "img"
203+
) {
204+
return qx.bom.element.Dimension.getSize(element.children[0]);
173205
}
174-
return null;
175-
}
206+
return qx.bom.element.Dimension.getSize(element);
207+
},
176208
}
177209
});

0 commit comments

Comments
 (0)