]> Pileus Git - ~andy/gtk/blob - ChangeLog.pre-2-6
corrected a brace position (Damon Chaplin), which i got wrong when
[~andy/gtk] / ChangeLog.pre-2-6
1 Wed Apr 15 05:13:09 1998  Tim Janik  <timj@gtk.org>
2
3         * gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
4         (Damon Chaplin), which i got wrong when applying Damon's patch the last
5         time.
6
7 1998-04-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
8
9         * gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
10         by whoever thought that randomly changing ints to unsigned int
11         without reviewing the code was a good idea.  It is, btw not
12         mentioned in the ChangeLog as usual, but I know it was not Elliot
13         the culprit this time. 
14
15 Mon Apr 13 19:16:22 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
16
17         * Released GTK+ 1.0.0
18
19 Mon Apr 13 21:40:14 1998  Owen Taylor  <owt1@cornell.edu>
20
21         * gtk/gtktext.c (find_char_width): Don't read the
22         character past the end of the text.
23
24         * gtk/gtkrange.c (gtk_real_range_timer): If the mouse
25         button has been released before the timer is activated,
26         don't keep on scrolling.
27
28         * gdk/gdk.c (gdk_event_translate): Filter subsequent configure
29         events after we discard the first. Removed obsolete and
30         sometimes very slow GdkOtherEvent. (Left in gdktypes.h
31         with signal in GTK)
32
33 Mon Apr 13 18:03:54 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
34
35         * README: update address info to gtk.org for ftp and web sites.
36
37 1998-04-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
38
39         * gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for
40         XPolygonRegion().
41
42         * gdk/gdk.h: Added prototype for gdk_region_polygon().
43
44         * gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons.
45
46 Mon Apr 13 15:04:26 1998  Michael K. Johnson <johnsonm@redhat.com>
47
48         * gtk/testgtk.c (create_clist): removed duplicate call to
49         gtk_widget_set_policy.
50
51 Mon Apr 13 05:03:11 1998  Tim Janik  <timj@gtk.org>
52
53         * gtk/gtkwindow.c (gtk_window_add_accelerator_table): check for
54         accelerator table to be != NULL.
55         (gtk_window_remove_accelerator_table): likewise.
56
57 Sun Apr 12 19:35:09 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
58
59         * INSTALL: typo, gtk-1.0.0 should be gtk+-1.0.0
60         * README: A little more intro on what gtk is...
61
62 Sun Apr 12 22:43:22 1998  Owen Taylor  <owt1@cornell.edu>
63
64         * gtk/gtkmenuitem.c (gtk_menu_item_size_allocate):
65         An old allocation error.
66
67         * gtk/gtkviewport.c (gtk_viewport_add): Don't map
68         when adding a not-VISIBLE widget to a VISIBLE 
69         viewport.
70         
71 Sun Apr 12 18:54:29 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
72
73         * Changed LGPL address for FSF in all .h and .c files
74
75 Sun Apr 12 20:09:40 1998  Owen Taylor  <owt1@cornell.edu>
76
77         * gtk/gtklabel.[ch] (gtk_label_expose): Set a flag so
78         instead of clearing the area in advance. That looked
79         _really_ bad.
80
81         * gtk/gtkcontainer.c (gtk_container_class_init): Changed
82         "focus" to RUN_LAST.
83
84         * gtk/gtkentry.c (gtk_entry_realize): Fixed place
85         where allocation was used where requisition was meant.
86         (Found by David J N Begley <david@avarice.nepean.uws.edu.au>)
87
88         * gtk/gtkwindow.c (gtk_window_set_default): Fixed
89         assertion in when setting default to NULL> 
90         ("Damon Chaplin" <DAChaplin@email.msn.com>)
91
92         * gtk/gtkwidget.c (gtk_widget_unparent): Unset the
93         default widget on the toplevel, if necessary.
94
95 Sun Apr 12 02:04:21 1998  Owen Taylor  <owt1@cornell.edu>
96
97         * gtk/gtkpreview.c: Removed unecessary and harmful
98         htons/ntohs when storing properties. (X does the byte
99         swapping itself)
100
101 Sat Apr 11 02:01:31 1998  Owen Taylor  <owt1@cornell.edu>
102
103         * gtk/gtktext.c (scroll_down): Removed incorrect part of
104         assertion that was causing failures for scrolling a single
105         line very short text widget.
106
107 Sat Apr 11 01:41:55 1998  Owen Taylor  <owt1@cornell.edu>
108
109         * gtk/gtktext.c (expose_text): Fixed a sign problem 
110         (typedef gint guint!). Added some checks to make sure things
111         are positive.
112
113 Sat Apr 11 05:51:22 1998  Tim Janik  <timj@gtk.org>
114
115         * gtk/gtktooltips.c (gtk_tooltips_event_handler): don't shut down the
116         tooltip on expose events.
117
118         * gtk/testgtk.c (create_progress_bar): add an example tooltip.
119
120 Fri Apr 10 00:10:16 1998  Owen Taylor  <owt1@cornell.edu>
121
122         * README/INSTALL: Extended for the 1.0 release.
123         * TODO:           Eliminated the "before 1.0" section
124
125 Thu Apr  9 19:31:51 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
126
127         * AUTHORS NEWS README configure.in gtk+.spec glib/configure.in:
128           changes for 1.0.0 release.
129
130 Thu Apr  9 18:36:31 1998  Owen Taylor  <owt1@cornell.edu>
131
132         * gtk/gtkmisc.c gdk/gdkwindow gtk/gtkentry.c gtk/testgtk.c:
133         Picky --enable-ansi cleanups.
134
135         * gtk/gtkstatusbar.c (gtk_statusbar_pop): Pop top message
136         off _belonging_to_this_context_. (gtk-d4bjorn-980409-0)
137
138         From "Damon Chaplin" <DAChaplin@email.msn.com>
139         
140         * gtk/gtktable.c (gtk_table_size_request_pass3): Small fix to size
141         requisition code.
142
143         * gtk/gtknotebook.c: Make sure not to do things to page->tab_label
144         if it doesn't exist.
145
146 Thu Apr  9 14:24:35 1998  Owen Taylor  <owt1@cornell.edu>
147
148         (Found by Mattias.Gronlund" <Mattias.Gronlund@sa.erisoft.se>)
149         
150         * gtk/gtkcurve.c (gtk_curve_interpolate): Added a
151         missing g_free.
152
153         * gtk/gtkcurve.c (gtk_curve_graph_events): Limits
154         were off by one, resulting in writing past array
155         bounds. Removed some unused code.
156
157         * gdk/gdk.c (gdk_dnd_drag_begin): The event structure
158         used for gdk_event_put should be a GdkEvent, not a 
159         subtype, since it will all be copied.
160
161         * gtk/gtkcolorsel.c: Added a unrealize handler that
162         unref's the GC's that were created.
163
164         * gtk/testgtk.c (clist_warning_test): ref and sink
165         child because it may never be added to anything.
166
167 Wed Apr  8 20:50:02 1998  Owen Taylor  <owt1@cornell.edu>
168
169         * gtk/gtkwindow.c (gtk_window_set_hints): Removed unsed
170         variables (gtk-jbuhler-980408-0)
171
172 Wed Apr  8 17:27:40 1998  Owen Taylor  <owt1@cornell.edu>
173
174         * gtk/gtkwidget.c (gtk_widget_unparent): Make sure
175         widgets get removed from the resize queue before the
176         connection between them and the resize queue is broken
177         by unparenting their parent.
178
179 1998-04-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
180
181         * gdk/gdk.c (gdk_event_translate): During drag and drop, set the
182         event mask at ButtonPress time to include ButtonPressMask and
183         ButtonReleaseMask, otherwise, if the button is released, and we
184         get a LeaveNotify event, it still thinks we are doing a drag.
185
186 Tue Apr  7 22:45:37 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
187
188         * Released GTK+ 0.99.10
189
190 Wed Apr  8 01:33:58 1998  Owen Taylor  <owt1@cornell.edu>
191
192         * gtk/gtkviewport.c (gtk_viewport_realize): Handle border
193         width correctly on realize after allocate.
194
195 Tue Apr  7 23:06:00 1998  Owen Taylor  <owt1@cornell.edu>
196
197         * Changes for GTK+ 0.99.10
198         
199         * examples/find-examples.sh: Script to find all the
200         files we need to distribute from the examples directory.
201
202 Tue Apr  7 19:14:03 1998  Owen Taylor  <owt1@cornell.edu>
203
204         * gdk/gdkpixmap.c: Added maximum field widths to prevent
205         possible '%s' scanf overflows. Replaced scanf("%c")
206         with getc(), Don't interpret /*/ as a full comment. Use
207         g_realloc/g_new.
208
209         * gtk/gtkwidget.h gtk/gtkprivate.h: Changed all flag
210         tests to check for ((GTK_WIDGET_FLAGS(widget) & FLAG) != 0)
211         instead of (GTK_WIDGET_FLAGS(widget) & FLAG)
212
213         * gtk/gtkfilesel.c: Use getwd() instead of getcwd() on  
214         SunOS, because getcwd() hangs up in a wait4().
215         (Found by David Monniaux <monniaux@clipper.ens.fr>)
216
217         - Check device/inode/mtime not just inode/mtime, when
218         caching scanned directories.
219         (From: scottk@ig.utexas.edu (Scott Kempf))
220         
221         * gdk/gdkpixmap.c: Check for 0 width/height when
222         creating pixmaps.
223
224         * gtk/*.c: Global substitution of recently introduced
225         "MAX (0," for allocations to "MAX (1,", since 
226         creating a backing pixmap with a zero width or height
227         fails.
228
229         * gdk/gdkwindow.c (gdk_window_new): Don't set all the
230         WM properties for child windows. Don't set the base
231         size, since the value we set will be taken as a minimum
232         size.
233
234 Wed Apr  8 00:00:48 1998  Tim Janik  <timj@gtk.org>
235
236         * gtk/gtklabel.c (gtk_label_expose): don't take '\n' into account for
237         size computation (Damon Chaplin).
238
239         * gtk/gtkvscale.c (gtk_vscale_draw_value): adjusted static snprintf()
240         buffer size to 32 characters (Damon Chaplin).
241         * gtk/gtkhscale.c (gtk_hscale_draw_value): likewise.
242
243         * gtk/gtkmain.c (gtk_main_iteration_do): gdk_flush() the X-queue if
244         iteration_done==TRUE since we will most likely not get invoked again
245         (Marius Vollmer).
246
247 Mon Apr  6 23:48:29 1998  Owen Taylor  <owt1@cornell.edu>
248
249         * gtk/gtkwindow.c (gtk_window_realize): Set the
250         window hints on every map so that GTK_WIN_POS_MOUSE
251         works correctly.
252
253 1998-04-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
254
255         * gtk/gtktable.h: 
256         * gtk/gtktable.c (gtk_table_set_homogeneous): Added function to
257         set the homogeneous flag of the table (needed by derived widgets
258         and such).
259
260 1998-04-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>
261
262         * gtk/gtkradiobutton.h: Add prototype for gtk_radio_button_new_with_label_from_widget.
263
264 Mon Apr  6 18:48:49 BST 1998 Tony Gale  <gale@gtk.org>
265
266         * docs/gtkfaq.sgml: more on GIMP (et al) configure
267           problems.
268
269 Mon Apr  6 08:05:23 1998  Owen Taylor  <owt1@cornell.edu>
270
271         * gtk/gtkbutton.c (gtk_button_paint): Take border in
272         account properly.
273
274         * gtk/gtktext.c (gtk_text_realize): Don't recompute
275         geometry when creating with initial 1x1 geometry,
276         since our calculations can't handle that. Leave
277         text->line_start_cache NULL as sign we don't have
278         a real geometry yet.
279
280         * gtk/gtkentry.c (gtk_entry_motion_notify): Use the x
281         value we get from gdk_window_get_pointer, not from
282         event->x - since we always specify OwnerGrabButtonMask
283         (why???), event->x can refer to another window.
284
285 Mon Apr  6 08:08:49 BST 1998  Tony Gale <gale@gtk.org>
286
287         * docs/gtk_tut.sgml examples/helloworld/helloworld.c:
288           Change a missed "delete_event" return value description
289           from TRUE to FALSE.
290
291 Mon Apr  6 00:28:28 1998  Owen Taylor  <owt1@cornell.edu>
292
293         * gtk/gtkcontainer.c (gtk_container_focus_tab): Make
294         tab key move in reading order (left-to-right top
295         to bottom) - which might have been the original intended 
296         behavior modulo sorting bugs.
297
298         * gtk-config.in: Never output -I/usr/include from --cflags
299
300 Sun Apr  5 21:47:12 1998  Owen Taylor  <owt1@cornell.edu>
301
302         * gtk/gtkmenubar.c: Fixed bug where right justified
303         menu would overlap last left justified item.
304
305 Sun Apr  5 19:30:23 1998  Owen Taylor  <owt1@cornell.edu>
306
307         * gtk/gtkclist.c: Fixed assignment of adjustment->value
308         to negative values. Moved a few other allocation type things
309         around in ways that may or may matter. Fixed some allocation
310         errors (scrollbars were overlapping main window).
311
312         * gtk/gtkbutton.c (gtk_real_button_released): Small hack to keep
313         button labels from vanishing when the invoked operation blocks.
314
315         * gtk/gtkbox.c (gtk_box_remove): Assigning GTK_WIDGET_VISIBLE (widget)
316         to a gboolean (char) is _bad_. GTK_VISIBLE == 256.
317
318 Sun Apr  5 15:08:25 1998  Owen Taylor  <owt1@cornell.edu>
319
320         * gtk/gtkmain.c: Reverted broken implementation of removing
321         the current timeout/idle. Substituted a (hopefully) functional one.
322
323 Sun Apr  5 09:35:55 1998  Tim Janik  <timj@gtk.org>
324
325         * gtk/gtkmain.c (gtk_events_pending): take expired timeouts into
326         account, otherwise things like e.g. spin-buttons don't work.
327         also, count gtk_main_quit() as an event.
328
329 Sun Apr  5 08:03:01 1998  Tim Janik  <timj@gtk.org>
330
331         * gtk/gtkspinbutton.c: fixed panel allocation and stacking order,
332         fixed the base class realization.
333
334         * gtk/gtkmisc.c: implemented widget arguments. 
335
336         * gtk/gtkentry.c: fixes in _realize to behave similar to
337         _size_allocate.
338
339 Sat Apr  4 12:23:23 BST 1998  Tony Gale  <gale@gtk.org>
340
341         * docs/gtk_tut.sgml: (gtk-crichton-980403-0) subsections on
342           Aspect Frames and Paned widgets.
343
344         * examples/paned examples/aspectframe: new examples
345
346 Fri Apr  3 23:15:55 1998  Owen Taylor  <owt1@cornell.edu>
347
348         * gtk/gtktext.c: Test for need to recompute geometry with
349         GTK_WIDGET_REALIZED(), not GTK_WIDGET_DRAWABLE().
350
351 1998-04-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>
352
353         * gtk/gtkhandlebox.c (draw_textured_frame): New function to draw a
354         nifty "textured metal" frame.  Could be useful in gtkstyle.c, maybe.
355         (gtk_handle_box_paint): Paint a handle that does not make you puke
356         when you look at it.
357
358 Fri Apr  3 21:03:38 1998  Owen Taylor  <owt1@cornell.edu>
359
360         * gtk/gtktext.c (gtk_text_realize): Call recompute_geometry()
361         upon realization, since it can't be done in the previous
362         size_allocate.
363
364 Fri Apr  3 20:36:52 1998  Owen Taylor  <owt1@cornell.edu>
365
366         * gdk/gdk.c gtk/gtkmain.c: Accept debug options 
367         in the form --g[td]k[-no]-debug=xxx as well
368
369 Fri Apr  3 18:33:47 1998  Owen Taylor  <owt1@cornell.edu>
370
371         * gtk-config.in: Added flags --prefix[=dir] and
372         --exec-prefix[=DIR] which allow querying and overriding the
373         configured-in prefix and exec-prefix.
374
375         * gtk.m4: Added configure flags --with-gtk-prefix=
376         and --with-gtk-exec-prefix= to set the --prefix and
377         --exec-prefix argumetns to gtk.m4
378
379 Fri Apr  3 17:14:55 1998  Owen Taylor  <owt1@cornell.edu>
380
381         * gdk/gdk.c: More extensive debugging output
382
383         * gtk/gtkalignment.c gtk/gtkbutton.c gtk/gtkcheckbutton.c
384           gtk/gtkclist.c gtk/gtkeventbox.c gtk/gtkhandlebox.c
385           gtk/gtk[hv]box.c gtk/gtk[hv]paned.c gtk/gtklist.c
386           gtk/gtkmenu.c gtk/gtkmenubar.c gtk/gtkmenuitem.c
387           gtk/gtknotebook.c gtk/gtktable.c gtk/gtktree.c 
388           gtk/gtktreeitem.c gtk/gtkviewport.c
389
390         Avoid assigning negative values to unsigned allocation.width and
391         height
392
393         * gtk/gtkwindow.c:
394
395         Instead of realizing the widget, then size allocating, (resulting
396         in XMoveResizeWindows for all children, do the size allocation
397         first, then realize. 
398
399         In gtk_real_window_move_resize, combine move and resize
400         into a single GDK/X call when possible.
401
402         * gtk/gtkclist.c gtk/gtkdrawingarea.c: 
403
404         Remove assumption that the widget will be size allocated _after_
405         it is realized.
406         
407         * gtk/gtklist.c (gtk_list_motion_notify): Removed useless
408         debugging message.
409
410 Wed Apr  1 21:51:37 1998  Owen Taylor  <owt1@cornell.edu>
411
412         * gtk/gtkmain.c: return NULL for gtk_get_event_widget (NULL)
413
414         * gtk/gtkentry.c: New algorithm to get more normal behavior
415         with scroll_offset when changing fonts.
416         
417 Thu Apr  2 17:30:04 BST 1998 Tony Gale <gale@gtk.org>
418
419         * examples/gtkdial/Makefile,
420           examples/menu/Makefile,
421           examples/tictactoe/Makefile : add correct dependencies
422
423 Thu Apr  2 13:04:37 BST 1998 Tony Gale <gale@gtk.org>
424
425         * docs/gtkfaq.sgml: add question on failing GIMP configure
426
427 Tue Mar 31 15:41:57 PST 1998 Shawn T. Amundson
428
429         * Makefile.am:
430         * examples/*: added the rest of the tutorial examples
431
432 Tue Mar 31 06:37:16 1998  Tim Janik  <timj@gtk.org>
433
434         * gtk/testgtk.c (create_cursors): forgot to set the initial `0' cursor.
435
436 1998-03-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
437
438         * gdk/gdkdnd.c (gdk_dnd_display_drag_cursor): First fix: Move the
439         window first, display it after (this removes one of the annoying
440         flashing effects).
441
442 Mon Mar 30 21:29:43 1998  Owen Taylor  <owt1@cornell.edu>
443
444         * gtk/gtkentry.c: Add a "style_set" callback, so the
445         font can be changed at run time. (needed for GIMP text
446         tool)
447
448 Tue Mar 31 01:17:23 1998  Tim Janik  <timj@gtk.org>
449
450         * gtk/gtknotebook.c (gtk_notebook_menu_item_create): show the menu_label
451         unconditionally (even if it is not a default label).
452         (gtk_notebook_update_labels): if we have a tab_label, then use its label
453         as the default menu_label.
454
455 Mon Mar 30 16:35:57 1998  Owen Taylor  <owt1@cornell.edu>
456
457         * gtk/testgtk.c: Improved main loop test. (Quits main
458         loop properly, makes it more obvious to the user
459         what is going on)
460
461         * gtk/gtkwidget.c (gtk_widget_unparent): Reset the
462         allocation _after_ clearing the window.
463
464         * configure.in: If can't find XShmAttach in Xext, check
465         in XextSam (for AIX).
466
467         * gtk/gtkmain.c (gtk_events_pending): Remember, small
468         numbers are _high_ priority for idle queues.
469
470         * gtk/gtkmain.c (gtk_handle_current_timeouts): Allow
471         removing the currently running timeout.
472
473         * gtk/testgtk.c (timeout_test): Use the right prototype
474         for callback.
475
476 Mon Mar 30 21:40:21 1998  Tim Janik  <timj@gtk.org>
477
478         * gtk/gtkclist.c (gtk_clist_row_from_ypixel): removed this function,
479         it was unneeded and not exported.
480
481         * gtk/gtkwidget.c (gtk_widget_ref) (gtk_widget_unref): don't check-cast
482         the widgets to volatile GtkObjects (which was there for debugging
483         purposes only). these functions should probably be macros, but that
484         would break binary compatibility again, sigh.
485         (gtk_widget_destroy): removed superfluous check-casts, since the
486         neccessary checks are done in gtk_object_destroy anyways. this should
487         be a macro as well but stays as a function for the above reasoonings.
488
489 Mon Mar 30 17:21:27 BST 1998 Tony Gale  <gale@gimp.org>
490
491         * docs/gtk_tut.sgml: reflect the change of meaning
492           of the delete_event return value
493
494 Sun Mar 29 22:25:22 BST 1998 Tony Gale  <gale@gimp.org>
495
496         * docs/gtk_tut.sgml: more on the Text widget,
497           update the tictactoe example to the current code
498  
499 Sun Mar 29 22:29:00 1998  Tim Janik  <timj@gtk.org>
500
501         * gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
502         Added wrapping capabilities to GtkSpinButton. New function :
503         gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
504
505 Sat Mar 28 21:18:42 1998  Owen Taylor  <owt1@cornell.edu>
506
507         * gtk/gtkcombo.c (gtk_combo_disable_activate): 
508         Disconnect from combo->entry, not combo.
509         (From: Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>)
510
511         * gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpm): Deal
512         better with xpm's with bad colors in them.
513         
514 Fri Mar 27 21:01:17 1998  Owen Taylor  <owt1@cornell.edu>
515
516         * gdk/gdk.c (gdk_event_translate): Don't call
517         XTranslateCoordinates on a destroyed window. (Why do we
518         do event processing at all on destroyed windows when we
519         throw out the results?)
520
521         * gtk/gtklabel.c: Clear the background when changing style/
522         state.
523
524 Fri Mar 27 16:35:00 PST 1998 Shawn T. Amundson <amundson@gtk.org>
525
526         * Released GTK+ 0.99.9
527         
528         * examples: added a couple more, fixed some Makefiles
529
530 Fri Mar 27 17:58:41 1998  Owen Taylor  <owt1@cornell.edu>
531
532         * gtk/gtkhandlebox.c (gtk_handle_box_paint): Don't clear
533         the window on an expose event. On draws, just clear the
534         portion we are redrawing.
535
536         * gdk/gdkfont.c (gdk_fontset_load): Corrected calculation
537         of fontset ascent/descent.
538
539         * gtk/gtkwidget.[ch]: Added new function to show a toplevel
540         window and wait for it to be mapped, gtk_window_show_now ()
541
542 Fri Mar 27 08:51:17 PST 1998 Shawn T. Amundson <amundson@gtk.org>
543
544         * docs/Makefile.sgml: some stuff for doing plain text and
545           postscript
546
547 Fri Mar 27 00:13:18 1998  Owen Taylor  <owt1@cornell.edu>
548
549         * gtk/gtkmain.c (gtk_propagate_event): If the widget is _not_
550         a descendant of a Window widget, propagate key presses like
551         other events.
552
553         * gtk/gtkentry.c gtk/gtktext.c: Ignore multiple simultaneous
554         button presses instead of treating subsequent presses as
555         release/press pairs for tablet compatibility.
556
557         * configure.in config.h.in: Removed inline checks, because they
558         are duplicated in glib.
559
560         * gtk/gtkwidget.c (gtk_widget_draw): When gtk_widget_draw ()
561         occurs with queued draw already in place, redraw _entire_
562         widget. (Pointed out by Tim Janik)
563
564 Thu Mar 26 23:12:54 1998  Tim Janik  <timj@gtk.org>
565
566         * gtk/gtkmain.c (gtk_propagate_event): make a clear distinction between
567         key press/release events, which will be sent to a widgets toplevel
568         ancestor and be forwarded from there, and all other events that need to
569         get propagated up the widget tree (pointed out by Owen Taylor).
570
571 Thu Mar 26 21:37:57 1998  Tim Janik  <timj@gtk.org>
572
573         * gtk/gtkradiobutton.c (gtk_radio_button_draw_indicator): always
574         display the correct active state.
575
576         * gtk/gtkcheckbutton.c (gtk_real_check_button_draw_indicator): always
577         display the correct active state.
578
579         * gtk/gtkwidget.c (gtk_widget_set_arg): CAN_FOCUS and CAN_DEFAULT flag
580         changes need to queue a resize.
581
582         * gtk/gtkbutton.c (gtk_button_paint): take border_width into
583         consideration for restrict area.
584
585         * gtk/gtktogglebutton.c (gtk_toggle_button_class_init): enable the
586         draw_default member of GtkButton, otherwise the diplay is messed up
587         for CAN_DEFAULT toggles.
588         (gtk_toggle_button_draw_focus): always display whether the toggle button
589         is active or not.
590
591         * gtk/gtkwidget.c (gtk_widget_set_state): 
592         (gtk_widget_set_sensitive): 
593         (gtk_widget_set_parent): 
594         (gtk_widget_propagate_state): take into consideration, whether we really
595         want to change childrens states, or just restauration of old states.
596
597 Thu Mar 26 15:33:50 1998  Owen Taylor  <owt1@cornell.edu>
598
599         * gtk/gtkwidget.c: When gtk_widget_draw() is called on a 
600         REDRAW_PENDING widget, draw it and remove it from the
601         queue instead of doing nothing.
602
603         * gtk/Makefile.am gdk/Makefile.am: Switch order of includes
604         directories, to make doubly sure that wrong glibconfig.h
605         isn't used. (See also glib/ChangeLog)
606
607         * gtk/gtkentry.c (gtk_entry_draw_focus): Don't draw the
608         cursor unless the entry is editable.
609
610         (From: Stefan Jeske <jeske@braunschweig.netsurf.de>)
611
612 Thu Mar 26 08:31:58 1998  Tim Janik  <timj@gtk.org>
613
614         * gtk/gtkmain.c (gtk_propagate_event): do not propagate unhandled key
615         events on widgets with parent==NULL twice.
616
617 Tue Mar 24 14:59:50 1998  Tim Janik  <timj@gtk.org>
618
619         * gtk/gtkhandlebox.h:
620         * gtk/gtkhandlebox.c: implemented new flag shrink_on_detach (TRUE by
621         default) which will cause the handle boxes requisition to collapse in
622         case the child is already detached.
623
624 Tue Mar 24 00:17:42 1998  Owen Taylor  <owt1@cornell.edu>
625
626         * gtk/gtkcombo.c gtk/gtkmenu.c: Use reversed arrow for
627         menus ala Motif (and fix Options menus, which had X cursor
628         before), and show normal arrow when inside ComboBox.
629
630         * gtk/gtkfilesel.c: Various memory leaks removed, as
631         pointed out by Mattias.Gronlund" <Mattias.Gronlund@sa.erisoft.se>
632
633         * docs/gtk_tut.sgml: Change compiling explaination
634         to refer to gtk-config.
635         (From: johannes@nada.kth.se (Johannes Keukelaar))
636         
637 1998-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
638
639         * gtk/gtkclist.c (gtk_clist_size_allocate): Fixed xthickness ->
640         ythickness typo.
641
642 Tue Mar 24 03:53:18 1998  Tim Janik  <timj@gtk.org>
643
644         * gtk/gtkbox.c (gtk_box_remove): save the widgets visibility flag for
645         evaluation after the widget got destroyed, discovered by Johannes
646         Keukelaar <johannes@nada.kth.se>.
647
648 1998-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
649
650         * gtk/gtkclist.c (gtk_clist_set_row_data_full): Select the row
651         which got its data changed, and not (0, 0).
652
653 Mon Mar 23 18:19:42 1998  Owen Taylor  <owt1@cornell.edu>
654
655         * gtk/gtkmenu.c gtk/gtkmenushell.c: Instead of making
656         an X grab when the button is released, grab immediately.
657         This solves a problem where menus wouldn't pop down
658         if the caller didn't have the BUTTON_RELEASE mask on
659         their window, and and another where the X grab would
660         be released prematurely.
661
662         * gtk/gtklist.c gtk/gtktree.c: Do sanity checking on
663         button presses to make sure they occurred in a child item.
664         (From: "Damon Chaplin" <DAChaplin@email.msn.com>)
665
666         * gtk/gtkmenushell.c: Do sanity checking on button
667         press/releases. Handle button events on window widget
668         descendents of menu items correctly.
669         
670         * gtk/gtkclist.c gtk/gtkbutton.c gtk/gtkviewport.c 
671           gtk/gtkeventbox.c:
672
673         Make the window size allocated in _realize() match that
674         in _size_allocate(). Take into account the border width
675         in the draw() handler.
676
677 Mon Mar 23 15:26:25 1998  Tim Janik  <timj@gtk.org>
678
679         * gtk/gtkentry.c (gtk_entry_append_text): check for text!=NULL.
680         (gtk_entry_prepend_text): likewise.
681         some else picky indentation fixes.
682
683 Mon Mar 23 12:03:03 CST 1998 Shawn T. Amundson <amundson@gtk.org>
684
685         * examples/: added this directory with stuff from
686           the tutorial, updated to compile and work with recent
687           changes
688
689 Mon Mar 23 01:04:51 1998  Owen Taylor  <owt1@cornell.edu>
690
691         * gtk/gtktext.[ch] testgtk.c: Added optional word wrap, controlled
692           by new function gtk_text_set_word_wrap; and a check button
693           in the Text test.
694
695         * gtk/gtktext.c: First line wasn't getting updated
696         properly when selection was removed.
697
698 Sun Mar 22 23:33:50 1998  Owen Taylor  <owt1@cornell.edu>
699
700         * gtk/gtkentry.c (gtk_entry_insert_text): Fixed some
701           problems with !gtk_use_mb introduced in the last change.
702
703 Sun Mar 22 21:00:43 1998  Owen Taylor  <owt1@cornell.edu>
704
705         * gtk/gtkpaned.c: Fix so children don't get bogus draws.
706
707 Mon Mar 23 01:08:30 1998  Tim Janik  <timj@gtk.org>
708
709         * gtk/gtkclist.c (gtk_clist_class_init): leave container_class->add and
710         container_class->remove untouched if we don't implement them.
711
712         * gtk/gtkcontainer.c (gtk_container_class_init): add missing NULL
713         initialization for the class method (*foreach). implement a default
714         handler to output a warning for (*add) and (*remove).
715
716 Sun Mar 22 19:01:36 1998  Owen Taylor  <owt1@cornell.edu>
717
718         * gdk/gdkcolor.c: Fixes to allow GTK to work with colormaps
719           that aren't 256 entries long. (colormap->colors is
720           now dynamically allocated)
721
722 Sun Mar 22 16:25:46 1998  Owen Taylor  <owt1@cornell.edu>
723
724         * gtk/gtkmain.c (gtk_init): fixes to locale checks
725
726         * gtk/testgtk.c (create_dnd): Create the dnd icons separately
727           to avoid strange interactions with shapes demo.
728
729         * gtk/gtkentry.[ch]: 
730           - Limit the length of the text to 2048 to prevent long delays
731           - Fix problems with buffer overruns
732           - Draw only the onscreen portion of the text to prevent wrapping
733             of shorts in the X drawing code.
734           - Keep track of character positions and x-offsets to speed
735             up algorithms.
736
737 Sun Mar 22 11:37:51 CST 1998 Shawn T. Amundson <amundson@gtk.org>
738
739         * gtk/gtkcolorsel.c: 
740         * gtk/gtkfilesel.c: use button_box for buttons
741
742 Sat Mar 21 19:07:01 1998  Owen Taylor  <owt1@cornell.edu>
743
744         * gtk/testgtk.c (dnd_drop): Don't respond to drops when
745           grab is in effect. (workaround)
746
747         * gdk/gdkfont.c (gdk_fontset_load): More details on
748           error messages.
749
750         * gdk/gdk.c: Translate va_list to XVaNestedList instead
751           of just casting it.
752
753         * gtk/gtkmain.c: Make temporary copy of string returned by
754           setlocale, since it may be changed by subsequent calls.
755
756 Sat Mar 21 22:54:31 1998  Tim Janik  <timj@gtk.org>
757
758         * gtk/gtkhandlebox.h:
759         * gtk/gtkhandlebox.c: major overhaul of the code, fixed all
760         known bugs (hopefully ;).
761
762 Sat Mar 20 15:33:17 1998  Tim Janik  <timj@gtk.org>
763
764         * gtk/gtkwidget.c (gtk_widget_real_show): queue the resize for the
765         parent.
766
767 Thu Mar 19 02:00:50 1998  Tim Janik  <timj@gtk.org>
768
769         * gtk/gtkwidget.c (gtk_widget_unrealize): unset flags after emission,
770         especially GTK_MAPPED, since that might not have been taken care of
771         by an UNMAP emission.
772
773 Sat Mar 21 10:39:02 CET 1998 Paolo Molaro <lupus@debian.org>
774
775         * gtk/gtkcombo.[ch] "activate" signal can be disabled now
776
777 Fri Mar 20 20:49:33 1998  Radek Doulik  <rodo@aquarius>
778
779         * gtk/gtktoolbar.c (gtk_toolbar_insert_element): changed packing
780         in toolbar elements, so texts are always at the bottom
781
782 Wed Mar 18 01:07:11 1998  Radek Doulik  <rodo@aquarius>
783
784         * gtk/gtkclist.c (gtk_clist_column_titles_show): test if
785         clist->title_window exists before showing it,
786         gtk_clist_column_titles_hide also fixed
787
788 Thu Mar 19 16:40:47 PST 1998 Shawn T. Amundson <amundson@gimp.org>
789
790         * Released GTK+ 0.99.8
791
792 Thu Mar 19 16:28:48 CST 1998 Shawn T. Amundson <amundson@gimp.org>
793
794         * the Solaris ltconfig patch from draco
795
796 Wed Mar 18 17:03:02 PST 1998 Manish Singh <yosh@gimp.org>
797
798         * gtk/gtkcolorsel.c: #define M_PI if it isn't already
799         * gtk/testgtk.c: initialize transparent properly, to make purify
800         happy
801
802 Thu Mar 19 00:37:44 1998  Tim Janik  <timj@gtk.org>
803
804         * gtk/gtkscrolledwindow.c (gtk_scrolled_window_construct): perform the
805         neccessary checks on funtion begin. use the scrolled_window that got
806         passed to this function, and not a new one.
807
808 Wed Mar 18 11:09:10 1998  Owen Taylor  <owt1@cornell.edu>
809         ( From: James Henstridge <james@daa.com.au> )
810
811         * gtk/gtkclist.c: Don't remove, then destroy labels in
812           gtk_clist_set_column_[*], just remove them.
813         
814         * gtk/gtkmain.c (gtk_invoke_timeout_function): call
815           marshal when appropriate, not function.
816
817 Tue Mar 17 14:15:07 1998  Owen Taylor  <owt1@cornell.edu>
818
819         * gtk/testgtk.c (create_main_window): Alphabetize tests
820
821         * gtk/gtk[hv]paned.c: Change division on resize if
822           necessary to keep handle visible.
823
824         * gtk/gtkgamma.c gtk/gtkcurve.c: Moved initialization into 
825           _init() functions.
826
827         * gtk/gtkscrolledwindow.c: Added missing _construct()
828           functions.
829
830 Wed Mar 18 17:38:25 CET 1998    Paolo Molaro <lupus@debian.org>
831
832         * gtk/gtkentry.[ch]: checked in gtk_entry_set_max_length
833         (it truncates the texts if it's longer, now)
834
835 Wed Mar 18 02:06:52 1998  Tim Janik  <timj@gtk.org>
836
837         * gtk/gtkcontainer.c (gtk_container_border_width): use the resize queue.
838
839         * gtk/gtkwindow.c (gtk_window_set_arg): gtk_window_set_hints() after
840         setting certain arguments, so they actually take affect.
841         (gtk_window_set_policy): likewise.
842
843 Tue Mar 17 22:45:39 1998  Tim Janik  <timj@gtk.org>
844
845         * gtk/gtkwidget.c (gtk_widget_get_arg): return real boolean values
846         not just numbers.
847
848         * gtk/gtktogglebutton.c (gtk_toggle_button_set_state): check
849         state for != 0, otherwise we get strange results.
850
851 Tue Mar 17 01:55:00 1998  Owen Taylor  <owt1@cornell.edu>
852
853         * gtk/gtkmain.c gtk/gtkentry.c: Try to guess if we can
854           use the mb* functions safely. (For glibc, they do
855           UTF-8). Heuristic is (X_LOCALE && locale != C/POSIX)
856           || (mblen("\xc0", MB_CUR_MAX) == 1).
857        
858         (From: "Richard Lloyd" <rkl@csc.liv.ac.uk>)
859         
860         * gdk/gdk.c (gdk_ic_get_attr): Use an intermediate
861           variable to avoid taking the address of the result
862           of va_arg. 
863
864         * gtk/gtkentry.c gtk/gtkeditable.c gtkobject.c
865           gtk/testselection.c: signedness fixups
866
867         * gtk/gtkcontainer.c: Fixed implicit cast between
868           gpointer and func pointer by changing.
869
870         * gtk/gtkcombo.c, gtk/gtkentry.c, gtk/gtktext.c:
871           static void forward declaration vs. void actual fixed
872
873         * gtk/testgtk.c: Limit total number of tree items to 10,000
874         
875 Mon Mar 16 21:14:52 1998  Owen Taylor  <owt1@cornell.edu>
876
877         * gdk/gdkvisual.c: Put visual names into #ifdef G_ENABLE_DEBUG
878             gtk-jbuhler-980315-0.patch
879
880         * gdk/gdkcc.c: Changed DEBUG => G_ENABLE_DEBUG, eliminate
881           unused variable warnings.
882
883 Tue Mar 17 16:19:47 1998  Tim Janik  <timj@gimp.org>
884
885         * gdk/gdk.c: 
886         * gdk/gdkvisual.c: changed some debugging messages to be prefixed
887         by "Gdk:".
888
889         * gtk/gtkwidget.c (gtk_widget_real_draw): applied
890         gtk-shige-980317-0.patch.gz to set all event fields, but modified
891         the event.send_event field to be set to TRUE, since the event is not
892         really comming from the server.
893
894         * gtk/gtkwindow.c (gtk_window_init): applied gtk-ograf-980317-1.patch.gz
895         which cares about an initial setting of program name and program class.
896
897         * gdk/gdk.c (gdk_init): applied gtk-ograf-980317-0.patch.gz, which
898         strips leading pathnames from gdk_progname.
899
900 Tue Mar 17 12:36:35 1998  Tim Janik  <timj@gimp.org>
901
902         * gtk/gtkstyle.c (gtk_default_draw_arrow): fixed a bug about drawing
903         GTK_ARROW_LEFT, correction from Damon Chaplin <DAChaplin@email.msn.com>.
904
905 Tue Mar 17 02:02:02 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
906
907         * gdk/gdk.c (gdk_dnd_drag_leave): Use StructureNotifyMaskMask as
908         the mask, as this enables an application listening to those events
909         to catch the root events.  Thanks to Maciej for pointing us in the
910         right direction.
911         (gdk_dnd_drag_enter): Likewise.
912         (gdk_dnd_drag_leave): Likewise.
913         * gdk/gdkwindow.c (gdk_window_dnd_data_set): Likewise.
914
915 Mon Mar 16 22:31:02 1998  Federico Mena  <federico@nuclecu.unam.mx>
916
917         * gdk/gdkwindow.c (gdk_window_xid_at): Use signed integers so that
918         testing will not fail for windows that are off-screen.  
919
920         (gdk_window_xid_at_coords): Only considers visible windows.     
921
922 Tue Mar 17 03:56:13 1998  Tim Janik  <timj@gimp.org>
923
924         * gtk/gtkspinbutton.h: exported gtk_spin_button_spin since it is
925         used in testgtk, and besides that.
926
927         * gtk/testgtk.c: created a new "test" cursors, which showes different
928         types of GdkCursors and is a very simple example at using the drawing
929         area.
930
931 Mon Mar 16 18:19:31 GMT 1998 Tony Gale  <gale@gimp.org>
932         * docs/gtkfaq.sgml:
933             - new question on modal windows
934             - new question on updating progressbars
935             - update all the links to gtk.org
936
937 Mon Mar 16 09:15:03 GMT 1998 Tony Gale  <gale@gimp.org>
938
939         * docs/gtk_tut.sgml: 
940             - New subsection on colourselection from Tom Bech <tomb@ii.uib.no>
941             - Moved fileselection text to Miscallaneous Widgets section
942             - Started new section on the Text widget
943             - Removed Viewport, Paned, HPaned and VPaned from list of
944               NO_WINDOW widgets.
945
946 Mon Mar 16 01:33:36 1998  Owen Taylor  <owt1@cornell.edu>
947
948         * gtk-config.in: Added trailing newline, hopefully will
949           fix the problem with esac disappearing.
950
951         * gtk/Makefile.am (test-debug): Improved test targets
952           will work with --enable-shared
953             [From:  Raja R Harinath  <harinath@cs.umn.edu>]
954
955         * gtk.m4: Not all shells understand $(...).  Use `...` instead.
956             [From:  Raja R Harinath  <harinath@cs.umn.edu>]
957         - use AM_PATH_PROG instead of AM_CHECK_PROG, so the user
958           can specify programs not in their path.
959   
960         * Makefile.am: added gtk.m4 to EXTRA_DIST
961
962 Sun Mar 15 23:44:10 1998  Tim Janik  <timj@gimp.org>
963
964         * gtk/gtkwidget.h:
965         * gtk/gtkmenushell.c: 
966         * gtk/gtkmenu.c: 
967         * gtk/gtkmain.c: removed EXCLUSIVE_GRAB again, just disable modal
968         event delivery for insensitive children.
969
970 Sun Mar 15 22:44:33 1998  Tim Janik  <timj@gimp.org>
971
972         * gtk/gtkmenushell.c (gtk_menu_shell_button_release): for now reverted
973         the last change, since it broke click-select-click menus for gimp.
974
975 Sun Mar 15 20:13:42 1998  Tim Janik  <timj@gimp.org>
976
977         * gtk/gtkmain.c (gtk_quit_destructor): removed the ugly check whether
978         we need gtk_widget_destroy or gtk_object_destroy. these functions are
979         by no means allowed to act differently!
980
981         * gtk/gtkmisc.c (gtk_misc_set_alignment): check for _DRAWABLE instead
982         of _VISIBLE to operate on widget->window.
983         (gtk_misc_set_padding): likewise.
984
985         * gtk/gtkwidget.c: slightly reordered object arguments.
986
987         * gtk/gtkobject.c (gtk_object_setv):
988         * gtk/gtkobject.c (gtk_object_getv):
989         operator `!' has precedence over `&'.
990
991 Sun Mar 15 14:38:34 1998  Tim Janik  <timj@gimp.org>
992
993         * gtk/gtknotebook.c (gtk_notebook_pages_allocate): applied a fix from
994         lars against a segfault that i discovered.
995
996 Sun Mar 15 13:25:28 1998  Tim Janik  <timj@gimp.org>
997
998         * gtk/gtkwidget.h: added new flag GTK_EXCLUSIVE_GRAB.
999         * gtk/gtkmain.c: allow exclusive grabs.
1000
1001         * gtk/gtkmenu.c: grab exclusively.
1002         * gtk/gtkmenushell.c: grab exclusively.
1003
1004         * gtk/gtkmenushell.c: don't activate insensitive menu items when
1005         in click-selects mode.
1006
1007         * gtk/gtkmenushell.c (gtk_menu_shell_enter_notify): activate submenus
1008         on popup.
1009
1010         * gtk/gtkmenushell.c (gtk_menu_shell_button_release): don't take
1011         *additional* button presses into account.
1012
1013         * gtk/gtkmenushell.c (gtk_menu_shell_button_press): don't take
1014         foreign button releases into account.
1015
1016 Sun Mar 15 08:27:06 1998  Tim Janik  <timj@gimp.org>
1017
1018         * gtk/gtktipsquery.c (gtk_tips_query_set_labels): changed run type
1019         of GtkTipsQuery::widget_entered to GTK_RUN_LAST, so it can be overidden
1020         by the user.
1021
1022         * gtk/gtkwindow.c (gtk_window_configure_event): small fix by
1023         Assar Westerlund <assar@sics.se>.
1024
1025         * gtk/gtkmenu.c (gtk_menu_key_press): don't cast a NULL pointer.
1026
1027 Sat Mar 14 19:36:16 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1028
1029         * Released 0.99.7
1030
1031 Sat Mar 14 20:07:45 1998  Owen Taylor  <owt1@cornell.edu>
1032
1033         * gtk.m4: Fixed reversed conditional, so checks against
1034           supplied version.
1035
1036 Sat Mar 14 10:10:46 1998  Tim Janik  <timj@gimp.org>
1037
1038         * gtk/gtkmain.c (gtk_main): fixed a bug with invoking the quit handlers
1039         that could cause them to be removed wihout being invoked.
1040
1041 Sat Mar 14 14:36:40 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1042
1043         * Released 0.99.6
1044         
1045         * gdk/gtk_tut.sgml:
1046         * gdk/gtk_tut_it.sgml: fixed Ian Main's e-mail address
1047
1048 Sat Mar 14 17:48:42 1998  Owen Taylor  <owt1@cornell.edu>
1049
1050         * gtk/Makefile.am: Don't refer to current directory as 
1051         $(top_builddir)/gtk to avoid confusing non-gmakes. Made
1052         Emacs-dependent maintainer-oonly
1053
1054 Sat Mar 14 17:47:12 1998  Owen Taylor  <owt1@cornell.edu>
1055
1056         * gdk/gdkwindow.c: (gdk_window_set_group): Fixed use of
1057            unitialized variable.
1058
1059 Sat Mar 14 13:26:09 1998  Owen Taylor  <owt1@cornell.edu>
1060
1061         * gtk/gtkentry.c gtk/gtktext.c: Some cleanups of signedness
1062           warnings
1063
1064         * gtk/gtkhandlebox.h: Changed gint ... : 1 to guint ... : 1
1065          
1066 1998-03-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1067
1068         * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Moved the
1069         gtk_signal_connect of the specified callback into the big switch()
1070         for buttons.  We don't want to connect to the "clicked" signal of
1071         a custom widget or a space element, because it may not have one.
1072         (gtk_toolbar_insert_element): Extra sanity check; if the type is
1073         GTK_TOOLBAR_CHILD_WIDGET, then the specified widget must not be NULL.
1074
1075 Sat Mar 14 02:54:28 PST 1998 Manish Singh <yosh@gimp.org>
1076
1077         * gtk.m4: fixed a bashism in gtk tests
1078
1079 Sat Mar 14 08:29:56 1998  Tim Janik  <timj@gimp.org>
1080
1081         * gtk/gtkhandlebox.c (gtk_handle_box_size_allocate): refuse to allocate
1082         with a greater height than requested.
1083         (gtk_handle_box_remove): clean up if the child is detached.
1084
1085         * gtk/gtktoolbar.c (gtk_toolbar_size_allocate): don't take invisible
1086         children into account.
1087
1088 Sat Mar 14 02:12:44 1998  Owen Taylor  <owt1@cornell.edu>
1089
1090         * gtk/gtkmain.c gdk/gdk.c: Don't leave NULL's in argv.
1091
1092 Sat Mar 14 01:36:51 1998  Owen Taylor  <owt1@cornell.edu>
1093
1094         * gtk-config.in: Added -I $exec_prefix/glib/include to cflags
1095
1096 Sat Mar 14 00:03:34 1998  Owen Taylor  <owt1@cornell.edu>
1097
1098         * gtk/gtkwindow.c:
1099           Don't resize windows when request is rejected by WM.
1100           Only use the resize count to guess whether a Configure
1101           event was a rejection by the WM, or a move.
1102
1103         * gdk/gdk.c gdk/gdktypes.h: 
1104           - Don't XDestroyWindow foreign windows (If they're a child of
1105           one of our windows, reparent them to root and send them a WM 
1106           delete event, otherwise, just delete the GTK structure.) 
1107           Handle notification of their deletion properly.
1108           (Made foreign windows a seperate window type to do this)
1109         
1110         * gtk/gtkobject.c (gtk_object_set_data_full): 
1111           Call the DestroyNotify when replacing the object data.
1112
1113 Sat Mar 14 02:03:13 1998  Tim Janik  <timj@gimp.org>
1114
1115         * gtk/gtksignal.c: make use of *_by_id() functions for handler key.
1116
1117         * gtk/gtkwidget.c: make use of *_by_id() functions for a bunch of keys.
1118         (gtk_widget_shutdown): new function to perform pre-destruction shutdown
1119         of the widget.
1120         (gtk_widget_unparent): call gtk_widget_set_parent_window(widget,NULL)
1121
1122         * gtk/gtkobject.h: 
1123         * gtk/gtkobject.c: GtkObject destruction is now split into an internally
1124         used shutdown class method and the usual GtkObject::destroy signal
1125         emission. this allowes for class based shutdown functionality prior
1126         to actuall object destruction.
1127         added *_by_id() counterparts for gtk_object_data_* functions, meant for
1128         internal use only.
1129
1130         * gtk/gtkmain.c (gtk_quit_add_destroy): new function which will destroy
1131         a GtkObject once gtk_main() of a certain level finishes. it is save to
1132         destroy the object prior to that, gtk_quit_add_destroy will only destroy
1133         objects that are still existing.
1134
1135 1998-03-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1136
1137         * gtk/gtkclist.c (gtk_clist_row_is_visible): Now we return a
1138         GtkVisibility value, instead of a simple boolean.  Also, changed
1139         all the functions that expected a boolean value to use
1140         "!= GTK_VISIBILITY_NONE".
1141
1142         * gtk/gtkclist.h: Changed prototype for gtk_clist_row_is_visible().
1143
1144         * gtk/gtkenums.h (enum): Added GtkVisibility enum.
1145
1146 Fri Mar 13 11:23:55 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1147
1148         * docs/gtk_tut.sgml:
1149         * docs/gtk_tut_it.sgml:
1150         * docs/gtk_tut_packbox1.gif:
1151         * docs/gtk_tut_packbox2.gif:
1152         * docs/gtk_tut_table.gif: added graphics, update tutorials
1153           appropriately
1154
1155 Fri Mar 13 18:25:07 1998  Tim Janik  <timj@gimp.org>
1156
1157         * gtk/gtkcombo.c: fix popup calculations (removal
1158         of FIXMEs), changes from Lars Hamann.
1159
1160 Fri Mar 13 10:25:16 1998  Tim Janik  <timj@gimp.org>
1161
1162         * gtk/gtkwidget.h: 
1163         * gtk/gtkwidget.c: renamed gtk_widget_delete_hides to
1164         gtk_widget_hide_on_delete at owens request, and because the
1165         new name is much more descriptive.
1166
1167 Fri Mar 13 17:33:56 GMT 1998 Tony Gale <gale@gimp.org>
1168
1169         docs/gtkfaq.sgml: fix the spelling of Helge Hess's name
1170
1171 Fri Mar 13 09:40:17 GMT 199 Tony Gale  <gale@gimp.org>
1172
1173         * docs/gtkfaq.sgml: update links to documentation and
1174           remove question on what needs to be done before 1.0
1175
1176 Fri Mar 13 01:17:44 1998  George Lebl  <jirka@5z.com>
1177
1178         * gtk/gtkfilesel.c: Set the column width of the clists
1179           to the longest string length so that the bottom scrollbar
1180           appears when you get some long files in the list
1181
1182 1998-03-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1183
1184         * docs/gtk_tut.sgml: fix one missing quote.
1185
1186 Thu Mar 12 18:01:03 1998  Owen Taylor  <owt1@cornell.edu>
1187
1188         * gtk.m4 gtk-config.in Makefile.am configure.in: 
1189           Added a new mechanism for GTK-dependent programs to
1190           find out about the installed GTK. (Does not remove
1191           any current functionality)
1192
1193         * gtk+-xconfig.in: Was no longer used for anything.
1194
1195 Thu Mar 12 20:17:47 1998  Tim Janik  <timj@gimp.org>
1196
1197         * gtk/gtkhandlebox.c (gtk_handle_box_delete_float): return TRUE for
1198         GtkWidget::delete_event to avoid destruction of our float window.
1199
1200         * gtk/gtkmain.c (gtk_main_iteration_do): GDK_DELETE will destroy a
1201         widget if the last handler returned FALSE or there was none connected.
1202
1203         * gtk/testgtk.c: adapted all delete_event/destroy case that were affected.
1204
1205         * gtk/gtkwidget.c (gtk_widget_delete_hides): new function that will hide
1206         a widget and return TRUE to avoid window deletion if
1207         connected to GtkWIdget::delete_event.
1208
1209 Thu Mar 12 11:51:33 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1210
1211         * docs/gtk.texi: Changed name of GTK to the GIMP Toolkit
1212
1213 Wed Mar 11 22:52:57 1998  Russell Nelson <nelson@crynwr.com>
1214
1215         * gtk/gtktest.c: new_pixmap wasn't using its filename argument.
1216         * docs/gtk.texi: Add descriptions
1217
1218 Wed Mar 11 14:36:48 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1219
1220         * gtk/docs/: added tutorial, changed some files around to
1221           make more sense.
1222
1223 Thu Mar 12 10:49:38 1998  Tim Janik  <timj@gimp.org>
1224
1225         * gtk/gtkmain.h: 
1226         * gtk/gtkmain.c: changed handler tags to be of type guint, reflecting
1227         the internal tag handling.
1228
1229         * gtk/gtkcurve.h: macro fixups.
1230
1231 Thu Mar 12 08:55:34 1998  Tim Janik  <timj@gimp.org>
1232
1233         * gtkitem.c:
1234         * gtktree.c:
1235         * gtklist.c: fetch the inintial value of attributes.event_mask from
1236         gtk_widget_get_events (widget) (pointed out by Damon Chaplin
1237         <DAChaplin@email.msn.com>).
1238
1239 Thu Mar 12 07:43:33 1998  Tim Janik  <timj@gimp.org>
1240
1241         * gdk/gdk.h:
1242         * gdk/gdkvisual.c: applied gtk-shige-980311-0.patch.gz, which removes
1243         the erronerous gdk_query_visuals() function in favour of
1244         gdk_list_visuals() which does a correct job.
1245
1246         * gtk/gtkcontainer.h: applied gtk-draco-980311-0.patch.gz which fixes
1247         a class cast check.
1248
1249         * gtk/gtkspinbutton.c: applied gtk-hamann_jeske-980312-0.patch.gz about
1250         '+' sign acceptance.
1251
1252         * gtk/gtknotebook.c: applied gtk-hamann_jeske-980311-1.patch.gz which
1253         cares about delayed tab label creation.
1254
1255 Thu Mar 12 06:58:17 1998  Tim Janik  <timj@gimp.org>
1256
1257         * gtk/gtktree.c (gtk_tree_map): avoid warnings about NULL casts.
1258
1259         * gtk/gtkstatusbar.c (gtk_statusbar_destroy): don't leak the context
1260         id key's slist.
1261
1262         * gtk/gtkobject.c (gtk_object_set_data_full): duplicate keys that get
1263         inserted into the hashtable, otherwise this function *forces* the caller
1264         to leak memory, for dynamically allocated keys (problem pinpointed by
1265         Mattias Gronlund).
1266
1267 Tue Mar 10 23:02:42 1998  Owen Taylor  <owt1@cornell.edu>
1268
1269         * gdk/gdkdnd.c gtk/gtkclist.c gtk/gtksignal.c gtk/testgtk.c:
1270           Various minor cleanups related to -W
1271
1272 1998-03-11  Elliot Lee  <sopwith@bogus.circ.us.eu.org>
1273
1274         * gtk/gtkentry.h: Keep it consistent - 
1275         don't list gtk_entry_set_max_length unless it's implemented.
1276         (Someone make up their mind please ;-)
1277
1278 Wed Mar 11 07:10:11 1998  Tim Janik  <timj@gimp.org>
1279
1280         * gtk/gtkspinbutton.h: 
1281         * gtk/gtkspinbutton.c: applied gtk-hamann_jeske-980311-0.patch.gz,
1282         to limit entered characters to numbers, '-' and '.'.
1283
1284 Wed Mar 11 04:35:06 1998  Tim Janik  <timj@gimp.org>
1285
1286         * gtk/gtklist.c:
1287         * gtk/gtktree.h: 
1288         * gtk/gtktree.c:
1289         * gtk/gtktreeitem.h: 
1290         * gtk/gtktreeitem.c: applied gtk-bolliet-980310-0.patch.gz which adds
1291         more checks and implements gtk_tree_clear_items. made a bunch of style
1292         and indentation fixes.
1293
1294 Wed Mar 11 03:35:17 1998  Tim Janik  <timj@gimp.org>
1295
1296         * gtk/gtktooltips.h:
1297         * gtk/gtktooltips.c: code and structure clean ups. fixed the
1298         tooltips flickering bug.
1299
1300 Tue Mar 10 14:24:09 1998  Owen Taylor  <owt1@cornell.edu>
1301
1302         * gtk/gtkselection.c (gtk_selection_clear): Make the return
1303           result reflect whether the clear event was out of data.
1304
1305         * gtk/gtkeditable.c: Ignore out of date selection clear
1306           events.
1307
1308         * gtk/gtkentry.c gtk/gtktext.c: Don't synthesize releases
1309           on [2/3]BUTTON presses, since we get the normal click as well.
1310
1311           Claim the selection when selecting words/lines.
1312
1313 Tue Mar 10 13:34:29 1998  Owen Taylor  <owt1@cornell.edu>
1314
1315         * gtk/gtkrange.c (gtk_range_default_[vh]trough_click): 
1316           Take forward/back step arrows into account when computing
1317           position for middle button clicks.
1318
1319         * gtk/gtktext.c gtk/gtkentry.c:
1320           - Fixes for deleting characters (don't subtract guints and get
1321             negative numbers!)
1322           - Reset cursor_virtual_x when moving by words and lines
1323           - Extra sanity checks
1324           - Fix to gtk_text_get_chars 
1325                  (from Tony Gale <gale@daedalus.dera.gov.uk>)
1326
1327 1998-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1328
1329         * gdk/gdkgc.c (gdk_gc_set_function): Replace GXor by GXxor.  Seems
1330         to have been a typo.
1331
1332 Tue Mar 10 00:49:18 EST 1998 The Rasterman <raster@redhat.com>
1333         * gdk/gdkwindow.c: (gdk_window_xid_at) fixed minor memory leak and
1334         minor buglet in tree search.
1335                 
1336 Mon Mar  9 21:21:19 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1337
1338         * Released 0.99.5
1339
1340 Mon Mar  9 23:24:42 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1341
1342         * gtk/gtkclist.c (gtk_clist_get_selection_info): Export
1343         functionality.
1344
1345 Tue Mar 10 05:42:34 1998  Tim Janik  <timj@gimp.org>
1346
1347         * configure.in: Bumped version number to 0.99.5.
1348
1349 Tue Mar 10 05:30:05 1998  Tim Janik  <timj@gimp.org>
1350
1351         * gtk/gtkrange.h:
1352         * gtk/gtkrange.c:
1353         changed gtk_range_trough_click() to take an additional jump_perc arg,
1354         class method and callers changed.
1355
1356         * gdk/gdk.c (gdk_ic_destroy): applied gtk-gronlund-980309-1.patch.gz
1357         which fixes a memory leak.
1358
1359 Mon Mar  9 20:38:15 1998  Owen Taylor  <owt1@cornell.edu>
1360
1361         * gtk/gtkentry.c gtk/gtkeditable.c gtk/gtkspinbutton.c: 
1362           Moved "activate" to editable class. Made the vfuncs in 
1363           gtkeditable just vfuncs not signals.
1364
1365         * gtkentry.[ch] gtktext.[ch]: Made behavior when pressing
1366           multiple buttons at once more rational.
1367
1368         * gtkentry.c gtktext.c: Unified and rationalized key
1369           bindings. (Now are basically emacs+CUA)
1370         
1371         * gtktext.c: 
1372           - Last position now always shares the property of the preceding
1373             character
1374           - Freeze the widget when inserting large amounts of text.
1375           - Selecting lines now selects the _whole_ line.
1376           - Fixed bug with displaying the cursor
1377           - Ctrl-Home/End now move the cursor to the _absolute home/end
1378         
1379         * gtkmenuitem.c: Remove necessary code out of a g_return_if_fail
1380
1381 1998-03-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1382
1383         * gtk/gtkclist.c (gtk_clist_set_foreground): We now accept the
1384         color parameter to be NULL.  If it is NULL, it will mark the row
1385         with "color not set", so it will be repainted with the default color.
1386         (gtk_clist_set_background): Likewise.
1387
1388 Mon Mar  9 15:48:10 1998  Tim Janik  <timj@gimp.org>
1389
1390         * Signal signedness and naming corrections, plus GtkType fixes:
1391
1392         * gtk/gtkadjustment.c: 
1393         * gtk/gtkbutton.c:
1394         * gtk/gtkcheckmenuitem.c:
1395         * gtk/gtkclist.c: 
1396         * gtk/gtkcolorsel.c: 
1397         * gtk/gtkcontainer.c: 
1398         * gtk/gtkcurve.c: 
1399         * gtk/gtkdata.c: 
1400         * gtk/gtkeditable.c: 
1401         * gtk/gtkentry.c: 
1402         * gtk/gtkhandlebox.c: 
1403         * gtk/gtkinputdialog.c: 
1404         * gtk/gtkitem.c: 
1405         * gtk/gtklist.c: 
1406         * gtk/gtkmenuitem.c: 
1407         * gtk/gtkmenushell.c: 
1408         * gtk/gtknotebook.c: 
1409         * gtk/gtkstatusbar.c: 
1410         * gtk/gtktoolbar.c: 
1411         * gtk/gtktree.c: 
1412         * gtk/gtktreeitem.c: 
1413         * gtk/gtkwidget.c: 
1414         * gtk/gtktogglebutton.c: 
1415         * gtk/gtkwindow.c: 
1416         made the <widget>_signals[] arrays of type guint rather than gint.
1417
1418         * gtk/gtkwidget.c (gtk_widget_get_ancestor): made widget_type a GtkType.
1419
1420         * gtk/gtkcombo.h:
1421         handler ids need to be of type guint (entry_change_id, list_change_id).
1422
1423         * gtk/gtkaccelerator.c:
1424         changed signal_num to signal_id and typed it guint.
1425
1426         * gtk/gtkmain.c: made gtk_ndebug_keys a guint.
1427
1428         * gtk/gtkmenu.h: 
1429         * gtk/gtkmenu.c:
1430         (gtk_menu_popup): made button a guint.
1431         (gtk_menu_set_active): made index a guint.
1432
1433         * gtk/gtkmenuitem.h: 
1434         * gtk/gtkmenuitem.c: 
1435         made accelerator_signal a guint.
1436
1437         * gtk/gtkoptionmenu.h:
1438         * gtk/gtkoptionmenu.c:
1439         (gtk_option_menu_set_history): made index a guint.
1440
1441         * gtk/gtksignal.h: 
1442         * gtk/gtksignal.c: 
1443         * gtk/gtkobject.h: 
1444         * gtk/gtkobject.c: changed a bunch of prototypes to take guints rather
1445         than gints. also made some conversions from guint to GtkType, left over
1446         from when the fundamental-types system was introduced.
1447
1448         * gtk/gtkobject.h: 
1449         * gtk/gtkobject.c: made object_data_id_index and obj_count guints.
1450         made *signals and nsignals guints in GtkObjectClass.
1451
1452 Mon Mar  9 13:36:53 GMT 1998 Tony Gale  <gale@gimp.org>
1453
1454         * docs/gtkfaq.sgml:
1455
1456         - Use 'diff -ru' for patches
1457         - Explained patch application/rejection
1458         - Added information on CVS
1459         - New question on right justified menus with menufactory
1460
1461         From Nathan:
1462
1463         - Information on Objective-C bindings
1464         - Add missing variable in colour example.
1465   
1466 Mon Mar  9 11:44:33 1998  Tim Janik  <timj@gimp.org>
1467
1468         * gtk/gtkfilesel.c (gtk_file_selection_update_history_menu): reverted
1469         the changes ian introduced in r1.16 on Mar 06, since they broke the
1470         history menu.
1471
1472 Mon Mar  9 08:07:01 1998  Tim Janik  <timj@gimp.org>
1473
1474         * gtk/gtkspinbutton.h: 
1475         * gtk/gtkspinbutton.c:
1476         applied gtk-hamann_jeske-980308-0.patch.gz to have a
1477         gtk_spin_button_construct() function
1478
1479 Mon Mar  9 01:01:41 1998  Owen Taylor  <owt1@cornell.edu>
1480
1481         * gtk/gtkrc.c: No, you can't add a GtkStyle * to a
1482           list of GtkRcNode *. (Fixes huge performance problem)
1483           Plus, don't bother creating a new style unless style
1484           actually has bg pixmaps.
1485
1486 Sun Mar  8 15:53:33 1998  Owen Taylor  <owt1@cornell.edu>
1487
1488         * gtk/gtktext.c: 
1489
1490         - Show selection correctly when starting selection with arrows
1491
1492         - Display pixmap background only when not editable
1493
1494         - Redraw focus area more carefully to prevent flashing (and
1495           make style of drawing consistent with Entry)
1496
1497         * gtk/gtktreeitem.c: ref colormaps for pixmap by colormap
1498           storage.
1499         
1500         * gtk/gtkrc.c: Store a separate style for each RcStyle for
1501           each colormap, so we can handle background pixmaps 
1502           correctly, which need to be per-colormap. (Leaks
1503           colormaps...)
1504
1505           Parse text color style entries correctly.
1506
1507         * gtk/testgtk.c: insert text without fg color
1508           gtk/testgtkrc: move "*" after rest, so the other class styles
1509                          take effect
1510
1511         * gdk/gdkwindow.c gdk/gdk.c gdk/gdkprivate.h: Send DND events
1512           safely, in case drop window disappears. (Performance hit
1513           because XSync()'s are necessary)
1514
1515         * gdk/gdk.h gdk/gdkpixmap.c: Added 
1516           gdk_pixmap_colormap_create_from_xpm[_d] to allow creating
1517           pixmaps from xpm's before you have a GdkWindow.
1518         
1519 Sun Mar  8 12:33:38 PST 1998 Jay Painter <jpaint@serv.net>
1520         
1521         * gtk/gtkclist.c: the GList clist->selection now contains row indexes
1522           in the data portion of the linked list structure instead of pointers,
1523           fixed several bugs with the different selection modes
1524
1525         * gtk/testgtk.c: displays information for unselect events, and prints the list
1526           of selected rows
1527
1528 Sun Mar  8 13:03:22 1998  Tim Janik  <timj@gimp.org>
1529
1530         * gtk/gtkrange.h: removed gtk_range_calc_value().
1531
1532 Sun Mar  8 04:22:36 1998  Tim Janik  <timj@gimp.org>
1533
1534         * gtk/gtkfilesel.c: applied gtk-gronlund-980307.patch.gz which
1535           fixes a memory leak by making use of gtk_clist_set_row_data_full.
1536
1537         * gtk/gtkclist.c: applied gtk-gronlund-980307.patch.gz which ads a
1538           gtk_clist_set_row_data_full () function. slightly modified to
1539           always invoke the destroy function regardless of the value of
1540           the row_data.
1541         
1542         * docs/gtk.texi: applied gtk-draco-980305-1.patch.gz, spelling fixes.
1543         
1544         * gdk/gdk.c (gdk_init):
1545           cleared up a tiny memory leak from not destroying a temporary copy
1546           of argv (gtk-gronlund-980307-02.patch.gz).
1547
1548 Sun Mar  8 03:00:17 1998  Tim Janik  <timj@gimp.org>
1549
1550         * configure.in: define the version variables in config.h.
1551
1552         * gtk/gtkmain.h:
1553         * gtk/gtkmain.c: added static version variables.
1554
1555         * gdk/gdkpixmap.c: fixed memory leaks (gtk-gronlund-980307-1.patch.gz)
1556
1557 Sat Mar  7 18:46:57 1998  Owen Taylor  <owt1@cornell.edu>
1558
1559         * gtk/gtkpreview.[ch]: Added a new function, gtk_preview_reset(),
1560           that can be used (under highly controlled circumstances),
1561           to change the properties of the preview colormap after
1562           a preview has already been created and destroyed.
1563
1564 Sun Mar  8 00:18:04 1998  Tim Janik  <timj@gimp.org>
1565
1566         * gtk/gtkobject.c: register living objects in a hashtable.
1567
1568 Sat Mar  7 20:20:53 1998  Tim Janik  <timj@gimp.org>
1569
1570         * gtk/gtkobject.c:
1571         (gtk_object_check_cast):
1572         (gtk_object_check_class_cast): 
1573           made the object/class cast checks much more descriptive, based on
1574           gtk-draco-980305-2.patch.gz and gtk-draco-980306-1.patch.gz but
1575           optimized for common code path.
1576
1577         * gtk/gtkpreview.c: added a few extra checks for the visual
1578         (gtk-draco-980305-0.patch.gz).
1579
1580         * gdk/gdk.c (gdk_signal): abort() on a signal if G_ENABLE_DEBUG
1581           is defined, so we dump core (gtk-draco-980305-0.patch.gz).
1582
1583 Sat Mar  7 13:00:00 1998  The Rasterman <raster@redhat.com>
1584
1585         * gdk/gdkwindow.c (gdk_window_xid_at_coords),(gdk_window_xid_at):
1586           added these two calls, gdk_window_xid_at_coords beign the one
1587           to actually call to look up the current X Window ID at a particular
1588           x,y co-ordinate onscreen accounting for a list of windows to be 
1589           excluded from this search. Useful for DND support.
1590         * gdk/gdkprivate.h added in above function calls.
1591
1592 Sat Mar  7 01:07:24 1998  Owen Taylor  <owt1@cornell.edu>
1593
1594         * gtk/gtkrange.c (gtk_range_expose): Fixed the vscrollbar
1595           flickering problem, by checking the area on expose events.
1596           (There was a hscrollbar flickering problem as well, it
1597            just wasn't very noticeable)
1598
1599 Fri Mar  6 21:30:05 1998  Owen Taylor  <owt1@cornell.edu>
1600
1601         * gtk/gtkeditable.c: Disallow pasting into non-editable
1602           widgets.
1603
1604         * gtk/gtktext.[ch]: 
1605
1606           -Added scrolling when dragging the selection
1607            paste the top/bottom.
1608
1609           -Fix some of the problems with displaying the selection
1610            state before mouse release.
1611
1612           -Disallow pasting into non-editable widgets
1613
1614           -Fixed segfault when changing window size
1615
1616           -Update the cursor correctly when switching between
1617            editable and non-editable
1618
1619         * testgtk.c: Added a toggle button for editability for
1620           the text widget. 
1621
1622 Fri Mar  6 14:47:33 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1623
1624         * Applied gtk-matsu-980205-0 (oops, should be 980305)
1625           gdk/gdkinputcommon.h: return NULL if device is not ready
1626           gtk/gtkwindow.c: check for GDK_ISO_Left_Tab
1627
1628 Fri Mar  6 13:17:58 1998  Marc Ewing  <marc@.redhat.com>
1629
1630         * gtk/gtkclist.c (real_select_row, real_unselect_row): 
1631           fix selection bugs
1632
1633 Thu Mar  5 20:41:27 1998  Ian Main  <imain@gnu.org>
1634
1635         * gtk/gtkfilesel.c: Added
1636           gtk_file_selection_show_fileop_buttons(GtkFileSelection *fs), and
1637           gtk_file_selection_hide_fileop_buttons(GtkFileSelection *fs).
1638           Changed pulldown to only contain current directory name instead of
1639           the full path.  Removed Help button (it can now be packed into the
1640           button_area if desired).
1641                 
1642         * gtk/gtkfilesel.h: Added GtkWidget *button_area (the fileop
1643           buttons at the top are packed into this hbox), and GtkWidget
1644           action_area (hbox below clists) to GtkFileSelection structure.
1645
1646         * gtk/testgtk.c: Changed the filesel example to show off the hiding/
1647           showing of fileop buttons, and the packing area.
1648
1649 1998-03-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1650
1651         * gdk/gdkprivate.h: Changed the name of default_filters to
1652         gdk_default_filters to avoid namespace pollution.  Yes, it just
1653         happened to me.
1654         * gdk/gdk.c (gdk_event_translate):
1655         * gdk/gdkglobals.c: 
1656         * gdk/gdkwindow.c (gdk_window_add_filter gdk_window_remove_filter): Likewise.
1657
1658 Thu Mar  5 12:32:06 1998  Marc Ewing  <marc@redhat.com>
1659
1660         * gtk/gtkclist.c (select_row): emit UNselect on rows
1661           that are not selected.
1662
1663 Thu Mar  5 01:22:06 1998  Owen Taylor  <owt1@cornell.edu>
1664
1665         * gtk/gtkwidget.c (gtk_widget_unparent): Unset allocation
1666           on unparent, to force reallocation if we get adding back
1667           to a new parent which is already size-allocated.
1668
1669         * gtk/gtktreeitem.[ch]: Keep track of separate +/- pixmaps
1670           for each colormap, removed the idle hack.
1671
1672         * gdk/gdk.c: Don't warn when unable to open XIM method,
1673           since X11R5 apparently has no default method.
1674
1675         * gtk/gtkwidget.c (gtk_widget_set_style_internal): Don't
1676           call size_request on initial emission - since the
1677           widget size isn't set yet, it can't change.
1678
1679         * gtk/Makefile.am: New rules 'test' and 'test-debug' to run
1680           testgtk with the correct working directory.
1681
1682         * gtk/gtkentry.c (gtk_move_forward_word): 
1683           Check for position at end of line.
1684
1685         * gtk/gtkinputdialog.h (struct _GtkInputDialogClass): 
1686           removed 'gpointer data' arguments from default handler
1687           structures.
1688
1689 Wed Mar  4 20:06:47 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1690
1691         * gdk/gdk.c (gdk_event_translate): Drags can only be started with
1692         the left button.
1693
1694 Wed Mar  4 16:02:44 GMT 1998 Tony Gale  <gale@gimp.org>
1695
1696         * docs/gtkfaq.sgml: widget hierarchy update from Tim Janik
1697
1698 Mon Mar  2 19:57:27 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1699
1700         * gdk/gdkproperty.c (gdk_atom_name): Initialize gdk_error_code to
1701         zero before calling the X routine.
1702
1703 Tue Mar  3 01:22:25 1998  Tim Janik  <timj@gimp.org>
1704
1705         * gtk/gtkspinbutton.c: applied patch from lars and steffan to proper
1706         check for realized widgets.
1707
1708 Mon Mar  2 18:27:09 CST 1998 Shawn T. Amundson <amundson@gimp.org>
1709
1710         * gtk/gtkstatusbar.h: fixed ifndef..define typo
1711
1712 Mon Mar  2 17:48:38 1998  Owen Taylor  <owt1@cornell.edu>
1713
1714         Miscellaneous minor fixes to remove ANSI C incompatibilities
1715
1716         * gdk/gdkregion.c gtk/gtkclist.c: fix // comments
1717
1718         * gdk/gdkdnd.c gdk/gdkinputcommon.h: change types of
1719         some arguments to ANSI functions
1720
1721         * gtk/gtkcombo.c gtk/gtktree.c: fix casts of function pointers
1722           to void *
1723
1724         * gtk/gtkmain.c: An actual bug! (in deprecated gtk_input_add_interp)
1725
1726         * gtk/gtknotebook.h: Bitfields must be gint or guint. (and should
1727           be guint)
1728
1729         * gtk/gtkstatusbar.c: trailing ';'
1730
1731         * gtk/testgtk.c: GList where there should have been GSList
1732
1733 Mon Mar  2 12:26:59 1998  Owen Taylor  <owt1@cornell.edu>
1734
1735         * gtk/gtkentry.c: Changed 'entry != NULL' to 'editable != NULL'
1736           in three spots.
1737
1738 Sun Mar  1 18:29:58 PST 1998 Shawn T. amundson <amundson@gimp.org>
1739
1740         * Released GTK+ 0.99.4.
1741
1742 Sun Mar  1 16:47:29 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1743
1744         * gtk/testgtk.c: small fix to notebook portion
1745
1746 Sun Mar  1 15:18:38 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1747
1748         * Required changes for version change to 0.99.4
1749
1750         * gtk/gtktree.[ch]: patch from J. Bolliet to correct some bugs
1751         * gtk/testgtk.c: added test here from J. Bolliet, removed testtree
1752
1753         * gtk/clist: gtk-abilleira-981602-0, allows gtk_clist_set_pixmap 
1754           and gtk_clist_set_pixtext to not require a mask
1755         
1756         * gdk/gdkdraw.c,gdk.h: gtk-trow-980217-0
1757           adds gdk_draw_lines and fixes some things about 
1758           gdk_draw_polygon         
1759
1760 Sun Mar  1 17:40:58 1998  Owen Taylor  <owt1@cornell.edu>
1761
1762         * gdk/gdkpixmap.c: Make sure either the window or
1763         the depth is given when creating a pixmap.
1764
1765 Sun Mar  1 22:59:09 1998  Tim Janik  <timj@gimp.org>
1766
1767         * gtk/gtkstatusbar.h: 
1768         * gtk/gtkstatusbar.c: complete api change to honour message contexts.
1769         unfortunaltely this also involved argument changes on the signal
1770         emissions which will not be caught by the compiler. your callbacks
1771         should look like:
1772         void  message_text_popped (GtkStatusbar   *statusbar,
1773                                    guint           context_id,
1774                                    const gchar    *text,
1775                                    gpointer        func_data);
1776
1777         * gtk/gtkwidget.c (gtk_widget_set_rc_style): eliminated bug about
1778         initial signal emission.
1779         (gtk_widget_set_parent): don't ensure style, just call
1780         gtk_widget_set_style_recurse.
1781         (gtk_widget_set_style_recurse): only change a widget's rc styles if
1782         if there has already been a lookup.
1783         
1784         * gtk/testgtk.c: adaptions for statusbar widget.
1785         substituted notebook pixmaps with pixmaps from fvwm, since
1786         we don't know where the originals came from.
1787         
1788         * gtk/gtkobject.c (gtk_object_data_destroy): call the destroy
1789         notifier with the objects data, not its internal structure.
1790         
1791         * gtk/gtkspinbutton.c (gtk_spin_button_button_press): small
1792         fix from lars.
1793
1794 Sun Mar  1 15:08:13 CST 1998 Shawn T. Amundson <amundson@gimp.org>
1795
1796         * docs/*.texi changes from Greg Mclean.
1797
1798 Sun Mar  1 18:41:07 1998  Tim Janik  <timj@gimp.org>
1799
1800         * gtk/gtkwidget.c (gtk_widget_restore_default_style): hm if we save the
1801         default style, we should also provide a function to restore it ;).
1802
1803         * gtk/main.[hc]: small fixups to idle handlers, added support for quit
1804         handlers.
1805
1806 Sun Mar  1 05:18:11 1998  Owen Taylor  <owt1@cornell.edu>
1807
1808         * gtk/gtkentry.c gtk/gtktext.c gtkeditable.[ch]
1809
1810         Changed interface to cut/copy/paste so it makes sense
1811         when triggered by say, menu items.
1812
1813 Sun Mar  1 03:20:39 1998  Owen Taylor  <owt1@cornell.edu>
1814
1815         * gtk/gtkentry.[ch] gtk/gtktext.[ch] gtkeditable.[ch]
1816
1817         Turned off debugging in gtktext.c
1818
1819         Bug fixes for cutting, pasting, deleting, etc. 
1820
1821         Some of the bugs that were there before have definitely
1822         been fixed. 
1823         
1824         * gtk/testgtk.c gtk/testgtkrc: Removed my ugly orange backgrounds,
1825         to make things look nicer. 
1826         
1827 Sat Feb 28 23:58:54 1998  Owen Taylor  <owt1@cornell.edu>
1828
1829         * gtk/gtkentry.[ch] gtktext.[ch] gtkeditable.[ch]
1830
1831         Created a new base widget type Editable for the entry and
1832         text widgets, which encapsulates most of the selection and
1833         clipboard handling stuff, plus some common signals.
1834
1835         Changed the Entry widget extensively to support this, 
1836         but the interface and appearance should be the same.
1837
1838         Changed the Text widget moderately to support this.
1839
1840         It now supports:
1841
1842         - Selection style cut and paste
1843         - Clipboard style cut and paste
1844         - Emacs style key bindings (~same as Entry)
1845         - Word motion
1846         - "changed" signal
1847
1848         There are definitely still some bugs in the new stuff.
1849
1850         Use style->base for the background and style->text for
1851         the foreground.
1852         
1853         * gtkfilesel.c gtkspinbutton.c testgtk.c: small changes
1854         to fit the new interface more exactly.
1855         
1856 Sat Feb 28 19:29:09 1998  Tim Janik  <timj@gimp.org>
1857
1858         * gtk/gtkclist.c (gtk_clist_new_with_titles): retrive the clist widget
1859         from gtk_type_new (gtk_clist_get_type ()), not gtk_clist_new(),
1860         otherwise gtk_clist_construct() gets called twice.
1861
1862         * gtk/gtkhandlebox.h:
1863         * gtk/gtkhandlebox.c: emit signals when the child is attached/detached.
1864
1865 Sat Feb 28 15:18:36 1998  Tim Janik  <timj@gimp.org>
1866
1867         * gtk/gtkpreview.c: fix behavior of gtk_preview_put() with
1868         srcx/srcy != 0, gtk-shige-980127-0.patch.gz by
1869         AOSASA Shigeru <aozasa@sakuranet.or.jp>.
1870
1871         * gdk: applied gtk-roebling-980121-0.patch.gz, patch for region
1872         support in Gdk, by Robert Roebling <roebling@ruf.uni-freiburg.de>.
1873
1874 Fri Feb 27 15:31:55 1998  Tim Janik  <timj@gimp.org>
1875
1876         * gtk/gtktipsquery.c: we make an active server grab now, this way we
1877         can change the cursor globally and don't need to tweak event masks
1878         of other windows.
1879
1880         * gtk/gtkframe.c (gtk_frame_style_set): recompute label size.
1881
1882         * gtk/gtkwidget.h:
1883         * gtk/gtkwidget.c:
1884         New signal GtkWidget::style_set to be emitted when a widget's style
1885         changed. New flag GTK_RC_STYLE to indicate whether an rc lookup has
1886         been perfomed for the widget.
1887         (gtk_widget_ensure_style): New function.
1888         (gtk_widget_set_rc_style): New function.
1889
1890         * docs/styles.txt: new file.
1891
1892 Fri Feb 27 01:11:55 1998  Owen Taylor  <owt1@cornell.edu>
1893
1894         * gtk/gtktext.c
1895
1896         - gtk_text_delete and gtk_text_insert now update caches
1897         and refresh screen correctly if the text widget isn't frozen.
1898        
1899         - Fixed bug where text->first_line_start_index wasn't
1900         being updated correctly on insertion and deletion.
1901         
1902         - Added new public macro GTK_TEXT_INDEX (text, ind), and 
1903         function gtk_text_get_chars(text, index, nchars);
1904         
1905 Thu Feb 26 22:36:46 1998  Owen Taylor  <owt1@cornell.edu>
1906
1907         * gdk/gdkwindow.c gdktypes.c gdk.h: 
1908         new functions for setting WM hints
1909
1910          gdk_window_set_icon()
1911          gdk_window_set_icon_name()
1912          gdk_window_set_group()
1913          gdk_window_set_decorations()
1914          gdk_window_set_functions()
1915
1916         * gdk/MwmUtil.h: new uninstalled header file from lesstif 
1917         distribution, used for setting MWM hints.
1918
1919         * gdk/gdkdnd.c Makefile.am: renamed from gdk/gdk_dnd.c
1920         
1921         * gtk/gtkhandlebox.c (gtk_handle_box_realize): Use MWM hints
1922         to undecorate window.
1923
1924         * gtk/testgtk.c gtk/circles.xbm: new test for WM hints.
1925
1926 Wed Feb 25 22:56:42 1998  Tim Janik  <timj@gimp.org>
1927
1928         * gtk/gtkspinbutton.h: 
1929         * gtk/gtkspinbutton.c:
1930         new widget from Lars Hamann <hamann@braunschweig.netsurf.de> and
1931         Stefan Jeske <jeske@braunschweig.netsurf.de>.
1932
1933         * gtk/gtknotebook.c: fixups from lars and stefan.
1934
1935 Wed Feb 25 13:18:53 1998  Owen Taylor  <owt1@cornell.edu>
1936
1937         * gtk/gtkbbox.[ch] gtk/gtkhbox.[ch] gtk/gtkvbox.[ch] :
1938
1939         Move layout constants into an enumeration, split
1940         GTK_BUTTONBOX_DEFAULT into GTK_BUTTONBOX_DEFAULT
1941         and GTK_BUTTONBOX_DEFAULT_STYLE (enumeration member).
1942         
1943         * gtk/gtkclist.c:
1944
1945         Renamed gtk_clist_row_isvisable to .._is_visible
1946
1947         From: Maciej Stachowiak <mstachow@mit.edu>
1948         
1949 Wed Feb 25 13:50:05 GMT 1998  Tony Gale <gale@gimp.org>
1950
1951         * docs/gtkfaq.sgml: added questions on:
1952                 - Why don't the contents of a button move when 
1953                   the button is pressed?
1954                 - How do I catch a double click event in 
1955                   a list widget?         
1956                 - When compiling GTK+ I get an error like: 
1957                   make: file `Makefile' line 456: Syntax error 
1958           Removed questions on menus which are covered in the
1959           tutorial.
1960
1961           Added link to HTML versions of FAQ and Tutorial on my
1962           web site.
1963
1964 Tue Feb 24 22:47:01 1998  Owen Taylor  <owt1@cornell.edu>
1965
1966         * gtk/gtktext.c: Added some support for i18n. The support 
1967         for input methods, including preedit, is there, but input
1968         is ignored unless it comes one byte at a time, so the
1969         CJK locales won't really work. Fixing that would require
1970         variable-width character support in the Text widget, which
1971         is probably the wrong approach. Eventually we'll probably
1972         want to go to UCS-4 internally.
1973
1974         Also, revised key press handling, which should improve
1975         the forwarding of non-handled keypresses to the toplevel,
1976         and make adding selection handling easier.
1977
1978         * gtk/gtkentry.c: Minor changes so that C-d, etc delete
1979         the selection if there is one.
1980
1981         * gdk/gdk.c (gdk_ic_get_events): Check the result of
1982         XGetICValues - it is failing for some reason, and 
1983         causing some warnings to be printed.
1984
1985 Mon Feb 23 15:41:13 1998  Owen Taylor  <owt1@cornell.edu>
1986
1987         * gtk/gtkwidget.c gtk/gtkmenu.c: Don't process configure events
1988         that just move the window, and don't resize it. Because we need
1989         to make sure that a widget gets redrawn after a size_allocate -
1990         and that only happens when the configure event changes the size
1991         of the window. Plus, it's inefficient.
1992         
1993 Mon Feb 23 15:45:37 1998  Marc Ewing <marc@redhat.com>
1994
1995         * gtk/gtktoolbar.h:
1996         * gtk/gtktoolbar.c:
1997         Added gtk_toolbar_*_element() functions.  Rewrote others
1998         to simply call gtk_toolbar_insert_element() to do the
1999         work.
2000         Added two new GtkToolbarChildType options: TOGGLEBUTTON and
2001         RADIOBUTTON, available through the gtk_toolbar_*_element() functions.
2002         
2003 Mon Feb 23 13:44:10 1998  Tim Janik  <timj@gimp.org>
2004
2005         * gtk/gtkstatusbar.h:
2006         * gtk/gtkstatusbar.c:
2007         (re-)implemented the statusbar widget. my first intend was to fix the
2008         code, but then there was nothing to fix.
2009
2010 Sun Feb 22 20:42:04 1998  Marc Ewing <marc@redhat.com>
2011
2012         * gtk/gtkclist.c (gtk_clist_insert): Allow inserts
2013         on empty clists.
2014         
2015 Sun Feb 22 14:28:43 1998  Owen Taylor  <owt1@cornell.edu>
2016
2017         * gtk/gtkmain.c (gtk_events_pending): Count idle handlers
2018         at internal priority as pending events.
2019
2020 Sun Feb 22 00:20:12 MET 1998  Eckehard Berns  <eb@berns.prima.de>
2021
2022         * gdk/gdkcc.c (gdk_color_context_query_colors): fixed a bug for mode
2023         GDK_CC_MODE_TRUE, when on a 24-bit visual on a 32-bit mashine.
2024
2025 Sat Feb 21 15:33:20 1998  Tim Janik  <timj@gimp.org>
2026
2027         * gtk/gtkwidget.h: 
2028         * gtk/gtkwidget.c: renamed signal GtkWidget::set_parent to
2029         GtkWidget::parent_set. since it's purpose is pure notification,
2030         it should have been named this way in the first place.
2031
2032 Sat Feb 21 12:06:11 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
2033
2034         * gtk/gtkentry.c (gtk_entry_set_text): Added a test for passing a
2035         NULL text pointer.
2036
2037 Sat Feb 21 14:49:17 1998  Tim Janik  <timj@gimp.org>
2038
2039         * gtk/gtkobject.h:
2040         * gtk/gtkobject.c: gtk_object_query_args takes an additional pointer
2041         now which if supplied will point to an array holding the sequential
2042         argument ids.
2043
2044         * gtk/gtktree.c: fix emission of selection_changed signal, supplied
2045         by Bolliet Jerome.
2046
2047         * gtk/gtktreeitem.c: inline the plus and minus pixmaps, supplied by
2048         Bolliet Jerome.
2049
2050         * gtk/gtknotebook.c: do a resize when a page is removed and don't
2051         refer to the removed page on the switch signal, supplied by Lars Hamann
2052         and Stefan Jeske.
2053
2054         * gtk/gtktoolbar.h:
2055         * gtk/gtktoolbar.c:
2056         gtk_toolbar_append_item, gtk_toolbar_prepend_item,
2057         gtk_toolbar_insert_item, gtk_toolbar_append_widget,
2058         gtk_toolbar_prepend_widget, gtk_toolbar_insert_widget: take an additional
2059         gchar *tooltip_private_text as argument to fully support the underlying
2060         call to gtk_tooltip_set_tip.
2061
2062 Fri Feb 20 06:40:00 1998  Tim Janik  <timj@gimp.org>
2063
2064         * gtk/gtktipsquery.h: 
2065         * gtk/gtktipsquery.c:
2066         New widget GtkTipsQuery for letting the user query tooltips of widgets.
2067
2068         * gtk/testgtk.c: add example for GtkTipsQuery.
2069
2070         * gtk/gtk.h: include gtk/gtktipsquery.h.
2071
2072         * gtk/gtklabel.c: enable default constructing.
2073         
2074
2075 Thu Feb 19 18:53:51 1998  Larry Ewing  <lewing@discord.isc.tamu.edu>
2076
2077         * removed g_warnings from the common XShm failure cases in gdkimage.c
2078
2079 1998-02-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2080
2081         * gtk/gtkcombo.c (gtk_combo_entry_key_press): Added M-p and M-n
2082         key equivalents for up and down keys.  Just for us Emacs weenies :-)
2083
2084 Thu Feb 19 12:18:24 1998  Owen Taylor  <owt1@cornell.edu>
2085
2086         * gtk/testgtk.c : Use POINTER_MOTION_HINT when dragging
2087         shapes around. 
2088         (gtk-wille-980203-0 
2089          Stefan Wille  <1wille@vsys1.informatik.uni-hamburg.de>)
2090
2091         * gtk/gtktext.c : Fixes to inserting and deleting characters
2092         on line breaks.
2093         (gtk-magnus-980210-0 Magnus Hulthen <magnus@axiom.se>)
2094
2095         * glib/configure.in glib/glibconfig.h.in: the value of
2096         ---enable_debug is written into glibconfig.h so everything
2097         is recompiled when it changes. (HACK)
2098
2099         * gtk/gtkmain.c gdk/gdk.c docs/debugging.txt:
2100         Added --gdk-no-debug and --gtk-no-debug switches. Effect
2101         of switches is no cumulative.
2102
2103 Thu Feb 19 06:56:52 1998  Tim Janik  <timj@gimp.org>
2104
2105         * gtkbox.c:
2106         * gtkbutton.c:
2107         * gtkcontainer.c:
2108         * gtkframe.c:
2109         * gtklabel.c:
2110         * gtkobject.c:
2111         * gtkwidget.c:
2112         * gtkwindow.c:
2113         present the argument access masks on their announcement.
2114
2115         * gtk/gtkobject.h:
2116         * gtk/gtkobject.c:
2117         (gtk_object_add_arg_type): take an additional argument describing
2118         the access mask of the new arg. this can be of GTK_ARG_READABLE,
2119         GTK_ARG_WRITABLE or GTK_ARG_READWRITE (the latter is an alias for
2120         the two previous ones).
2121         (gtk_object_query_args): provide an access_mask array if desired.
2122
2123         * gtk/gtkwidget.c (gtk_widget_real_realize):
2124         realized the assumtion that widget is a NO_WINDOW widget
2125         in actuall code.
2126
2127         * gtkwindow.c:
2128         slight changes to gtk_window_configure_event that will make
2129         the resizing behaviour a little less odd.
2130         sigh, for some (buggy) reason, there are still container resizes
2131         triggered by manual resizing to very small window sizes.
2132         the cointainer resizes will cause gtk_real_window_move_resize to
2133         be invoked, which makes the app look like it wants to fight the users
2134         resizing action. ;(
2135
2136 Thu Feb 19 01:11:48 1998  Owen Taylor  <owt1@cornell.edu>
2137
2138         * configure.in         gdk/gdk.[ch]         gdk/gdkcc.c 
2139           gdk/gdkglobals.c     gdk/gdkinputcommon.h gdk/gdkprivate.h 
2140           gdk/gdkvisual.c      glib/configure.in    glib/glib.h
2141           glib/gutils.c        gtk/Makefile.am      gtk/gtkmain.c
2142           gtk/gtkobject.[ch]   gtk/gtkdebug.h       docs/debugging.txt   
2143
2144         New system for controlling debugging:
2145
2146         * --enable-debug=[no/yes/minimum]
2147         * G_DISABLE_ASSERT and G_DISABLE_CHECKS for glib
2148         * G_NO_CHECK_CASTS to control cast checking
2149         * G_ENABLE_DEBUG enables run time checking which controls:
2150             Object tracing
2151             Showing events
2152             Miscellaneous g_print's in GDK
2153           And is controlled by --gdk-debug/GDK_DEBUG, --gtk-debug/GTK_DEBUG
2154         * debug_level and show_events are gone from GTK
2155
2156         See docs/debugging.txt for details.
2157         
2158         And some fixups to the configure.in's so '-g' can be
2159         overriden on the command line for --enable-debug
2160         
2161 Thu Feb 19 05:40:51 1998  Tim Janik  <timj@gimp.org>
2162
2163         * gtk/gtknotebook.h:
2164         * gtk/gtknotebook.c:
2165         applied gtk-hamann_jeske-980218-0.patch.gz, a patch from
2166         Lars Hamann and Stefan Jeske which introduces major
2167         usability improvements.
2168         fixed bugs are:
2169         - container border_width>0 does now work correctly for show_tabs==TRUE
2170           and for tab_pos=GTK_POS_BOTTOM/GTK_POS_RIGHT.
2171         - toggleing visibility of the tab labels works now.
2172         - emission of GtkNotebook:switch_page and all page changes
2173         also the signature for the GtkNotebook:switch_page signal changed,
2174         callbacks should now look like:
2175         gint notebook_switch_page (GtkWidget *widget,   GtkNotebookPage *page,
2176                                    gint       page_num, gpointer         data);
2177
2178 Wed Feb 18 01:09:56 PST 1998  Jay Painter <jpaint@serv.net>
2179         * gdk/gdk.c: fixed ambigous else compiler warning
2180         * gtk/gtkgamma.c: fixed ambigous else compiler warning
2181         * gtk/gtkclist.h:
2182         * gtk/gtkclist.c: new signals which break everything! (yeah!)
2183         * gtk/gtkfilesel.c: fixed to use new clist signals
2184
2185 Wed Feb 18 04:38:24 1998  Tim Janik  <timj@gimp.org>
2186
2187         * gtk/gtkwidget.h:
2188         * gtk/gtkwidget.c:
2189           new signal GtkWidget::set_parent. this signal will be emitted once a
2190           widget gets a new/no parent assigned (i.e. from gtk_widget_unparent
2191           and gtk_widget_set_parent).
2192
2193 Wed Feb 18 02:58:50 1998  Tim Janik  <timj@gimp.org>
2194
2195         * gtk/gtktooltips.h:
2196           new functions gtk_tooltips_data_get and
2197           gtk_tooltips_set_tip, gtk_tooltips_set_tips is discouraged now.
2198         (_GtkTooltips): removed some fields that were never used.
2199           changed boolean fields to one bit size, to pack together with
2200           the delay field.
2201         (_GtkTooltipsData): added tip_private, renamed tips_text to
2202           tip_text.
2203         * gtk/gtktooltips.c:
2204           (gtk_tooltips_data_get): new function to retrive the
2205           _GtkTooltipsData structure of a widget.
2206         (gtk_tooltips_set_tip): new function for more extensible tooltips
2207           settings than gtk_tooltips_set_tips which is discuraged now.
2208           removed a bug that caused a stale object_data key to a
2209           _GtkTooltipsData structure.
2210           removed a bug that caused tips falsly to come up for a grab widget
2211           on widgets where events were grabbed from.
2212
2213 1998-02-17  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2214
2215         * gdk/gdkcc.c: Added some missing newlines on debug messages.
2216
2217 Tue Feb 17 05:41:31 1998  Tim Janik  <timj@gimp.org>
2218
2219         * gtk/gtkentry.c (gtk_entry_init): invoke gtk_entry_grow_text already
2220           in this place, so the application will never see entry->text==NULL.
2221           (see also ChangeLog entry from Tue Feb 11 1997 on this).
2222
2223         * gtk/gtkcheckbutton.c:
2224         * gtk/gtkradiobutton.c:
2225         * gtk/gtktogglebutton.c:
2226           applied patch to fix draw_indicator behaviour from Lars Hamann
2227           and Stefan Jeske.
2228
2229         * gtk/gtkmain.h:
2230         * gtk/gtkmain.c (gtk_grab_get_current): new function
2231           that returns the current grab widget or NULL.
2232
2233         * gdk/gdkwindow.c (gdk_window_shape_combine_mask): remove
2234           shape mask if mask==NULL (provided by Stefan Wille).
2235
2236 Tue Feb 17 00:06:26 1998  Owen Taylor  <owt1@cornell.edu>
2237
2238         * gtk/gtkpaned.c, gtk/gtk[hv]paned.c: (gtk-fortier-980215-0)
2239           From Patrice Fortier <Patrice.Fortier@aquarel.fr>
2240
2241           Add a widget->window for paned windows, so they
2242           can be reparented properly.
2243
2244 Mon Feb 16 23:47:09 1998  Owen Taylor  <owt1@cornell.edu>
2245
2246         * gtk/gtkviewport.c: (gtk-fortier-980130-0)
2247           From Patrice Fortier <Patrice.Fortier@aquarel.fr>
2248         
2249           Eliminate some extra expose events for viewports.
2250           (To be conservative, I set the user's event mask for
2251            both widget->window, and viewport->bin_window  -owt)
2252
2253 Mon Feb 16 23:12:14 1998  Owen Taylor  <owt1@cornell.edu>
2254
2255         * gtk/gtkmain.c: Make timeout and idle insertion code
2256           use g_list_insert_sorted().
2257
2258 Mon Feb 16 17:35:17 1998  Owen Taylor  <owt1@cornell.edu>
2259
2260         * gtk/gtktreeitem.c: Use gtk_signal_default_marshaller,
2261           for expand/collapse signals.
2262
2263 Fri Feb 13 19:08:51 1998  Tim Janik  <timj@gimp.org>
2264
2265         * gtk/gtkclist.c (check_exposures): check for clist !REALIZED.
2266         (draw_rows): bail out if the widget isn't drawable.
2267         (hadjustment_value_changed): 
2268         (vadjustment_value_changed): bail out if clist isn't drawable.
2269
2270         * gdk/gdk.c (graphics_expose_predicate): check for private != NULL.
2271         (gdk_event_get_graphics_expose): check for window != NULL.
2272
2273 Fri Feb 13 00:33:26 1998  Owen Taylor  <owt1@cornell.edu>
2274
2275         * gtk/testgtk.c (shape_create_icon): Realize window before
2276           creating xpm so it gets the right colormap/visual,
2277           instead of the default one.
2278
2279 Thu Feb 12 23:59:49 1998  Owen Taylor  <owt1@cornell.edu>
2280
2281         * gtk/gtksignal.[ch] gtk/gtkmain.[ch] gtk/gtkcontainer.[ch]
2282           gtk/gtkselection.[ch] gdk/gdk.[ch] gtktypeutils.h 
2283           
2284           Replaced all _interp functions with _full functions.
2285           (_interp functions left in for compatibility until 0.99.5). 
2286           Difference: _full functions take _both_ a C-language callback and a
2287           marshaller, and simply ignore the C-language callback
2288           if the marshaller is present. This allows the destroy notification
2289           to be used without marshalling.
2290
2291           gtk_selection_add_handler[_full]() regularized to agree
2292           with other callbacks.
2293         
2294           Also, added gtk_input_add_full() to the header file. 
2295           (gtk_input_add_interp() was never there)
2296
2297         * gtk/gtkmain.[ch] gtk/gtkwidget.c: Idle functions are now prioritized.
2298           Added new function gtk_idle_add_priority to create
2299           an idle with a specified priority (default is zero)
2300           constants #defined - GTK_PRIORITY_[HIGH/INTERNAL/DEFAULT/LOW]
2301           (redraws, resizes run at GTK_PRIORITY_INTERNAL)
2302         
2303         * gtk/gtkentry.c gtk/testselection.c: changes to keep up with change
2304           to gtkselection.c. 
2305
2306         * gtk/gtkentry.c gtk/gtkinputdialog.c gtk/gtklist.c
2307           gtk/gtklistitem.c gtktree.c gtk/gtktreeitem.c testgtkrc:
2308
2309           Change style->white to style->base[] where appropriate.
2310           Change the default style to make this apparent. (Yes, its
2311           ugly... it can be removed later)
2312         
2313 Tue Feb 10 15:01:44 1998  Owen Taylor  <owt1@cornell.edu>
2314
2315         * gtk/gtkobject.c gtk/gtkobject.h: Add a DestroyNotify
2316         field, and gtk_object_set_data_full() to match.
2317
2318         * gtk/gtkobject.c (gtk_object_finalize): ObjectData structures
2319         were being added to a free list, then forgotten about. Just
2320         rely on GMemChunk instead.
2321
2322 2018-02-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2323
2324         * gtk/gtkclist.c:
2325         * gtk/gtkentry.c: 
2326         * gtk/gtkfixed.c:
2327         * gtk/gtkhandlebox.c:
2328         * gtk/gtknotebook.c:
2329         * gtk/gtkpaned.c:
2330         * gtk/gtkpreview.c:
2331         * gtk/gtkrange.c:
2332         * gtk/gtkruler.c:
2333         * gtk/gtktext.c:
2334         * gtk/gtkviewport.c:
2335         Fixed unrealize handler to comply with the
2336         documentation (which mentions the right thing to do).
2337
2338 Wed Feb 11 00:18:31 1998  Tim Janik  <timj@gimp.org>
2339
2340         * docs/refcounting.txt: backed out the section "Gnits to care about".
2341         * docs/developers.txt: new file, kinda developers FAQ.
2342
2343         * gtk/gtksignal.c: new function gtk_signal_handler_pending() returning
2344           the id of the next handler pending for that signal or 0.
2345           put struct GtkHandler back into gtksignal.c along with
2346           gtk_signal_get_handlers.
2347
2348 Tue Feb 10 07:12:07 1998  Tim Janik  <timj@gimp.org>
2349
2350         * gtk/gtksignal.h:
2351         * gtk/gtksignal.c:
2352         ok, there have been several severe bugs in the signal handler
2353         referencing and ->next connection stuff. these bugs caused
2354         invokations of handlers that are disconnected and - worse -
2355         destroyed already. invokation of *destroyd* handlers mean:
2356         anything can be executed , because the handler structure can just
2357         as well be realocated.
2358         at the cost of an extra ->prev field per handler we should have a
2359         reasonable stable system now, because of the various places that
2360         can cause a handler to be disconnected (*any* handler invokation can
2361         cause *any* or *all* handlers to be disconnected, there is no way
2362         around a doubly linked list, actually handler disconnection has never
2363         worked correctly because of this.
2364         handlers are connected together via a *doubly* linked list now, and it
2365         is *not* valid to remove a handler out of this list untill all its
2366         references have been droped, i.e. handler->ref_count==0.
2367         to prevent emissions of disconnected but still referenced handlers,
2368         disconnected handlers are simply marked as blocked and get an id of 0
2369         which is an invalid signal handler id.
2370         the handler->id has been changed to have 28 significant bits (using
2371         alignment gaps), since 65536 (old range: guint16) signal connections
2372         (as a total) can easily be reached by complex applications.
2373         this whole handler thingy is at least as tedious as writing doubly
2374         linked list implementations ;)
2375
2376 Mon Feb  9 23:08:16 1998  Owen Taylor  <owt1@cornell.edu>
2377
2378         * gtk/gtkwidget.c (gtk_widget_unparent): Check for
2379           the RESIZE_NEEDED flag and remove the widget from the list.
2380           Remove the check from gtk_widget_destroy (no longer needed).
2381
2382         * Unrealize widget _before_ calling "destroy" signal, and
2383           unset VISIBLE flag.
2384
2385         * Unrealize child widgets _after_ unrealizing parent to improve
2386           visual appearance.
2387
2388 Mon Feb  9 16:42:21 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2389
2390         * gtk/gtksignal.c (gtk_signal_get_handlers): no longer a private
2391         routine;
2392         gtksignal.h: export gtk_signal_get_handlers and GtkHandlers type. 
2393
2394 Sun Feb  8 07:06:54 1998  Tim Janik  <timj@gimp.org>
2395
2396         * gtk/gtkmenu.c (gtk_menu_get_attach_widget): new function to return
2397           the widget that the menu is attached to.
2398
2399 Sat Feb  7 11:33:08 1998  Owen Taylor  <owt1@cornell.edu>
2400
2401         * gdk/gdkgc.c (gdk_gc_copy): use a mask of 0xffffffff
2402           instead of 0xffff, since there are 22 flags currently
2403           defined. (From: Jon Trowbridge <trow@emccta.com>)
2404
2405           Changed to something better. ~((~1) << GCLastBit)
2406                    (From: from Daniel Stephens <daniel@cheeseplant.org>)
2407         
2408 Sat Feb  7 02:29:01 1998  Tim Janik  <timj@gimp.org>
2409
2410         * gdk/gdk.c (gdk_event_translate): don't wipe out window_private's x
2411           and y coordinates if the configure notify is only about resizing,
2412           query the correct origin instead.
2413
2414 Wed Feb  4 23:05:28 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
2415
2416         * gtk/gtkmenufactory.c: menufactories now ref&sink the menus they
2417         create
2418
2419 Thu Feb  5 02:13:08 1998  Tim Janik  <timj@gimp.org>
2420
2421         * gtk/gtklist.h:
2422         * gtk/gtklist.c (gtk_list_remove_items_no_unref): new function
2423           to perform the same actions as gtk_list_remove_items, but
2424           supply the removed widgets with an additional reference count.
2425
2426         * gtk/gtkmain.c (gtk_main_iteration_do): ignore events
2427           with event_widget == NULL, since they are bogus events
2428           from destroyed GdkWindows, exept for the case where
2429           event->type==GDK_PROPERTY_NOTIFY. Always handle expired
2430           timeout functions when returning from this function.
2431
2432         * gtk/gtkwidget.c (gtk_widget_event): ignore GDK_EXPOSE events
2433           if event->window == NULL. Also, if this function couldn't handle
2434           the event for any reason (including failing assumptions), make
2435           the return value to look as if the event had been handled to
2436           avoid further processing (and warnings).
2437           
2438         * gtk/gtkwidget.h:
2439         * gtk/gtkwidget.c: remove gtk_widget_sink, because there is
2440           no point in providing such a function.
2441
2442         * gdk/gdk.c (gdk_init): changed options `-name' and `-class'
2443           to `--name' and `--class', because the old names would
2444           confuse getopt(). these arguments have been introduced in the
2445           changes from gtk+970916 to gtk+970925 without a ChangeLog entry,
2446           changing argument names is painful, it would be nice if people
2447           would care about compatibility and consistency in the first place!
2448
2449 Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>
2450         
2451         * docs/widget_system.txt: new file containing notes about
2452           the inner workings of the widget system of GTK+, a widget
2453           flag description and certain invariants about widget states.
2454         
2455         * docs/refcounting.txt: moved file (previously REFCOUNTING)
2456           introducing The Reference Counting Scheme of GDK an GTK+.
2457           lots of additions/corrections.
2458
2459         * gtk/gtksignal.c (gtk_signal_real_emit): for the emission
2460           of AFTER signals, fetch the objects signals via
2461           gtk_signal_get_handlers again. some handlers might have
2462           been removed or added. not doing this would mess up the
2463           memchunk allocation of signal handlers (this had been
2464           triggered by multiple *_while_alive connections), bad, bad, bad!
2465           (gtk_handlers_run): do the referencing on signal handlers
2466           unconditionally, the invokation of AFTER handlers will now take
2467           care of modified lists.
2468
2469         * gtk/gtksignal.h: added gtk_signal_connect_while_alive.
2470
2471 Tue Feb  3 15:34:27 1998  Owen Taylor  <owt1@cornell.edu>
2472
2473         * gdk/gdkcolor.c (gdk_colormap_get_system): Only query
2474           the colormap for GRAYSCALE and PSEUDOCOLOR visuals,
2475           and don't ask for more than 256 colors in any case.
2476
2477         * gdk/gdkwindow.c (gdk_window_internal_destroy): Remove
2478           the input window information when we destroy the window,
2479           not when we are notified of it.
2480
2481         * gdk/gdkinputcommon.h (gdk_input_device_new): Work around
2482           bug in XFree86 3.3.1's handling of Wacom macro buttons.
2483           by assumming no device will report exactly 25 buttons.
2484
2485         * gdk/gdkinputcommon.h (gdk_input_common_other_event): Fill
2486           in string translation for generated key press events,
2487           do sanity checking on received key codes.
2488
2489         * gdk/gdkcc.c (gdk_color_context_new): Allocate enough
2490           room for a GdkColorContextPrivate, not just for a 
2491           GdkColorContext.
2492
2493 Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>
2494
2495         * gtk/testgtk.c: don't add the same menu to different menuitems/
2496           optionmenus.
2497
2498         * gtk/gtkmenuitem.h:
2499         * gtk/gtkmenuitem.c: new function gtk_menu_item_remove_submenu ro
2500           be consistent with optionmenu. use gtk_menu_attach_to_widget/
2501           gtk_menu_detach for setting/removing the submenu.
2502           invoke gtk_widget_destroy(submenu) in destructor to be consistent
2503           with other destructors.
2504
2505         * gtk/gtkoptionmenu.h: 
2506         * gtk/gtkoptionmenu.c: attach/detach to menu widget via
2507           gtk_menu_attach_to_widget/gtk_menu_detach.
2508           invoke gtk_widget_destroy(menu) in destructor to be consistent
2509           with other destructors.
2510
2511         * gtk/gtkmenu.h: 
2512         * gtk/gtkmenu.c: new functions gtk_menu_attach_to_widget
2513           and gtk_menu_detach that correspond to the action of
2514           gtk_widget_set_parent and gtk_widget_unparent.
2515
2516         * gtk/widget.c: few fixups.
2517
2518 Tue Feb  3 00:12:00 1998  Owen Taylor  <owt1@cornell.edu>
2519         * gtk/gtktable.c 
2520           Fixed problem with division by zero in row/column-spanned
2521           tables. Also removed a bunch of conditionals by making
2522           the observation that x/1 == x.
2523
2524 Mon Feb  2 04:15:08 1998  Tim Janik  <timj@gimp.org>
2525
2526         * gtk/gtkwindow.c:
2527         * gtk/gtkwidget.c:
2528         * gtk/gtkmain.c:
2529         * gtk/gtkwidget.c:
2530         * gtk/gtkcontainer.c:
2531         * gtk/gtkprivate.h (GTK_PRIVATE_UNSET_FLAG) (GTK_PRIVATE_UNSET_FLAGS): 
2532           changed name to reflect that these macros in fact can't operate on
2533           multiple flags.
2534
2535         * gtk/gtktoolbar.c: fixed destroy handler, so it doesn't
2536           segfault with the new refcounting scheme anymore.
2537
2538         * gtk/gtkhandlebox.c:
2539         * gtk/gtkclist.c:
2540         * gtk/gtkentry.c:
2541         * gtk/gtkrange.c:
2542         * gtk/gtktext.c:
2543         * gtk/gtkviewport.c:
2544           enforced
2545           gdk_window_set_user_data (window, NULL);
2546           gdk_window_destroy (window);
2547           window = NULL;
2548           throughout the code.
2549
2550         * gtk/gtkmain.c (gtk_propagate_event): fixed a bad, bad referencing
2551           bug that could caused unreferencing of finalized objects.
2552
2553         * gtk/testgtk.c: destroy fileselection on "OK" (this triggered the
2554           above mentioned bug).
2555
2556         * gtk/gtkwidget.h:
2557         * gtk/gtkwidget.c:
2558         * gtk/gtkobject.h:
2559         * gtk/gtkobject.c:
2560           implemented and object reference tracer (gtk_trace_referencing) which
2561           is activated if GTK_TRACE_OBJECTS is defined (currently per default).
2562           in gdb: set the static variable `gtk_trace_object' to point to the
2563           object that you want to have reference traced.
2564
2565         * gtk/gtkfileselection.c: few cleanups.
2566
2567         * gtk/gtkcolorsel.c:
2568         * gtk/gtkcombo.c:
2569         * gtk/gtkobject.c:
2570         * gtk/gtkselection.c:
2571         * gtk/gtkwidget.c:
2572         * gtk/gtkwindow.c:
2573           cleanups with key name spaces.
2574
2575         * gtk/gtkcombo.c: fixed destruction bug with popwin.
2576
2577         * gtk/gtkcontainer.h: 
2578         * gtk/gtkcontainer.c: GTK_RESIZE_NEEDED is a private flag now.
2579           (gtk_container_register_toplevel): new function.
2580           (gtk_container_unregister_toplevel): new function.
2581
2582         * gtk/gtkmain.c: GTK_LEAVE_PENDING is a private flag now.
2583
2584         * gtk/gtkmenu.c: call gtk_container_register_toplevel in
2585           gtk_menu_class_init instead of this dirty gtk_widget_set_parent(,NULL)
2586           hack. new default handler gtk_menu_destroy for calling
2587           gtk_container_unregister_toplevel. removed GTK_ANCHORED, GTK_UNMAPPED.
2588
2589         * gtk/gtkobject.h: macro cleanups, added GTK_DESTROYED flag.
2590
2591         * gtk/gtkobject.c: only emit DESTROY signal if !GTK_OBJECT_DESTROYED
2592           (object).
2593
2594         * gtk/gtkprivate.h: new file that will not be automatically included.
2595           it holds the private flags for GtkWidget along with it's SET/UNSET
2596           and examination macros.
2597
2598         * gtk/gtkwidget.c: private flags: GTK_RESIZE_NEEDED, GTK_REDRAW_PENDING,
2599           GTK_RESIZE_PENDING, GTK_IN_REPARENT, GTK_USER_STYLE. GTK_ANCHORED is
2600           replaced by GTK_TOPLEVEL. added missing UNSET for GTK_IN_REPARENT.
2601           removed the gtk_widget_set_parent(, NULL) hack for toplevels.
2602           upon destroy free memory for widgets with GTK_WIDGET_HAS_SHAPE_MASK.
2603
2604         * gtk/gtkwidget.h: split up the widget flags into a public and a private
2605           portion. added an extra field private_flags to GtkWidget without making
2606           it bigger by using an alignment gap of 16 bit. macro cleanups.
2607
2608         * gtk/gtkwindow.c: removed GTK_ANCHORED. new function gtk_window_destroy
2609           for calling gtk_container_unregister_toplevel. removed the
2610           gtk_widget_set_parent(,NULL), call gtk_container_register_toplevel
2611           instead. remove GTK_UNMAPPED. GTK_RESIZE_NEEDED is private now.
2612
2613         * gtk/gtksignal.c (gtk_signal_disconnect): removed a bug on
2614           removal that cut off the handler list -> living_objects == 0
2615           with testgtk. made some warnings more descriptive.
2616           new function gtk_signal_connect_object_while_alive, which
2617           will automatically destroy the connection once one of the objects
2618           is destroyed. didn't include this before removal of the above
2619           mentioned bug.
2620
2621 Sat Jan 31 21:26:27 1998  Owen Taylor  <owt1@cornell.edu>
2622
2623         * gtk/gtkwidget.c: Added a new GTK_IN_REPARENT flag and revised
2624           gtk_widget_reparent so that the child would not be unrealized
2625           unnecessarily. Changed gtk_widget_unrealize () to recursively
2626           unrealize the children (since the child windows will be 
2627           destroyed too.)
2628
2629 Sat Jan 31 00:05:34 PST 1998 Manish Singh <yosh@gimp.org>
2630
2631         * gtk/gtkcombo.c: changed to use g_strcasecmp
2632         * gtk/gtkobject.c: #include <stdlib.h> for atexit
2633
2634 Sat Jan 31 00:13:33 1998  Owen Taylor  <owt1@cornell.edu>
2635
2636         * gtk/gtkstyle.c: Backed out change to close polygons
2637           since it caused problems for the Notebook.
2638
2639 Fri Jan 30 22:28:09 1998  Owen Taylor  <owt1@cornell.edu>
2640
2641         * gtk/gtkclist.{c,h}:
2642            - Conformity to new reference counting schemes
2643            - Font and color information is no-longer taken from
2644              the (possibly unitialized) style before the widget
2645              is realized, but is obtained when needed. (Fixes
2646              problems with non-default styles)
2647            - white_gc => base_gc where appropriate
2648            - Handle graphics expose events correctly (or as
2649              correctly as anywhere else) so that scrolling when
2650              overlapped works.
2651
2652 Fri Jan 30 21:32:11 1998  Owen Taylor  <owt1@cornell.edu>
2653
2654         * gtk/gtkwidget.c (gtk_widget_init): Don't replace the object
2655         flags, augment them. (Otherwise we'll clear the FLOATING flag)
2656
2657 Fri Jan 30 23:55:03 1998  Tim Janik  <timj@gimp.org>
2658
2659         * Incorporation of Marius Vollmer's reference counting revolution,
2660           plus various fixups and additions from myself.
2661
2662         * gdk/gdk.h:
2663         * gdk/gdkgc.c: new functions gdk_gc_ref/gdk_gc_unref.
2664
2665         * gdk/gdkprivate.h: cleanups on ref_count field sizes.
2666
2667         * gtk/gtkadjustment.c (gtk_adjustment_set_value): new function for
2668           emission of GtkAdjustment::value_changed signal.
2669
2670         * gtk/gtkbin.c:
2671         * gtk/gtkcolorsel.c:
2672         * gtk/gtkcurve.c:
2673         * gtk/gtkentry.c:
2674         * gtk/gtkframe.c:
2675         * gtk/gtkinputdialog.c:
2676         * gtk/gtklabel.c:
2677         * gtk/gtkpixmap.c:
2678         * gtk/gtkpreview.c:
2679         * gtk/gtkrange.c:
2680         * gtk/gtktable.c:
2681         * gtk/gtkwindow.c:
2682           replaced functionality of gtk_*_destroy by gtk_*_finalize.
2683
2684         * gtk/gtkbox.c:
2685         * gtk/gtkbutton.c:
2686         * gtk/gtkfixed.c:
2687         * gtk/gtkmenushell.c:
2688         * gtk/gtknotebook.c:
2689         * gtk/gtkpaned.c:
2690         * gtk/gtkscale.c:
2691           removed default destroy handler.
2692
2693         * in general: reference parent->window for NO_WINDOW widgets.
2694           set user data of a GdkWindow to NULL before destruction.
2695         
2696         * gtk/gtkbutton.c: use gtk_widget_unparent instead of gtk_widget_destroy
2697           in *_set_arg.
2698
2699         * gtk/gtkcontainer.c: provide other containers with a default destroy
2700           handler that will destroy all children.
2701           new function gtk_container_foreach_interp.
2702           new field resize_widgets.
2703
2704         * gtk/gtklist.c: handle destruction of children in gtk_list_destroy.
2705           replaced occourances of gtk_widget_destroy with gtk_widget_unparent.
2706           reference children that are in the selection list.
2707
2708         * gtk/gtkmain.c: reference grab widgets.
2709           (gtk_get_event_widget): check for event.window != NULL. Note: this
2710           function may return NULL now!.
2711           (gtk_propagate_event): much simplified by using proper reference
2712           counting.
2713
2714         * gtk/gtkmenu.c: introduce GTK_TOPLEVEL, and gtk_widget_set_parent(,
2715           NULL) hack.
2716
2717         * gtk/gtkmenuitem.c: gtk_widget_(un)ref the submenu.
2718
2719         * gtk/gtkmenushell.c: check for return value of gtk_get_event_widget.
2720
2721         * gtk/gtknotebook.c: proper gtk_widget_unparent()ing.
2722
2723         * gtk/gtkobject.c: new functions gtk_object_finalize,
2724           gtk_object_notify_weaks, gtk_object_debug, gtk_object_sink,
2725           gtk_object_weakref, gtk_object_weakunref. implementation of the new
2726           reference counting scheme for gtkobjects (consult gtk+/REFCOUNTING).
2727
2728         * gtk/gtkoptionmenu.c: proper reference counting for option_menu->menu.
2729
2730         * gtk/gtkscrolledwindow.c: new finalize handler for proper referencing
2731           of the subwidgets.
2732
2733         * gtk/gtksignal.c: internal representation of signal_type is now 16 bit
2734           instead of 13 bits. this is needed because of user signals.
2735           new functions gtk_signal_handler_ref and gtk_signal_handler_unref
2736           (replacement for gtk_signal_handler_destroy).
2737           gtk_signal_emit, gtk_signal_emit_by_name, gtk_signal_real_emit used
2738           to return the existence of a GtkObject. this will always be TRUE now,
2739           therefore the return value is now void.
2740
2741         * gtk/gtktooltips.h:
2742         * gtk/gtktooltips.c: GtkTooltips is now a descendant of GtkData and
2743           therefore a real GtkObject.
2744
2745         * gtk/gtktree.c: reference changes similar to thos in gtklist.c.
2746
2747         * gtk/gtktreeitem.c: reference th e pixmaps properly.
2748
2749         * gtk/gtktypeutils.h:
2750         * gtk/gtktypeutils.c: new function gtk_arg_copy() to conform to
2751           the requirements of gtk_object_get().
2752
2753         * gtk/gtkviewport.c: finalize handler for proper referencing of the
2754           adjustments.
2755
2756         * gtk/gtkwidget.c: substituted VISIBILITY_NOTIFY_EVENT by NO_EXPOSE_EVENT.
2757           added finalize handler. added gtk_widget_ref/gtk_widget_unref.
2758           new functions gtk_widget_idle_draw and gtk_widget_idle_sizer, that
2759           will handle all widgets that are currently in either queue.
2760           referencing all over the place. changes because gtk_signal_emit
2761           returns void now. moved queue removal into the destroy handler.
2762           gtk_widget_real_unrealize propagates now down the tree. new flag
2763           GTK_TOPLEVEL. new function gtk_widget_destroyed for connection to the
2764           destroy signal of a widget. this function nullifies the widgets
2765           structure pointer, look at gtkmain.c for an example on this.
2766
2767         * gtk/gtkwindow.c: new functions gtk_window_activate_focus,
2768           gtk_window_activate_default. for activation of the appropriate
2769           children. changes to the resizing code because there is a new
2770           field resize_widgets in GtkContainer now.
2771
2772         * gtk/testgtk.c: some changes because of all the above ;)
2773
2774 Fri Jan 30 17:41:06 1998  George Lebl  <jirka@5z.com>
2775
2776         * gtk/gtktable.c: fixed round-off error in calculation
2777           of tabels with a lot of cells
2778
2779 Fri Jan 30 08:51:16 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
2780
2781         * gdk/gdkcc.c (gdk_color_context_get_pixel): red/green/blue
2782         parameters are now expected to be in [0, 65535], to be consistent
2783         with the rest of Gdk.
2784         (gdk_color_context_get_pixels): Made it use 16-bit color values as
2785         well.  Fixed mdist=1000000 buglet (it should start with at least
2786         0x1000000).
2787         (gdk_color_context_get_pixels_incremental): Same as
2788         gdk_color_context_get_pixels().
2789
2790 Thu Jan 29 22:57:39 1998  Owen Taylor  <owt1@cornell.edu>
2791
2792         * gtk/gtkstyle.c (gtk_default_draw_polygon): Close
2793           the polygon if it isn't already. (To match gtk_draw_polygon)
2794           Simplified logic. (Appearance could probably be
2795           improved for objects with gradual curves by adding in
2796           some intermediate edge coloration)
2797
2798 Thu Jan 29 21:36:14 1998  Tim Janik  <timj@gimp.org>
2799
2800         * gtk/gtksignal.c (gtk_signal_query): new function to gather
2801           information about a certain signal.
2802
2803         * gtk/gtksignal.c (gtk_signal_newv): new function similar to
2804           gtk_signal_new().
2805
2806         * gtk/gtksignal.c (gtk_signal_real_emit): check for function_offset
2807           == 0.
2808
2809         * gtk/gtksignal.c (gtk_signal_connect_by_type): perform a signal
2810           id lookup on the parent as well.
2811
2812         * gtk/gtkobject.c (gtk_object_class_add_user_signal): new
2813           function for implementation of user defined signals.
2814         * gtk/gtkobject.c (gtk_object_class_add_signals): free old
2815           signal id array.
2816
2817         * gtk/gtkobject.h: this holds the typedefs for GtkSignalFunc and
2818           GtkSignalMarshaller now, because they are used for
2819           gtk_object_class_add_user_signal.
2820
2821         * gtk/gtktypeutils.c (gtk_type_class_init): reset object_class->signals
2822           and object_class->nsignals for new object classes.
2823
2824 Tue Jan 27 15:52:48 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
2825
2826         * gtk/gtkhandlebox.c (gtk_handle_box_realize): The auto_shrink
2827         policy of the floating window is now set to TRUE.  This fixes the
2828         problem of the floating window being too big when the handlebox
2829         child is small.
2830         (gtk_handle_box_motion): Now we use GDK_POINTER_MOTION_HINT_MASK
2831         to improve movement.
2832
2833 Tue Jan 27 14:15:50 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2834
2835         * docs/gtkfaq.sgml: more additions/changes Tony Gale.
2836
2837 Mon Jan 26 17:12:12 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2838
2839         * docs/gtkfaq.sgml: additions/changes from new FAQ maintainers
2840           Nathan Froyd and Tony Gale.
2841
2842 Mon Jan 26 16:54:02 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2843
2844         * docs/gtk.texi: additions/changes from Gregory A. McLean
2845
2846 Mon Jan 26 02:15:29 1998  Tim Janik  <timj@gimp.org>
2847
2848         * gdk/gdkdraw.c:
2849         * gdk/gdkgc.c:
2850         * gdk/gdkimage.c:
2851         * gdk/gdkinput.c:
2852         * gdk/gdkpixmap.c:
2853         * gdk/gdkproperty.c:
2854         * gdk/gdkselection.c:
2855         * gdk/gdkwindow.c: added a bunch of checks for window != NULL and
2856           private->destroyed.
2857
2858 Sun Jan 25 19:15:32 1998  Tim Janik  <timj@gimp.org>
2859
2860         * gtk/gtkwidget.h (enum): added new widget flag GTK_LEAVE_PENDING.
2861         * gtk/gtkmain.c (gtk_main_iteration_do): if a widget has
2862           GTK_LEAVE_PENDING set, send it its LEAVE_NOTIFY event, regardless
2863           of a grab or sensitivity.
2864           changed the compression code for enter/leave notify events to
2865           free *both* compressed event, and removed an unneccessary call
2866           to g_list_remove.
2867
2868         * ChangeLog: finally catched up with the recent changes on my part.
2869
2870         * gtk/gtkobject.h: new element n_args in GtkObjectClass.
2871         * gtk/gtkobject.c (gtk_object_query_args): this function now returns
2872           the arguments in the correct order.
2873
2874         * gtk/gtkbox.c:
2875         * gtk/gtkbutton.c:
2876         * gtk/gtkcontainer.c:
2877         * gtk/gtkframe.c:
2878         * gtk/gtklabel.c:
2879         * gtk/gtkobject.c:
2880         * gtk/gtkwidget.c:
2881         * gtk/gtkwindow.c: various fixes and additions to the gtk_*_set_arg
2882           and gtk_*_get_arg() functions.
2883
2884         * gdk/gdk.h:
2885         * gdk/gdk.c (gdk_pointer_is_grabbed): new function.
2886
2887         * gtk/gtkmain.h:
2888         * gtk/gtkmain.c: implementations of gtk_invoke_key_snoopers(),
2889           gtk_key_snooper_install() and gtk_key_snooper_remove(). this
2890           mechanism allowes applications to track global hot keys that need
2891           to bypass accelerator tables and else key processing stuff.
2892
2893 Thu Jan 22 18:58:44 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
2894
2895         * gdk/gdkcc.c: Switched the file to GNU indentation, for consistency.
2896
2897         * gdk/gdktypes.h (struct _GdkColorContext): Picky, picky... fix
2898         two lines with wrong indentation :-)
2899
2900 Thu Jan 22 02:32:06 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
2901
2902         * gtk/Makefile.am: Fixed the call to runelisp to use $(SHELL).
2903           (Cannot rely on the script having execute permissions.)
2904
2905 Wed Jan 21 17:29:54 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2906
2907         * Released 0.99.3
2908
2909 Wed Jan 21 01:32:21 1998  Tim Janik  <timj@psynet.net>
2910
2911         * gtk/gtkwidget.h:
2912         * gtk/gtkwidget.c: changed the state_changed signal to take an
2913           extra argument `old_state'.
2914           removed `gtk_widget_restore_state'.
2915           changed `gtk_widget_set_state' and `gtk_widget_set_sensitive' to use
2916           only one function `gtk_widget_propagate_state' to iterate down the
2917           tree. this causes GtkWidget::state_changed to be invoked on state
2918           changes and on sensitivity changes. some comment cleanups.
2919
2920 Tue Jan 20 16:38:52 1998  Owen Taylor  <owt1@cornell.edu>
2921         * gtk/gtkcombobox.{c,h}: removed
2922           gtk/gtkcombo.{c,h}: added [Paolo Molaro's version]
2923           gtk/testgtk.c: changed to use new version
2924           gtk/Makefile.am gtk/gtk.h
2925         
2926 Mon Jan 19 20:10:19 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2927
2928         * gdk/gdk.h Fixed typo where strdup was used instead of g_strdup
2929           (found by Frank Neumann)
2930
2931 Mon Jan 19 16:21:00 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
2932
2933         * gtk/gtktoolbar.c (gtk_toolbar_class_init): Set
2934         container_class->focus to NULL.  Widgets in the toolbar should not
2935         get the focus via the normal key bindings (no toolkit does this,
2936         and it makes sense).
2937
2938         * gtk/testgtk.c (create_toolbar): Removed the GTK_PIXMAP casts to
2939         match Eckehard's new prototypes.
2940
2941         * gtk/gtktoolbar.h: Switched the order of the tooltip_text and
2942         widget parameters to the gtk_toolbar_*_widget() functions, to be
2943         friendlier to the C++ bindings.  This is per request of Guillaume
2944         Laurent.
2945
2946 Mon Jan 19 09:16:38 1998  Tim Janik  <timj@psynet.net>
2947
2948         * gtk/gtkmain.c (gtk_grab_add) (gtk_grab_remove): this is a stack
2949           of grabbing widgets now, having unique entries. the GTK_HAS_GRAB
2950           flag of a widget is set while it is on the stack (wasn't
2951           implemented before).
2952
2953 Mon Jan 19 00:46:18 1998 MET  Eckehard Berns  <eb@berns.prima.de>
2954
2955         * gtk/gtktoolbar.[ch]: changed
2956           gtk_toolbar_{append,prepend,inser]_item to accept any GtkWidget
2957           as icon to allow more flexibility
2958
2959 Sun Jan 18 16:54:55 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2960         * gtk/gtkstatusbar.[ch] added new widget, the statusbar
2961
2962 Sun Jan 18 09:57:00 1998  Owen Taylor  <owt1@cornell.edu>
2963
2964         * gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkdrawingarea.c
2965           gtk/gtkentry.c gtk/gtkeventbox.c gtk/gtkfixed.c
2966           gtk/gtkhandlebox.c gtk/gtkhscale.c gtk/gtkhscrollbar.c
2967           gtk/gtkitem.c gtk/gtklist.c gtk/gtkmenushell.c gtk/gtkmisc.c
2968           gtk/gtknotebook.c gtk/gtkpaned.c gtk/gtkpreview.c
2969           gtk/gtkprogressbar.c gtk/gtkruler.c gtk/gtktext.c gtk/gtktree.c
2970           gtk/gtkviewport.c gtk/gtkvscale.c gtk/gtkvscrollbar.c
2971           gtk/gtkwidget.{c,h}
2972
2973         Added gtk_widget_set_parent_window() and 
2974         gtk_widget_get_parent_window(). All widgets should use:
2975         
2976            gtk_widget_get_parent_window() instead of widget->parent->window.
2977         
2978         Any widget that wants to have children not in the parent window,
2979         should use gtk_widget_set_parent() in their realize() and
2980         add() routines. 
2981
2982         CList and Viewport widgets changed to do this. (Viewport
2983         widget using code from gtk-fortier-980117-0.patch.)
2984
2985 Sat Jan 17 23:56:02 1998  Owen Taylor  <owt1@cornell.edu>
2986
2987         * gtk/gtkobject.c:
2988            renamed g_string_equal => g_str_equal
2989            renamed g_string_hash => g_str_hash
2990
2991 Sun Jan 18 03:57:52 1998  Tim Janik  <timj@psynet.net>
2992
2993         * gtk/gtkframe.c: gtk_*_get_arg() and gtk_*_set_arg() implementations.
2994         * gtk/gtkobject.c: new arg `GtkObject::object_signal' similar to
2995           `GtkObject::signal'. check for class type in gtk_object_{setv|getv}.
2996
2997         * gtk/gtkobject.c:
2998         * gtk/gtksignal.c:
2999         * gtk/gtktypeutils.h:
3000         * gtk/gtktypeutils.c: added GTK_TYPE_DOUBLE.
3001
3002         * gtk/gtkwidget.c: new args `has_focus' and `has_default'.
3003         * gtk/gtkwindow.c: new arg `window_position'.
3004
3005         * gtk/gtkbox.h:
3006         * gtk/gtkbox.c: new functions gtk_box_reorder_child,
3007         gtk_box_query_child_packing and gtk_box_set_child_packing to
3008         allow modification of the child linkage after the widget tree
3009         is setup.
3010
3011         * gtk/gtkbox.c:
3012         * gtk/gtklabel.c:
3013         * gtk/gtkwindow.c:
3014         * gtk/gtkwidget.c:
3015         * gtk/gtkobject.c: gtk_*_get_arg() and gtk_*_set_arg() fixes
3016           and implementations.
3017         
3018 Sat Jan 17 18:06:35 1998  Owen Taylor  <owt1@cornell.edu>
3019         * gdk/gdk.c (gdk_events_pending): Take putback events into
3020           account
3021
3022         * gdk/gdk.c (gdk_event_free): Handle dropdataavaible memory
3023           allocation correctly. (Incompatible change: client must
3024           _not_ fre event->data and event->data_type.)
3025
3026         * gdk/gdk.c (gdk_event_translate): Changed DND dragging
3027           so that we don't ungrab pointer when we reenter window
3028           to prevent extra Enter/Leave effects which had bad
3029           effects.
3030           Changed drag zone handling to not send uncessary
3031           DragEnter events.
3032           Fixed EnterNotify/LeaveNotify handling. (Only pay
3033           attention to events on window, don't specify these
3034           events to XGrabPointer - that isn't valid, and handle
3035           reverse the sense of the handling of LeaveNotify.)
3036
3037         * gdk/gdkwindow.c (gdk_window_remove_filter): Free removed
3038           filter.
3039
3040         * gtk/gtk.defs (GdkFont): gdk_font_free => gdk_font_unref
3041
3042         * gtk/gtkmain.{c,h} (gtk_events_pending): new function - apps
3043           should use this instead of gdk_events_pending.
3044
3045         * gtk/gtkvbbox.h: Fixed a duplication in the headers.
3046
3047         * gtk/testgtk.c (dnd_drop): Don't free the drop data,
3048           it belongs to the event.
3049
3050 Sat Jan 17 13:26:15 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3051
3052         * gtk/gtkentry.[ch]:  Applied patch from <lupus@lettere.unipd.it> 
3053           which adds gtk_entry_set_max_length function.  This was 
3054           part of gtk-lupus-970112-0.
3055
3056         * gtk/testgtk.c: Applied gtk-wille-980113-0 which fixes 
3057           a problem with a shaped widget keeping grab forever
3058           when double clicked.
3059      
3060         * docs/gtk.texi: patch from Gregory McLean <gregm@randomc.com>
3061           to add some on aspect_frame, button_box, and color_selection
3062           widgets
3063
3064 Sat Jan 17 06:24:05 1998  Tim Janik  <timj@psynet.net>
3065
3066         * gtk/gtktypeutils.h (gtk_type_get_arg): new function.
3067         * gtk/gtkobject.h (gtk_object_query_args): new function.
3068         * gtk/gtkobject.h (gtk_object_getv): new function.
3069         * gtk/gtkwidget.h (gtk_widget_get): new function.
3070
3071 Fri Jan 16 00:36:31 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3072
3073         * gtk/gtkhandlebox.c: Now we use a GtkWindow of type
3074         GTK_WINDOW_DIALOG as a destination for reparenting the child of
3075         the handle box.  This solves the problem of having X calls in
3076         Gtk.  It also makes the handle box work with KWM, OLVWM, 4Dwm (so
3077         I expect mwm to work as well).  I hadn't noticed that previously
3078         it only worked with fvwm and twm.
3079
3080         * gtk/gtkhandlebox.h (struct _GtkHandleBox): Removed the
3081         real_parent field, as it is never used.
3082         (struct _GtkHandleBox): Added a float_window field.  This is a
3083         GtkWindow to where the child is now reparented.
3084
3085         * gtk/gtkhandlebox.c: Lots of changes all over the place.  Now the
3086         widget has two windows.  The steady_window stays put in the parent
3087         container, and the widget->window is the one that gets
3088         reparented.  Now that window is transient, in compliance with the
3089         ICCCM, instead of an OverrideRedirect window.
3090
3091         We have two windows so that we can properly receive Expose events
3092         for the thin 3D line that marks the place where the handlebox is
3093         docked.
3094
3095         * gtk/gtkhandlebox.h (struct _GtkHandleBox): Added fields for
3096         dragging (mouse position information).  Added fleur_cursor so that
3097         we look pretty.  Added steady_window field; it is the window that
3098         actually stays on the parent (widget->window is the one that gets
3099         reparented).
3100
3101 Thu Jan 15 19:03:19 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3102
3103         * gtk/gtkclist.c (gtk_clist_set_column_width): Call
3104         gtk_clist_size_allocate_columns every time the column
3105         configuration changes. 
3106
3107 Fri Jan 16 01:55:17 1998  Tim Janik  <timj@psynet.net>
3108
3109         * improved the gtk_widget_set handling. removed GtkArgFunc and added
3110           GtkArgSetFunc and GtkArgGetFunc in _GtkTypeInfo.
3111           performance consuming strcmp() calls are avoided in gtk_*_set_arg()
3112           now, it is passed an arg_id on which it can switch() now.
3113
3114         * gtk/gtkobject.h:
3115         * gtk/gtkobject.c (gtk_object_add_arg_type): added parameter arg_id.
3116
3117         * gtk/gtktypeutils.h:
3118         * gtk/gtktypeutils.c (gtk_type_set_arg): added parameter arg_id.
3119
3120         * gtk/gtkobject.c: bug fixes and changes in the assertion system for
3121           arg handling. changed g_print() warning calls to real g_warning()s.
3122           
3123         * changed all *_get_type() functions to initialize GtkTypeInfo
3124           correctly with GtkArgSetFunc and GtkArgGetFunc fields.
3125
3126 Thu Jan 15 00:44:27 PST 1998 Jay Painter <jpaint@serv.net>
3127         * gtk/gtkentry.[ch]: Change window cursor to "I"
3128         * gtk/gtkpane.[ch]: Cleared up a tiny memory leak from not destroying the
3129         cursor
3130
3131 Tue Jan 13 07:30:02 PST 1998 Jay Painter <jpaint@serv.net>
3132         * gtk/gtkclist.c: minor updates
3133         * gtk/gtktext.c: you can type in it!  It should also seg-fault *MUCH* less now,
3134         because editing was never really turned off.  
3135         * gtk/testgtk.c: changed the gtktext test a little
3136         * gtk/testgtkrc: removed pixmap background for now, since I intend to break
3137         that for a while
3138
3139 1998-01-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3140
3141         * gtk/gtktoolbar.c: (gtk_real_toolbar_style_changed): Fixed
3142         child->icon and child->label == NULL bugs.
3143
3144         * gtk/gtktoolbar.h: Added some new functions:
3145                 gtk_toolbar_append_widget()
3146                 gtk_toolbar_prepend_widget()
3147                 gtk_toolbar_insert_widget()
3148         These let the user insert any kind of widget in the toolbar.  Also
3149         changed the gtk_toolbar_*_item() functions to return a
3150         GtkWidget * so that the user can do things with the toolbar buttons.
3151
3152         * gtk/gtktoolbar.c: Now the toolbar supports its own buttons and
3153         arbitrary widgets as well.  Geometry management has been changed
3154         accordingly.  Added gtk_toolbar_remove() function, so container
3155         functionality should be complete now.
3156
3157         * gtk/testgtk.c (create_toolbar): Added an entry widget to test
3158         the new toolbar.
3159
3160         * Most of these changes are adapted from the
3161         gtk-lupus-970112-0-patch (should be 970112... :-)
3162
3163 Sat Jan  9 20:52:00 PST 1998 Ian Main <imain@gimp.org>
3164         * gtk/gtkfilesel.c:  Changed a few tests in the path correcting
3165                 function.  Hopefully this helps the filesel stability.
3166
3167 Fri Jan  8 00:55:00 PST 1998 Jay Painter <jpaint@serv.net>
3168         * gtk/gtkclist.c:
3169         * gtk/gtkclist.h: modifications to GtkCList so it's look and 
3170         feel is the same as scrolled windows.
3171
3172 Thu Jan  8 17:56:09 PST 1998 Manish Singh <yosh@gimp.org>
3173
3174         * glib/gscanner.c
3175         * gtk/gtclist.c
3176         * config.h.in
3177         * configure.in: added test for inline and put the inline keywords
3178         back in
3179
3180         * gtk/gtklabel.c: made the prototypes match the definitions
3181
3182         * gtk/fnmatch.c: minor change to make sure the right config.h
3183         gets included
3184         
3185 1998-01-07  Elliot Lee  <sopwith@localhost.cs.cuc.edu>
3186
3187         * gtk/gtkcombobox.c gtk/gtkcombobox.h: New widget, GtkComboBox
3188         * gdk/gdkwindow.c: Make gdk_window_init set the width &
3189                 height of gdk_root_parent
3190
3191 Wed Jan  7 18:06:17 PST 1998 Manish Singh <yosh@gimp.org>
3192
3193         * gtk/gtkentry.c:
3194         * gtk/gtkentry.h: applied patch to use a backing pixmap for
3195         drawing, which removes the bad flickering. (gtk-wille-980106-0)
3196
3197 Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
3198
3199         * glib/glib.h
3200         * glib/glist.c
3201         * glib/gslist.c
3202         * glib/testglib.c: Added g_[s]list_insert_sorted function
3203         and appropriate tests in testglib
3204
3205 Tue Jan  6 17:09:46 1998  Owen Taylor  <owt1@cornell.edu>
3206         * gtk/gtknotebook.h gtk/gtknotebook.c
3207            Added "switch_page" signal. (gtk-hamann_jeske-971212-0.patch)
3208
3209 Tue Jan  6 17:07:29 1998  Owen Taylor  <owt1@cornell.edu>
3210         * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c : 
3211            Fixed problem with deleting while text is selected.
3212            Changed behavior so that motion keys remove selection.
3213            Added new gtk_entry_select_region () call.
3214
3215 Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
3216         * glib/glib.h: Changed guint32 -> guint for bitfields. 
3217           (Bitfields must be int or unsigned int?)
3218
3219 Sat Jan  3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
3220         * gtk/testgtk.c: better CList test
3221
3222 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3223         * GTK+ 0.99.2 Released
3224
3225 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3226
3227         * gtk/gtkscrolledwindow.c: initialize scrollbar_spacing
3228           (gtk-fortier-980103-0)
3229
3230 Sat Jan  3 10:15:08 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
3231
3232         * configure.in: fixed a typo (no_xext_lib, not no_ext_lib).
3233
3234 Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
3235
3236         * gtk/gtkentry.c:
3237         * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
3238         fixed-length entry fields (gtk_entry_new_with_max_length)
3239         
3240 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
3241         * reverted glibconfig.h and glib.h files back to the
3242         way they were before my ugly hack
3243         * gtk/gtkclist.c:
3244         * glib/gscanner.c: removed inlines from clist and gscanner
3245
3246 Fri Jan  2 23:55:24 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3247
3248         * Several portability fixes from Michael Callahan 
3249           <callahan@xmission.com> including adding in missing
3250           #includes and adding void in function prototypes.
3251
3252 Fri Jan  2 19:28:52 1988 Jay Painter <jpaint@serv.net>
3253         * gtk/gtkclist.h:
3254         * gtk/gtkclist.c:
3255         * gtk/gtk.h:
3256         * gtk/testgtk.c:
3257         * gtk/testgtkrc: added GtkCList, column list widget, and a small test
3258         to testgtk
3259
3260 Fri Jan  2 15:42:51 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3261
3262         * gtk/gtkmain.c (gtk_main_iteration): Make the big switch handle
3263         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.
3264
3265 Fri Jan  2 12:07:33 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3266
3267         * gtk/gtkviewport.c: corrects a small resize bug in the 
3268           viewport widget.  The viewport widget provides a _set_shadow 
3269           function to draw its shadows. But if GTK_SHADOW_NONE is sent 
3270           to this function, the viewport isn't resized correctly (it's 
3271           still considered as a shadowed widget).  (gtk-fortier-971213-0)
3272
3273         * gtk/gtknotebook.c: this patch fixes the redraw problems of 
3274           notebook tabs, without using gdk_gc_set_clip_rectangle.
3275           (gtk-hamann_jeske-971218-0)
3276  
3277         * add gtk_widget_(show/hide)_all (Stefan Wille)
3278           (gtk-wille-301297-0)  Patch for testgtk not included
3279           because it did not patch clean.  
3280
3281 Thu Jan  1 21:21:56 PST 1998 Manish Singh <yosh@gimp.org>
3282
3283         * configure.in: fixed up the xinput test
3284         * Miscellaneous portability fixes.
3285
3286 Mon Dec 29 22:05:45 1997  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3287
3288         * gdk/gdkgc.c (gdk_gc_copy): New function, used to copy the values
3289         from one gc to another gc.
3290
3291 Sat Dec 27 20:39:99 1997  Elliot Lee <sopwith@redhat.com>
3292         * gtk/gtkhandlebox.c: It mostly works now, please test it and make
3293         fixes as needed.
3294
3295 Fri Dec 26 11:20:03 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
3296
3297         * gtk/Makefile.am (gtkinclude_HEADERS): added gtkhandlebox.c
3298
3299         * gtk/gtkhandlebox.c (gtk_handle_box_reparent): eliminated a
3300         compiler warning caused by not casting an argument in a debugging
3301         message. :)
3302
3303 Fri Dec 26 02:59:39 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3304
3305         * gdk/gdktypes.h gdk/gdk.c gdk/gdkwindow.c: Added new
3306         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.  They are needed
3307         for Alan Cox's TV widget and for GtkXmHTML.  Only missing with
3308         respect to their Xlib counterparts are the major_code and
3309         minor_code fields from the GdkEventNoExpose structure.  Does
3310         anyone need them?
3311
3312 Tue Dec 23 03:03:17 1997  Tim Janik  <timj@psynet.net>
3313
3314         * gtk/gtkscrolledwindow.c (SCROLLBAR_SPACING): this macro computes
3315         the spacing from klass->scrollbar_spacing now. adapted all functions
3316         that used this macro (based on a patch from Patrice Fortier).
3317         * gtk/gtkscrolledwindow.h (struct _GtkScrolledWindowClass): added
3318         scrollbar_spacing to substitute a define (patch from Patrice Fortier).
3319
3320         * gtk/gtkrc.h (gtk_rc_parse_string): new function.
3321         * gtk/gtkrc.c: many functions adapted to use GScanner for scanning.
3322         (gtk_rc_parse): use gtk_rc_parse_any for parsing.
3323         (gtk_rc_parse_string): new function to support parsing from
3324         strings, just calls gtk_rc_parse_any.
3325         (gtk_rc_parse_any): new function using GScanner as lexer.
3326
3327 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
3328
3329         * GDK support for 1 bpp depth screens.
3330
3331 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
3332
3333         * Changes from Bolliet Jerome <bolliet@in2p3.fr> to gtktree.
3334           Corrects a bug in gtk_tree_remove_items and gtk_tree_item_destroy.
3335           Adds the possibility to connect all items by lines. This is the 
3336           default now.  You can overide this with the function 
3337           gtk_tree_set_view_line which take a tree and a boolean.
3338
3339 Thu Dec 18 23:26:49 CST 1997 Shawn T. Amundson <amundson@gimp.org>
3340
3341         * removed configure, Makefile.in, and aclocal.m4 files
3342
3343 Wed Dec 17 23:36:57 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
3344
3345         * gdk/gdkcc.c (gdk_color_context_free): Caught a stray
3346         gdk_colormap_destroy that Owen missed (and Shawn found).
3347
3348 Wed Dec 17 20:59:52 1997  Owen Taylor  <owt1@cornell.edu>
3349         * gdk/gdkinput.c gdk/gdkinput.h gdk/gdkinputcommon.h
3350           gdk/gdkinputxfree.h gdk/gdkinputgxi.h gdk/gdkinputnone.h.
3351           gtk/gtkinputdialog.h gtk/testinput.c
3352         Added support for device keys mapping to key events.
3353         Fixed various bugs.
3354
3355 Wed Dec 17 20:53:00 1997  Owen Taylor  <owt1@cornell.edu>
3356         * gdk/gdk.c gdk/gdk.h: Changed gdk_get_event to remove
3357         predicate filtering, and to allocate the events.
3358         Added gdk_event_get_graphics_expose for scroll handling.
3359         * gtk/gtkmain.c gtk/gtktext.c:
3360         Use above changes. Interface change for gtk_get_current_event.
3361         * testgtk.c
3362         Added another test to test new scrolling mechanism.s
3363         * gdk/gdk.c gdk/gdk.h gdk/gdkwindow.c gdk/gdkprivate.h: 
3364         Added beginnings of event filtering. Removed obsolte
3365         OtherEvent mechanism.
3366         * gdk/gdk.c: Combined FocusIn/FocusOut events. Now ignore
3367         focus events which aren't for window itself. (Only pay
3368         attention to NotifyAncestor/Inferior/Nonlinear)
3369         * gtk/gtkwindow.c gtk/gtkwindow.h: Virtualize set_focus 
3370         function so it can be overridden.
3371         * gtk/gtkwidget.c: Reparenting should now work for
3372         containers. (Guillaume Laurent <glaurent@worldnet.fr>)
3373         * gdk/gdkgc.c: By default, GraphicsExpose events are now
3374         _not_ generated.
3375         * gtk/testselection.c: Suppress a warning, fix a bug?
3376
3377 Wed Dec 17 20:47:42 1997  Owen Taylor  <owt1@cornell.edu>
3378         * configure.in, glib/configure.in: 
3379         Remember if user set CFLAGS, so we can set it for --enable-debug
3380           only if they didn't. 
3381         Added missing quotes. )Raphael.Quinet@eed.ericsson.se)
3382         Only use -DX_LOCALE if setlocale doesn't work.
3383         * gdk/gdki18n.h: Simplified system for trying to get iswalnum() -
3384         include <wctype.h> if present, otherwise <wchar.h> if present.
3385         
3386 Wed Dec 17 21:09:12 1997  Owen Taylor  <owt1@cornell.edu>
3387   1997-10-13  Marius Vollmer  <mvo@zagadka.ping.de>
3388
3389     Bug fixes:
3390         
3391         * gtksignal.c (gtk_params_get): Initialize the GtkArg even when
3392         the return type is GTK_TYPE_NONE.
3393
3394     Revamped reference counting, see the file REFCOUNTING.
3395
3396         * Makefile.am (EXTRA_DIST): Added REFCOUNTING.
3397         * REFCOUNTING: New file.
3398
3399         * gdk/gdk.c (received_destroy_notify, window_to_destroy): Removed.
3400         (gdk_event_get): Code that deals with the above removed.
3401         (gdk_event_translate): Abort when the GdkWindow for the XEvent
3402         cannot be found.  For DestroyNotify: Do not use
3403         receive_destroy_notify and window_to_destroy but call
3404         gdk_window_destroy_notify.
3405
3406         * gdk/gdk.h: (gdk_pixmap_destroy, gdk_colormap_destroy,
3407         gdk_fontset_free): Removed.
3408         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
3409         gdk_bitmap_unref): New prototypes.
3410         (gdk_font_free, gdk_font_unref): Renamed gdk_font_free to
3411         gdk_font_unref.
3412
3413         * gdk/gdkcolor.c (gdk_colormap_real_destroy): Made static.
3414         (gdk_colormap_destroy): Removed.
3415
3416         * gdk/gdkfont.c (gdk_font_free): Renamed to gdk_font_unref.
3417         Handle fontsets as well.
3418         (gdk_fontset_free): Removed.
3419
3420         * gdk/gdkpixmap.c (gdk_pixmap_destroy): Removed.
3421         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
3422         gdk_bitmap_ref): New functions.
3423
3424         * gdk/gdkwindow.c: (gdk_window_new, gdk_window_foreign_new): Call
3425         gdk_window_ref for the pointer in the xid table.
3426         (gdk_window_internal_destroy): Renamed from gdk_window_destroy.
3427         New parameter XDESTROY that takes the role of `destroyed==2';
3428         removed special casing of `destroyed==2'.  Free dnd_data only when
3429         really destroying.  Do not touch the ref_count.  Calling
3430         gdk_window_destroy on a Pixmap is now a real error, not just a
3431         warning.
3432         (gdk_window_destroy): Just call gdk_window_internal_destroy and
3433         gdk_window_unref, as advertised in REFCOUNTING.
3434         (gdk_window_destroy_notify): New function.
3435         (gdk_window_unref): Print a warning when the ref_count is zero and
3436         the window has not been destroyed.  Should never happen.  Do not
3437         destroy the window, just free the memory.
3438         
3439         * gdk/gdkprivate.h (gdk_window_real_destroy): Removed.
3440
3441         * gtk/gtkaccelerator.c (gtk_accelerator_table_destroy): Removed.
3442         (gtk_accelerator_table_unref): Do the job of
3443         gtk_accelerator_table_destroy directly.
3444         (gtk_accelerator_table_init): Init ref_count with 1.
3445
3446         * gtk/gtkaccelerator.h (gtk_accelerator_table_destroy): Removed.
3447
3448         * gtk/gtkcurve.c, gtk/gtkgamma.c: Replaced gdk_pixmap_destroy with
3449         gdk_pixmap_unref.
3450
3451         * gtk/gtkhscrollbar.c (gtk_hscrollbar_realize): Reflect the fact
3452         that the widget->window is used as the range->trough in the
3453         ref_count.
3454         * gtk/gtkvscrollbar.c (gtk_vscrollbar_realize): Likewise.
3455
3456         * gtk/gtkmain.c (gtk_main_iteration): Protect event_widget with
3457         ref/unref while handling the GDK_DELETE and GDK_DESTROY events.
3458
3459         * gtk/gtkmenu.c (gtk_menu_set_accelerator_table): Don't do
3460         anything when the new accel_table is the old one.
3461
3462         * gtk/gtkmenufactory.c (gtk_menu_factory_destroy): Unref
3463         factory->table if there is one.
3464         (gtk_menu_factory_create, gtk_menu_factory_create_widget): Don't
3465         ref newly created accel_table, it is now created with a ref_count
3466         of 1.
3467
3468         * gtk/gtkmenuitem.c (gtk_menu_item_set_submenu):  Don't do
3469         anything when the new submenu is the old one.
3470
3471         * gtk/gtkpixmap.c (gtk_pixmap_destroy): New static function.
3472         (parent_class): New global variable.
3473         (gtk_pixmap_init): Set object_class->destroy.
3474         (gtk_pixmap_set): Don't do anything about the pixmap when the new
3475         pixmap is the old one.  Likewise for the mask.
3476
3477         * gtk/gtkprogressbar.c, gtk/gtkruler.c: Replaced
3478         gdk_pixmap_destroy with gdk_pixmap_unref.
3479
3480         * gtk/gtkrange.c (gtk_range_set_adjustment):  Don't do
3481         anything when the new adjustment is the old one.
3482
3483         * gtk/gtkrc.c: Replaced gdk_fontset_free/gdk_font_free with
3484         gdk_font_unref.
3485
3486         * gtk/gtkstyle.c (gtk_style_new): Initialize ref_count with 1.
3487         (gtk_styles_init): Replace gtk_style_destroy with gtk_style_unref
3488         for the cache.
3489         (gtk_style_new_from_key): Ref style before returning it when it
3490         has not been newly created.
3491         (gtk_style_destroy): Don't look at the ref_count, destroy always.
3492         Free style-font with gdk_font_unref, regardless of font->type.
3493
3494         * gtk/gtktooltips.c (gtk_tooltips_real_destroy): Renamed from
3495         gtk_tooltips_destroy and made static.  Don't look at ref_count,
3496         destroy always.
3497         (gtk_tooltips_new): Initialize ref_count with 1.
3498         (gtk_tooltips_unref): Don't look at pending_destroy, destroy
3499         always when ref_count is 0.
3500         (gtk_tooltios_widget_remove): Use gtk_tooltips_destroy_data
3501         instead of hand-coded destruction.
3502
3503         * gtk/gtktooltips.h (GtkTooltips::pending_destroy): Removed.
3504         (gtk_tooltips_destroy): Removed.
3505
3506         * gtk/gtkviewport.c (gtk_viewport_set_hadjustment,
3507         gtk_viewport_set_vadjustment): Don't do anything when the new
3508         adjustment is the old one.
3509
3510         * gtk/gtkwidget.c (gtk_widget_reparent): Protect the reparented
3511         widget with ref/unref while moving it.
3512         (gtk_widget_set_default_colormap): Replace gdk_colormap_destroy
3513         with the proper ref/unref spell.
3514         (gtk_widget_set_default_style): Don't do anything when the new
3515         style is the old one.
3516
3517         * gtk/testinput.c (configure_event): Replaced gdk_pixmap_destroy
3518         with gdk_pixmap_unref.
3519         
3520     More Interpreter support:
3521
3522         * gdk/gdktypes.h (GdkDestroyNotify): New type.
3523         
3524         * gdk/gdk.c (struct _GdkInput::destroy): New field.
3525         (gdk_input_add_interp): New version of gdk_input_add that follows
3526         the interp conventions for callbacks.
3527         (gdk_input_add): Implement in terms of gdk_input_add_interp.
3528         (gdk_input_remove): Call destroy notify when appropriate.
3529
3530         * gdk/gdk.h (gdk_input_add_interp): New prototype.
3531
3532         * gtk.defs: Updated from guile-gtk.
3533         * gtk/gtktypebuiltins.c, gtk/gtktypebuiltins.h: Regenerated.
3534         
3535         * gtk/gtkmain.c (GtkInputFunction, struct _GtkInputFunction): New
3536         types.
3537         (gtk_invoke_input_function, gtk_destroy_input_function,
3538         gtk_input_add_interp, gtk_input_remove): New functions.
3539
3540 Wed Dec 17 12:00:48 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3541
3542         * gdk/gdkcc.c: New GdkColorContext functionality!  This should
3543         eventually solve all of our color management problems.  Gdk still
3544         needs to be modified to support visuals with less than 8 bpp.  Gtk
3545         needs to be modified just a bit.
3546
3547 Wed Dec 17 13:56:17 PST 1997 Manish Singh <yosh@gimp.org>
3548
3549         * a small patch by Lauri Alanko that allows Gimp to pass
3550         on --display to it's plugins.
3551
3552 Sun Dec 14 00:08:00 PST 1997 Raph Levien <raph@acm.org>
3553         * a minor patch to make the file selection dialog not always
3554         select the first file in a directory
3555
3556 Sat Dec 13 Jay Painter <jpaint@serv.net>
3557         * gtk/gtkvscrollbar.c: added focus flag so vertical scrollbars
3558         can get keyboard focus
3559
3560 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
3561         * Removed warning when XGetWindowProperty fails - this can
3562           be the desired behavior.
3563         
3564 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
3565         * gdk/makecursor* gdk/makekeysym* gdk/Makefile.am
3566           Removed old sed/awk code and replaced it with a 
3567           spiffier awk-only code from Art_Haas@dril-quip.com
3568         
3569 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
3570         * gdk/gdkgc.c: If gdk_gc_set_clip_rectangle is called with
3571           rectangle = NULL, remove clip mask, instead of segfaulting.
3572         * gtk/gtknotebook.c: Set clip mask before redrawing, so that
3573           we don't overwrite things outside of exposed areas when
3574           drawing them shadows. (Based on a patch from 
3575           Lars Hamann <hamann@braunschweig.netsurf.de>, and Stefan Jeske)
3576         
3577 Thu Dec 11 10:57:29 CST 1997 Shawn T. Amundson <amundson@gimp.org>
3578         * Change to ltconfig to remove -z text for Solaris x86  
3579         * Change to configure stuff so compile works on Solaris x86
3580         * Added gdk/gdkkeysyms.h and gdk/gdkcursors.h back into the tree
3581
3582 Thu Dec 11 09:44:03 1997  Tim Janik  <timj@psynet.net>
3583
3584         * gdk.c: added gdk_progclass==NULL patch by Oliver Graf <ograf@fga.de>.
3585
3586 Wed Dec 10 23:40:03 1997  Tim Janik  <timj@psynet.net>
3587
3588         * fixed some compiler errors, because g_return_if_fail() wasn't used
3589         with a trailing semicolon in some places. fixed few other warnings also.
3590
3591 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
3592         * configure changes: (configure.in, glib/configure.in)
3593         Change test ! `...` to test -z `...`
3594           (Harald Meland <Harald.Meland@usit.uio.no>)
3595         Change $gtk_cv_x_locale to $need_x_locale so it isn't cached.
3596         With --enable_debug, don't touch CFLAGS if they're already set.
3597
3598 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
3599         * gdk/gdkpixmap.c: don't use gdk_black/white for pixmap mask.
3600          From Patrice Fortier <Patrice.Fortier@aquarel.fr>
3601
3602 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
3603         * gtk/testselection.c (selection_received): foreward -> forward.
3604         * gtk/gtktext.c (gtk_text_forward_delete): Renamed; changed all
3605         callers.
3606         * gtk/gtktext.h: foreward -> forward.
3607           From Tom Tromey  <tromey@cygnus.com>
3608
3609 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
3610         * gtk/gtkimage.c: Fixes to expose() handler
3611           From Rob Browning <rlb@cs.utexas.edu>
3612         
3613 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
3614         * gtk/gtklabel.h:
3615         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
3616         is used by the new gtktooltips.c.
3617         * gtk/testgtk.c (create_labels, create_main_window): A new test
3618         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
3619
3620 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
3621         * gtk/gtklabel.h:
3622         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
3623         is used by the new gtktooltips.c.
3624         * gtk/testgtk.c (create_labels, create_main_window): A new test
3625         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
3626
3627 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
3628         * gdk/gdk.c, gdk/gdk.h, gdk/gdktypes.h: 
3629           Remove dependencies of interfaces on USE_XIM
3630         * gdki18n.h: Attempt to make wchar handling more portable
3631         * gdkwindow.c: Include config.h. (For gdkinput.h)
3632         
3633 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
3634         * gtk/gtkentry.c, gtk/gtkentry.h: 
3635            Fixed word motion
3636            Added cut/copy/paste via X clipboard
3637            Generalized extending selection using <Shift> to work with all types
3638              of motion, not just arrow keys.
3639            Don't change length of GtkEntry structure because of USE_XIM
3640
3641 Sun Dec  7 03:19:02 1997  Tim Janik  <timj@psynet.net>
3642
3643         * gtkfilesel.c: applied jamesa-971010-0 for stability.
3644         * gtkrc.c: applied jamesa-971010-2 for a small optimization.
3645         * gtkcheckmenuitem.h:
3646         * gtkcheckmenuitem.c:
3647         * gtkradiomenuitem.c:
3648         * testgtk.c: applied johannes-971113-0 which adds
3649         gtk_check_menu_item_set_show_toggle() to change the way check
3650         menu items and radio menu items look.
3651
3652 Fri Dec 5 1997 Elliot Lee <sopwith@cuc.edu>
3653         * gdk/gdk.c: clean up warnings, remove some un-ifdef'd debugging
3654         printing, DnD is Bug Free now, etc.
3655         * gtk/gtkcolorsel.c: fix DnD support.
3656         * gtk/gtkmain.c: DnD events go to the original window even if
3657         there is a grab - if I drop on a window the data had better go
3658         to it and not some other window :)
3659         * gtk/testgtk.c: Replace (GtkSignalFunc) with GTK_SIGNAL_FUNC(),
3660         and do a nicer DnD demo.
3661         * My very first ChangeLog entry, seeing as people have
3662         a fixation on them (what's wrong with "rcs2log" output?)
3663
3664 Thu Dec 4 1997 Owen Taylor <owt1@cornell.edu>
3665         * gdk/gdkgc.c: Ignore gdk_gc_set_font if font is a fontset.
3666
3667 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
3668         * gtk/gtkstyle.c: fixed a problem introduced recently in 
3669         gtk_style_detach witch crashed script_fu.
3670
3671 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
3672         * gdk/Makefile.am: add a dependence for $(DEP_FILES) on
3673         $(BUILT_SOURCES) to work around automake problem
3674         
3675 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
3676         * configure.in glib/configure.in glib/glibconfig.h.in gdk/gdk.h
3677         gdk/gdk18n.h gdk.c gtk/gtkentry.c: Try to handle variations in 
3678         <wchar.h> headers gracefully. Do not automatically include 
3679         gdk/gdki18n.h.
3680         
3681 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
3682         * gtk/gtkoptionmenu.c: fixed a old bug where if you set a new 
3683         menu for a optionmenu the widget would not get positioned correctly
3684         inside of the optionmenu.
3685
3686 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3687         * gdk/gdkpixmap.c: Include unistd.h to get SEEK_END
3688         for SunOS (john_johns@credence.com)
3689         
3690 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3691         * gtk+/fnmatch.c: Define _GNU_SOURCE before including
3692         fnmatch.h to make sure all constants are defined.
3693         (Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp>)
3694         
3695 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3696         * configure.in, glib/configure.in: Make the logic to add -Wall,
3697         -ansi, -pedantic for GCC operational.
3698
3699 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3700         * glib/glib.h, glib/configure.in. Disabled gldouble, since
3701         it wasn't used anywhere and caused portability problems
3702
3703 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3704         * glib/glib.h, glib/configure.in, glib/glibconfig.h.in: Added a
3705         g_memmove function which is simply memmove if it exists, otherwise
3706         bcopy.(Should really check if bcopy has the correct semantics, and
3707         create our own memmove is necessary) 
3708         * glib/gstring.c, glib/garray.c, gtk/gtktext.c:
3709         memmove => g_memmove
3710         
3711 Sun Nov 30 1997 Jay Painter <jpaint@serv.net>
3712         * gtk/gtknotebook.c: fixed a old bug where all the notebook pages
3713         which were not displayed when the notebook widget was realized were
3714         never size allocated when they were realized.
3715
3716 Thr Nov 28 1997 Jay Painter <jpaint@serv.net>
3717         * gtk/gtklist.h: removed GtkSelectionMode
3718         * gtk/gtkenums.h: added GtkSelectionMode
3719
3720 Fri Nov 28 01:26:55 1997  Tim Janik  <timj@psynet.net>
3721
3722         * gtk/gtkwindow.c (gtk_window_show): propagate a size_request before
3723         the initial window creations (prevents windows with size of -1x-1).
3724
3725         * gtk/gtkmain.c (gtk_main_level): new function to determine
3726         the current recursion level of gtkmain().
3727         (gtk_true) (gtk_false): new functions implemented as a convenience
3728         for signals that just need a handler with the appropriate return value.
3729
3730 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
3731         gdk.c: Fix so that "other_events" are actually generated
3732
3733 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
3734         Patches to support internationalized input by:
3735           Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
3736           TANAKA Shinya <shinya@race.u-tokyo.ac.jp>
3737
3738         From the README:
3739         
3740         Feature:
3741           Followings are the main feature of this patch.
3742             * support XIM protocol.
3743             * GtkEntry widget support Over-The-Spot and Root style input.
3744             * input style is configurable by command-line option.
3745
3746         Furthermore, this patch includes several changes which are useful 
3747           without XIM too.
3748         
3749             * copy and paste with other clients by compound text.
3750             * Window title can be specified by multi byte string.
3751
3752         configure.in: 
3753           Added --with-locale and --enable-xim options
3754         gdk/Makefile.am:
3755         gdk/gdki18n.h [new file]
3756           Multibyte string manipulation functions
3757         gdk/gdk.c
3758         gdk/gdk.h
3759         gdk/gdkprivate.h
3760           Input method and context handling functions
3761           Command line options to control input methods
3762           Changes to KeyPress handling to support input methods
3763           Fixes to not return events for destroyed windows
3764         gdk/gdkselection.c
3765           Text property handling functions
3766         gdk/gdkwindow.c
3767           Set window title by multibyte string
3768         gtk/gtkentry.c
3769           Support for using an input context for XIM input.
3770           Cut and paste using compound text.
3771           Improvements to pasting (no longer replace the active selection
3772             with itself OWT)
3773         gtk/gtkselection.c
3774           fix to send selection clear events to the right owner
3775         gtk/testgtkrc
3776           Added a default fontset that will allow international characters
3777         INSTALL
3778           Some rudimentary documentation about the new configuration options.
3779         
3780 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
3781         gtk/gtkaspectframe.c:
3782         Some minor improvements to rounding in aspectframes.
3783         Make sure that child allocation is always >= 0
3784         Always trigger size allocation with gtk_widget_queue_resize
3785         to prevent calling size_allocate before allocation done.
3786
3787 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
3788         gtk/gtkframe.c:
3789         Changed tests for drawability to GTK_WIDGET_DRAWABLE
3790         Always trigger size allocation with gtk_widget_queue_resize
3791         to prevent calling size_allocate before allocation done.
3792
3793 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3794         gtk-dairiki-971117-2.patch
3795         gtk/gtkaspectframe.c (gtk_aspect_frame_size_allocate): When
3796         computing new dimensions of the subwidget, round to nearest
3797         integer rather than truncating.
3798
3799 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3800         gtk-dairiki-971117-1.patch
3801         * gtk/gtkvruler.c (gtk_vruler_draw_ticks):
3802         * gtk/gtkhruler.c (gtk_hruler_draw_ticks): Ensure that subticks
3803         always are drawn when they should be (sometimes they were getting
3804         drawn with zero length --- invisible).  Also clear rectangle
3805         behind text labels to ensure they don't touch or overlap ticks. 
3806
3807 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3808         * gtk/gtkaspectframe.c (gtk_aspect_frame_set): 
3809         gtk-dairiki-971117-0.patch
3810         Clear window when aspect ratio or alignment is changed.
3811
3812 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3813         * gtk/gtkobject.h: fixed GTK_OBJECT_NSIGNALS macro
3814
3815 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3816         * gtk/gtklabel.h: modified gtklabel to clip its drawing to
3817         its given area, now it will always draw in the area it's 
3818         been given and clip accordingly.  Note: this may cause
3819         the a label to disappear on widgets which don't give their
3820         child labels proper area!
3821
3822 Mon, 17 Nov 1997 Michael K. Johnson <johnsonm@redhat.com>
3823         * gtkwidget.c: gtk_set_style_recurse was not allowing updated
3824         widget names to cause new styles to be applied.
3825         * gtkentry.c gtkentry.h: The entry widget now has invisible
3826         attribute.  The cursor does not move to show you typing; this
3827         is an intentional design decision but I'm not so attached to it
3828         that I'll reverse any patches that change it...  :-)
3829
3830         This patch is a modified version of a patch to which I have
3831         lost the attribution.  I modified it by packing the "visible"
3832         flag into the structure more tightly (without damaging backwards
3833         compatibility on sane systems) and by allowing entry timers
3834         to run.
3835
3836 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
3837         * gtkviewport.c: Raph's Mon, 10 Nov 1997 patch to gtk-list 
3838         to fix some viewport bugs
3839
3840 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
3841         * gtk/gtkwidget.c: gtk-ajaborsk-971016-2
3842         A little patch again to prevent user to use gtk_widget_set_events()
3843         when a widget is already realized.
3844         In this case, the gtk_widget_set_events() doesn't work.
3845
3846 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
3847         * gtk/gtkwindow.c: gtk-ajaborsk-971016-1
3848         This small patch correct position for GTK_WIN_POS_CENTER and
3849         GTK_WIN_POS_MOUSE GtkWindow positions.
3850
3851 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
3852         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
3853         * gdk/gdk.h: header for above
3854
3855 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
3856         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
3857         * gdk/gdk.h: header for above
3858
3859 Wed Nov 12 1997 Jay Painter <jpaint@serv.net>
3860         * gdk/gdkpixmap.c: Patrice Fortier's patch for transparent pixmaps.
3861         * gdk/gdk.h:
3862           gdk/gdkdraw.c: Patrice Fortier's patch to add pixel draw function.
3863
3864 Sun Nov  9 1997 Jay Painter <jpaint@serv.net>
3865         * Fixed problems with makefiles relating to the bug
3866         which required glib to be installed.
3867         * Fixed makefiles to incluce the xpm's in gtk+/gtk needed
3868         for testgtk.
3869         * Updated gtk+ and gtk+/glib to libtool-1.0f
3870
3871 Fri Nov  7 1997 Jay Painter <jpaint@serv.net>
3872         * gtk/gtktext.c: return char_widths[ch & 0xff]; in line 2152
3873
3874 Thr Nov  5 1997 Jay Painter <jpaint@serv.net>
3875         * gtk/testgtk.c: added drag and drop test, removed the test hack
3876         from the button test
3877
3878 Tue Nov  4 08:28:57 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3879
3880         * gtk/gtkmain.c (gtk_handle_idle): Patch from David Mosberger to
3881         avoid crashes when handling idle function (this manifested itself
3882         in the Umax and Microtek backends in SANE.
3883
3884 Sun Nov  2 07:34:56 1997  Tim Janik  <timj@psynet.net>
3885
3886         * gtk/gtkfilesel.c: Small fixes about a segmentation viaolation
3887         cause by a double click in the directoy list (introduced by my
3888         previous changes).
3889         
3890         * gtk/gtklist.c: Small fixes to gtk_list_add() and gtk_list_remove().
3891         
3892         * gtk/testgtk.c (list_add): Applied Stefan Wille's patch to make this
3893         function do something ;).
3894
3895 Fri Oct 31 Jay Painter <jpaint@serv.net>
3896         *gdk/gdk.c: reformatted DND code for GTK coding standards
3897         *gdk/gdkwindow.c: changed memory allocation for DND to q_mem stuff
3898
3899 Thu Oct 30 Jay Painter <jpaint@serv.net>
3900         * gdk/gdkwindow.c: 
3901         * gdk/gdk/gdk.h:
3902         * gtk/gtkwidget.h:
3903         * gtk/gtkwidget.c: Applied Stephan Willie's shaped window patch
3904
3905         * gdk/gdkwindow: 
3906         * gdk/gdk.h:
3907         * gtk/gtkwidget.h:
3908         * gtk/gtkwidget.c: reformatted the DND code to conform to GTK
3909                 coding standards
3910
3911         * gtk/testgtk: massive fixes, SW's shaped window example
3912
3913 Thu Oct 30 07:33:27 1997  Tim Janik  <timj@psynet.net>
3914
3915         * gtk/gtklistitem.c (gtk_real_list_item_toggle): applied Johannes
3916         Keukelaar's <johannes@nada.kth.se> patch for keyboard support in
3917         GtkList widgets.
3918
3919         * gtk/gtkfilesel.c: adapted dir and file list selection
3920         behaviour to deal with keyboard selections. this is a little
3921         bit tricky: in the dir list it just changes the entrys value on a one
3922         button press. but on a keyboard selection via gtk_widget_activate() it
3923         does a new population (likewise on a double click) as this seems more
3924         obvious.
3925
3926 1997-10-25  Marius Vollmer  <mvo@zagadka.ping.de>
3927
3928         * gdk/gdkcolor.c (gdk_colormap_get_system): Initialize
3929         private->ref_count.
3930
3931 Wed Oct 22 09:47:43 1997  Tim Janik  <timj@psynet.net>
3932
3933         * gtk/gtkwindow.c (gtk_window_key_release_event): Fixed a stupid
3934         bug that caused the key_release_event to be propagated twice.
3935
3936 Sun Oct 12 11:01:43 1997  Tim Janik  <timj@psynet.net>
3937
3938         * acconfig.h:
3939         * configure.in:
3940         * gdk/gdkimage.c: Added configure check for IPC_RMID_DEFERRED_RELEASE,
3941         because shmat() fails after a shmctl(..., IPC_RMID,...) for OSF1 V3.2,
3942         SunOS 4.1.1, 5.5, 5.5.1, 5.6, IRIX 5.2 and 6.2.
3943
3944 Mon Oct  6 11:59:07 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3945
3946         * gdk/gdk.c (gdk_event_translate): In line 1693, fixed typo that
3947         would cause motion notify events not to be delivered.
3948
3949 Sun Oct  5 18:15:06 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3950
3951         * gtk/gtkrc.c (gtk_rc_parse_bg_pixmap): Changed strdup() for
3952         g_strdup().
3953
3954 Wed Sep 24 17:16:34 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
3955
3956         * configure.in: Fixed a stupid error in the test for libXext that
3957         would cause it to fail if X_EXTRA_LIBS was not empty.
3958
3959         * gtk/gtkmain.h (gtk-timj-970919.patch):
3960         * gtk/gtkmain.c (gtk-timj-970919.patch): new function
3961         `gtk_idle_remove_by_data' to remove all idle callbacks that take a
3962         specific piece of data as argument.  (gtk_get_current_event):
3963         remove idles through gtk_idle_remove_by_data.
3964         
3965         * gtk/gtkwidget.c (gtk-timj-970919.patch):
3966         (gtk_widget_destroy): remove pending idles for
3967         widgets that have GTK_REDRAW_PENDING or GTK_RESIZE_PENDING and
3968         GTK_ANCHORED set (only anchored widgets can have a resize queue
3969         handler pending). widgets that have GTK_RESIZE_NEEDED will be removed
3970         from their anchored toplevels `resize_widgets' list.
3971         
3972         (gtk_widget_queue_draw): let the widget remember the queue handler
3973         tag (through `redraw_handler_key') for later call to `gtk_idle_remove'.
3974         
3975         (gtk_widget_queue_resize): let the widget remember the queue handler
3976         tag (through `resize_handler_key') for later call to `gtk_idle_remove'.
3977         corrected referencing the toplevel widget for which the handler is
3978         pending. if a widget is added to the `resize_widgets' list of a
3979         toplevel widget, GTK_RESIZE_NEEDED is set and it's referenced.
3980         
3981         (gtk_real_widget_queue_resize): on the deletion of the `resize_widgets'
3982         list, unset GTK_RESIZE_NEEDED and unreference the removed widgets.
3983         
3984         * gtk/gtkwindow.c (gtk-timj-970919.patch):
3985         (gtk_real_window_move_resize): move `resize_containers = NULL'
3986         initialization out of if-statement.
3987         while stepping through the `resize_widgets' list, unreference the
3988         widgets and clear GTK_RESIZE_NEEDED. if a widget realy needs are
3989         resize, they are flagged through GTK_RESIZE_NEEDED now (instead of
3990         GTK_RESIZE_PENDING, as this is indicative for a pending handler).
3991         added checks to provide segfaulting if a widgets parent pointer
3992         is NULL (e.g. on toplevel widgets that have GTK_RESIZE_NEEDED set).
3993
3994 Tue Sep 23 13:23:27 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3995
3996         * gdk/gdkimage.c: Applied Tim Janik's patch to mark shm segments
3997         as IPC_RMID so that they are automatically removed always.
3998
3999         * gdk/gdkfont.c: Removed casts from lvalues.
4000
4001         * gtk/gtkmain.c: Removed GTK_RETLOC_*() (which do a cast) from lvalues.
4002
4003         * gtk/gtkaccelerator.c (gtk_accelerator_table_remove): Added
4004         "const" to the accelerator_key param to be consistent with the
4005         declaration in gtkaccelerator.h.  The const is not useful in this
4006         case, anyway.
4007
4008 Tue Sep 16 13:11:06 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
4009
4010         * gtkpreview.c: Andrew Logan Kieschnick's change to eliminate
4011         round-off error when gamma is set to 1.0.
4012
4013         * gtkrange.c:
4014         * gtkviewport.c: Jay Painter's changes to modify the way in which
4015         viewports resize.
4016
4017         * gdkinput.c:
4018         * gdkinputgxi.h:
4019         * gdkinputxfree.h:
4020         * gtk/Makefile.am:
4021         * gtk.h:
4022         * gtkeventbox.c:
4023         * gtkeventbox.h: Owen Taylor's event box widget and fixes for X
4024         input support (that I had broken).
4025
4026         * gdk.h:
4027         * gdkwindow.c:
4028         * gtksignal.h:
4029         * gtksignal.c: Elliot Lee's changes to support Objective C. (id is
4030         apparently a reserved word in Objective C).
4031
4032 Sun Sep 14 22:33:15 1997  Peter Mattis  <pmattis@localhost>
4033
4034         * gtkwidget.c (gtk_widget_queue_resize): If the toplevel container
4035         is invisible we simply call "gtk_container_need_resize" on
4036         it. This fixes a bug with option menus not redrawing correctly.
4037
4038         * gtkmenuitem.c (gtk_menu_item_enter): (gtk_menu_item_leave):
4039         These functions now simply pass the event on to their parent. This
4040         is necessary for menus to work properly due to the change in how
4041         grabs are dealts with.
4042
4043         * gtkwindow.c (gtk_real_window_move_resize): Fixed a bug that
4044         caused the GTK_RESIZE_PENDING flag to not be unset in some cases.
4045
4046 Fri Sep  5 20:49:37 1997  Marius Vollmer  <mvo@zagadka.ping.de>
4047
4048         Bug fixes:
4049
4050         * Makefile.am: Added PATCHES to EXTRA_DIST.
4051         * gtk/gtkpixmap.c (gtk_pixmap_new): Move the "pixmap != NULL" test
4052         after the allocation of the pixmap.
4053
4054         To shut up the compiler:
4055
4056         * gtk/gtkfilesel.c (get_pwdb): Initialize home_dir.
4057         * gtk/gtkmain.c (gtk_init): Replace comments around calls to
4058         g_set_*_handler with "if (0)".
4059         * gtk/gtkrc.c (gtk_rc_get_token): Initialize hex_number and
4060         float_number.
4061         * gtk/gtkwindow.c (gtk_window_key_press_event): Initialize
4062         direction.
4063
4064         Changes to the type system in gtk/:
4065
4066         * Makefile.am: Added gtktypebuiltins.h to gtkinclude_HEADERS.
4067         Added gtk.defs, runelisp, gentypeinfo.el and gtktypebuiltins.c to
4068         EXTRA_DIST.  Added rules to generate gtktypebuiltins.* from
4069         gtk.defs.
4070
4071         * runelisp, gentypeinfo.el, gtk.defs: New files.
4072
4073         * gtkaccelerator.c, gtkaccelerator.h (gtk_accelerator_table_ref):
4074         Return the table so that this function can be used as the `copy'
4075         function for GTK_TYPE_BOXED values.
4076         * gtkstyle.c, gtkstyle.h (gtk_style_ref): Likewise.
4077
4078         * gtkenums.h: Removed GtkArgType enum.
4079
4080         * gtkmain.c (gtk_init): Call gtk_type_init to initialize the type
4081         system.
4082
4083         * gtkobject.c (gtk_object_init_type): New function to take over
4084         for gtk_object_get_type. (gtk_object_get_type): Just return the
4085         constant GTK_TYPE_OBJECT. (gtk_object_collect_args): Do the right
4086         thing for the new GTK_TYPE_* types.
4087         * gtksignal.c (gtk_params_get): Likewise.
4088
4089         * gtktypeutils.c: (gtk_type_init_builtin_types): New
4090         function. (gtk_type_init): Call it.  Also made non-static.
4091         (gtk_type_unique): The allocation scheme for numerical ids has
4092         changed: The low 8 bits hold the appropriate GtkFundamentalType of
4093         a type, the rest is a globally unique sequence number.
4094         (gtk_type_hash): Use the sequence number of a key to hash it.
4095         (gtk_type_register_builtin): New function.
4096
4097         * gtktypeutils.h: (GtkFundamentalType): New enumeration of the
4098         fundamental types. (GTK_TYPE_MAKE, GTK_FUNDAMENTAL_TYPE,
4099         GTK_TYPE_SEQNO): New macros to work with the new id scheme.
4100         (GtkArg): Added fields for new types and renamed old ones.  GtkArg
4101         should now be a mostly opaque structure, except name and type.
4102         (GTK_VALUE_*): New macros to access the values of a GtkArg.
4103         (GTK_RETLOC_*): New macros to access the location of a return
4104         value that is contained in a GtkArg.  * gtktypebuiltins.h: New
4105         file to access the typeids of the builtin types.
4106
4107         * gtkwidget.h (GTK_TYPE_WIDGET): New macro to access the type id
4108         of the widget class.
4109
4110         Thru out: Changed GTK_ARG_* to the appropriate GTK_TYPE_*.
4111         Changed access to GtkArg structure to the appropriate GTK_VALUE_*
4112         or GTK_RETLOC_* macro.  Changed GtkArgType to GtkType.  Changed
4113         some guints to GtkType.
4114
4115         General changes in gtk/ to support interpreters:
4116
4117         * gtkradiobutton.c (gtk_radio_button_new_from_widget,
4118         gtk_radio_button_new_with_label_from_widget): New functions.
4119
4120         * gtksignal.c (gtk_signal_connect_no_marshal): New function.
4121         (struct _GtkHandler): Added no_marshal and destroy_func fields.
4122         (gtk_signal_handler_new): Initialize them.
4123         (gtk_signal_connect_by_type): Added no_marshal and destroy_func
4124         arguments.  Changed all callers.
4125         (gtk_signal_destroy): Invoke destroy_func if there is one and the
4126         global destroy func does not apply.  (gtk_handlers_run): If the
4127         handler has no_marshal set, call its function directly without
4128         going thru the signal's marshaller.
4129
4130 Wed Sep  3 09:56:22 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
4131
4132         * gtkrange.c: Changed the way the range control focus was drawn so
4133         that the range control is drawn correctly when it does not have
4134         the focus.
4135
4136 Tue Sep  2 17:41:17 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
4137
4138         * gtkwidget.c: 'gtk_real_widget_queue_resize' should only remove
4139         the "resize_widgets" if another resize is not pending.
4140
4141 Mon Sep  1 18:28:08 1997  Peter Mattis  <pmattis@localhost>
4142
4143         * gtkmain.c: Changed the way GDK_DELETE events are handled. Only,
4144         if 'gtk_widget_event' returns TRUE is the widget destroyed. By
4145         default, 'gtk_widget_event' will return FALSE causing the window
4146         to not be destroyed. This prevents segfaults in the GIMP and other
4147         programs that do not correctly handle GDK_DELETE events.
4148
4149         * gtkmain.c: Added modal dialog support by allowing events
4150         destined for a child of the grab widget to go to the child instead
4151         of the grab widget. (Added 'gtk_widget_is_ancestor' to determine
4152         the relationship between the grab widget and the event widget).
4153
4154         * *.[ch]: Incorprated a whole mess of patches. (Started keeping
4155         the ChangeLog up to date again).
4156
4157 Thu Jun  5 17:22:21 1997  Peter Mattis  <pmattis@localhost>
4158
4159         * gtkmenufactory.c:
4160         * gtkmenufactory.h: Added 'gtk_menu_factory_remove_*'
4161         calls. Removing entries/paths causes the associated widgets to be
4162         destroyed.
4163
4164         * gtkwidget.c:
4165         * gtkwidget.h: Calling 'gtk_widget_set_style' is used as an
4166         indication that the programmer specifically wants that style to be
4167         used. RC-style substitution is disabled for the widget after such
4168         a call.
4169
4170         * gtkpixmap.c:
4171         * gtkpixmap.h:
4172         * gtkimage.c:
4173         * gtkimage.h: Changed to use clip mask and a single pixmap (or
4174         image) to deal with transparent areas.
4175
4176         * gdkpixmap.c: Modified xpm loading routines to optionally return
4177         a clip mask.
4178
4179         * gdkgc.c:
4180         * gdkdraw.c:
4181         * gdktypes.h: Modifications to allow clip masks to be used with
4182         gc's. Clip masks are bitmaps that specify drawable regions.
4183
4184 Thu May  1 03:11:51 1997  Peter Mattis  <pmattis@localhost>
4185
4186         * gtkscrolledwindow.c: Scrolled windows need to have the
4187         GTK_NO_WINDOW flag set. Not having it set caused an obscure
4188         redrawing bug.
4189
4190 Wed Apr 30 12:38:03 1997  Peter Mattis  <pmattis@localhost>
4191
4192         * gtkhruler.c:
4193         * gtkvruler.c: Fixed a small bug that caused the indicator to be
4194         positioned slightly off.
4195
4196 Sun Apr 27 14:28:21 1997  Peter Mattis  <pmattis@localhost>
4197
4198         * gtkmenushell.c:
4199         * gtkmenushell.h:
4200         * gtkmenu.c:
4201         * gtkmenu.h: Changes so that if a menu is popped up there is a
4202         timeout period during which a menu item will not be activated and
4203         if the mouse button is released in that period the menu will stay
4204         popped up.
4205
4206         * gtkcurve.c:
4207         * gtkcurve.h: Included curve widget courtesy of David
4208         Mosberger-Tang (davidm@azstarnet.com).
4209
4210         * gtkentry.c:
4211         * gtkentry.h: Changed "insert" and "delete" signals to
4212         "insert_text" and "delete_text" respectively. (The symbol "delete"
4213         cannot be used since it is a C++ reserved word).
4214
4215 Sat Apr 19 01:43:49 1997  Peter Mattis  <pmattis@localhost>
4216
4217         * gtkmenufactory.c: A path which ends in "<nothing>" will cause an
4218         invisible (hidden) menu entry to be created. This is useful for
4219         setting an accelerator key for which a corresponding menu entry is
4220         not desired.
4221
4222         * gtktooltips.c: Fixed some problems with destruction of the
4223         active tip widget not properly updating the tooltips data
4224         structures.
4225
4226 Fri Apr 18 15:09:45 1997  Peter Mattis  <pmattis@localhost>
4227
4228         * gtkcontainer.c:
4229         * gtklist.c:
4230         * gtkwidget.c:
4231         * gtkwidget.h: Patch from Owen Taylor (owt1@cornell.edu) which
4232         fixes problems with destruction of objects and with destruction of
4233         objects which hold the focus.
4234
4235 Thu Apr 17 11:29:15 1997  Peter Mattis  <pmattis@localhost>
4236
4237         * gtkmenushell.c: Incorrect logic in
4238         'gtk_menu_shell_button_release' for deciding when a menu should
4239         stay popped up when the mouse button is released.
4240
4241         * *.c: Miscellaneous fixes from folks on the net.
4242
4243 Tue Apr 15 02:43:17 1997  Peter Mattis  <pmattis@localhost>
4244
4245         * *.c:
4246         * gtkwidget.h: Added GTK_BASIC widget flag which when set
4247         specifies a widget as "basic". A "basic" widget is one which
4248         doesn't take input events. For example, labels, pixmaps, boxes,
4249         tables, alignments, etc.
4250
4251 Sat Apr 12 15:23:08 1997  Peter Mattis  <pmattis@localhost>
4252
4253         * gtkcolorsel.c: Add "#include <math.h>" to define M_PI.
4254
4255         * gtksignal.c: Fixed a bug in 'gtk_signal_emit' which showed up
4256         because of the new cast checking macros. The 'object' was being
4257         accessed after it had been destroyed.
4258
4259         * gtkoptionmenu.c: Fixed bug with using 'GTK_BIN' instead of
4260         'GTK_BUTTON' which showed up because of the new cast checking
4261         macros.
4262
4263         * *.h: 'GTK_CHECK_CAST', 'GTK_CHECK_CLASS_CAST' and
4264         'GTK_CHECK_TYPE' used by standard widget macros everywhere.
4265
4266 Wed Apr  9 00:54:17 1997  Peter Mattis  <pmattis@localhost>
4267
4268         * docs/gtk.texi: Started further work on documentation. Major
4269         changes and additions are being made.
4270
4271         * gtkarrow.c:
4272         * gtkarrow.h: Removed function 'gtk_arrow_get'.
4273
4274         * gtkcontainer.c: 'gtk_container_check_resize' no performs
4275         additional checking to account for the case where the containers
4276         allocation is no longer sufficient because its parent (or its
4277         parents parent, etc.) needs to resize its children.
4278
4279 Tue Apr  8 21:15:50 1997  Peter Mattis  <pmattis@localhost>
4280
4281         * gtkstyle.c: Fixed a bug in 'gtk_style_init' in which the font
4282         was not ref'd (via 'gdk_font_ref'), but was free'd (via in
4283         'gdk_font_free') in 'gtk_style_destroy'. (David
4284         Mosberger-Tang). Also cleaned up 'gtk_style_destroy' while I was
4285         at it.
4286
4287         * gtkmain.c: Fixed a bug in 'gtk_propogate_event' which caused
4288         entry widgets (and probably other widgets) not to be destroyed in
4289         some instances.
4290
4291 Mon Apr  7 01:20:38 1997  Peter Mattis  <pmattis@localhost>
4292
4293         * gtkentry.c:
4294         * gtkentry.h: Changed the "insert_text", "delete_text" and
4295         "changed_text" signals to "insert", "delete", and "changed"
4296         respectively. They really should have been named this way
4297         originally except the previous signal mechanism prevented
4298         duplicate signal names. ("changed" is also used by adjustments).
4299
4300         * gtkradiomenuitem.c:
4301         * gtkradiomenuitem.h: New widget.
4302
4303         * gtkcheckmenuitem.c:
4304         * gtkcheckmenuitem.h: New widget.
4305
4306         * gtksignal.c: Modified 'gtk_signal_lookup' to require an object
4307         type to be passed as a parameter. In addition, signals are now
4308         only needed to be uniquely defined in their branch of the class
4309         hierarchy. This allows the same signal name to be used in two
4310         different branches of the class hierarchy. For instance, the
4311         "changed" signal is used both by adjustments and entries...in
4312         different ways!
4313
4314         * gtktypeutils.c: Added 'gtk_type_parent' which returns the parent
4315         type for a given type.
4316
4317 Sun Apr  6 22:08:35 1997  Peter Mattis  <pmattis@localhost>
4318
4319         * gtkwidget.c: If a widget is set insensitive it loses the focus
4320         if it had it.
4321
4322         * gtkcontainer.c: Insensitive widgets no longer participate in tab
4323         traversal.
4324
4325         * gtkscrolledwindow.c: The "viewport" child is now destroyed and a
4326         container class "foreach" function was written (which fixes the
4327         sensitivity bug).
4328
4329 Sat Apr  5 14:25:38 1997  Peter Mattis  <pmattis@localhost>
4330
4331         * gtkhscrollbar.c:
4332         * gtkvscrollbar.c: Fixed trough size allocation bug.
4333
4334         * gtkhscale.c:
4335         * gtkvscale.c: Fixed trough size allocation and position bug that
4336         showed up when scales were placed in notebooks.
4337
4338 Thu Mar 27 17:45:54 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4339
4340         * gtk/gtkmain.c (gtk_handle_idle): Fix appending pending_idles to
4341         idle_functions so it works even when idle_functions is empty.
4342
4343 Sat Mar 15 14:15:59 1997  Peter Mattis  <pmattis@localhost>
4344
4345         * *.[ch]: Moved '*_class_init' and '*_init' function declarations
4346         for widgets into the source file as those functions no longer had
4347         to be public.
4348
4349         * gtkcheckbutton.c: Fixed redrawing of check button.
4350
4351         * gtkframe.c: Fixed redrawing of frame when the shadow type is
4352         changed.
4353
4354 Sat Mar  8 15:19:23 1997  Peter Mattis  <pmattis@localhost>
4355
4356         * gdkimage.c: Fixed a stupid bug with 'gdk_image_new' which
4357         potentially added a NULL image to "image_list" and caused problems
4358         when 'gdk_image_exit' was called.
4359
4360 Wed Mar  5 00:40:08 1997  Peter Mattis  <pmattis@localhost>
4361
4362         * gtkpreview.c: Massively changed the colormap handling used by
4363         the preview widget. Gray previews are now dithered. A single
4364         visual and colormap is shared by the color and gray previews. A
4365         GTK_PREVIEW_INFO property is installed on the root window in
4366         certain cases to allow multiple GTK programs to share the system
4367         colormap.
4368
4369 Sun Mar  2 05:43:06 1997  Peter Mattis  <pmattis@localhost>
4370
4371         * gtkcheckbutton.c: 'gtk_checkbutton_size_allocate' was allocating
4372         too much space to its children and not leaving the check button
4373         room for the focus border.
4374
4375         * gtknotebook.c: 'gtk_notebook_size_request' wasn't requesting
4376         enough space when the notebook tabs are visible.
4377
4378 Sat Mar  1 01:59:35 1997  Peter Mattis  <pmattis@localhost>
4379
4380         * gtkpreview.c: Fixed a problem with 'gtk_preview_put' when the
4381         image byte order is GDK_MSB_FIRST.
4382
4383         * gtksignal.c:
4384         * gtksignal.h: Added 'gtk_signal_connect_after' and
4385         'gtk_signal_connect_object_after' functions. These connect signal
4386         handlers which will run after the class function associated with
4387         the signal.
4388
4389         * gtkstyle.c: Fixed a stupid bug in 'gtk_style_new_from_key' that
4390         was causing twice as many styles to be created as necesary.
4391
4392         * gtkwidget.c: 'gtk_real_widget_size_allocate' erases the widgets
4393         old allocation if it has the GTK_NO_WINDOW flag set.
4394
4395         * gtkwidget.c: 'gtk_real_widget_unmap' now erases the widget if it
4396         has the GTK_NO_WINDOW flag set.
4397
4398         * gtklabel.c: Removed 'gtk_label_unmap' as similar functionality
4399         was added to gtk_real_widget_unmap.
4400
4401         * gtkbin.c: Modified 'gtk_bin_map' and 'gtk_bin_unmap' so that it
4402         erases and draws the widget if it has the GTK_NO_WINDOW flag set.
4403
4404         * gtkframe.c: Modified 'gtk_frame_size_allocate' so that it erases
4405         the old allocation.
4406
4407 Fri Feb 28 03:27:05 1997  Peter Mattis  <pmattis@localhost>
4408
4409         * gtkwindow.c: 'gtk_window_set_title' now changes the window title
4410         if the window is already realized.
4411
4412         * gtkentry.c: 'gtk_entry_set_text' was emitting both a
4413         "delete_text" and a "changed_text" signal. Modified so that it
4414         only emits a "changed_text" signal.
4415
4416         * gtkpreview.c: Modified to work correctly on systems with MSB
4417         byte order. The colormap for TRUE and DIRECT color displays is now
4418         created if the default visual is not equal to the visual we are
4419         using.
4420
4421         * gtkstyle.c: 'gtk_style_attach' and 'gtk_style_find' weren't
4422         working properly in the presence of multiple colormaps are
4423         different depth visuals.
4424
4425         * gtkcontainer.c: Massively improved focus traversal using tab and
4426         arrow keys. It now uses the layout of the widgets to determine
4427         where to move the focus to.
4428
4429 Mon Feb 24 03:24:02 1997  Peter Mattis  <pmattis@localhost>
4430
4431         * gtkmenufactory.c: Set the accelerator table field for menus when
4432         they are created.
4433
4434         * gtkmenu.c:
4435         * gtkmenu.h: Added a default accelerator table field to menus so
4436         that runtime modification of accelerator keys in menus can work
4437         better.
4438
4439         * gtkrange.c: 'gtk_range_default_{h,v}motion' had faulty logic for
4440         deciding what to do when the slider was at the edge of the
4441         trough. They previously didn't update the adjustment value event
4442         if the value wasn't what it should be when the slider was at the
4443         edge of the trough.
4444
4445         * gtkviewport.c: 'gtk_viewport_size_allocate' and
4446         'gtk_viewport_adjustment_value_changed' both had the potential for
4447         performing a divide by 0. Checks are now in place to prevent this.
4448
4449         * gtkmenu.c: 'gtk_menu_map' now makes sure the menu lies on screen
4450         if the position function is NULL.
4451
4452         * gtkentry.c: Modified selection handling. 'gtk_delete_selection'
4453         actually removes the X selection now. 'gtk_entry_destroy' removes
4454         the selection as well and relies on the change in "gdk.c" to make
4455         sure the selection event will not be sent to a non-existant
4456         window.
4457
4458         * gdk.c: Selection events are only passed on if the selection
4459         owner is not NULL.
4460
4461         * gtkstyle.c: 'gtk_style_detach' and 'gtk_style_destroy' were not
4462         destroying the black and white gc's.
4463
4464 Sun Feb 23 19:17:56 1997  Peter Mattis  <pmattis@localhost>
4465
4466         * gtkwindow.c: 'gtk_window_size_request' was setting the window
4467         hints. This was also being done in 'gtk_window_map', so the
4468         instance being done in 'gtk_window_size_request' was removed.
4469
4470 Fri Feb 21 01:04:01 1997  Peter Mattis  <pmattis@localhost>
4471
4472         * gtkwidget.c: 'gtk_widget_draw' has to use the widgets allocated
4473         position for the drawing rectangle when the widget has the
4474         GTK_NO_WINDOW flag set.
4475
4476         * gtkwidget.c: In 'gtk_widget_init' the visual and colormap were
4477         being directly compared against 'default_visual' and
4478         'default_colormap' instead of calling
4479         'gtk_widget_get_default_{visual,colormap}'.
4480
4481         * gdkrectangle.c: Amazing! There was a bug in the
4482         'gtk_rectangle_intersect' logic. Its been there for near eternity
4483         and I never noticed.
4484
4485         * gtkpreview.c:
4486         * gtkpreview.h: Created preview widget which allows drawing to an
4487         rgb or grayscale buffer which is automatically displayed on the
4488         screen. Performs dithering as necessary.
4489
4490 Thu Feb 20 20:33:21 1997  Peter Mattis  <pmattis@localhost>
4491
4492         * gdkwindow.c: Modified the logic in 'gdk_window_new' which
4493         determined when to add a window to the WM_COLORMAP_WINDOWS
4494         property.
4495
4496 Wed Feb 19 19:55:29 1997  Peter Mattis  <pmattis@localhost>
4497
4498         * gtkruler.c: 'gtk_ruler_make_pixmap' was always destroying the
4499         old backing store and creating a new one even when it would create
4500         a new one of exactly the same size as the old one.
4501
4502 Tue Feb 18 18:32:10 1997  Peter Mattis  <pmattis@localhost>
4503
4504         * gmem.c: 'g_mem_chunk_alloc' was incorrectly modifying the mem
4505         areas free mem field when reallocating a previously freed
4506         atom. This caused a fairly severe memory leak.
4507
4508         * gtkmenushell.c: 'gtk_menu_shell_button_release' had a bug in the
4509         logic for deciding whether to initiate an X pointer grab or not
4510         when the mouse button was released. It now only initiates a grab
4511         if the mouse is released within an active menu item.
4512
4513 Fri Feb 14 00:57:40 1997  Peter Mattis  <pmattis@localhost>
4514
4515         * gtknotebook.c: Changed the look of notebook tabs slightly.
4516
4517         * gtkentry.c:
4518         * gtkentry.h: Deleting an entry widget which is holding the X
4519         selection presents some difficulties. The X selection must be
4520         released, but the widget can't be destroyed until the
4521         SELECTION_CLEAR event is received that the X server will send in
4522         response to clearing the X selection. There are probably still
4523         bugs in the current method of entry widget deletion when the X
4524         selection is held.
4525
4526         * gtkmain.c: 'gtk_propagate_event' was not properly destroying the
4527         toplevel window when receiving a key press event.
4528
4529         * gtkwidget.c: Setting a widget insensitive did not cause it to
4530         redraw. It now does.
4531
4532 Thu Feb 13 16:59:07 1997  Peter Mattis  <pmattis@localhost>
4533
4534         * gtkviewport.c: 'gtk_viewport_size_allocate' was allocating its
4535         child widget an adjusted allocation. Since the actual scrolling
4536         has handled by a subwindow this caused the child to be double
4537         scrolled. Modified to always set the child allocations origin to
4538         (0, 0).
4539
4540 Wed Feb 12 01:06:48 1997  Peter Mattis  <pmattis@localhost>
4541
4542         * gtkentry.c: Text is now centered vertically. Previously it was
4543         pushed up against the top. This problem was only evident when the
4544         widget was allocated more vertical space than it requested.
4545
4546         * gtkfilesel.c: 'gtk_file_selection_key_press' was previously only
4547         a stub for tab completion. The actual tab completion call had been
4548         left out. (Oops!)
4549
4550 Tue Feb 11 01:43:08 1997  Peter Mattis  <pmattis@localhost>
4551
4552         * gtksignal.c: 'gtk_signal_disconnect_by_data' was going into a
4553         loop and crashing. Bad logic. Fixed.
4554
4555         * gtkmain.c: An idle function which returns FALSE will be removed
4556         from the list of idle functions. This makes the functioning of
4557         idle functions and timeouts more similar.
4558
4559         * gtkentry.c: 'gtk_entry_get_text' now returns an empty string
4560         when the actual text is NULL. This allows "stupid" programs to use
4561         the value returned by 'gtk_entry_get_text' blindly (without
4562         checking to see if its NULL).
4563
4564         * gtkradiobutton.c: Modified 'gtk_radio_button_clicked' so that
4565         'gtk_toggle_button_toggled' is called _after_ the widget state is
4566         changed.
4567
4568         * gtksignal.c:
4569         * gtksignal.h: Added 'gtk_signal_name' which returns the character
4570         string name for a given signal number.
4571
4572         * gtkwidget.c: 'gtk_widget_set_parent' checks to see if the widget
4573         is now "anchored" through the parent chain to a widget which is
4574         GTK_ANCHORED. If it is, then it changes the widgets style using
4575         'gtk_rc_get_style' and recursively performs the same operation on
4576         the widgets children. This is necessary is 'gtk_rc_get_style' only
4577         works properly on "anchored" widgets.
4578
4579         * gtkwindow.c: Modified GTK_WIN_POS logic so that it is only used
4580         immediately after the window has been shown.
4581
4582         * gtkmenu.c: 'gtk_menu_key_press'. Can now change menu item
4583         accelerator keys on the fly. Why? Why not. Cool/useless feature of
4584         the day.
4585
4586         * gtkmenuitem.c: Accelerator key drawing. Somehow that never got
4587         finished. (Oops!)
4588
4589         * gtkdrawingarea.c: 'gtk_drawing_area_size_allocate' was not
4590         actually installed during 'gtk_drawing_area_class_init'. (Oops!)
4591
4592         * gtkframe.c: 'gtk_frame_size_request' fixed size requisition
4593         problem caused by unsigned arithmetic.
4594
4595         * gtkwindow.c: Modified window widget so that it only uses the
4596         widget uposition auxiliary information immediately after it has
4597         been shown. This prevents the annoying bug which can cause a
4598         uposition'ed window to jump back to its original position after
4599         the user moves it.
4600
4601         * gtkwidget.c: Need to ref and unref style in
4602         'gtk_widget_{push,pop}_style' to make sure that a style on the
4603         style stack is not destroyed.
4604
4605         * gtktogglebutton.c: 'gtk_toggle_button_set_state' now calls
4606         gtk_button_clicked to actually change the state of the
4607         button. In this way, radio buttons can now perform the appropriate
4608         actions when the toggle button state is set.
4609
4610 Mon Feb 10 00:27:39 1997  Peter Mattis  <pmattis@localhost>
4611
4612         * gtklist.c: 'gtk_list_select_item' and 'gtk_list_unselect_item'
4613         were casting a GList* variable to a a GtkWidget* variable. Bad bad
4614         bad. (Tim Janik).
4615
4616         * gtksignal.c: Modified 'gtk_signal_connect' and
4617         'gtk_signal_connect_object' to warn when a signal type cannot be
4618         found.
4619
4620 Sun Feb  9 00:15:30 1997  Peter Mattis  <pmattis@localhost>
4621
4622         * gtkoptionmenu.c:
4623         * gtkoptionmenu.h: Changed option menus back to being derived from
4624         buttons. This fixes up some screwiness with their user
4625         interaction.
4626
4627         * gtkwindow.c: Modified key press handler to support focus
4628         traversal.
4629
4630         * gtkcontainer.c:
4631         * gtkcontainer.h: Added default focus traversal back in.
4632
4633 Sat Feb  8 10:44:38 1997  Peter Mattis  <pmattis@localhost>
4634
4635         * gtkviewport.h:
4636         * gtkviewport.c: Massively sped up viewport scrolling. Used to be
4637         reallocating child's size (offset) each time a scrollbar
4638         moved. Now a subwindow is moved. All the children are moved
4639         automatically by moving the subwindow. Much much much faster.
4640
4641 Tue Feb  4 00:20:44 1997  Peter Mattis  <pmattis@localhost>
4642
4643         * gtree.c: Changed 'g_tree_node_search' to use a loop instead of
4644         recursion.
4645
4646 Mon Feb  3 11:30:03 1997  Peter Mattis  <pmattis@localhost>
4647
4648         * gtkbutton.c: Removed 'parent_destroy' global and replaced it
4649         with 'parent_class' global to reflect style used in other
4650         widgets.
4651
4652         * gtknotebook.c: Tab labels were being allocated less than their
4653         requested size.
4654
4655         * gtkrange.c:
4656         * gtkrange.h: Moved the "digits" field of scales into the range
4657         type. The adjustment value for scales is truncated to the number
4658         of visible digits instead of being left untouched.
4659
4660         * gtree.c: Fixed a bug in the AVL tree implementation. Single
4661         rotations were always being performed during insertion. It is
4662         sometimes necessary to perform a double rotation.
4663
4664         * gtklabel.c: Modified 'gtk_label_expose' to only draw the label
4665         when the allocated space is greater than or equal to the requested
4666         space.
4667
4668         * gtklabel.c: Added call to 'gtk_widget_unmap' to
4669         'gtk_label_destroy' in order for the label to redraw correctly
4670         (erase itself) when destroyed.
4671
4672         * gtklabel.c: Added 'gtk_label_unmap' call which erases the labels
4673         allocation when it gets unmapped.
4674
4675         * *.h: Removed a few remaining instances of using "class" as a
4676         parameter name. (Causes problems for C++).
4677
4678 Fri Jan 31 12:26:50 1997  Peter Mattis  <pmattis@localhost>
4679
4680         * gtkcontainer.c: 'gtk_container_enable_resize' needs to call
4681         'gtk_container_check_resize' instead of
4682         'gtk_container_need_resize'.
4683
4684         * gtkwidget.c: 'gtk_real_widget_show' now maps the widget if its
4685         parent is mapped.
4686
4687         * gtkscrolledwindow.c: Fixed size allocation when the scrollbar
4688         policy's are GTK_POLICY_AUTOMATIC. Doing it correctly is harder
4689         than I originally thought.
4690
4691         * gtklist.c: Added 'gtk_list_child_position' to determine the
4692         integer position in a list of a child. Filled in the
4693         'gtk_list_item_select' and 'gtk_list_item_unselect' stubs.
4694
4695 Thu Jan 30 16:08:06 1997  Peter Mattis  <pmattis@localhost>
4696
4697         * gmem.c: Changed the implementation of G_ALLOC_AND_FREE mem
4698         chunks. They used to allocate SIZEOF_VOID_P extra bytes per atom
4699         in order to keep track of which mem area they were allocated
4700         from. Now the mem area is determined by searching through an AVL
4701         tree of the mem areas for a mem chunk and comparing memory
4702         locations. A little slower, but makes G_ALLOC_AND_FREE mem chunks
4703         much more attractive.
4704
4705         * gtree.c: Added an AVL tree implementation to glib.
4706
4707         * gtksignal.c:
4708         * gstring.c: va_arg (arg_list, {char, short}) is
4709         invalid. Arguments passed in a variable argument list are
4710         promoted. ({char, short}->int). Seemed to work ok before under
4711         Linux. Crashed under FreeBSD.
4712
4713 Tue Jan 28 02:27:51 1997  Peter Mattis  <pmattis@localhost>
4714
4715         * gdkwindow.c: Fixed a major slowdown apparent in the file
4716         selection dialog which was caused by calling
4717         'gtk_window_add_colormap_windows' way way way too often.
4718
4719         * *.c: Many widgets called 'gtk_container_need_resize' when
4720         something internal changed which would cause the widget to grow or
4721         shrink. The assumption was made that the widget would change size
4722         and an expose event would be generated. This happens "most" of the
4723         time. But its possible for certain widgets to change size without
4724         generating expose events, or for its internal geometry to change
4725         without a change of size which would mean no expose event was
4726         generated. So a wrapper function called
4727         'gtk_container_check_resize' was created and
4728         'gtk_container_need_resize' was modified so that it returns FALSE
4729         if a resize was actually generated and TRUE if nothing
4730         changed. This allows 'gtk_container_check_resize' to initiate a
4731         'gtk_widget_size_allocate' and 'gtk_widget_draw' to emulate the
4732         expose event.
4733
4734 Sat Jan 25 14:17:44 1997  Peter Mattis  <pmattis@localhost>
4735
4736         * gtkmain.c: Fixed a bug with propogating key press events. The
4737         events were sent 2 times to the toplevel windows which caused the
4738         focus widget to be activated twice when the space bar was pressed.
4739
4740         * */configure.in:
4741         * */Makefile.am: Added support for libtool and removed the old
4742         shared library configuration craziness.
4743
4744 Fri Jan 24 12:59:22 1997  Peter Mattis  <pmattis@localhost>
4745
4746         * gtktext.c:
4747         * gtktext.h: Josh's fixes and additions to the text widget.
4748
4749         * gtkfill.c:
4750         * gtkfill.h: Filler widget useful for filling space in a
4751         table. Can specify a minimum size. Used by the canvas widget.
4752
4753         * gtknotebook.c:
4754         * gtknotebook.h: Made outline of notebook widget.
4755
4756         * gtkcanvas.c:
4757         * gtkcanvas.h: Started canvas widget. A composite of 2 rulers (w/
4758         an origin), 2 scrolllbars. Guides, grids, snap to.
4759
4760 Sun Jan 19 18:26:45 1997  Peter Mattis  <pmattis@localhost>
4761
4762         * gtkdialog.c:
4763         * gtkdialog.h: Created dialog widget which creates a standard
4764         looking dialog with buttons along the button and a separator.
4765
4766         * gtkxid.c: Generalized the window table code for looking up a gdk
4767         window based on an XID to work for any XID and a piece of
4768         data. Can now look up gdk fonts based on their XID.
4769
4770         * gtkruler.c:
4771         * gtkruler.h:
4772         * gtkhruler.c:
4773         * gtkhruler.h:
4774         * gtkvruler.c:
4775         * gtkvruler.h: Started conversion of the ruler widget.
4776
4777         * gtktext.c:
4778         * gtktext.h: Started conversion of the text widget. Scrolling
4779         doesn't work.
4780
4781         * gtkmain.c: Fixed a fairly major bug. The event widget needs to
4782         be in a call for the entire duration of handling an event. Not
4783         just for when the event widget itself is handling the event.
4784
4785         * gtkfilesel.c: Fixed up some bugs with resizing.
4786
4787 Fri Jan 10 14:18:03 1997  Peter Mattis  <pmattis@localhost>
4788
4789         * gtkwidget.c:
4790         * gtkwidget.h:
4791         * gtkentry.c:
4792         * gtkentry.h: Support for selections.
4793
4794         * gdkselection.c:
4795         * gdk.c:
4796         * gdktypes.h:
4797         * gdk.h: Gdk support for X selections. Currently only text
4798         selections are supported.
4799
4800         * gtksignal.c: Fixed a major bug which occurred when destroying an
4801         object. Memory was being written to after it was freed.
4802
4803         * gtkfilesel.c:
4804         * gtkfilesel.h: Hooked up more functionality to the file selection
4805         dialog.
4806
4807 Wed Jan  8 18:13:53 1997  Peter Mattis  <pmattis@localhost>
4808
4809         * gtkfilesel.c:
4810         * gtkfilesel.h: Mostly converted old file selection dialog
4811         widget. The widget is derived from the GtkWindow class and is
4812         quite a bit simpler in the widget code.
4813
4814         * gtkwidget.c: Fixed 'gtk_widget_grab_focus' and
4815         'gtk_widget_grab_default' to check that the toplevel widget is a
4816         type of window (which includes classes derived from windows).
4817
4818 Tue Jan  7 01:12:32 1997  Peter Mattis  <pmattis@localhost>
4819
4820         * gtkwindow.c: Was calling 'gtk_window_resize' twice in a
4821         row...why?
4822
4823         * gtksignal.c:
4824         * gtksignal.h:
4825         * *.c: Changed 'gtk_signal_new' so that the class function that is
4826         called when the signal is emitted can be called either before,
4827         after or both before and after the calling of any signal
4828         handlers.
4829
4830         * gtkobject.c:
4831         * gtkobject.h: Added 'object_data' mechanism for storing data
4832         associated with a character string key in objects. Removed
4833         'user_data' field of objects and changed
4834         'gtk_object_{get,set}_user_data' to use the object data
4835         mechanism. Removed 'handlers' field of objects.
4836
4837         * gtkwidget.c:
4838         * gtkwidget.h:
4839         * gtkwindow.c: Modified aux info mechanism to use object data
4840         mechanism.
4841
4842         * gtksignal.c: Modified signal mechanism to use object data
4843         mechanism instead of 'handlers' field.
4844
4845
4846 Mon Jan  6 15:10:16 1997  Peter Mattis  <pmattis@localhost>
4847
4848         * gtkmenushell.c: Fixed up button press handling so as to conform
4849         more closely to that used by Motif.
4850
4851 Wed Jan  1 21:27:17 1997  Peter Mattis  <pmattis@localhost>
4852
4853         * gtkmenu.c:
4854         * gtkmenu.h:
4855         * gtkmenubar.c:
4856         * gtkmenubar.h:
4857         * gtkmenushell.c:
4858         * gtkmenushell.h: Reorganization of menu-ing code so that code
4859         duplication is reduced. The menu shell now contains most of the
4860         code for menu-ing interaction while menus and menubars simply layout
4861         their child menu items in the appropriate place.
4862
4863 Sun Dec 29 17:48:18 1996  Peter Mattis  <pmattis@localhost>
4864
4865         * gtkmenu.c:
4866         * gtkmenubar.c:
4867         * gtkmenuitem.h:
4868         * gtkmenuitem.c: Modifications so that menu item accelerators and
4869         the submenu indicator are drawn correctly and the correct amount
4870         of space is allocated.
4871
4872 Sat Dec 28 00:32:13 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4873
4874         * gtkmenufactory.h:
4875         * gtkmenufactory.c: Started menu factories as an easy method to
4876         create and manipulate menus.
4877
4878 Fri Dec 27 13:17:34 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4879
4880         * gtkmenu.c:
4881         * gtkmenu.h:
4882         * gtkmenubar.c:
4883         * gtkmenubar.h:
4884         * gtkmenuitem.c:
4885         * gtkmenuitem.h:
4886         * gtkmenushell.c:
4887         * gtkmenushell.h: Implemented basic menu functionality. Menubars
4888         and popup menus work. Submenus work. (Much left to be done).
4889
4890 Wed Dec 18 15:27:05 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4891
4892         * gtktypeutils.h:
4893         * gtktypeutils.c: Added 'gtk_type_from_name' which returns a type
4894         identifier given a type name. Implemented using a second hash
4895         table keyed by type names.
4896
4897         * gtkbutton.c:
4898         * gtktogglebutton.c: Fixed very small messed-up drawing bug when a
4899         button loses its focus.
4900
4901         * gtkwidget.h:
4902         * gtkwidget.c:
4903         * gtkbutton.c:
4904         * gtkwindow.c: Added default button handling. Default buttons now
4905         draw correctly and pressing return or enter causes the default
4906         button (if one exists) to be activated.
4907
4908 Tue Dec 17 19:32:21 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4909
4910         * gtkhscale.c:
4911         * gtkvscale.c: Overrode 'draw_slider' method of ranges in order to
4912         draw the slider of scales with a line in them so as to be closer
4913         to the Motif look-and-feel.
4914
4915         * gtkwindow.c: Modified 'gtk_window_focus_in_event' so that focus
4916         in events are only handled when the window is visible. Fixes a bug
4917         where spurious focus in events get sent when a window is being
4918         hidden.
4919
4920         * gtkwidget.h: Added 'activate_signal' field to the GtkWidgetClass
4921         structure. Added 'gtk_widget_activate' call to emit the activate
4922         signal for a widget if it is non-zero.
4923
4924 Tue Dec 10 15:59:45 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4925
4926         * gtkwidget.c: 'gtk_widget_set_name' oops in strdup'ing the old
4927         "widget->name" instead of the new one we are setting.
4928
4929         * gtkrc.c: 'gtk_rc_widget_path' changed to use
4930         'gtk_widget_get_name' instead of accessing the "widget->name"
4931         field directly.
4932
4933         * gtkwidget.c: Added 'gtk_widget_get_name' function which returns
4934         the widgets name if it exists and the widgets type name if it does
4935         not.
4936
4937         * gtkcheckbutton.c: Added 'gtk_check_button_draw'
4938         function. Modified 'gtk_check_button_expose' to pass an expose
4939         event to child instead of callings its draw function.
4940
4941         * gtkentry.c: 'gtk_entry_draw_text' why was "+1" being added to
4942         the font->ascent to calculate the font position? This was wrong
4943         and caused some characters in fonts to be clipped. (Notably "g").
4944
4945         * gtkentry.c: 'gtk_entry_realize' specify GTK_BUTTON1_MOTION_MASK
4946         and GTK_POINTER_MOTION_HINT_MASK for _both_ windows.
4947
4948         * gtkmain.c: 'gtk_propagate_event' needs to set the GTK_IN_CALL
4949         flag for the object before calling 'gtk_widget_event' and needs to
4950         destroy the object if necessary after 'gtk_widget_event' returns.
4951
4952         * gtkradiobutton.c: 'gtk_radio_button_clicked' needs to call
4953         'gtk_toggle_button_toggled' when the currently active button is
4954         toggled.
4955
4956         * gtkwidget.c: 'gtk_real_widget_hide' needs to call
4957         'gtk_widget_unmap' if the widget is currently mapped.
4958
4959         * gtkwindow.c: Prevent automatic resizing after the user has
4960         specified a new window size. Add 'handling_resize' flag to
4961         windows.
4962
4963         * gtkscrolledwindow.c: Implement the GTK_POLICY_AUTOMATIC
4964         scrollbar policy. Need to connect to the adjustments 'changed'
4965         signal and notice when the scrollbars aren't in use.
4966
4967         * gtkcontainer.c: 'gtk_container_init' must set 'auto_resize' and
4968         'need_resize' fields to TRUE and FALSE respectively.
4969
4970         * gtkwidget.c: 'gtk_widget_set_parent' must all set a widgets state
4971         to its parents state.
4972
4973 Sun Dec  1 01:31:01 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4974
4975         * Started ChangeLog