wIconChangeImageFile don't update without file
authorRodolfo García Peñas (kix) <kix@kix.es>
Wed, 31 Oct 2012 21:44:17 +0000 (31 22:44 +0100)
committerCarlos R. Mafra <crmafra@gmail.com>
Wed, 31 Oct 2012 22:24:27 +0000 (31 22:24 +0000)
The function wIconChangeImageFile mustn't update the icon if
no file is set.

This is a bug. To reproduce it:

1. Right click on dock icon. Select "Settings"
2. Erase the Icon Image contents (set empty)
3. Click "OK" -> Exit, no changes... no?
4. Right click on the same dock icon. Select "Settings"
5. Erase the Icon Image contents (set empty)
6. Click "OK" -> Crash

If wmaker don't crash, watch the file ~/GNUstep/Defaults/WMWindowAttributes,
the default icon ("*" has trash in the name). Probably something is not fine
at wIconUpdate.

src/icon.c

index da93679..94d9567 100644 (file)
@@ -376,16 +376,14 @@ Bool wIconChangeImageFile(WIcon * icon, char *file)
        char *path;
        int error = 0;
 
+       if (!file)
+               return True;
+
        if (icon->file_image) {
                RReleaseImage(icon->file_image);
                icon->file_image = NULL;
        }
 
-       if (!file) {
-               wIconUpdate(icon);
-               return True;
-       }
-
        path = FindImage(wPreferences.icon_path, file);
 
        if (path && (image = RLoadImage(scr->rcontext, path, 0))) {