Opened 11 years ago

Closed 7 years ago

#6951 closed defect (wontfix)

grid's horizontal scrolling broken in opera

Reported by: guest Owned by: nathan
Priority: high Milestone:
Component: DojoX Grid Version: 1.1.1
Keywords: opera grid Cc: sidlon@…
Blocked By: Blocking:

Description

Use Opera (either the stable Opera 9.27 or the new rendering engine in 9.50 beta 2) to view the following URLs:

http://dojotoolkit.org/files/grid3.html
http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_markup.html

If you scroll a grid horizontally, the header row doesn't change.

I realize Opera isn't officially supported by dojox, but hopefully this won't be too hard to fix. Opera 9.5 seems to be significantly faster than Firefox for displaying many dojo widgets.

Attachments (2)

test_scroll_left.html (688 bytes) - added by guest 11 years ago.
test_opera_scrollbars.html (700 bytes) - added by foxbeast 8 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 Changed 11 years ago by nathan

Owner: changed from Bryan Forbes to nathan

comment:2 Changed 11 years ago by nathan

Resolution: wontfix
Status: newclosed

This seems to be a problem with opera not allowing us to set scrollLeft on the header node. Immediately after setting it, Opera reports that scrollLeft is always 0.

Marking as wontfix.

Changed 11 years ago by guest

Attachment: test_scroll_left.html added

comment:3 Changed 11 years ago by guest

I've done some basic testing to verify that Opera 9.27 and 9.50 do support 'scrollLeft' as a read/write property. (see the attachment)

Would it be possible to get more detail on the situation where setting scrollLeft fails? If Opera is doing something strange, I'd love to get a minimal example to give their developers.

comment:4 Changed 11 years ago by nathan

Yeah - that's the thing - scrollLeft works just fine in many places - but for some reason, it dies in this case...

In dojox/grid/_View.js, there is a function called "doscroll". In it, there is the following line:

this.headerNode.scrollLeft = this.scrollboxNode.scrollLeft;

Doing a console.debug(this.scrollboxNode.scrollLeft, this.headerNode.scrollLeft); immediately after that shows opera has a scrollLeft value for the scrollboxNode, but the value isn't "sticking" for the headerNode.

All other browsers return the appropriate value. I am unsure of how to distill that into an easier test case for the opera developers...

Changed 8 years ago by foxbeast

Attachment: test_opera_scrollbars.html added

comment:5 Changed 8 years ago by foxbeast

Resolution: wontfix
Status: closedreopened

Setting width of headerNodeContainer to "32766px" (it is max value) instead of "9000em" solves this problem. Seem that Opera doesn't work correctly with higher values (see attachment above).

Solution: Just change

style=\"width:9000em\"

to

style=\"width:32766px\"

in dojox/grid/_View.js, line 22 (from dojo-release-1.5.0)

I think 32766px is quite enough for grids... as well as 9000em

comment:6 Changed 7 years ago by Tom Trenka

Resolution: wontfix
Status: reopenedclosed

Definitely marking as wontfix at this point, because we don't truly support Opera (especially 9.x), and because there are other grids that are superceding this work. Thank you for the reports though.

Note: See TracTickets for help on using tickets.