2004-12-05 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf-animation.c
* gdk-pixbuf-io.c
* io-xbm.c
* io-xpm.c
* make-inline-pixbuf.c
* queryloaders.c: Use gstdio wrappers. Document that file names
are in the GLib file name encoding.
* gdk-pixbuf-csource.c
* queryloaders.c: On Windows, convert command line arguments and
environment variable values from locale encoding to UTF-8.
* queryloaders.c: On Windows, use wide character API when
available.
* Makefile.am
* gdk-pixbuf-core.h
* gdk-pixbuf-io.c
* gdk-pixbuf-animation.h
* gdk-pixbuf-animation.c: Like in GLib, for DLL ABI stability on
Windows, add binary compatibility versions of functions that take
file names as arguments. They use the system codepage, not GLib
file name encoding (which is UTF-8 on Windows). Use #defines to
make newly compiled code use the "real" functions that use the
GLib file name encoding scheme.
2004-11-15 Matthias Clasen <mclasen@redhat.com>
* gdk-pixbuf-animation.c:
* gdk-pixbuf-loader.c:
* gdk-pixbuf-io.c: Be extra careful when locking and handle
the case that the module may initialize the thread system.
* gdk-pixbuf-io.[hc] (_gdk_pixbuf_lock): Return whether the
lock was actually taken.
2004-11-12 Matthias Clasen <mclasen@redhat.com>
* gdk-pixbuf-io.c (gdk_pixbuf_io_init): Don't use
_gdk_pixbuf_load_module_unlocked() in the !USE_GMODULE case.
2004-11-12 Matthias Clasen <mclasen@redhat.com>
Changes to make gdk-pixbuf threadsafe (#157310, #157306,
Colin Walters):
* gdk-pixbuf-io.h (enum GdkPixbufFormatFlags): Add
GDK_PIXBUF_FORMAT_THREADSAFE to indicate that an image loader
is threadsafe.
* gdk-pixbuf-io.c (get_file_formats, _gdk_pixbuf_load_module):
Use a lock to make initialization of global data structures
threadsafe.
* gdk-pixbuf-private.h:
* gdk-pixbuf-io.c (_gdk_pixbuf_lock, _gdk_pixbuf_unlock):
Auxiliary functions which use another lock to protect
threadunsafe image loaders.
* gdk-pixbuf-io.c (gdk_pixbuf_real_save):
(save_to_callback_with_tmp_file):
(gdk_pixbuf_real_save_to_callback):
(gdk_pixbuf_new_from_xpm_data):
(_gdk_pixbuf_generic_image_load):
* gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file):
* gdk-pixbuf-loader.c (gdk_pixbuf_loader_load_module):
(gdk_pixbuf_loader_close):
(gdk_pixbuf_loader_finalize):
Use _gdk_pixbuf_lock() and _gdk_pixbuf_unlock().
* io-ani.c, io-bmp.c, io-gif.c, io-ico.c:
* io-jpeg.c, io-pcx.c, io-png.c, io-pnm.c:
* io-ras.c, io-tga.c, io-wbmp.c, io-xbm.c:
* io-xpm.c: Mark as threadsafe.
* io-tiff.c: Remove pointless locking, mark as
threadunsafe.
2004-11-10 Matthias Clasen <mclasen@redhat.com>
* gdk-pixbuf-animation.c:
* gdk-pixbuf-io.c: Use g_filename_display_name() instead of
g_filename_to_utf8() when putting filenames in error messages.
Thu Aug 26 01:23:16 2004 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-core.h:
* gdk-pixbuf.symbols:
* gdk-pixbuf-io.c (gdk_pixbuf_new_from_file_at_scale):
Add gdk_pixbuf_new_from_file_at_scale(), which is just
like gdk_pixbuf_new_from_file_at_size(), but optionally
ignores the aspect ratio. (#136395, Dom Lachowicz)
Tue Aug 10 23:53:59 2004 Matthias Clasen <maclas@gmx.de>
Add hidden aliases for exported symbols which are
used internally in order to get rid of many PLT
entries. (#145519, Arjan van de Ven)
* gdk/Makefile.am: Add rules to generate gdk_pixbuf.def and
gdk-pixbuf-alias.h from gdk-pixbuf.symbols, and make make
check check the abi with abicheck.sh.
* gdk/gdk-pixbuf.symbols: New file. Definition of the gdk-pixbuf
ABI. The file can be processed by cpp to filter out certain
subsets of symbols.
* gdk/abicheck.sh: New file. Script to check the actually
symbols exported from libgdk_pibuf.2.0.so against the symbols
found in gdk-pixbuf.symbols.
* gdk/makegdkpixbufalias.pl: New file. Perl script to generate the
header containing the alias definitions for internally used
exported symbols from a list of symbols.
* *.c: Include gdk-pixbuf-alias.h
Fri Jul 9 15:38:06 2004 Manish Singh <yosh@gimp.org>
* gdk-pixbuf-io.c (gdk_pixbuf_format_set_disabled): function doesn't
return a value, so don't use g_return_val_if_fail()
* gdk-pixbuf-scale.c (gdk_pixbuf_rotate_simple): initialize dest in
the can't happen case, to quiet gcc.
* io-tiff.c (tifflibversion): enclose in #if TIFFLIB_VERSION >=
20031226.
Sat Jun 5 00:59:12 2004 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-animation.c:
* gdk-pixbuf-io.c: Convert filenames to UTF-8 when embedding
them in error messages. (#143654, Sven Neumann)
Wed May 5 23:09:48 2004 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-io.h (GdkPixbufFormatFlags): New format flag
GDK_PIXBUF_FORMAT_SCALABLE to mark scalable formats.
* gdk-pixbuf.h:
* gdk-pixbuf-io.c (gdk_pixbuf_format_is_scalable): New function.
(#137995, Dom Lachowicz)
2004-04-13 Matthias Clasen <mclasen@redhat.com>
* io-ani.c (gdk_pixbuf__ani_image_load_animation):
* gdk-pixbuf-io.c (gdk_pixbuf_get_file_info)
(_gdk_pixbuf_generic_image_load)
(gdk_pixbuf_new_from_file_at_size): When calling fread()
in a loop, check for ferror() as well as for feof() to
avoid infinite loops on directories. (#137804, Alex Converse)
2004-03-15 Tor Lillqvist <tml@iki.fi>
Merges from stable branch that had been left out. (#136282, J. Ali
Harlow)
Changes for run-time lookup of installation location on Win32:
* Makefile.am (INCLUDES): Define GTK_PREFIX as $(prefix).
* gdk-pixbuf-io.c (get_sysconfdir): New function, look up
installation location at runtime and deduce GTK_SYSCONFDIR
from it.
(get_toplevel): Similar, for the top-level installation directory.
(correct_prefix): Replace compile-time prefix with run-time
prefix.
(get_libdir): Remove, not used any longer.
(gdk_pixbuf_io_init): Call correct_prefix() on Win32.
* queryloaders.c (query_module): [Win32] Change backslahses into
slashes in path.
2004-03-05 Federico Mena Quintero <federico@ximian.com>
Fixes#136082 and #135265, patch by Morten Welinder.
* configure.in: Use AC_SYS_LARGEFILE.
* */*.c: #include <config.h>
Sun Feb 8 01:07:20 2004 Manish Singh <yosh@gimp.org>
* gdk-pixbuf-io.c: removed unnecessary G_OBJECT() cast checks.
* io-jpeg.c: make the return type for to_callback_empty_output_buffer
"boolean", which should be defined by the jpeg headers. The right
return type for this function depends on how the jpeg library
was built (one wonders what happens if different compilers are used).
2004-01-06 Federico Mena Quintero <federico@ximian.com>
* gdk-pixbuf-io.c (gdk_pixbuf_save): Escape an ampersand in the
documentation comment, and hack around an empty line in the code
example so that gtk-doc won't put a <para> due to it.
Wed Jan 7 02:41:14 2004 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-io.c (gdk_pixbuf_save_to_bufferv):
* gdk-pixbuf-io.c (gdk_pixbuf_save_to_buffer):
* gdk-pixbuf-io.c (gdk_pixbuf_save_to_callbackv):
* gdk-pixbuf-io.c (gdk_pixbuf_save_to_callback): New public API
to save pixbufs to non-file locations. (#82203, Tim Evans)
* gdk-pixbuf.h:
* gdk_pixbuf.def: Declare the new public API.
* gdk-pixbuf-io.h: Add save_to_callback to the module interface.
* io-jpeg.c:
* io-png.c: Implement save_to_callback.
* gdk-pixbuf-io.c (gdk_pixbuf_savev):
* gdk-pixbuf-io.c (gdk_pixbuf_save): Update documentation.
* gdk-pixbuf-io.c (gdk_pixbuf_real_save): Support saving via
image_module->save_to_callback.
* gdk-pixbuf-io.c (gdk_pixbuf_real_save_to_callback): New generic
save_to_callback function which falls back to image_module->save
on a temp file.
Wed Jan 7 01:17:36 2004 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-loader.c (gdk_pixbuf_loader_size_func):
* gdk-pixbuf-loader.c (gdk_pixbuf_loader_set_size):
* gdk-pixbuf-loader.c (gdk_pixbuf_loader_init): Make it possible
to call gdk_pixbuf_loader_set_size (loader, 0, 0) by changing
the initial values of priv->width/height to -1.
* io-tiff.c (tiff_image_parse):
* io-ras.c (RAS2State):
* io-pnm.c (gdk_pixbuf__pnm_image_load_increment):
* io-pcx.c (gdk_pixbuf__pcx_load_increment):
* io-jpeg.c (gdk_pixbuf__jpeg_image_load_increment):
* io-png.c (png_info_callback):
* io-ico.c (DecodeHeader):
* io-bmp.c (DecodeHeader): Call size_func once the size is known,
even if the module can't make use of the scaling information. If
size_func returns 0, don't allocate a pixbuf and return, if
necessary with an error.
* gdk-pixbuf.h:
* gdk-pixbuf-io.c (gdk_pixbuf_get_file_info): A new function
to determine the type and size of an image file without loading
it completely. (#53725)
Sun Nov 9 23:07:05 2003 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-io.c (_gdk_pixbuf_generic_image_load): If neither
load nor begin_load are available fall back to load_animation
and use gdk_pixbuf_animation_get_static_image() to obtain a
pixbuf. Inefficient, but at least doesn't crash.
2003-07-23 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-io.c (gdk_pixbuf_new_from_file_at_size): Close loader before unref'ing
it. (#118146, Owen Taylor)
2003-07-13 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf.h:
* gdk-pixbuf-io.c (gdk_pixbuf_new_from_file_at_size): New function to load an image from a file at a
specified size. (#105326, Dom Lachowicz)
2003-07-11 Matthias Clasen <maclas@gmx.de>
* gtk/gtkicontheme.c (pixbuf_supports_svg): Use g_strfreev() to free mime_types.
(#117219, Steve Chaplin)
* queryloaders.c (query_module): Handle absolute filenames properly. (#117170, Jens Elkner)
* gdk-pixbuf-io.c: Mention that NULL-terminated arrays returned by
gdk_pixbuf_format_get_mime_types() and gdk_pixbuf_format_get_extensions() must be
freed with g_strfreev().
* gdk-pixbuf-io.h:
gdk-pixbuf-io.c (_gdk_pixbuf_generic_image_load): No longer
static, thus _gdk_pixbuf-prefixed.
* gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file):
Keep this logic in sync with gdk_pixbuf_new_from_file(). (Based
on a patch by Anders Carlsson)
* io-png.c (gdk_pixbuf__png_image_save): Plug a memory
leak. (#91422, Sven Neumann)
* gdk-pixbuf-io.c (generic_image_load): New function for loading
an image from a file either via module->load or incrementally.
(prepared_notify): ModulePreparedNotifyFunc for generic_image_load.
(gdk_pixbuf_new_from_file): Use generic_image_load.
* io-bmp.c, io-ico.c, io-ras.c, io-wbmp.c: Remove trivial
implementations of module->load. (#71266)
* gdk-pixbuf-io.c (pixbuf_check_xbm): Accept xbms starting
with a C comment - those seem to be not uncommon, e.g. the Gimp
produces them. (#82706)
* io-xbm.c (read_bitmap_file_data): Don't leak memory on certain
invalid inputs.
(gdk_pixbuf__xbm_image_load_real): Don't leak memory on valid inputs.
2002-05-22 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf-io.c (get_libdir): Use GTK_BINARY_VERSION (and not
GTK_VERSION) in the path to the loaders on Win32, too.
* Makefile.am: Pass GTK_BINARY_VERSION.
* gdk-pixbuf-io.c (gdk_pixbuf_save): Remove the ISO8859-1
restriction from the description of png tEXt parameters.
* io-png.c (png_text_to_pixbuf_option):
(gdk_pixbuf__png_image_save): If libpng supports it,
store and retrieve non-ISO8859-1 text as UTF-8. (#76172)
Wed Mar 20 16:36:08 2002 Owen Taylor <otaylor@redhat.com>
* gtk/*.c: Patch from Erwann Chenede, #73900 fixing
a lot of warnings with Forte CC, mostly implicit
casts between void * and function pointers.
* gdk/gdkevents.c (gdk_event_get_state): GdkEventVisibility's
state field is not a GdkModifierType. (Also #73900)
Sat Mar 2 22:11:10 2002 Owen Taylor <otaylor@redhat.com>
* gdk-pixbuf-io.c (_gdk_pixbuf_load_module): If we
can't load the module using the g_module_build_path()
filename, try loading it as a .la file.
* test-loaders.c: Look for modules in current directory
rather than .libs, so we find the right .la files.
* test-loaders.c: Back out some accidental commits.
2001-10-29 Tor Lillqvist <tml@iki.fi>
* Makefile.am: Use -no-undefined on Win32. Make
libgdk_pixbuf_1_3_la_OBJECTS depend on
gdk-pixbuf-marshal.c. Install import libraries.
* gdk_pixbuf.def: Update.
* gdk-pixbuf-io.c: (Win32) Use G_WIN32_DLLMAIN_FOR_DLL_NAME, saves
the actual DLL name of libgdk_pixbuf.
(get_libdir): Use it instead of guessing.
* io-xbm.c (gdk_pixbuf__xbm_image_begin_load): Use
g_file_open_tmp() insread of mkstemp().
2001-10-05 Sven Neumann <sven@gimp.org>
* gdk-pixbuf/gdk-pixbuf-io.c
* gdk-pixbuf/gdk-pixbuf-private.h
* gdk-pixbuf/gdk-pixbuf.c
* gdk-pixbuf/gdk-pixbuf.h
* gdk-pixbuf/io-jpeg.c
* gdk-pixbuf/io-png.c: changed GDK_PIXBUF_ERROR_BAD_OPTION_VALUE to
GDK_PIXBUF_ERROR_BAD_OPTION to we can use it for bad keys too. Added
new public API gdk_pixbuf_get_option() to retrieve key/value pairs
set by an image loader. Added support for saving and reading PNG tEXt
chunks in PNG images.
* demos/testpixbuf-save.c
* demos/testpixbuf-scale.c: simple tests for the new PNG tEXt chunk
feature.
* gdk-pixbuf/tmpl/gdk-pixbuf.sgml: adapt to changes in GDK_PIXBUF_ERROR
enum.
2001-06-28 Havoc Pennington <hp@pobox.com>
* gdk/x11/gdkimage-x11.c (_gdk_x11_get_image): Clip the retrieved
image data to the screen, using a server grab to avoid race
conditions.
* gtk/gtkitemfactory.c (gtk_item_factory_create_item): remove
check for NULL return from gtk_image_new_from_stock(), it never
returns NULL.
(gtk_item_factory_create_item): fix bug where we parsed the stock
ID as an inline pixbuf
* gtk/gtktext.c (gtk_text_key_press): numeric keypad support
* gtk/gtkspinbutton.c (gtk_spin_button_key_press): numeric keypad
support (should be using binding set here)
* gtk/gtkoptionmenu.c (gtk_option_menu_key_press): numeric keypad
support (should be using binding set here)
* gtk/gtkmenushell.c (gtk_menu_shell_class_init): numeric keypad
support
* gtk/gtkmenu.c (gtk_menu_class_init): numeric keypad support
* gtk/gtkmenubar.c (gtk_menu_bar_class_init): numeric keypad
* gtk/gtklistitem.c (gtk_list_item_class_init): numeric keypad
* gtk/gtkimcontextsimple.c
(gtk_im_context_simple_filter_keypress): keypad
* gtk/gtkfilesel.c (gtk_file_selection_key_press): keypad
* gtk/gtkentry.c (gtk_entry_class_init): numeric keypad fixes
* gtk/gtkctree.c (gtk_ctree_class_init): numeric keypad support
* gtk/gtkcolorsel.c (palette_activate): keypad support (of course,
should be binding-setted)
* gtk/gtkwindow.c (gtk_window_class_init): numeric keypad fixes
* gtk/gtkclist.c (gtk_clist_class_init): numeric keypad fixes
* gtk/gtkcalendar.c: numeric keypad fixes
* gtk/gtktextview.c (gtk_text_view_class_init): numeric keypad
support
* gdk/gdkwindow.c (gdk_window_get_clip_region): fix infinite loop
screwup
* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha):
clip the render area to the drawable's clip region in advance,
so we don't get data from the server that we don't need.
* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha):
check return value of gdk_pixbuf_get_from_drawable(), fall back
to bilevel alpha if we can't get the pixbuf to composite against.
* gdk/gdkdraw.c (gdk_drawable_get_image): set the image colormap
* gdk/gdkimage.c (gdk_image_get_colormap): add
gdk_image_set_colormap, gdk_image_get_colormap
* gdk/gdkpixbuf-drawable.c (rgbconvert): Change all converters to
take a region of the image, instead of converting the entire
image.
* gtk/gtkwidget.h (struct _GtkWidgetClass): add show_help
keybinding signal. Add default bindings for it. Add default
handler for show_help that shows the tooltip for the widget.
* gtk/gtkdialog.c (gtk_dialog_class_init): add binding set and
"close" keybinding signal, remove key press handler.
* gtk/gtktooltips.c (gtk_tooltips_set_colors): Just remove this,
it's not our usual practice to leave a deprecated function around
with a runtime warning, plus we don't want it to appear in docs,
plus if we make them yellow no one will want to change them
anyhow.
2001-02-19 Havoc Pennington <hp@redhat.com>
* gtk/gtktreemodel.c (gtk_tree_model_get_valist): hmm, someone
changed GLib without fixing GTK
* gtk/gtkrange.h: Rename all the stupid implementation detail
functions to have an underscore in front. Most of them should
probably just go away, but for starters don't export them.
Bug #50482
2001-02-19 Havoc Pennington <hp@redhat.com>
* gdk-pixbuf-io.c (gdk_pixbuf_load_module): const fix