Opened 10 years ago

Closed 7 years ago

#9519 closed defect (fixed)

TableContainer + Textarea + TabContainer = Error on IE

Reported by: vlad Owned by: dylan
Priority: blocker Milestone: 1.9
Component: Dojox Version: 1.3.1
Keywords: tablecontainer, textarea, tabcontainer Cc:
Blocked By: Blocking:

Description (last modified by bill)

this is my 3d and hopefully last bug for tonight (others are #9517 and #9518) -- it has been a rough week for some reason...

I am using Dojo Trunk (as of today)

And the combination of two dijit widgets and one dojox widget fails for me on IE8 with an error

if(textarea.style.height != newH){

textarea.style.maxHeight = 	textarea.style.height = newH;

in textarea.js

This problem was quite challenging to reproduce in self-containing testcase. As it would not fail outside of my application, but failed every time when within.

Finally by switching different widgets/tests around I got a combination where textarea fails when included in the TableLayout container (may be it fails when it included in Tab container... do not).

So to get this to fail with an error in IE8, of course IE8 script debugging must be on.

And you need to have

tab container (dijit)

table container (dojox)

Textarea (dijit)

I am attaching a test case where it fails (you can rename it to html, but the links to dojo and style sheets of course need to change).

I am not quite sure what's happening but it appears that 'resize' call is issued by the Tablecontainer and then a resize of textarea is called and then the failure.

I need to note that this happens only on initial rendering of pages, not when I resize things after the page is shown also variable newH in textarea.js shows -36px while in IE8

This problem does not occur in Opera 10beta, FF3, Safari 4.0 on PC.

I have tried probably 50 various combinations of style settings, positions/etc on the text area -- but nothing helps -- I just have no idea what's going on.

I saw that there were changes in the textarea.js a couple of weeks ago in regards to Chrome/Opera? support (right around the area where the problem is hapenning) -- but I do not know for sure if this has anything to do with the problem.

Attachments (2)

dojo_text_area_tableContainer.JPG (103.5 KB) - added by vlad 10 years ago.
TableLayout_PROBLEM_1.php (5.3 KB) - added by vlad 10 years ago.

Download all attachments as: .zip

Change History (15)

comment:1 Changed 10 years ago by bill

Milestone: 1.3.2tbd

Thanks for the tickets, and especially for the test cases. We'll take a look.

I'm guessing it has something to do w/the textarea being initialized hidden, and thus newH is 0 or negative or NaN...

comment:2 Changed 10 years ago by bill

Description: modified (diff)

Hmm, it's not reproducing for me, not sure what the difference is. I imagine it's a race condition. What is newH for you when it fails?

Changed 10 years ago by vlad

comment:3 Changed 10 years ago by vlad

Hi, so I cannot reproduce it now in the test case as well. I cannot understand this... But within my program it fails.

I am attaching a screen shot with the debugger it looks like 'height' is not defined.

I will work on it more.. to see if I can get my test case working again (all I did was reboot my computer a couple of times and installed trillian chat client)

comment:4 Changed 10 years ago by vlad

Ok, I can repro it now. See if you can see it. I am attaching an updated test case -- just more text areas all over the place.

(the uploaded file is the same name so it should replace the original one)

thank you

Changed 10 years ago by vlad

Attachment: TableLayout_PROBLEM_1.php added

comment:5 Changed 10 years ago by bill

Component: DijitDojox
Owner: set to Shane O'Sullivan
Summary: TableContainer + Textarea + TabContainer = Error on IE8TableContainer + Textarea + TabContainer = Error on IE

Vlad - OK thanks that reproduces. One of the textarea's is getting set to height = -35px.

Shane - looks like a problem w/TableContainer. TableContainer.startup() calls:

this.resize();
this.layout();

Shouldn't those two calls be reversed? TableContainer.resize() calls resize() on the children !Textarea widgets. Those !Textarea widgets need to know how much space they have, but they don't because TableContainer hasn't laid out yet.

comment:6 Changed 10 years ago by vlad

by the way, I have been using Bill's suggestion to reverse the layout/resize method calls. I modified the dojo file TableContainer?.js and that suggestion works fine for me now (IE8 does not have the problem and FF3, Safari 4 and Opera 10b2 continue working fine)

comment:7 Changed 10 years ago by vlad

I appear to have this problem with TextArea? widget, probably with the same underlying cause, when TextArea? is sitting right within a dijit.layout.ContentPane? of a TabContainer? (that's it does not sit within a TableContainer?)

comment:8 Changed 10 years ago by bill

I filed the Textarea bug as #9836, I think it's different than this ticket.

comment:9 Changed 10 years ago by Shane O'Sullivan

I am unable to reproduce this error. I have tested the attached PHP file in IE8, and all seems to work as it should.

Is this still an issue?

comment:10 Changed 10 years ago by dante

Milestone: tbdfuture

please determine if still valid.

comment:11 Changed 8 years ago by Colin Snover

Priority: highblocker

Bulk update of open ticket priorities.

comment:12 Changed 7 years ago by dylan

Milestone: future1.9
Owner: changed from Shane O'Sullivan to dylan
Status: newassigned

Going to fix this per Bill's suggestion from four years ago.

comment:13 Changed 7 years ago by dylan

Resolution: fixed
Status: assignedclosed

In [30831]:

fixes #9519, fix order of layout and resize for dojox/widget/TableContainer

Note: See TracTickets for help on using tickets.