ChangeLog 17.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
2005-09-02  Tor Lillqvist  <tml@novell.com>

	* gdk/win32/gdkevents-win32.c (gdk_event_translate): Keep track of
	cursor position also in root window coordinates. Prune out
	superfluous WM_MOUSEMOVE events even earlier, based on root window
	coordinates. Windows sends WM_MOUSEMOVE messages after a new
	window has ben mapped below the cursor even if the mouse doesn't
	move. We used to generate GDK_MOTION_NOTIFY in these cases. This
	confused at least gtk_menu_motion_notify(). (#314995)

	* gtk/gtkintl.h: No need to include config.h here. It caused
	warnings about GTK_LOCALEDIR being redefined on Win32 when
	compiling files where gtkintl.h is included after gtkprivate.h
	(which #undefines and re-#defines GTK_LOCALEDIR on Win32).

	* gtk/gtkplug.c: Include config.h.

Matthias Clasen's avatar
Matthias Clasen committed
18 19
2005-09-01  Matthias Clasen  <mclasen@redhat.com>

20 21 22 23
	* gtk/gtkfilesystemunix.c: Pass statbufs down to 
	xdg_mime_get_mime_type_for_file() where possible, to avoid
	useless re-stating.  
	
24 25 26
	* gtk/gtkaction.c (gtk_action_get_accel_closure): Fix doc
	typo.  (#314921, Guillaume Cottenceau)

Matthias Clasen's avatar
Matthias Clasen committed
27 28 29 30 31
	* gdk/*.c: Intern some more strings.
	* gtk/gtkintl.h: 
	* gtk/*.c: Define an I_() macro and use it instead of the 
	bulky g_intern_static_string().

32
2005-08-31  Matthias Clasen  <mclasen@redhat.com>
Matthias Clasen's avatar
Matthias Clasen committed
33 34 35 36 37 38

	* gtk/gtkbindings.c (binding_signal_new): Intern the signal name
	instead of copying it.

	* gtk/gtktypeutils.c (gtk_identifier_get_type): Some more string interning.

39 40
	* gtk/*.c: Also intern static strings passed to 
	g_object_set_data().
41

42 43 44 45 46 47 48 49
	* gdk/Makefile.am: 
	* gtk/Makefile.am: Intern type names in code generated by 
	glib-mkenums, too.

	* gtk/*.c: 
	* gdk/x11/*.c: 
	* gdk/*.c: Intern type names before registering the type to avoid 
	unnecessary copies.
50 51 52

	* configure.in: Require GLib 2.9.0

53 54
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

55 56 57
	* gtk/gtktoolbar.c: Undeprecate gtk_toolbar_set_icon_size(),
	and add icon-size and icon-size-set properties.  (#314172)	

58 59 60
	* gtk/gtkwindow.c (gtk_window_set_transient_for): Inherit window
	groups across transient parents.  (#312918, Christian Persch)

61 62 63
	* gtk/gtktreemodel.c: Some documentation fixes.  (#314882,
	Guillaume Cottenceau)

64 65 66
	* gtk/gtktextiter.c (gtk_text_iter_backward_visible_cursor_positions): 
	Fix a typo in the docs.  (#314878, Guillaume Cottenceau)

67 68
2005-08-30  Matthias Clasen  <mclasen@redhat.com>

69 70 71 72
	* gtk/gtkentry.c (gtk_entry_class_init): Add key bindings to
	make C-/ select all and C-\ unselect all.  (#309301,
	Kathy Fernandez)

73 74 75 76 77 78
	* gtk/gtkimcontextsimple.c: Change the compose sequence for
	soft hyphen to be multi_key-minus-minus-space, and add
	compose sequences multi_key-minus-minus-period and 
	multi_key-minus-minus-minus for en dash and em dash.
	(#172653, Christian Lohmaier)

79 80 81
	* gtk/gtkentry.c (gtk_entry_draw_frame): Fix some unused
	code.  (#313946, Christian Persch)

82 83 84
	* gtk/gtkuimanager.c (gtk_ui_manager_class_init): Another
	fix for the default value of the "ui" property.

85 86
2005-08-30  Matthias Clasen  <mclasen@redhat.com>

Matthias Clasen's avatar
Matthias Clasen committed
87 88
	* gtk/gtk.symbols: 
	* gtk/gtkselection.h:
89 90 91 92 93
	* gtk/gtkselection.c: Add functions which look for text, image
	or uri targets in an array of atoms.   (#314089, Mark Wielaard)

	* gtk/gtk.symbols: 
	* gtk/gtkselection.h:
Matthias Clasen's avatar
Matthias Clasen committed
94 95 96 97
	* gtk/gtkselection.c (gtk_selection_data_targets_include_uri): 
	Add a function to check wether targets include uri.  
	(#314092, Mark Wielaard)
	
98 99 100 101 102 103
	* gtk/gtk.symbols: 
	* gtk/gtkwindow.h: 
	* gtk/gtkwindow.c: Add a deletable property with getter
	and setter, to control the close button in the window 
	frame.  (#59718, Havoc Pennington)

104 105
2005-08-29  Matthias Clasen  <mclasen@redhat.com>

106 107 108
	* gtk/gtkrc.key.emacs: Add C-n/C-p/C-f/C-b as alternatives
	to the arrow keys for menu navigation.  (#162825, Carl Worth)

Matthias Clasen's avatar
Matthias Clasen committed
109 110
	* gtk/gtkentry.c, gtk/gtktextview.c: More typo fixes

Matthias Clasen's avatar
Matthias Clasen committed
111 112
	* gtk/gtksocket-x11.c, gtk/gtkstatusicon-x11.c: Fix typos.

113 114 115 116
	* gtk/gtkstatusicon-x11.c (gtk_status_icon_new_from_stock): 
	* gtk/gtkimage.c (gtk_image_new_from_stock): Don't
	refer to nonexisting stock ids.

117 118 119 120 121 122 123 124 125 126 127
	* gtk/gtktextview.c (popup_targets_received): 
	* gtk/gtkentry.c (popup_targets_received): Construct
	the "Select All" menuitem from stock.

	* gtk/stock-icons/stock_select_all_{16,24}.png:
	* gtk/stock-icons/Makefile.am: 
	* gtk/gtkiconfactory.c:
	* gtk/gtkstock.h: 
	* gtk/gtkstock.c: Add a "Select All" stock item.  (#78545,
	Calum Benson)

Matthias Clasen's avatar
Matthias Clasen committed
128 129
	* gtk/gtktrayicon.c: Add a pointer to the spec.

Matthias Clasen's avatar
Matthias Clasen committed
130 131 132 133
	* gtk/gtkstatusicon-x11.c: Add docs.

	* gtk/gtkstatusicon.h: Fix a typo.

134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
	Add a cross-platform "tray icon" API, by
	porting EggStatusIcon/EggTrayIcon (#105101)
	
	* gtk/gtkstatusicon.h: A GtkStatusIcon is an object which
	displays an icon in a notification area.

	* gtk/gtkstatusicon-x11.c: GtkStatusIcon implementation for
	X11, using GtkTrayIcon.

	* gtk/gtktrayicon.h: 
	* gtk/gtktrayicon.c: An implementation of the freedesktop.org
	system tray specification, not public API.

	* gtk/gtk.symbols: Add new exported functions.

	* gtk/gtk.h: Include gtkstatusicon.h.

	* gtk/Makefile.am: Add new files.

	* tests/Makefile.am:
	* tests/teststatusicon.c: Test for GtkStatusIcon.

156 157 158 159
2005-08-29  Christopher Aillon  <caillon@redhat.com>

	* gtk/gtkstock.c: Add builtin GtkStockItems for GTK_STOCK_CONNECT
	and GTK_STOCK_DISCONNECT
160
	
161 162
2005-08-29  Matthias Clasen  <mclasen@redhat.com>

163 164 165
	* gtk/gtksocket-x11.c (_gtk_socket_windowing_embed_notify): 
	Use XFixesChangeSaveSet if available.  (#314682)

166 167 168
	* gtk/gtkmenu.c (gtk_menu_grab_notify):  Only cancel if the menu
	was active.  (#314298, Christian Persch, analysis by Mark McLoughlin)

169 170
2005-08-29  Matthias Clasen  <mclasen@redhat.com>

171 172 173 174
	* gtk/gtkiconcache.c (_gtk_icon_cache_get_icon): Remove an
	accidentally leftover duplicate pixbuf creation.  (#314700,
	Kjartan Maraas)

175 176 177
	* gtk/gtksettings.c (settings_update_cursor_theme): Don't 
	leak the cursor theme name.  (#314693, Kjartan Maraas)

178 179 180
	* gdk/x11/gdkasync.c (_gdk_x11_get_window_child_info): Free 
	state.children in all cases.  (#313862, Kjartan Maraas)

Matthias Clasen's avatar
Matthias Clasen committed
181 182 183 184 185
2005-08-28  Matthias Clasen  <mclasen@redhat.com>

	* po/POTFILES.in, po-properties/POTFILES.in:
	Add gdk/gdkscreen.c

186 187
2005-08-27  Matthias Clasen  <mclasen@redhat.com>

188 189 190
	* gtk/gtkuimanager.c (gtk_ui_manager_class_init): Fix the default
	value of the ui property. (#314532, Yong Wang)

191 192 193
	* gdk/x11/gdkproperty-x11.c (gdk_property_get): Don't warn
	when G_MAXLONG is passed as length.  

194 195 196 197 198
2005-08-26  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c: Add a separate --ignore-theme-index option
	to avoid overloading --force.  (JP Rosevaar)

199 200
2005-08-26  Matthias Clasen  <mclasen@redhat.com>

Matthias Clasen's avatar
Matthias Clasen committed
201 202
	* configure.in: Bump version to 2.9.0

203 204 205 206 207 208 209 210 211 212 213 214 215 216
	* gdk/gdk.symbols: 
	* gdk/gdkscreen.h: 
	* gdk/gdkscreen.c: Make the GdkScreen font options api
	public, and add properties GdkScreen::font-options and
	GdkScreen::resolution.  (#314004)

	* gdk/gdkpango.c:
	* gtk/gtksettings.c:
	* gtk/gtkwidget.c: Adjust all callers.
	
	* gdk/gdkintl.h: Simplify and use glib/gi18n-lib.h.
	* gdk/gdkpango.c: Include gdkintl.h, not gtkintl.h.
	* gdk/gdkscreen.c: Include gdkintl.h.

217 218 219
	* gtk/gtkicontheme.c (theme_lookup_icon): Avoid an uninitialized
	variable warning, pointed out by Colin Walters. (#314585)

220 221 222 223 224 225
2005-08-26  Tor Lillqvist  <tml@novell.com>

	* gtk/gtkfilesystemwin32.c: Remove some ifdeffed out debugging
	printouts.
	(gtk_file_system_win32_parse): Don't mishandle UNC paths. (#314519)

226 227 228 229 230
2005-08-26  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkcalendar.c (gtk_calendar_init): Fix the calculation
	of week_start.  (#314473, JP Rosevaar)

231 232 233 234 235
2005-08-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gtk/gtkfilesystemmodel.c (idle_finished_loading_cb): Acquire GDK
	lock.  (#314533, Thomas Fitzsimmons)

236 237 238 239 240
2005-08-25  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktoolbar.c (_gtk_toolbar_elide_underscores): Handle
	NULL gracefully.  (#314523, Ed Catmur)

Owen Taylor's avatar
Owen Taylor committed
241 242 243 244 245
2005-08-25  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkcursor-x11.c (gdk_x11_display_set_cursor_theme): 
	Handle theme == NULL.

246 247 248 249 250 251
2005-08-25  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenutoolbutton.c (menu_position_func): Take widget
	y offset into account when positioning the popup.  (#314470,
	Christian Persch)

252 253 254
2005-08-25  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkscreen.c (gdk_screen_get_type): Use gdk_screen_init
Owen Taylor's avatar
Owen Taylor committed
255 256
	as instance_init, not base_init! (#314452, Fix from Frederic
	Crozat,	reported by Joe Marcus Clarke). Trivial cleanup: use -1.
257 258
	rather than 1 for a negative flag value.

259 260 261 262 263
2005-08-24  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkpango.c (draw_error_underline): Add a note about
	cut-and-paste between here and Pango.

264 265
2005-08-24  Matthias Clasen  <mclasen@redhat.com>

Matthias Clasen's avatar
2.8.2  
Matthias Clasen committed
266 267 268 269 270 271 272 273 274 275
	* === Released 2.8.2 ===

	* gtk/gtkclipboard.c (request_image_received_func): Use the correct
	callback for image/gif, and also try image/bmp.  (#314086,  Mark 
	Wielaard)

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_volume_render_icon): 
	Use gnome-dev-harddisk for volumes, not gnome-fs-blockdev.  (#314382,
	Sebastien Bacher)
	
Matthias Clasen's avatar
Updates  
Matthias Clasen committed
276 277
	* NEWS: Updates

278 279 280 281
	* gtk/gtksettings.c (gtk_settings_get_for_screen): Make sure font
	and cursor settings get propagated down to the screen initially.
	Pointed out by Frederic Crozat.

282 283 284
	* gtk/gtkicontheme.c (ensure_valid_themes): Don't try to send a client
	message if the screen is NULL. Noticed by Kjartan Maraas.

Matthias Clasen's avatar
2.8.1  
Matthias Clasen committed
285 286
2005-08-24  Matthias Clasen  <mclasen@redhat.com>

Matthias Clasen's avatar
Matthias Clasen committed
287 288
	* Bump version

Matthias Clasen's avatar
2.8.1  
Matthias Clasen committed
289 290 291 292
	* === Released 2.8.1 ===

	* NEWS: Updates
	
Matthias Clasen's avatar
Matthias Clasen committed
293 294 295 296 297 298
2005-08-24  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_visible): Protect
	against lazy filterers which return values other than TRUE or
	FALSE from their visible func.  (#314335)

299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316
2005-08-23  Owen Taylor  <otaylor@redhat.com>

	Fix for #314004, reported by Michael Reinsch:

	* gdk/gdk.symbols:
	* gdk/gdkscreen.[ch]: Add gdk_screen_get/set_font_options_libgtk_only()
	Add gdk_screen_get/set_resolution_libgtk_only()

	* gdk/gdkpango.c (gdk_pango_context_get_for_screen): Set
	the options for the screen on the newly created context.

	* gtk/gtksettings.c (settings_update_font_options/dpi) gtkwidget.c: 
	Move font options and dpi code from gtkwidget.c to gtksettings.c, set
	the font options on the screen.

	* gtk/gtkwidget.c (gtk_widget_update_pango_context): Just get
	the font options from the screen and set them on the context.

317 318 319 320 321 322
2005-08-23  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted): don't
	bother inserting new rows in a level with a zero refcount and
	immediately free the level. (Fixes #312350, reported by Markku Vire).

323 324
2005-08-23  Matthias Clasen  <mclasen@redhat.com>

325 326 327 328
	* gtk/updateiconcache.c: Complain when there is no index.theme file
	in the specified directory, unless --force is used. Also add an
	--index-only option to create caches without image data.

329 330 331
	* gtk/gtkfilechooserdefault.c (shortcuts_append_desktop): Fix a
	C99ism.  (#314262, Robert Jeff Mitchell)
	
332 333 334 335 336 337
2005-08-22  Manish Singh  <yosh@gimp.org>

	* gtk/gtkicontheme.h: add declaration for _gtk_icon_theme_check_reload.

	* gtk/gtkwindow.c: remove declaration of gtk_window_read_rcfiles.

338 339 340 341 342 343 344 345 346 347 348
2005-08-22  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkwindow.c (gtk_window_client_event): 
	* gtk/gtkicontheme.c (ensure_valid_themes) 
	(_gtk_icon_theme_check_reload): Implement a clientmessage based
	scheme for makeing sure that all GTK+ applications notice if an
	icon theme has been updated. This should prevent multiple versions
	of an icon theme cache to be mapped in memory at the same time,
	which can cause excessive memory consumption.  (#313156, Chris 
	Lahey)

349 350
2005-08-22  Matthias Clasen  <mclasen@redhat.com>

351 352 353 354 355 356 357 358 359
	* gtk/gtkicontheme.c (gtk_icon_theme_load_icon): Add a note
	regarding icon theme changes.

	* gtk/gtkiconcache.c (_gtk_icon_cache_get_icon): When returning
	pixbufs which are backed by the mmapped memory of an icon cache,
	increase the refcount of the icon cache, so that the memory is not
	munmapped away underneath the pixbuf upon icon theme changes.  
	(#314170, Kjartan Maraas)

360 361 362
	* docs/tools/Makefile.am (LDADDS): Add GTK_DEP_LIBS, in order 
	to link against Xext.  (#314062)

363 364 365
	* gtk/gtkhsv.c (paint_triangle): One more fix to prevent buffer
	overruns.  (#314081, Hans Breuer)

366 367 368 369 370
2005-08-20  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkentry.c (gtk_entry_get_layout): Clarify that the
	returned layout must not be modified.

371 372 373 374 375 376 377 378 379 380 381 382
Sat Aug 20 16:12:14 2005  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_set_model): clear
	scroll_to_path if the model changes.

	* gtk/gtkiconview.c: (gtk_icon_view_destroy),
	(gtk_icon_view_size_allocate), (gtk_icon_view_set_cursor),
	(gtk_icon_view_scroll_to_path): Handle scrolling to a path before
	we're realized, #312798
	(gtk_icon_view_set_model): clear scroll_to_path if the model
	changes.

383 384 385 386 387 388
2005-08-20  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkrange.c (gtk_range_adjustment_changed) 
	(gtk_range_adjustment_value_changed):  Don't queue a draw
	if the layout has not changed.  (#313991, Benjamin Berg)

389 390
2005-08-19  Matthias Clasen  <mclasen@redhat.com>

391 392 393
	* gtk/gtktreeitem.c: Remove duplicate lines.  (#313344,
	Benoit Carpentier)

Matthias Clasen's avatar
Matthias Clasen committed
394 395 396
	* modules/engines/ms-windows/msw_style.c (setup_system_styles): 
	Fix a typo. 

397 398 399 400 401
	* gtk/gtkfilechooserbutton.c (change_icon_theme) 
	(model_add_special, model_add_special, model_add_volumes):
	Handle pixbuf being NULL without warnings. Also, don't
	leak pixbuf references when the icon theme is changed.

402 403 404 405
	* gtk/gtkmain.c (gtk_get_event_widget): Don't access
	the user data on destroyed windows, since at best
	it can be a stale pointer.  (#313953, Robin Green)	

406 407
2005-08-19  Matthias Clasen  <mclasen@redhat.com>

408 409 410
	* gtk/gtkhsv.c (paint_triangle): Avoid a buffer overrun.  
	(#313900, Sebastien Bacher)

411 412 413
	* gtk/gtktreeview.c (gtk_tree_view_get_visible_range): Return
	FALSE if the tree is empty.  (#313891, Guillaume Cottenceau)

414 415 416 417 418 419 420 421
	* gdk/x11/gdkdnd-x11.c (_gdk_drag_get_protocol_for_display) 
	(xdnd_read_actions, get_client_window_at_coords_recurse): 
	Free data returned from XGetWindowProperty. 

	* gdk/x11/gdkevents-x11.c (fetch_net_wm_check_window) 
	Free data returned from XGetWindowProperty.  (313867, Kjartan
	Maraas)
	
422 423 424
	* gdk/x11/gdkdnd-x11.c (get_client_window_at_coords_recurse): Free
	children in all cases.  (#313862, Kjartan Maraas)

425 426 427 428 429
	* gtk/gtkicontheme.c (theme_lookup_icon): Store GtkIconData structs 
	in the per-directory hash, even if they come from the icon cache. 
	We tried to avoid that before, but as a result leaked icon data
	structs.  (#313852, Kjartan Maraas)

430 431 432 433 434
2005-08-18  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenutoolbutton.c (gtk_menu_tool_button_destroy): Disconnect
	signal handlers on destroy, not on finalize.  (#313759, Brett Atoms)

435 436 437 438 439
2005-08-15  Owen Taylor  <otaylor@redhat.com>

	* configure.in: Add -lXext to GDK_EXTRA_LIBS in absence of pkg-config
	files for x11/xext. (Jonas Bonn)

440 441 442 443 444
2005-08-15  Tor Lillqvist  <tml@novell.com>

	* gtk/gtkicontheme.c (theme_lookup_icon): Put debugging printout
	inside GTK_NOTE.

445 446 447 448 449 450 451 452 453 454
2005-08-15  Owen Taylor  <otaylor@redhat.com>

	* configure.in: Fix have_base_pc / have_base_x_pc typo.

	* gdk/x11/gdkdrawable-x11.c gtk/gtksettings.c: Remove panoxft.h includes.
	(#313417, James Andrewartha)

	* configure.in: Add fontconfig to X_PACKAGES, since we use it for
	FcNameConstant(). (More of #313417)

455 456
2005-08-15  Matthias Clasen  <mclasen@redhat.com>

457 458 459 460 461 462 463 464
	* gtk/gtkfilechooserdefault.c: When using gtk_dialog_run() for
	modal dialogs, make sure to inherit the window group from 
	the parent, since we don't inherit window groups across
	transient parents currently.  (#312918, Christian Persch)

	* gtk/gtkmessagedialog.c (gtk_message_dialog_new): 
	* gtk/gtkdialog.c (gtk_dialog_run): Slight update to the docs. 

465 466 467 468
	* gtk/gtkiconview.c (gtk_icon_view_select_path) 
	(gtk_icon_view_scroll_to_path): Handle paths of depth 0
	gracefully.  (#312796, Jonathan Blandford)

469 470 471 472 473 474 475
	* tests/testtoolbar.c: Add some more tests for menu placement.

	* gtk/gtkmenutoolbutton.c (menu_position_func): 
	* gtk/gtktoolbar.c (menu_position_func): Improve positioning
	of toolbutton menus and of the overflow menu.  (#312937, 
	#153870, Christian Persch, Paolo Borelli)

476 477 478 479 480
2005-08-15  Tor Lillqvist  <tml@novell.com>

	* gtk/updateiconcache.c: Use g_path_get_dirname() instead of
	the nonportable <libgen.h> and dirname().

481 482
2005-08-15  Matthias Clasen  <mclasen@redhat.com>

483 484 485 486 487
	* gtk/gtksizegroup.c: Use object data to mark widgets and
	groups as visited, so that we avoid constant extra list
	traversals. Also allocate quarks in class_init.  (#311618,
	Michael Natterer)

488 489 490 491
	* gtk/gtkicontheme.c (gtk_icon_theme_lookup_icon): Correct the 
	download location for the hicolor icon theme. (#313475, Olexiy 
	Avramchenko)

492 493
	* gtk/gtkicontheme.c: Remove debug spew. 

494 495 496 497 498 499 500 501
2005-08-15  Owen Taylor  <otaylor@redhat.com>

	* gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_back_pixmap): 
	* gdk/win32/gdkwindow-win32.c (gdk_window_set_back_pixmap): 
	* gdk/x11/gdkwindow-x11.c (gdk_window_set_back_pixmap):
	Handle pixmap == NULL when checking for a colormap.
	(Allin Cottrell).

502 503 504 505 506 507 508 509 510 511 512 513
2005-08-14  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c: Store only one copy of the pixel data
	for symlinked icons. To achieve this, maintain a hashtable 
	mapping pathnames to pixel data, and share the pixel data for
	all symlinks resolving to the same pathname. When writing out
	the image data, write out the pixel data only the first time
	it is met, and store the offset pointing to the first copy
	for use in all later cases.
	This reduces the size of the Bluecurve icon cache from 40
	to 13MB. (#312972)