After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 597175 - Nautilus background image patterns corrupt if background bitmap image dimensions is larger than the Nautilus window dimensions
Nautilus background image patterns corrupt if background bitmap image dimensi...
Status: RESOLVED OBSOLETE
Product: nautilus
Classification: Core
Component: [obsolete] Backgrounds Emblems and Themes
2.28.x
Other Linux
: Normal normal
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-10-03 00:35 UTC by Jeff Sereno
Modified: 2010-08-02 11:12 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Example of corruption. (53.57 KB, image/jpeg)
2009-10-03 00:42 UTC, Jeff Sereno
Details

Description Jeff Sereno 2009-10-03 00:35:15 UTC
Nautilus has the ability to show a bitmap image as a background of the main body area of a Nautilus window where all your file and directory icons are shown instead of just a plain boring colour. Nautilus includes a number of sample tiled patterns, but you can also use your own.

ISSUE:
Adding a new bitmap image to use as a background pattern works fine, however if that bitmap image is larger than the Nautilus window (eg: a 1024x768 image used inside a 640x480 window), not only does the bitmap not get tiled properly (the tile size is that of the visible area of the Nautilus window itself, cropping the original image), but when the Nautilus window is closed and re-opened and you scroll the window to see file and directory icons that are beyond the visible area of the window, either black or corrupted graphic information appears, eventually followed by the uncorrupted visible area of the pattern graphic again, at the real dimension of the background image, ie: if the background image is 1024x768 and your window is 640x480 in size, then the pattern from pixel 481 to 768 vertically and pixel 641 to 1024 horizontally is corrupted or missing altogether (black), but the pattern then correctly repeats (wraps) at pixel 1025 horizontally, but only for the next 640 pixels before it corrupts again, and wraps vertically at pixel 769, but again only for the next 480 pixels before becoming corrupt again.

Under NVidia gfx drivers v180, v185 and v190, the corruption appears to be copied chunks of other formerly used areas of graphics memory, in my case it is mostly chunks of my second display. Under Virtualbox, all I get is black in the corrupted areas.

I am using Ubuntu Jaunty 9.04 64-bit but have also seen the problem under Jaunty 32-bit as well. Nautilus package version 1:2.26.2-0ubuntu2

I am also testing Ubuntu 9.10 Karmic Beta with Gnome 2.28.0 and the same problem exists there as well.

STEPS TO REPRODUCE (including control demonstration):
1. Open a Nautilus window.
2. Go to the Edit menu and choose "Backgrounds and Emblems".
3. In the window that appears, drag one of the stock patterns into the main body of the Nautilus window. The background will change to that pattern.
4. Close Backgrounds and Emblems window and close the Nautilus window.
5. Open the Nautilus window again and navigate to a directory that contains files and/or folders that are too numerous to fit into the one window simultaneously (eg: "/bin" is an easy place to navigate to for lots of files).
6. Scroll the window to reveal the other files/folders. You will notice that the background tiling seems to look fine. This is because the pattern image dimensions is smaller than the actual Nautilus window dimensions.
7. Go to the Edit menu and choose "Backgrounds and Emblems" again.
8. This time click the "Add a New Pattern" button. A file requester appears.
9. Locate any large bitmap image, in any supported format. If you don't have one handy, use the default Ubuntu Jaunty wallpaper located at "/usr/share/backgrounds/warty-final-ubuntu.png".
10. Click the Open button and the bitmap will be added to the available list of patterns.
11. Drag that new pattern into the main body area of the Nautilus window. The background will now change to your large bitmap picture. The image, being larger than the window, will be cropped to the Nautilus window size.
12. Close the "Backgrounds and Emblems" window, but don't close the Nautilus window.
13. Navigate somewhere with lots of files/directories again (eg: "/bin") and scroll. Notice that the background wallpaper in the Nautilus window tiles or wraps not at the actual image's dimensions, but the window's dimensions only. There is also no visible corruption of black-only areas in general.
14. Widen the window to see the same problem exhibited horizontally as well.
15. Now close the Nautilus window.
16. Re-open the Nautilus window and navigate back to the same directory you were using before.
17. Scroll again. If you are using NVidia gfx, you will see that the tiling is corrupted beyond the window's dimensions up until you get to the background image's dimensions at which point it tiles properly. The same goes for the horizontal. If you are using Virtualbox with the Virtualbox Additions gfx Driver installed, you just see black instead of corrupted data. Virtualbox with no Additions driver installed exhibits a combination of corruption and black.
18. Make the Nautilus window much larger so that you can see a lot of the image corruption.
19. Now close the Nautilus window while the window is still large in size.
20. Reopen the Nautilus window - it should appear in the last dimensions you closed it at. Note that the background pattern now looks OK - where you saw corruption before there is none, however if you again scroll the window you will see the corruption is again only beyond the boundaries of the current window dimensions.

Tested only with NVidia and Virtualbox gfx adapters. Not tested with Intel, ATi or any other gfx chipsets.

Tested with various image formats including PNG, JPG and SVG. Same issue across the board.

This issue does not appear to destabilise the system in any way (crashes, lock-ups, etc) - it appears to be just a simple rendering issue.
Comment 1 Jeff Sereno 2009-10-03 00:42:40 UTC
Created attachment 144647 [details]
Example of corruption.

A snap snapshot showing an example of the visual corruption.

The custom large background image is the blue part. The grey part is where the corruption begins and is showing chunks of gfx memory from my second monitor (NVidia Twinview) where I am running Firefox.

If I scroll further, once I hit the vertical limit of the image dimensions, the correct blue part of the custom image starts again.
Comment 2 Cosimo Cecchi 2010-08-02 11:12:18 UTC
'Backgrounds and Emblems' have now been removed from nautilus master, see [1]. Closing this as OBSOLETE.

Note that this specific bug might also be an issue with nvidia proprietary drivers.

[1] http://mail.gnome.org/archives/nautilus-list/2010-July/msg00023.html