Commit 465aa50a authored by Jan Djärv's avatar Jan Djärv

* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.

* xterm.c (x_bitmap_icon): Return if xg_set_icon succeeds.
parent e430e5ba
2003-07-31 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
* xterm.c (x_bitmap_icon): Return if xg_set_icon succeeds.
2003-07-31 Kenichi Handa <handa@m17n.org>
* process.c (read_process_output): Return the actually read bytes
......
......@@ -1092,36 +1092,51 @@ x_set_wait_for_wm (f, new_value, old_value)
#ifdef USE_GTK
/* Wrapper for gtk_window_icon_from_file() */
static Lisp_Object x_find_image_file P_ ((Lisp_Object file));
/* Set icon from FILE for frame F. By using GTK functions the icon
may be any format that GdkPixbuf knows about, i.e. not just bitmaps. */
int
xg_set_icon(f, file)
struct frame *f;
FRAME_PTR f;
Lisp_Object file;
{
struct gcpro gcpro1, gcpro2, gcpro3;
int fd;
int result = 1;
Lisp_Object found, search_path;
char *filename;
struct gcpro gcpro1;
int result = 0;
Lisp_Object found;
search_path = Fcons (Vdata_directory, Vx_bitmap_file_path);
GCPRO1 (found);
GCPRO3 (found, search_path, file);
fd = openp (search_path, file, Qnil, &found, Qnil);
if (fd > 0)
{
filename = (char *) SDATA (found);
BLOCK_INPUT;
result =
gtk_window_set_icon_from_file (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)),
filename,
NULL);
UNBLOCK_INPUT;
}
emacs_close (fd);
UNGCPRO;
return result;
found = x_find_image_file (file);
if (! NILP (found))
{
GdkPixbuf *pixbuf;
GError *err = NULL;
char *filename;
filename = SDATA (found);
BLOCK_INPUT;
pixbuf = gdk_pixbuf_new_from_file (filename, &err);
if (pixbuf)
{
gtk_window_set_icon (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)),
pixbuf);
g_object_unref (pixbuf);
result = 1;
}
else
g_error_free (err);
UNBLOCK_INPUT;
}
UNGCPRO;
return result;
}
#endif /* USE_GTK */
......
......@@ -7474,7 +7474,7 @@ x_bitmap_icon (f, file)
#ifdef USE_GTK
/* Use gtk_window_set_icon_from_file() if available,
It's not restricted to bitmaps */
if (!xg_set_icon(f, file))
if (xg_set_icon(f, file))
return 0;
#endif /* USE_GTK */
bitmap_id = x_create_bitmap_from_file (f, file);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment