summaryrefslogtreecommitdiff
path: root/src/gtkutil.c
diff options
context:
space:
mode:
authorJan Djärv <jan.h.d@swipnet.se>2006-02-24 15:37:10 +0000
committerJan Djärv <jan.h.d@swipnet.se>2006-02-24 15:37:10 +0000
commita821c035f3f0481da1e57158f1036631a14c76fb (patch)
tree89c4cb37343c97633cfe5acbcc373bda3f90126f /src/gtkutil.c
parentcb694ab73063cc92342daf96d009cdc6d086bc0b (diff)
downloademacs-a821c035f3f0481da1e57158f1036631a14c76fb.tar.gz
emacs-a821c035f3f0481da1e57158f1036631a14c76fb.tar.bz2
emacs-a821c035f3f0481da1e57158f1036631a14c76fb.zip
* gtkutil.c (xg_get_image_for_pixmap): If x_find_image_file returns
nil the image file has been removed, in that case use the (cached) pixmap.
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r--src/gtkutil.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 203eab257f3..b8d37df2214 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -327,6 +327,7 @@ xg_get_image_for_pixmap (f, img, widget, old_widget)
look good in all cases. */
Lisp_Object specified_file = Qnil;
Lisp_Object tail;
+ Lisp_Object file;
extern Lisp_Object QCfile;
for (tail = XCDR (img->spec);
@@ -335,23 +336,18 @@ xg_get_image_for_pixmap (f, img, widget, old_widget)
if (EQ (XCAR (tail), QCfile))
specified_file = XCAR (XCDR (tail));
- if (STRINGP (specified_file))
- {
- Lisp_Object file = Qnil;
- struct gcpro gcpro1;
- GCPRO1 (file);
-
- file = x_find_image_file (specified_file);
- /* We already loaded the image once before calling this
- function, so this should not fail. */
- xassert (STRINGP (file) != 0);
+ /* We already loaded the image once before calling this
+ function, so this only fails if the image file has been removed.
+ In that case, use the pixmap already loaded. */
+ if (STRINGP (specified_file)
+ && STRINGP (file = x_find_image_file (specified_file)))
+ {
if (! old_widget)
old_widget = GTK_IMAGE (gtk_image_new_from_file (SSDATA (file)));
else
gtk_image_set_from_file (old_widget, SSDATA (file));
- UNGCPRO;
return GTK_WIDGET (old_widget);
}