Closed
Bug 12012
Opened 25 years ago
Closed 25 years ago
XUL doesn't reflow correctly on resize
Categories
(Core :: XUL, defect, P1)
Core
XUL
Tracking
()
VERIFIED
FIXED
M14
People
(Reporter: dbaron, Assigned: eric)
References
Details
(Whiteboard: This is a table bug. Dep marked on 12287)
The contents of XUL files do not reflow correctly when the containing area is
resized. This will be a serious problem for (some) sidebar panels once bug 8000
is fixed (which it should be soon).
To see the problems, download:
http://www.fas.harvard.edu/~dbaron/nstmp/M9-3/when-com.xul
http://www.fas.harvard.edu/~dbaron/nstmp/M9-3/when-com.css
http://www.fas.harvard.edu/~dbaron/nstmp/M9-3/when-com.js
http://www.fas.harvard.edu/~dbaron/nstmp/M9-3/when-com.rdf
to your local hard disk, put them in the same directory, and load when-com.xul
in *viewer*. (It doesn't work over HTTP right now. See bug 11112.) Notice
that you can resize viewer and *then* reload, and thigs will (usually, although
sometimes it's quirky) resize to the size of the window. However, if you resize
viewer horizontally, things don't resize the way they do when you reload. They
should. (The most serious problem is if you load when the window is large and
then shrink it.)
Tested in:
* Linux viewer 1999-08-15-08-M9
* Linux viewer 1999-08-16-08-M9
* Windows viewer 1999-08-15-09-M9
* Windows viewer 1999-08-16-09-M9
(Note: does not work in builds for about three weeks before 1999-08-15 due to
bug 10712 (Win only) and bug 11577 (all).)
Updated•25 years ago
|
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → INVALID
Comment 1•25 years ago
|
||
resolving as invalid, Viewer is a test app for Gecko, not a target platform for
XUL.
Reporter | ||
Comment 2•25 years ago
|
||
First, I'm not sure this bug is as general as I originally thought. It may be
particular to a certain configuration of boxes and springs (that I use).
Second, do you have any reason to believe that once the sidebar is resizable,
things will behave any differently than they do in viewer now? If not, I think
this bug should be reopened. Or should sidebar panels not be written in XUL?
Comment 3•25 years ago
|
||
If the problem is limited to Viewer, then it should be reassigned to someone in
Gecko if reopened. I don't really have any opinion about Viewer, other than
that it should not be the focus of our development, since we are shipping only
AppRunner and its components.
Reporter | ||
Updated•25 years ago
|
Status: RESOLVED → REOPENED
Reporter | ||
Comment 4•25 years ago
|
||
OK, I observed the same thing in the content window of apprunner, Linux
1999-08-16-08-M9 (I didn't try it before in apprunner because my (incorrect)
memory of a bug that apprunner couldn't be resized very small, on Linux anyway).
I was testing resizability in viewer because the sidebar can't be resized yet.
The sidebar will be resizable soon, which is why I was testing it. It's an XUL
bug, unless XUL acts differently in the sidebar than it does in the content
frame of apprunner or in viewer.
Reopening.
Reporter | ||
Updated•25 years ago
|
Resolution: INVALID → ---
Updated•25 years ago
|
Assignee: trudelle → evaughan
Status: REOPENED → NEW
Comment 5•25 years ago
|
||
reassigning to evaughan, since you say it may be specific to your usage of boxes
and springs.
Assignee | ||
Updated•25 years ago
|
Status: NEW → ASSIGNED
Updated•25 years ago
|
Priority: P3 → P1
Whiteboard: [BLOCKER][DOGFOOD]
Target Milestone: M10
Comment 6•25 years ago
|
||
Made the following changes as this is blocking David Baron's panel development
(or will be as soon as 8000 is fixed):
1) changed from P3 to P1
2) set target milestone to M10
3) marked [BLOCKER][DOGFOOD] in status whiteboard because it is blocking the
development of panels and preventing us from reaching dogfood for
panel developability
4) added relevant PMs to cc: list
Also note that David's internship ends in late September; if we don't get this
fixed by the end of August at the latest, I doubt we'll be able to have David
finish as much panel demo, sample code, and doc development work as we had
hoped.
It is urgent that we fix this bug soon so that development of panels by dbaron
(for demo development) and external partners (for beta panels) can move forward.
Totally understand the pressure everyone's under; just want to make sure this
bug gets the attention it needs so we can move forward and make the panels a
success.
Assignee | ||
Comment 7•25 years ago
|
||
I'm finishing up some other bugs.
but I will work on this today.
Assignee | ||
Updated•25 years ago
|
Severity: major → blocker
Assignee | ||
Updated•25 years ago
|
Whiteboard: [BLOCKER][DOGFOOD] → Will work on this today
Assignee | ||
Comment 8•25 years ago
|
||
In looking at this almost all of your layout is tables. Not boxes. Tables have a
major bug in them that causes them to ignore the computed size given to them by
a box. This is filed as bug: 12287.
Placing a dependency on bug 12287
Do you really need to use tables this extensively to get your desired layout?
Assignee | ||
Updated•25 years ago
|
Whiteboard: Will work on this today → This is a table bug. Dep marked on 12287
Assignee | ||
Updated•25 years ago
|
Target Milestone: M10 → M11
Assignee | ||
Updated•25 years ago
|
Target Milestone: M11 → M14
Assignee | ||
Updated•25 years ago
|
Assignee: evaughan → karnaze
Status: ASSIGNED → NEW
Assignee | ||
Comment 9•25 years ago
|
||
This crashes in tables. The reflow state looks good. Both the width and height
are calculated. Available height is NS_AUTOHEIGHT.
nsCellMap::GetCellInfoAt(int 1, int 0, int * 0x0012b4a0, int * 0x0012b4a4) line
512
nsTableFrame::GetCellInfoAt(int 1, int 0, int * 0x0012b4a0, int * 0x0012b4a4)
line 5285
BasicTableLayoutStrategy::AssignPercentageColumnWidths(int 2505, int 0) line 802
+ 30 bytes
BasicTableLayoutStrategy::BalanceColumnWidths(nsIStyleContext * 0x02d8ed50,
const nsHTMLReflowState & {...}, int 2595) line 208 + 37 bytes
nsTableFrame::BalanceColumnWidths(nsIPresContext & {...}, const
nsHTMLReflowState & {...}, const nsSize & {...}, nsSize * 0x00000000) line 3896
nsTableFrame::Reflow(nsTableFrame * const 0x02d8eac4, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 2302
nsContainerFrame::ReflowChild(nsIFrame * 0x02d8eac0, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 372 + 28 bytes
nsTableOuterFrame::Reflow(nsTableOuterFrame * const 0x02d8eb64, nsIPresContext &
{...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned
int & 0) line 902 + 37 bytes
nsBlockReflowContext::ReflowBlock(nsIFrame * 0x02d8eb60, const nsRect & {...},
int 1, int 0, int 0, nsMargin & {...}, unsigned int & 0) line 229 + 42 bytes
nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox *
0x02d8be40, int * 0x0012bf40) line 3136 + 59 bytes
nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x02d8be40, int
* 0x0012bf40, int 0) line 2509 + 20 bytes
nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2320 + 27 bytes
nsBlockFrame::Reflow(nsBlockFrame * const 0x02d94074, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 1415 + 18 bytes
nsBoxFrame::FlowChildAt(nsIFrame * 0x02d94070, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0,
nsCalculatedBoxInfo & {...}, int & 0, nsString & {...}) line 1100
nsBoxFrame::FlowChildren(nsIPresContext & {...}, nsHTMLReflowMetrics & {...},
const nsHTMLReflowState & {...}, unsigned int & 0, nsRect & {...}) line 699
nsBoxFrame::Reflow(nsBoxFrame * const 0x02407574, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 534
nsBoxFrame::FlowChildAt(nsIFrame * 0x02407570, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0,
nsCalculatedBoxInfo & {...}, int & 0, nsString & {...}) line 1100
nsBoxFrame::FlowChildren(nsIPresContext & {...}, nsHTMLReflowMetrics & {...},
const nsHTMLReflowState & {...}, unsigned int & 0, nsRect & {...}) line 699
nsBoxFrame::Reflow(nsBoxFrame * const 0x02405a4c, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 534
nsBoxFrame::FlowChildAt(nsIFrame * 0x02405a48, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0,
nsCalculatedBoxInfo & {...}, int & 0, nsString & {...}) line 1100
nsBoxFrame::FlowChildren(nsIPresContext & {...}, nsHTMLReflowMetrics & {...},
const nsHTMLReflowState & {...}, unsigned int & 0, nsRect & {...}) line 699
nsBoxFrame::Reflow(nsBoxFrame * const 0x02403f24, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 534
nsContainerFrame::ReflowChild(nsIFrame * 0x02403f20, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 372 + 28 bytes
RootFrame::Reflow(RootFrame * const 0x02d85a44, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 330
nsContainerFrame::ReflowChild(nsIFrame * 0x02d85a40, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 372 + 28 bytes
ViewportFrame::Reflow(ViewportFrame * const 0x02d85ab4, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 516
nsHTMLReflowCommand::Dispatch(nsHTMLReflowCommand * const 0x02d89da0,
nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsSize & {...},
nsIRenderingContext & {...}) line 141
PresShell::ProcessReflowCommands(PresShell * const 0x02b11d90) line 1391
PresShell::ExitReflowLock(PresShell * const 0x02b11d90) line 667
PresShell::ContentAppended(PresShell * const 0x02b11d98, nsIDocument *
0x027bc140, nsIContent * 0x02d63460, int 0) line 1824
XULDocumentImpl::ContentAppended(XULDocumentImpl * const 0x027bc140, nsIContent
* 0x02d63460, int 0) line 1802
nsGenericHTMLContainerElement::AppendChildTo(nsIContent * 0x02d884bc, int 1)
line 2951
nsGenericHTMLContainerElement::InsertBefore(nsIDOMNode * 0x02d884b0, nsIDOMNode
* 0x00000000, nsIDOMNode * * 0x0012d628) line 2604 + 14 bytes
nsGenericHTMLContainerElement::AppendChild(nsIDOMNode * 0x02d884b0, nsIDOMNode *
* 0x0012d628) line 2791
nsHTMLTableCellElement::AppendChild(nsHTMLTableCellElement * const 0x02d63454,
nsIDOMNode * 0x02d884b0, nsIDOMNode * * 0x0012d628) line 62 + 22 bytes
NodeAppendChild(JSContext * 0x027541d0, JSObject * 0x023d97a8, unsigned int 1,
long * 0x023d76cc, long * 0x0012d6e4) line 617 + 25 bytes
js_Invoke(JSContext * 0x027541d0, unsigned int 1, unsigned int 0) line 672 + 26
bytes
js_Interpret(JSContext * 0x027541d0, long * 0x0012df5c) line 2248 + 15 bytes
js_Invoke(JSContext * 0x027541d0, unsigned int 0, unsigned int 0) line 688 + 13
bytes
js_Interpret(JSContext * 0x027541d0, long * 0x0012e790) line 2248 + 15 bytes
js_Invoke(JSContext * 0x027541d0, unsigned int 1, unsigned int 0) line 688 + 13
bytes
js_Interpret(JSContext * 0x027541d0, long * 0x0012efc4) line 2248 + 15 bytes
js_Invoke(JSContext * 0x027541d0, unsigned int 0, unsigned int 0) line 688 + 13
bytes
js_Interpret(JSContext * 0x027541d0, long * 0x0012f7f8) line 2248 + 15 bytes
js_Invoke(JSContext * 0x027541d0, unsigned int 1, unsigned int 2) line 688 + 13
bytes
js_InternalCall(JSContext * 0x027541d0, JSObject * 0x012f9d00, long 19900488,
unsigned int 1, long * 0x0012f978, long * 0x0012f930) line 765 + 15 bytes
JS_CallFunction(JSContext * 0x027541d0, JSObject * 0x012f9d00, JSFunction *
0x02c41a90, unsigned int 1, long * 0x0012f978, long * 0x0012f930) line 2653 + 32
bytes
nsJSContext::CallFunction(nsJSContext * const 0x02755030, void * 0x012f9d00,
void * 0x02c41a90, unsigned int 1, void * 0x0012f978, int * 0x0012f974) line 231
+ 39 bytes
nsJSEventListener::HandleEvent(nsIDOMEvent * 0x02d998e0) line 103 + 48 bytes
nsEventListenerManager::HandleEvent(nsIPresContext & {...}, nsEvent *
0x0012fcd0, nsIDOMEvent * * 0x0012fb78, unsigned int 7, nsEventStatus &
nsEventStatus_eIgnore) line 1025 + 21 bytes
GlobalWindowImpl::HandleDOMEvent(GlobalWindowImpl * const 0x027544a4,
nsIPresContext & {...}, nsEvent * 0x0012fcd0, nsIDOMEvent * * 0x0012fb78,
unsigned int 1, nsEventStatus & nsEventStatus_eIgnore) line 2897
nsWebShell::OnEndDocumentLoad(nsWebShell * const 0x027549b4, nsIDocumentLoader *
0x027540e0, nsIChannel * 0x02d362f0, unsigned int 0, nsIDocumentLoaderObserver *
0x027549b4) line 3330 + 34 bytes
nsDocLoaderImpl::FireOnEndDocumentLoad(nsDocLoaderImpl * 0x027540e0, nsIChannel
* 0x02d362f0, unsigned int 0) line 849
nsDocLoaderImpl::OnStopRequest(nsDocLoaderImpl * const 0x027540e4, nsIChannel *
0x02c3d190, nsISupports * 0x00000000, unsigned int 0, const unsigned short *
0x00000000) line 730
nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x02d99990) line
322
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x02d99940) line 169 + 12 bytes
PL_HandleEvent(PLEvent * 0x02d99940) line 534 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x0106eaa0) line 493 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x001c020a, unsigned int 49432, unsigned int 0,
long 17230496) line 963 + 9 bytes
USER32! 77e71820()
0106eaa0()
Updated•25 years ago
|
Assignee: karnaze → evaughan
Comment 10•25 years ago
|
||
Eric, I checked in a fix to nsTableRowGroupFrame.cpp for the crash.
Assignee | ||
Updated•25 years ago
|
Status: NEW → RESOLVED
Closed: 25 years ago → 25 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 11•25 years ago
|
||
yep that fixed it thanks Chris!
Updated•25 years ago
|
Status: RESOLVED → VERIFIED
Comment 12•25 years ago
|
||
Marking VERIFIED FIXED on:
MacOS9 1999110308 apprunner
Linux6 1999110309 apprunner
Win98 1999110308 apprunner
Comment 13•25 years ago
|
||
BULK MOVE: Changing component from XUL to XP Toolkit/Widgets: XUL. XUL
component will be deleted.
Component: XUL → XP Toolkit/Widgets: XUL
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: ckritzer → xptoolkit.widgets
You need to log in
before you can comment on or make changes to this bug.
Description
•