|
|
@@ -5622,28 +5622,13 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler, |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
this.width = width; |
|
|
|
if (width != null && !"".equals(width)) { |
|
|
|
super.setWidth(width); |
|
|
|
int innerPixels = Util.getRequiredWidth(this) - getBorderWidth(); |
|
|
|
int innerPixels = getOffsetWidth() - getBorderWidth(); |
|
|
|
if (innerPixels < 0) { |
|
|
|
/* |
|
|
|
* If innerPixels becomes negative it means that something has |
|
|
|
* gone wrong with the width calculations (most likely a timing |
|
|
|
* issue where offsetWidth is returning 0). Setting innerPixels |
|
|
|
* to 0 here and hope for the best will cause issues like #6494. |
|
|
|
* Instead we defer the width setting so we know that the |
|
|
|
* offsetwidth return a sane value |
|
|
|
*/ |
|
|
|
final String deferredWidth = width; |
|
|
|
Scheduler.get().scheduleDeferred(new ScheduledCommand() { |
|
|
|
public void execute() { |
|
|
|
setWidth(deferredWidth); |
|
|
|
} |
|
|
|
}); |
|
|
|
return; |
|
|
|
innerPixels = 0; |
|
|
|
} |
|
|
|
|
|
|
|
this.width = width; |
|
|
|
setContentWidth(innerPixels); |
|
|
|
|
|
|
|
// readjust undefined width columns |
|
|
@@ -5652,7 +5637,6 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler, |
|
|
|
} else { |
|
|
|
|
|
|
|
// Undefined width |
|
|
|
this.width = width; |
|
|
|
super.setWidth(""); |
|
|
|
|
|
|
|
// Readjust size of table |
|
|
@@ -5815,9 +5799,6 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler, |
|
|
|
* @param pixels |
|
|
|
*/ |
|
|
|
private void setContentWidth(int pixels) { |
|
|
|
if (pixels == 0) { |
|
|
|
VConsole.error("Setting width " + pixels + "px"); |
|
|
|
} |
|
|
|
tHead.setWidth(pixels + "px"); |
|
|
|
scrollBodyPanel.setWidth(pixels + "px"); |
|
|
|
tFoot.setWidth(pixels + "px"); |