diff options
author | Jan Djärv <jan.h.d@swipnet.se> | 2006-02-24 15:37:10 +0000 |
---|---|---|
committer | Jan Djärv <jan.h.d@swipnet.se> | 2006-02-24 15:37:10 +0000 |
commit | a821c035f3f0481da1e57158f1036631a14c76fb (patch) | |
tree | 89c4cb37343c97633cfe5acbcc373bda3f90126f /src/gtkutil.c | |
parent | cb694ab73063cc92342daf96d009cdc6d086bc0b (diff) | |
download | emacs-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.c | 18 |
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); } |