X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fxpm-pixmap.c;h=251c036220dbb9ef9145dbb28372e998b60aac92;hp=a4b3e2afcd96b33eba34a110b83ec4fcb512df5e;hb=13dbc569cdc6e29019722c0ef9b932a925efbcad;hpb=3f9592851ce4ed76a9979bfdd6ec7dc5c457e183 diff --git a/hacks/xpm-pixmap.c b/hacks/xpm-pixmap.c index a4b3e2af..251c0362 100644 --- a/hacks/xpm-pixmap.c +++ b/hacks/xpm-pixmap.c @@ -26,7 +26,12 @@ extern char *progname; #if defined(HAVE_GDK_PIXBUF) # include -# include + +# ifdef HAVE_GTK2 +# include +# else /* !HAVE_GTK2 */ +# include +# endif /* !HAVE_GTK2 */ /* Returns a Pixmap structure containing the bits of the given XPM image. @@ -42,17 +47,27 @@ xpm_to_pixmap_1 (Display *dpy, Window window, GdkPixbuf *pb; static int initted = 0; XWindowAttributes xgwa; +#ifdef HAVE_GTK2 + GError *gerr = NULL; +#endif /* HAVE_GTK2 */ XGetWindowAttributes (dpy, window, &xgwa); if (!initted) { +#ifdef HAVE_GTK2 + g_type_init (); +#endif /* HAVE_GTK2 */ gdk_pixbuf_xlib_init (dpy, screen_number (xgwa.screen)); xlib_rgb_init (dpy, xgwa.screen); initted = 1; } pb = (filename - ? gdk_pixbuf_new_from_file (filename) +#ifdef HAVE_GTK2 + ? gdk_pixbuf_new_from_file (filename, &gerr) +#else /* !HAVE_GTK2 */ + ? gdk_pixbuf_new_from_file (filename) +#endif /* !HAVE_GTK2 */ : gdk_pixbuf_new_from_xpm_data ((const char **) xpm_data)); if (pb) { @@ -81,7 +96,12 @@ xpm_to_pixmap_1 (Display *dpy, Window window, } else if (filename) { +#ifdef HAVE_GTK2 + fprintf (stderr, "%s: %s\n", progname, gerr->message); + g_error_free (gerr); +#else /* !HAVE_GTK2 */ fprintf (stderr, "%s: unable to load %s\n", progname, filename); +#endif /* !HAVE_GTK2 */ exit (-1); } else