Ticket #758 (closed bug: fixed)

Opened 6 years ago

Last modified 5 years ago

BaseLayer switching in Opera, Safari

Reported by: euzuro Owned by:
Priority: minor Milestone: 2.6 Release
Component: Tile Version: 2.4
Keywords: Cc:
State: Complete

Description

As reported by John W on the users list:

I have a problem with switching between base layers in Opera and
Konqueror. The problem can be reproduced both on my application and on
the Mumbai freemap, mumbai.freemap.in . To reproduce the problem follow
these steps:

Let a base layer completely load in.
Switch to a second base layer and let that completely load in.
Switch back to the first base layer - it does not appear.

This will happen when switching to any base layer that has been
previously loaded, without zooming or panning between layer switches.
Any ideas on what the problem could be? May be something to do with
their AJAX implementation?

...

I have tested in Safari and have found that the problem with switching
between base layers also occurs with this browser. I assume this problem is
something to do with browser (in)compatibility and Ajax? If so, I guess the
problem could lie within the Rico framework? Does anybody have any possible
ideas for a work around? To summarize, I have tried the following browsers:

Firefox - PASS
Internet Explorer - PASS
Opera - FAIL
Safari - FAIL
Konqueror - FAIL (not so bothered about Konqueror)

Attachments

blank_tile_patch.patch Download (0.7 KB) - added by crschmidt 6 years ago.

Change History

Changed 6 years ago by euzuro

i've tested this on Opera and it is just as John has described. Maybe an Opera user can help fix this.

Changed 6 years ago by euzuro

just tested on safari in windows and the bug is apparent there too.

Changed 6 years ago by crschmidt

#814 seems to be a duplicate of this report, but it applies to overlays instead of base layers.

Changed 6 years ago by crschmidt

  • milestone changed from 2.5 Release to 2.6 Release

Changed 6 years ago by crschmidt

  • summary changed from BaseLayer switching in Opera to BaseLayer switching in Opera, Safari

Changed 6 years ago by crschmidt

  • component changed from Layer to Tile

For Safari, this is:

Bug 9582: img.onload event ONLY fires when .src changes  http://bugs.webkit.org/show_bug.cgi?id=9582

A workaround is to make layer.getUrl() return a URL with additional parameters, so that the src is always changed, but that's kind of ugly.

Attaching a patch with a second workaround, which sets the Tile URL to blank.gif in clear() (which will then be reset shortly after in draw()).

Changed 6 years ago by crschmidt

Changed 6 years ago by crschmidt

I've tested this patch in Safari and Opera, and it does fix the problem.

Changed 6 years ago by penyaskito

I've tested the patch with the Mumbai app with WindowsXP & Opera9 and works fine. Thanks crschmidt!

Changed 6 years ago by pspencer

This bug also affects window resize events in Safari (and presumably Opera/Konqueror).

Changed 5 years ago by crschmidt

  • state set to Review

Changed 5 years ago by euzuro

  • state changed from Review to Commit

patch looks good. please commit.

Changed 5 years ago by crschmidt

  • status changed from new to closed
  • state changed from Commit to Complete
  • resolution set to fixed
Note: See TracTickets for help on using tickets.