]> Pileus Git - ~andy/gtk/blob - ChangeLog.pre-2-2
new function to perform the same actions as gtk_list_remove_items, but
[~andy/gtk] / ChangeLog.pre-2-2
1 Thu Feb  5 02:13:08 1998  Tim Janik  <timj@gimp.org>
2
3         * gtk/gtklist.h:
4         * gtk/gtklist.c (gtk_list_remove_items_no_unref): new function
5           to perform the same actions as gtk_list_remove_items, but
6           supply the removed widgets with an additional reference count.
7
8         * gtk/gtkmain.c (gtk_main_iteration_do): ignore events
9           with event_widget == NULL, since they are bogus events
10           from destroyed GdkWindows, exept for the case where
11           event->type==GDK_PROPERTY_NOTIFY. Always handle expired
12           timeout functions when returning from this function.
13
14         * gtk/gtkwidget.c (gtk_widget_event): ignore GDK_EXPOSE events
15           if event->window == NULL. Also, if this function couldn't handle
16           the event for any reason (including failing assumptions), make
17           the return value to look as if the event had been handled to
18           avoid further processing (and warnings).
19           
20         * gtk/gtkwidget.h:
21         * gtk/gtkwidget.c: remove gtk_widget_sink, because there is
22           no point in providing such a function.
23
24         * gdk/gdk.c (gdk_init): changed options `-name' and `-class'
25           to `--name' and `--class', because the old names would
26           confuse getopt(). these arguments have been introduced in the
27           changes from gtk+970916 to gtk+970925 without a ChangeLog entry,
28           changing argument names is painful, it would be nice if people
29           would care about compatibility and consistency in the first place!
30
31 Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>
32         
33         * docs/widget_system.txt: new file containing notes about
34           the inner workings of the widget system of GTK+, a widget
35           flag description and certain invariants about widget states.
36         
37         * docs/refcounting.txt: moved file (previously REFCOUNTING)
38           introducing The Reference Counting Scheme of GDK an GTK+.
39           lots of additions/corrections.
40
41         * gtk/gtksignal.c (gtk_signal_real_emit): for the emission
42           of AFTER signals, fetch the objects signals via
43           gtk_signal_get_handlers again. some handlers might have
44           been removed or added. not doing this would mess up the
45           memchunk allocation of signal handlers (this had been
46           triggered by multiple *_while_alive connections), bad, bad, bad!
47           (gtk_handlers_run): do the referencing on signal handlers
48           unconditionally, the invokation of AFTER handlers will now take
49           care of modified lists.
50
51         * gtk/gtksignal.h: added gtk_signal_connect_while_alive.
52
53 Tue Feb  3 15:34:27 1998  Owen Taylor  <owt1@cornell.edu>
54
55         * gdk/gdkcolor.c (gdk_colormap_get_system): Only query
56           the colormap for GRAYSCALE and PSEUDOCOLOR visuals,
57           and don't ask for more than 256 colors in any case.
58
59         * gdk/gdkwindow.c (gdk_window_internal_destroy): Remove
60           the input window information when we destroy the window,
61           not when we are notified of it.
62
63         * gdk/gdkinputcommon.h (gdk_input_device_new): Work around
64           bug in XFree86 3.3.1's handling of Wacom macro buttons.
65           by assumming no device will report exactly 25 buttons.
66
67         * gdk/gdkinputcommon.h (gdk_input_common_other_event): Fill
68           in string translation for generated key press events,
69           do sanity checking on received key codes.
70
71         * gdk/gdkcc.c (gdk_color_context_new): Allocate enough
72           room for a GdkColorContextPrivate, not just for a 
73           GdkColorContext.
74
75 Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>
76
77         * gtk/testgtk.c: don't add the same menu to different menuitems/
78           optionmenus.
79
80         * gtk/gtkmenuitem.h:
81         * gtk/gtkmenuitem.c: new function gtk_menu_item_remove_submenu ro
82           be consistent with optionmenu. use gtk_menu_attach_to_widget/
83           gtk_menu_detach for setting/removing the submenu.
84           invoke gtk_widget_destroy(submenu) in destructor to be consistent
85           with other destructors.
86
87         * gtk/gtkoptionmenu.h: 
88         * gtk/gtkoptionmenu.c: attach/detach to menu widget via
89           gtk_menu_attach_to_widget/gtk_menu_detach.
90           invoke gtk_widget_destroy(menu) in destructor to be consistent
91           with other destructors.
92
93         * gtk/gtkmenu.h: 
94         * gtk/gtkmenu.c: new functions gtk_menu_attach_to_widget
95           and gtk_menu_detach that correspond to the action of
96           gtk_widget_set_parent and gtk_widget_unparent.
97
98         * gtk/widget.c: few fixups.
99
100 Tue Feb  3 00:12:00 1998  Owen Taylor  <owt1@cornell.edu>
101         * gtk/gtktable.c 
102           Fixed problem with division by zero in row/column-spanned
103           tables. Also removed a bunch of conditionals by making
104           the observation that x/1 == x.
105
106 Mon Feb  2 04:15:08 1998  Tim Janik  <timj@gimp.org>
107
108         * gtk/gtkwindow.c:
109         * gtk/gtkwidget.c:
110         * gtk/gtkmain.c:
111         * gtk/gtkwidget.c:
112         * gtk/gtkcontainer.c:
113         * gtk/gtkprivate.h (GTK_PRIVATE_UNSET_FLAG) (GTK_PRIVATE_UNSET_FLAGS): 
114           changed name to reflect that these macros in fact can't operate on
115           multiple flags.
116
117         * gtk/gtktoolbar.c: fixed destroy handler, so it doesn't
118           segfault with the new refcounting scheme anymore.
119
120         * gtk/gtkhandlebox.c:
121         * gtk/gtkclist.c:
122         * gtk/gtkentry.c:
123         * gtk/gtkrange.c:
124         * gtk/gtktext.c:
125         * gtk/gtkviewport.c:
126           enforced
127           gdk_window_set_user_data (window, NULL);
128           gdk_window_destroy (window);
129           window = NULL;
130           throughout the code.
131
132         * gtk/gtkmain.c (gtk_propagate_event): fixed a bad, bad referencing
133           bug that could caused unreferencing of finalized objects.
134
135         * gtk/testgtk.c: destroy fileselection on "OK" (this triggered the
136           above mentioned bug).
137
138         * gtk/gtkwidget.h:
139         * gtk/gtkwidget.c:
140         * gtk/gtkobject.h:
141         * gtk/gtkobject.c:
142           implemented and object reference tracer (gtk_trace_referencing) which
143           is activated if GTK_TRACE_OBJECTS is defined (currently per default).
144           in gdb: set the static variable `gtk_trace_object' to point to the
145           object that you want to have reference traced.
146
147         * gtk/gtkfileselection.c: few cleanups.
148
149         * gtk/gtkcolorsel.c:
150         * gtk/gtkcombo.c:
151         * gtk/gtkobject.c:
152         * gtk/gtkselection.c:
153         * gtk/gtkwidget.c:
154         * gtk/gtkwindow.c:
155           cleanups with key name spaces.
156
157         * gtk/gtkcombo.c: fixed destruction bug with popwin.
158
159         * gtk/gtkcontainer.h: 
160         * gtk/gtkcontainer.c: GTK_RESIZE_NEEDED is a private flag now.
161           (gtk_container_register_toplevel): new function.
162           (gtk_container_unregister_toplevel): new function.
163
164         * gtk/gtkmain.c: GTK_LEAVE_PENDING is a private flag now.
165
166         * gtk/gtkmenu.c: call gtk_container_register_toplevel in
167           gtk_menu_class_init instead of this dirty gtk_widget_set_parent(,NULL)
168           hack. new default handler gtk_menu_destroy for calling
169           gtk_container_unregister_toplevel. removed GTK_ANCHORED, GTK_UNMAPPED.
170
171         * gtk/gtkobject.h: macro cleanups, added GTK_DESTROYED flag.
172
173         * gtk/gtkobject.c: only emit DESTROY signal if !GTK_OBJECT_DESTROYED
174           (object).
175
176         * gtk/gtkprivate.h: new file that will not be automatically included.
177           it holds the private flags for GtkWidget along with it's SET/UNSET
178           and examination macros.
179
180         * gtk/gtkwidget.c: private flags: GTK_RESIZE_NEEDED, GTK_REDRAW_PENDING,
181           GTK_RESIZE_PENDING, GTK_IN_REPARENT, GTK_USER_STYLE. GTK_ANCHORED is
182           replaced by GTK_TOPLEVEL. added missing UNSET for GTK_IN_REPARENT.
183           removed the gtk_widget_set_parent(, NULL) hack for toplevels.
184           upon destroy free memory for widgets with GTK_WIDGET_HAS_SHAPE_MASK.
185
186         * gtk/gtkwidget.h: split up the widget flags into a public and a private
187           portion. added an extra field private_flags to GtkWidget without making
188           it bigger by using an alignment gap of 16 bit. macro cleanups.
189
190         * gtk/gtkwindow.c: removed GTK_ANCHORED. new function gtk_window_destroy
191           for calling gtk_container_unregister_toplevel. removed the
192           gtk_widget_set_parent(,NULL), call gtk_container_register_toplevel
193           instead. remove GTK_UNMAPPED. GTK_RESIZE_NEEDED is private now.
194
195         * gtk/gtksignal.c (gtk_signal_disconnect): removed a bug on
196           removal that cut off the handler list -> living_objects == 0
197           with testgtk. made some warnings more descriptive.
198           new function gtk_signal_connect_object_while_alive, which
199           will automatically destroy the connection once one of the objects
200           is destroyed. didn't include this before removal of the above
201           mentioned bug.
202
203 Sat Jan 31 23:55:03 1998  Tim Janik  <timj@gimp.org>
204
205         * ChangeLog entry for Friday (incorporation of Marius Vollmer's
206           reference counting revolution, plus various fixups and additions
207           from myself).
208
209         * gdk/gdk.h:
210         * gdk/gdkgc.c: new functions gdk_gc_ref/gdk_gc_unref.
211
212         * gdk/gdkprivate.h: cleanups on ref_count field sizes.
213
214         * gtk/gtkadjustment.c (gtk_adjustment_set_value): new function for
215           emission of GtkAdjustment::value_changed signal.
216
217         * gtk/gtkbin.c:
218         * gtk/gtkcolorsel.c:
219         * gtk/gtkcurve.c:
220         * gtk/gtkentry.c:
221         * gtk/gtkframe.c:
222         * gtk/gtkinputdialog.c:
223         * gtk/gtklabel.c:
224         * gtk/gtkpixmap.c:
225         * gtk/gtkpreview.c:
226         * gtk/gtkrange.c:
227         * gtk/gtktable.c:
228         * gtk/gtkwindow.c:
229           replaced functionality of gtk_*_destroy by gtk_*_finalize.
230
231         * gtk/gtkbox.c:
232         * gtk/gtkbutton.c:
233         * gtk/gtkfixed.c:
234         * gtk/gtkmenushell.c:
235         * gtk/gtknotebook.c:
236         * gtk/gtkpaned.c:
237         * gtk/gtkscale.c:
238           removed default destroy handler.
239
240         * in general: reference parent->window for NO_WINDOW widgets.
241           set user data of a GdkWindow to NULL before destruction.
242         
243         * gtk/gtkbutton.c: use gtk_widget_unparent instead of gtk_widget_destroy
244           in *_set_arg.
245
246         * gtk/gtkcontainer.c: provide other containers with a default destroy
247           handler that will destroy all children.
248           new function gtk_container_foreach_interp.
249           new field resize_widgets.
250
251         * gtk/gtklist.c: handle destruction of children in gtk_list_destroy.
252           replaced occourances of gtk_widget_destroy with gtk_widget_unparent.
253           reference children that are in the selection list.
254
255         * gtk/gtkmain.c: reference grab widgets.
256           (gtk_get_event_widget): check for event.window != NULL. Note: this
257           function may return NULL now!.
258           (gtk_propagate_event): much simplified by using proper reference
259           counting.
260
261         * gtk/gtkmenu.c: introduce GTK_TOPLEVEL, and gtk_widget_set_parent(,
262           NULL) hack.
263
264         * gtk/gtkmenuitem.c: gtk_widget_(un)ref the submenu.
265
266         * gtk/gtkmenushell.c: check for return value of gtk_get_event_widget.
267
268         * gtk/gtknotebook.c: proper gtk_widget_unparent()ing.
269
270         * gtk/gtkobject.c: new functions gtk_object_finalize,
271           gtk_object_notify_weaks, gtk_object_debug, gtk_object_sink,
272           gtk_object_weakref, gtk_object_weakunref. implementation of the new
273           reference counting scheme for gtkobjects (consult gtk+/REFCOUNTING).
274
275         * gtk/gtkoptionmenu.c: proper reference counting for option_menu->menu.
276
277         * gtk/gtkscrolledwindow.c: new finalize handler for proper referencing
278           of the subwidgets.
279
280         * gtk/gtksignal.c: internal representation of signal_type is now 16 bit
281           instead of 13 bits. this is needed because of user signals.
282           new functions gtk_signal_handler_ref and gtk_signal_handler_unref
283           (replacement for gtk_signal_handler_destroy).
284           gtk_signal_emit, gtk_signal_emit_by_name, gtk_signal_real_emit used
285           to return the existence of a GtkObject. this will always be TRUE now,
286           therefore the return value is now void.
287
288         * gtk/gtktooltips.h:
289         * gtk/gtktooltips.c: GtkTooltips is now a descendant of GtkData and
290           therefore a real GtkObject.
291
292         * gtk/gtktree.c: reference changes similar to thos in gtklist.c.
293
294         * gtk/gtktreeitem.c: reference th e pixmaps properly.
295
296         * gtk/gtktypeutils.h:
297         * gtk/gtktypeutils.c: new function gtk_arg_copy() to conform to
298           the requirements of gtk_object_get().
299
300         * gtk/gtkviewport.c: finalize handler for proper referencing of the
301           adjustments.
302
303         * gtk/gtkwidget.c: substituted VISIBILITY_NOTIFY_EVENT by NO_EXPOSE_EVENT.
304           added finalize handler. added gtk_widget_ref/gtk_widget_unref.
305           new functions gtk_widget_idle_draw and gtk_widget_idle_sizer, that
306           will handle all widgets that are currently in either queue.
307           referencing all over the place. changes because gtk_signal_emit
308           returns void now. moved queue removal into the destroy handler.
309           gtk_widget_real_unrealize propagates now down the tree. new flag
310           GTK_TOPLEVEL. new function gtk_widget_destroyed for connection to the
311           destroy signal of a widget. this function nullifies the widgets
312           structure pointer, look at gtkmain.c for an example on this.
313
314         * gtk/gtkwindow.c: new functions gtk_window_activate_focus,
315           gtk_window_activate_default. for activation of the appropriate
316           children. changes to the resizing code because there is a new
317           field resize_widgets in GtkContainer now.
318
319         * gtk/testgtk.c: some changes because of all the above ;)
320
321 Sat Jan 31 21:26:27 1998  Owen Taylor  <owt1@cornell.edu>
322
323         * gtk/gtkwidget.c: Added a new GTK_IN_REPARENT flag and revised
324           gtk_widget_reparent so that the child would not be unrealized
325           unnecessarily. Changed gtk_widget_unrealize () to recursively
326           unrealize the children (since the child windows will be 
327           destroyed too.)
328
329 Sat Jan 31 00:05:34 PST 1998 Manish Singh <yosh@gimp.org>
330
331         * gtk/gtkcombo.c: changed to use g_strcasecmp
332         * gtk/gtkobject.c: #include <stdlib.h> for atexit
333
334 Sat Jan 31 00:13:33 1998  Owen Taylor  <owt1@cornell.edu>
335
336         * gtk/gtkstyle.c: Backed out change to close polygons
337           since it caused problems for the Notebook.
338
339 Fri Jan 30 22:28:09 1998  Owen Taylor  <owt1@cornell.edu>
340
341         * gtk/gtkclist.{c,h}:
342            - Conformity to new reference counting schemes
343            - Font and color information is no-longer taken from
344              the (possibly unitialized) style before the widget
345              is realized, but is obtained when needed. (Fixes
346              problems with non-default styles)
347            - white_gc => base_gc where appropriate
348            - Handle graphics expose events correctly (or as
349              correctly as anywhere else) so that scrolling when
350              overlapped works.
351
352 Fri Jan 30 21:32:11 1998  Owen Taylor  <owt1@cornell.edu>
353
354         * gtk/gtkwidget.c (gtk_widget_init): Don't replace the object
355         flags, augment them. (Otherwise we'll clear the FLOATING flag)
356
357 Fri Jan 30 17:41:06 1998  George Lebl  <jirka@5z.com>
358
359         * gtk/gtktable.c: fixed round-off error in calculation
360           of tabels with a lot of cells
361
362 Fri Jan 30 08:51:16 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
363
364         * gdk/gdkcc.c (gdk_color_context_get_pixel): red/green/blue
365         parameters are now expected to be in [0, 65535], to be consistent
366         with the rest of Gdk.
367         (gdk_color_context_get_pixels): Made it use 16-bit color values as
368         well.  Fixed mdist=1000000 buglet (it should start with at least
369         0x1000000).
370         (gdk_color_context_get_pixels_incremental): Same as
371         gdk_color_context_get_pixels().
372
373 Thu Jan 29 22:57:39 1998  Owen Taylor  <owt1@cornell.edu>
374
375         * gtk/gtkstyle.c (gtk_default_draw_polygon): Close
376           the polygon if it isn't already. (To match gtk_draw_polygon)
377           Simplified logic. (Appearance could probably be
378           improved for objects with gradual curves by adding in
379           some intermediate edge coloration)
380
381 Thu Jan 29 21:36:14 1998  Tim Janik  <timj@gimp.org>
382
383         * gtk/gtksignal.c (gtk_signal_query): new function to gather
384           information about a certain signal.
385
386         * gtk/gtksignal.c (gtk_signal_newv): new function similar to
387           gtk_signal_new().
388
389         * gtk/gtksignal.c (gtk_signal_real_emit): check for function_offset
390           == 0.
391
392         * gtk/gtksignal.c (gtk_signal_connect_by_type): perform a signal
393           id lookup on the parent as well.
394
395         * gtk/gtkobject.c (gtk_object_class_add_user_signal): new
396           function for implementation of user defined signals.
397         * gtk/gtkobject.c (gtk_object_class_add_signals): free old
398           signal id array.
399
400         * gtk/gtkobject.h: this holds the typedefs for GtkSignalFunc and
401           GtkSignalMarshaller now, because they are used for
402           gtk_object_class_add_user_signal.
403
404         * gtk/gtktypeutils.c (gtk_type_class_init): reset object_class->signals
405           and object_class->nsignals for new object classes.
406
407 Tue Jan 27 15:52:48 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
408
409         * gtk/gtkhandlebox.c (gtk_handle_box_realize): The auto_shrink
410         policy of the floating window is now set to TRUE.  This fixes the
411         problem of the floating window being too big when the handlebox
412         child is small.
413         (gtk_handle_box_motion): Now we use GDK_POINTER_MOTION_HINT_MASK
414         to improve movement.
415
416 Tue Jan 27 14:15:50 CST 1998 Shawn T. Amundson <amundson@gimp.org>
417
418         * docs/gtkfaq.sgml: more additions/changes Tony Gale.
419
420 Mon Jan 26 17:12:12 CST 1998 Shawn T. Amundson <amundson@gimp.org>
421
422         * docs/gtkfaq.sgml: additions/changes from new FAQ maintainers
423           Nathan Froyd and Tony Gale.
424
425 Mon Jan 26 16:54:02 CST 1998 Shawn T. Amundson <amundson@gimp.org>
426
427         * docs/gtk.texi: additions/changes from Gregory A. McLean
428
429 Mon Jan 26 02:15:29 1998  Tim Janik  <timj@gimp.org>
430
431         * gdk/gdkdraw.c:
432         * gdk/gdkgc.c:
433         * gdk/gdkimage.c:
434         * gdk/gdkinput.c:
435         * gdk/gdkpixmap.c:
436         * gdk/gdkproperty.c:
437         * gdk/gdkselection.c:
438         * gdk/gdkwindow.c: added a bunch of checks for window != NULL and
439           private->destroyed.
440
441 Sun Jan 25 19:15:32 1998  Tim Janik  <timj@gimp.org>
442
443         * gtk/gtkwidget.h (enum): added new widget flag GTK_LEAVE_PENDING.
444         * gtk/gtkmain.c (gtk_main_iteration_do): if a widget has
445           GTK_LEAVE_PENDING set, send it its LEAVE_NOTIFY event, regardless
446           of a grab or sensitivity.
447           changed the compression code for enter/leave notify events to
448           free *both* compressed event, and removed an unneccessary call
449           to g_list_remove.
450
451         * ChangeLog: finally catched up with the recent changes on my part.
452
453         * gtk/gtkobject.h: new element n_args in GtkObjectClass.
454         * gtk/gtkobject.c (gtk_object_query_args): this function now returns
455           the arguments in the correct order.
456
457         * gtk/gtkbox.c:
458         * gtk/gtkbutton.c:
459         * gtk/gtkcontainer.c:
460         * gtk/gtkframe.c:
461         * gtk/gtklabel.c:
462         * gtk/gtkobject.c:
463         * gtk/gtkwidget.c:
464         * gtk/gtkwindow.c: various fixes and additions to the gtk_*_set_arg
465           and gtk_*_get_arg() functions.
466
467         * gdk/gdk.h:
468         * gdk/gdk.c (gdk_pointer_is_grabbed): new function.
469
470         * gtk/gtkmain.h:
471         * gtk/gtkmain.c: implementations of gtk_invoke_key_snoopers(),
472           gtk_key_snooper_install() and gtk_key_snooper_remove(). this
473           mechanism allowes applications to track global hot keys that need
474           to bypass accelerator tables and else key processing stuff.
475
476 Thu Jan 22 18:58:44 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
477
478         * gdk/gdkcc.c: Switched the file to GNU indentation, for consistency.
479
480         * gdk/gdktypes.h (struct _GdkColorContext): Picky, picky... fix
481         two lines with wrong indentation :-)
482
483 Thu Jan 22 02:32:06 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
484
485         * gtk/Makefile.am: Fixed the called to runelisp to use $(SHELL).
486           (Cannot rely on the script having execute permissions.)
487
488 Wed Jan 21 17:29:54 CST 1998 Shawn T. Amundson <amundson@gimp.org>
489
490         * Released 0.99.3
491
492 Wed Jan 21 01:32:21 1998  Tim Janik  <timj@psynet.net>
493
494         * gtk/gtkwidget.h:
495         * gtk/gtkwidget.c: changed the state_changed signal to take an
496           extra argument `old_state'.
497           removed `gtk_widget_restore_state'.
498           changed `gtk_widget_set_state' and `gtk_widget_set_sensitive' to use
499           only one function `gtk_widget_propagate_state' to iterate down the
500           tree. this causes GtkWidget::state_changed to be invoked on state
501           changes and on sensitivity changes. some comment cleanups.
502
503 Tue Jan 20 16:38:52 1998  Owen Taylor  <owt1@cornell.edu>
504         * gtk/gtkcombobox.{c,h}: removed
505           gtk/gtkcombo.{c,h}: added [Paolo Molaro's version]
506           gtk/testgtk.c: changed to use new version
507           gtk/Makefile.am gtk/gtk.h
508         
509 Mon Jan 19 20:10:19 CST 1998 Shawn T. Amundson <amundson@gimp.org>
510
511         * gdk/gdk.h Fixed typo where strdup was used instead of g_strdup
512           (found by Frank Neumann)
513
514 Mon Jan 19 16:21:00 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
515
516         * gtk/gtktoolbar.c (gtk_toolbar_class_init): Set
517         container_class->focus to NULL.  Widgets in the toolbar should not
518         get the focus via the normal key bindings (no toolkit does this,
519         and it makes sense).
520
521         * gtk/testgtk.c (create_toolbar): Removed the GTK_PIXMAP casts to
522         match Eckehard's new prototypes.
523
524         * gtk/gtktoolbar.h: Switched the order of the tooltip_text and
525         widget parameters to the gtk_toolbar_*_widget() functions, to be
526         friendlier to the C++ bindings.  This is per request of Guillaume
527         Laurent.
528
529 Mon Jan 19 09:16:38 1998  Tim Janik  <timj@psynet.net>
530
531         * gtk/gtkmain.c (gtk_grab_add) (gtk_grab_remove): this is a stack
532           of grabbing widgets now, having unique entries. the GTK_HAS_GRAB
533           flag of a widget is set while it is on the stack (wasn't
534           implemented before).
535
536 Mon Jan 19 00:46:18 1998 MET  Eckehard Berns  <eb@berns.prima.de>
537
538         * gtk/gtktoolbar.[ch]: changed
539           gtk_toolbar_{append,prepend,inser]_item to accept any GtkWidget
540           as icon to allow more flexibility
541
542 Sun Jan 18 16:54:55 CST 1998 Shawn T. Amundson <amundson@gimp.org>
543         * gtk/gtkstatusbar.[ch] added new widget, the statusbar
544
545 Sun Jan 18 09:57:00 1998  Owen Taylor  <owt1@cornell.edu>
546
547         * gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkdrawingarea.c
548           gtk/gtkentry.c gtk/gtkeventbox.c gtk/gtkfixed.c
549           gtk/gtkhandlebox.c gtk/gtkhscale.c gtk/gtkhscrollbar.c
550           gtk/gtkitem.c gtk/gtklist.c gtk/gtkmenushell.c gtk/gtkmisc.c
551           gtk/gtknotebook.c gtk/gtkpaned.c gtk/gtkpreview.c
552           gtk/gtkprogressbar.c gtk/gtkruler.c gtk/gtktext.c gtk/gtktree.c
553           gtk/gtkviewport.c gtk/gtkvscale.c gtk/gtkvscrollbar.c
554           gtk/gtkwidget.{c,h}
555
556         Added gtk_widget_set_parent_window() and 
557         gtk_widget_get_parent_window(). All widgets should use:
558         
559            gtk_widget_get_parent_window() instead of widget->parent->window.
560         
561         Any widget that wants to have children not in the parent window,
562         should use gtk_widget_set_parent() in their realize() and
563         add() routines. 
564
565         CList and Viewport widgets changed to do this. (Viewport
566         widget using code from gtk-fortier-980117-0.patch.)
567
568 Sat Jan 17 23:56:02 1998  Owen Taylor  <owt1@cornell.edu>
569
570         * gtk/gtkobject.c:
571            renamed g_string_equal => g_str_equal
572            renamed g_string_hash => g_str_hash
573
574 Sun Jan 18 03:57:52 1998  Tim Janik  <timj@psynet.net>
575
576         * gtk/gtkframe.c: gtk_*_get_arg() and gtk_*_set_arg() implementations.
577         * gtk/gtkobject.c: new arg `GtkObject::object_signal' similar to
578           `GtkObject::signal'. check for class type in gtk_object_{setv|getv}.
579
580         * gtk/gtkobject.c:
581         * gtk/gtksignal.c:
582         * gtk/gtktypeutils.h:
583         * gtk/gtktypeutils.c: added GTK_TYPE_DOUBLE.
584
585         * gtk/gtkwidget.c: new args `has_focus' and `has_default'.
586         * gtk/gtkwindow.c: new arg `window_position'.
587
588         * gtk/gtkbox.h:
589         * gtk/gtkbox.c: new functions gtk_box_reorder_child,
590         gtk_box_query_child_packing and gtk_box_set_child_packing to
591         allow modification of the child linkage after the widget tree
592         is setup.
593
594         * gtk/gtkbox.c:
595         * gtk/gtklabel.c:
596         * gtk/gtkwindow.c:
597         * gtk/gtkwidget.c:
598         * gtk/gtkobject.c: gtk_*_get_arg() and gtk_*_set_arg() fixes
599           and implementations.
600         
601 Sat Jan 17 18:06:35 1998  Owen Taylor  <owt1@cornell.edu>
602         * gdk/gdk.c (gdk_events_pending): Take putback events into
603           account
604
605         * gdk/gdk.c (gdk_event_free): Handle dropdataavaible memory
606           allocation correctly. (Incompatible change: client must
607           _not_ fre event->data and event->data_type.)
608
609         * gdk/gdk.c (gdk_event_translate): Changed DND dragging
610           so that we don't ungrab pointer when we reenter window
611           to prevent extra Enter/Leave effects which had bad
612           effects.
613           Changed drag zone handling to not send uncessary
614           DragEnter events.
615           Fixed EnterNotify/LeaveNotify handling. (Only pay
616           attention to events on window, don't specify these
617           events to XGrabPointer - that isn't valid, and handle
618           reverse the sense of the handling of LeaveNotify.)
619
620         * gdk/gdkwindow.c (gdk_window_remove_filter): Free removed
621           filter.
622
623         * gtk/gtk.defs (GdkFont): gdk_font_free => gdk_font_unref
624
625         * gtk/gtkmain.{c,h} (gtk_events_pending): new function - apps
626           should use this instead of gdk_events_pending.
627
628         * gtk/gtkvbbox.h: Fixed a duplication in the headers.
629
630         * gtk/testgtk.c (dnd_drop): Don't free the drop data,
631           it belongs to the event.
632
633 Sat Jan 17 13:26:15 CST 1998 Shawn T. Amundson <amundson@gimp.org>
634
635         * gtk/gtkentry.[ch]:  Applied patch from <lupus@lettere.unipd.it> 
636           which adds gtk_entry_set_max_length function.  This was 
637           part of gtk-lupus-970112-0.
638
639         * gtk/testgtk.c: Applied gtk-wille-980113-0 which fixes 
640           a problem with a shaped widget keeping grab forever
641           when double clicked.
642      
643         * docs/gtk.texi: patch from Gregory McLean <gregm@randomc.com>
644           to add some on aspect_frame, button_box, and color_selection
645           widgets
646
647 Sat Jan 17 06:24:05 1998  Tim Janik  <timj@psynet.net>
648
649         * gtk/gtktypeutils.h (gtk_type_get_arg): new function.
650         * gtk/gtkobject.h (gtk_object_query_args): new function.
651         * gtk/gtkobject.h (gtk_object_getv): new function.
652         * gtk/gtkwidget.h (gtk_widget_get): new function.
653
654 Fri Jan 16 00:36:31 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
655
656         * gtk/gtkhandlebox.c: Now we use a GtkWindow of type
657         GTK_WINDOW_DIALOG as a destination for reparenting the child of
658         the handle box.  This solves the problem of having X calls in
659         Gtk.  It also makes the handle box work with KWM, OLVWM, 4Dwm (so
660         I expect mwm to work as well).  I hadn't noticed that previously
661         it only worked with fvwm and twm.
662
663         * gtk/gtkhandlebox.h (struct _GtkHandleBox): Removed the
664         real_parent field, as it is never used.
665         (struct _GtkHandleBox): Added a float_window field.  This is a
666         GtkWindow to where the child is now reparented.
667
668         * gtk/gtkhandlebox.c: Lots of changes all over the place.  Now the
669         widget has two windows.  The steady_window stays put in the parent
670         container, and the widget->window is the one that gets
671         reparented.  Now that window is transient, in compliance with the
672         ICCCM, instead of an OverrideRedirect window.
673
674         We have two windows so that we can properly receive Expose events
675         for the thin 3D line that marks the place where the handlebox is
676         docked.
677
678         * gtk/gtkhandlebox.h (struct _GtkHandleBox): Added fields for
679         dragging (mouse position information).  Added fleur_cursor so that
680         we look pretty.  Added steady_window field; it is the window that
681         actually stays on the parent (widget->window is the one that gets
682         reparented).
683
684 Thu Jan 15 19:03:19 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
685
686         * gtk/gtkclist.c (gtk_clist_set_column_width): Call
687         gtk_clist_size_allocate_columns every time the column
688         configuration changes. 
689
690 Fri Jan 16 01:55:17 1998  Tim Janik  <timj@psynet.net>
691
692         * improved the gtk_widget_set handling. removed GtkArgFunc and added
693           GtkArgSetFunc and GtkArgGetFunc in _GtkTypeInfo.
694           performance consuming strcmp() calls are avoided in gtk_*_set_arg()
695           now, it is passed an arg_id on which it can switch() now.
696
697         * gtk/gtkobject.h:
698         * gtk/gtkobject.c (gtk_object_add_arg_type): added parameter arg_id.
699
700         * gtk/gtktypeutils.h:
701         * gtk/gtktypeutils.c (gtk_type_set_arg): added parameter arg_id.
702
703         * gtk/gtkobject.c: bug fixes and changes in the assertion system for
704           arg handling. changed g_print() warning calls to real g_warning()s.
705           
706         * changed all *_get_type() functions to initialize GtkTypeInfo
707           correctly with GtkArgSetFunc and GtkArgGetFunc fields.
708
709 Thu Jan 15 00:44:27 PST 1998 Jay Painter <jpaint@serv.net>
710         * gtk/gtkentry.[ch]: Change window cursor to "I"
711         * gtk/gtkpane.[ch]: Cleared up a tiny memory leak from not destroying the
712         cursor
713
714 Tue Jan 13 07:30:02 PST 1998 Jay Painter <jpaint@serv.net>
715         * gtk/gtkclist.c: minor updates
716         * gtk/gtktext.c: you can type in it!  It should also seg-fault *MUCH* less now,
717         because editing was never really turned off.  
718         * gtk/testgtk.c: changed the gtktext test a little
719         * gtk/testgtkrc: removed pixmap background for now, since I intend to break
720         that for a while
721
722 1998-01-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
723
724         * gtk/gtktoolbar.c: (gtk_real_toolbar_style_changed): Fixed
725         child->icon and child->label == NULL bugs.
726
727         * gtk/gtktoolbar.h: Added some new functions:
728                 gtk_toolbar_append_widget()
729                 gtk_toolbar_prepend_widget()
730                 gtk_toolbar_insert_widget()
731         These let the user insert any kind of widget in the toolbar.  Also
732         changed the gtk_toolbar_*_item() functions to return a
733         GtkWidget * so that the user can do things with the toolbar buttons.
734
735         * gtk/gtktoolbar.c: Now the toolbar supports its own buttons and
736         arbitrary widgets as well.  Geometry management has been changed
737         accordingly.  Added gtk_toolbar_remove() function, so container
738         functionality should be complete now.
739
740         * gtk/testgtk.c (create_toolbar): Added an entry widget to test
741         the new toolbar.
742
743         * Most of these changes are adapted from the
744         gtk-lupus-970112-0-patch (should be 970112... :-)
745
746 Sat Jan  9 20:52:00 PST 1998 Ian Main <imain@gimp.org>
747         * gtk/gtkfilesel.c:  Changed a few tests in the path correcting
748                 function.  Hopefully this helps the filesel stability.
749
750 Fri Jan  8 00:55:00 PST 1998 Jay Painter <jpaint@serv.net>
751         * gtk/gtkclist.c:
752         * gtk/gtkclist.h: modifications to GtkCList so it's look and 
753         feel is the same as scrolled windows.
754
755 Thu Jan  8 17:56:09 PST 1998 Manish Singh <yosh@gimp.org>
756
757         * glib/gscanner.c
758         * gtk/gtclist.c
759         * config.h.in
760         * configure.in: added test for inline and put the inline keywords
761         back in
762
763         * gtk/gtklabel.c: made the prototypes match the definitions
764
765         * gtk/fnmatch.c: minor change to make sure the right config.h
766         gets included
767         
768 1998-01-07  Elliot Lee  <sopwith@localhost.cs.cuc.edu>
769
770         * gtk/gtkcombobox.c gtk/gtkcombobox.h: New widget, GtkComboBox
771         * gdk/gdkwindow.c: Make gdk_window_init set the width &
772                 height of gdk_root_parent
773
774 Wed Jan  7 18:06:17 PST 1998 Manish Singh <yosh@gimp.org>
775
776         * gtk/gtkentry.c:
777         * gtk/gtkentry.h: applied patch to use a backing pixmap for
778         drawing, which removes the bad flickering. (gtk-wille-980106-0)
779
780 Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
781
782         * glib/glib.h
783         * glib/glist.c
784         * glib/gslist.c
785         * glib/testglib.c: Added g_[s]list_insert_sorted function
786         and appropriate tests in testglib
787
788 Tue Jan  6 17:09:46 1998  Owen Taylor  <owt1@cornell.edu>
789         * gtk/gtknotebook.h gtk/gtknotebook.c
790            Added "switch_page" signal. (gtk-hamann_jeske-971212-0.patch)
791
792 Tue Jan  6 17:07:29 1998  Owen Taylor  <owt1@cornell.edu>
793         * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c : 
794            Fixed problem with deleting while text is selected.
795            Changed behavior so that motion keys remove selection.
796            Added new gtk_entry_select_region () call.
797
798 Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
799         * glib/glib.h: Changed guint32 -> guint for bitfields. 
800           (Bitfields must be int or unsigned int?)
801
802 Sat Jan  3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
803         * gtk/testgtk.c: better CList test
804
805 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
806         * GTK+ 0.99.2 Released
807
808 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
809
810         * gtk/gtkscrolledwindow.c: initialize scrollbar_spacing
811           (gtk-fortier-980103-0)
812
813 Sat Jan  3 10:15:08 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
814
815         * configure.in: fixed a typo (no_xext_lib, not no_ext_lib).
816
817 Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
818
819         * gtk/gtkentry.c:
820         * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
821         fixed-length entry fields (gtk_entry_new_with_max_length)
822         
823 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
824         * reverted glibconfig.h and glib.h files back to the
825         way they were before my ugly hack
826         * gtk/gtkclist.c:
827         * glib/gscanner.c: removed inlines from clist and gscanner
828
829 Fri Jan  2 23:55:24 CST 1998 Shawn T. Amundson <amundson@gimp.org>
830
831         * Several portability fixes from Michael Callahan 
832           <callahan@xmission.com> including adding in missing
833           #includes and adding void in function prototypes.
834
835 Fri Jan  2 19:28:52 1988 Jay Painter <jpaint@serv.net>
836         * gtk/gtkclist.h:
837         * gtk/gtkclist.c:
838         * gtk/gtk.h:
839         * gtk/testgtk.c:
840         * gtk/testgtkrc: added GtkCList, column list widget, and a small test
841         to testgtk
842
843 Fri Jan  2 15:42:51 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
844
845         * gtk/gtkmain.c (gtk_main_iteration): Make the big switch handle
846         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.
847
848 Fri Jan  2 12:07:33 CST 1998 Shawn T. Amundson <amundson@gimp.org>
849
850         * gtk/gtkviewport.c: corrects a small resize bug in the 
851           viewport widget.  The viewport widget provides a _set_shadow 
852           function to draw its shadows. But if GTK_SHADOW_NONE is sent 
853           to this function, the viewport isn't resized correctly (it's 
854           still considered as a shadowed widget).  (gtk-fortier-971213-0)
855
856         * gtk/gtknotebook.c: this patch fixes the redraw problems of 
857           notebook tabs, without using gdk_gc_set_clip_rectangle.
858           (gtk-hamann_jeske-971218-0)
859  
860         * add gtk_widget_(show/hide)_all (Stefan Wille)
861           (gtk-wille-301297-0)  Patch for testgtk not included
862           because it did not patch clean.  
863
864 Thu Jan  1 21:21:56 PST 1998 Manish Singh <yosh@gimp.org>
865
866         * configure.in: fixed up the xinput test
867         * Miscellaneous portability fixes.
868
869 Mon Dec 29 22:05:45 1997  Miguel de Icaza  <miguel@nuclecu.unam.mx>
870
871         * gdk/gdkgc.c (gdk_gc_copy): New function, used to copy the values
872         from one gc to another gc.
873
874 Sat Dec 27 20:39:99 1997  Elliot Lee <sopwith@redhat.com>
875         * gtk/gtkhandlebox.c: It mostly works now, please test it and make
876         fixes as needed.
877
878 Fri Dec 26 11:20:03 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
879
880         * gtk/Makefile.am (gtkinclude_HEADERS): added gtkhandlebox.c
881
882         * gtk/gtkhandlebox.c (gtk_handle_box_reparent): eliminated a
883         compiler warning caused by not casting an argument in a debugging
884         message. :)
885
886 Fri Dec 26 02:59:39 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
887
888         * gdk/gdktypes.h gdk/gdk.c gdk/gdkwindow.c: Added new
889         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.  They are needed
890         for Alan Cox's TV widget and for GtkXmHTML.  Only missing with
891         respect to their Xlib counterparts are the major_code and
892         minor_code fields from the GdkEventNoExpose structure.  Does
893         anyone need them?
894
895 Tue Dec 23 03:03:17 1997  Tim Janik  <timj@psynet.net>
896
897         * gtk/gtkscrolledwindow.c (SCROLLBAR_SPACING): this macro computes
898         the spacing from klass->scrollbar_spacing now. adapted all functions
899         that used this macro (based on a patch from Patrice Fortier).
900         * gtk/gtkscrolledwindow.h (struct _GtkScrolledWindowClass): added
901         scrollbar_spacing to substitute a define (patch from Patrice Fortier).
902
903         * gtk/gtkrc.h (gtk_rc_parse_string): new function.
904         * gtk/gtkrc.c: many functions adapted to use GScanner for scanning.
905         (gtk_rc_parse): use gtk_rc_parse_any for parsing.
906         (gtk_rc_parse_string): new function to support parsing from
907         strings, just calls gtk_rc_parse_any.
908         (gtk_rc_parse_any): new function using GScanner as lexer.
909
910 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
911
912         * GDK support for 1 bpp depth screens.
913
914 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
915
916         * Changes from Bolliet Jerome <bolliet@in2p3.fr> to gtktree.
917           Corrects a bug in gtk_tree_remove_items and gtk_tree_item_destroy.
918           Adds the possibility to connect all items by lines. This is the 
919           default now.  You can overide this with the function 
920           gtk_tree_set_view_line which take a tree and a boolean.
921
922 Thu Dec 18 23:26:49 CST 1997 Shawn T. Amundson <amundson@gimp.org>
923
924         * removed configure, Makefile.in, and aclocal.m4 files
925
926 Wed Dec 17 23:36:57 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
927
928         * gdk/gdkcc.c (gdk_color_context_free): Caught a stray
929         gdk_colormap_destroy that Owen missed (and Shawn found).
930
931 Wed Dec 17 20:59:52 1997  Owen Taylor  <owt1@cornell.edu>
932         * gdk/gdkinput.c gdk/gdkinput.h gdk/gdkinputcommon.h
933           gdk/gdkinputxfree.h gdk/gdkinputgxi.h gdk/gdkinputnone.h.
934           gtk/gtkinputdialog.h gtk/testinput.c
935         Added support for device keys mapping to key events.
936         Fixed various bugs.
937
938 Wed Dec 17 20:53:00 1997  Owen Taylor  <owt1@cornell.edu>
939         * gdk/gdk.c gdk/gdk.h: Changed gdk_get_event to remove
940         predicate filtering, and to allocate the events.
941         Added gdk_event_get_graphics_expose for scroll handling.
942         * gtk/gtkmain.c gtk/gtktext.c:
943         Use above changes. Interface change for gtk_get_current_event.
944         * testgtk.c
945         Added another test to test new scrolling mechanism.s
946         * gdk/gdk.c gdk/gdk.h gdk/gdkwindow.c gdk/gdkprivate.h: 
947         Added beginnings of event filtering. Removed obsolte
948         OtherEvent mechanism.
949         * gdk/gdk.c: Combined FocusIn/FocusOut events. Now ignore
950         focus events which aren't for window itself. (Only pay
951         attention to NotifyAncestor/Inferior/Nonlinear)
952         * gtk/gtkwindow.c gtk/gtkwindow.h: Virtualize set_focus 
953         function so it can be overridden.
954         * gtk/gtkwidget.c: Reparenting should now work for
955         containers. (Guillaume Laurent <glaurent@worldnet.fr>)
956         * gdk/gdkgc.c: By default, GraphicsExpose events are now
957         _not_ generated.
958         * gtk/testselection.c: Suppress a warning, fix a bug?
959
960 Wed Dec 17 20:47:42 1997  Owen Taylor  <owt1@cornell.edu>
961         * configure.in, glib/configure.in: 
962         Remember if user set CFLAGS, so we can set it for --enable-debug
963           only if they didn't. 
964         Added missing quotes. )Raphael.Quinet@eed.ericsson.se)
965         Only use -DX_LOCALE if setlocale doesn't work.
966         * gdk/gdki18n.h: Simplified system for trying to get iswalnum() -
967         include <wctype.h> if present, otherwise <wchar.h> if present.
968         
969 Wed Dec 17 21:09:12 1997  Owen Taylor  <owt1@cornell.edu>
970   1997-10-13  Marius Vollmer  <mvo@zagadka.ping.de>
971
972     Bug fixes:
973         
974         * gtksignal.c (gtk_params_get): Initialize the GtkArg even when
975         the return type is GTK_TYPE_NONE.
976
977     Revamped reference counting, see the file REFCOUNTING.
978
979         * Makefile.am (EXTRA_DIST): Added REFCOUNTING.
980         * REFCOUNTING: New file.
981
982         * gdk/gdk.c (received_destroy_notify, window_to_destroy): Removed.
983         (gdk_event_get): Code that deals with the above removed.
984         (gdk_event_translate): Abort when the GdkWindow for the XEvent
985         cannot be found.  For DestroyNotify: Do not use
986         receive_destroy_notify and window_to_destroy but call
987         gdk_window_destroy_notify.
988
989         * gdk/gdk.h: (gdk_pixmap_destroy, gdk_colormap_destroy,
990         gdk_fontset_free): Removed.
991         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
992         gdk_bitmap_unref): New prototypes.
993         (gdk_font_free, gdk_font_unref): Renamed gdk_font_free to
994         gdk_font_unref.
995
996         * gdk/gdkcolor.c (gdk_colormap_real_destroy): Made static.
997         (gdk_colormap_destroy): Removed.
998
999         * gdk/gdkfont.c (gdk_font_free): Renamed to gdk_font_unref.
1000         Handle fontsets as well.
1001         (gdk_fontset_free): Removed.
1002
1003         * gdk/gdkpixmap.c (gdk_pixmap_destroy): Removed.
1004         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
1005         gdk_bitmap_ref): New functions.
1006
1007         * gdk/gdkwindow.c: (gdk_window_new, gdk_window_foreign_new): Call
1008         gdk_window_ref for the pointer in the xid table.
1009         (gdk_window_internal_destroy): Renamed from gdk_window_destroy.
1010         New parameter XDESTROY that takes the role of `destroyed==2';
1011         removed special casing of `destroyed==2'.  Free dnd_data only when
1012         really destroying.  Do not touch the ref_count.  Calling
1013         gdk_window_destroy on a Pixmap is now a real error, not just a
1014         warning.
1015         (gdk_window_destroy): Just call gdk_window_internal_destroy and
1016         gdk_window_unref, as advertised in REFCOUNTING.
1017         (gdk_window_destroy_notify): New function.
1018         (gdk_window_unref): Print a warning when the ref_count is zero and
1019         the window has not been destroyed.  Should never happen.  Do not
1020         destroy the window, just free the memory.
1021         
1022         * gdk/gdkprivate.h (gdk_window_real_destroy): Removed.
1023
1024         * gtk/gtkaccelerator.c (gtk_accelerator_table_destroy): Removed.
1025         (gtk_accelerator_table_unref): Do the job of
1026         gtk_accelerator_table_destroy directly.
1027         (gtk_accelerator_table_init): Init ref_count with 1.
1028
1029         * gtk/gtkaccelerator.h (gtk_accelerator_table_destroy): Removed.
1030
1031         * gtk/gtkcurve.c, gtk/gtkgamma.c: Replaced gdk_pixmap_destroy with
1032         gdk_pixmap_unref.
1033
1034         * gtk/gtkhscrollbar.c (gtk_hscrollbar_realize): Reflect the fact
1035         that the widget->window is used as the range->trough in the
1036         ref_count.
1037         * gtk/gtkvscrollbar.c (gtk_vscrollbar_realize): Likewise.
1038
1039         * gtk/gtkmain.c (gtk_main_iteration): Protect event_widget with
1040         ref/unref while handling the GDK_DELETE and GDK_DESTROY events.
1041
1042         * gtk/gtkmenu.c (gtk_menu_set_accelerator_table): Don't do
1043         anything when the new accel_table is the old one.
1044
1045         * gtk/gtkmenufactory.c (gtk_menu_factory_destroy): Unref
1046         factory->table if there is one.
1047         (gtk_menu_factory_create, gtk_menu_factory_create_widget): Don't
1048         ref newly created accel_table, it is now created with a ref_count
1049         of 1.
1050
1051         * gtk/gtkmenuitem.c (gtk_menu_item_set_submenu):  Don't do
1052         anything when the new submenu is the old one.
1053
1054         * gtk/gtkpixmap.c (gtk_pixmap_destroy): New static function.
1055         (parent_class): New global variable.
1056         (gtk_pixmap_init): Set object_class->destroy.
1057         (gtk_pixmap_set): Don't do anything about the pixmap when the new
1058         pixmap is the old one.  Likewise for the mask.
1059
1060         * gtk/gtkprogressbar.c, gtk/gtkruler.c: Replaced
1061         gdk_pixmap_destroy with gdk_pixmap_unref.
1062
1063         * gtk/gtkrange.c (gtk_range_set_adjustment):  Don't do
1064         anything when the new adjustment is the old one.
1065
1066         * gtk/gtkrc.c: Replaced gdk_fontset_free/gdk_font_free with
1067         gdk_font_unref.
1068
1069         * gtk/gtkstyle.c (gtk_style_new): Initialize ref_count with 1.
1070         (gtk_styles_init): Replace gtk_style_destroy with gtk_style_unref
1071         for the cache.
1072         (gtk_style_new_from_key): Ref style before returning it when it
1073         has not been newly created.
1074         (gtk_style_destroy): Don't look at the ref_count, destroy always.
1075         Free style-font with gdk_font_unref, regardless of font->type.
1076
1077         * gtk/gtktooltips.c (gtk_tooltips_real_destroy): Renamed from
1078         gtk_tooltips_destroy and made static.  Don't look at ref_count,
1079         destroy always.
1080         (gtk_tooltips_new): Initialize ref_count with 1.
1081         (gtk_tooltips_unref): Don't look at pending_destroy, destroy
1082         always when ref_count is 0.
1083         (gtk_tooltios_widget_remove): Use gtk_tooltips_destroy_data
1084         instead of hand-coded destruction.
1085
1086         * gtk/gtktooltips.h (GtkTooltips::pending_destroy): Removed.
1087         (gtk_tooltips_destroy): Removed.
1088
1089         * gtk/gtkviewport.c (gtk_viewport_set_hadjustment,
1090         gtk_viewport_set_vadjustment): Don't do anything when the new
1091         adjustment is the old one.
1092
1093         * gtk/gtkwidget.c (gtk_widget_reparent): Protect the reparented
1094         widget with ref/unref while moving it.
1095         (gtk_widget_set_default_colormap): Replace gdk_colormap_destroy
1096         with the proper ref/unref spell.
1097         (gtk_widget_set_default_style): Don't do anything when the new
1098         style is the old one.
1099
1100         * gtk/testinput.c (configure_event): Replaced gdk_pixmap_destroy
1101         with gdk_pixmap_unref.
1102         
1103     More Interpreter support:
1104
1105         * gdk/gdktypes.h (GdkDestroyNotify): New type.
1106         
1107         * gdk/gdk.c (struct _GdkInput::destroy): New field.
1108         (gdk_input_add_interp): New version of gdk_input_add that follows
1109         the interp conventions for callbacks.
1110         (gdk_input_add): Implement in terms of gdk_input_add_interp.
1111         (gdk_input_remove): Call destroy notify when appropriate.
1112
1113         * gdk/gdk.h (gdk_input_add_interp): New prototype.
1114
1115         * gtk.defs: Updated from guile-gtk.
1116         * gtk/gtktypebuiltins.c, gtk/gtktypebuiltins.h: Regenerated.
1117         
1118         * gtk/gtkmain.c (GtkInputFunction, struct _GtkInputFunction): New
1119         types.
1120         (gtk_invoke_input_function, gtk_destroy_input_function,
1121         gtk_input_add_interp, gtk_input_remove): New functions.
1122
1123 Wed Dec 17 12:00:48 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
1124
1125         * gdk/gdkcc.c: New GdkColorContext functionality!  This should
1126         eventually solve all of our color management problems.  Gdk still
1127         needs to be modified to support visuals with less than 8 bpp.  Gtk
1128         needs to be modified just a bit.
1129
1130 Wed Dec 17 13:56:17 PST 1997 Manish Singh <yosh@gimp.org>
1131
1132         * a small patch by Lauri Alanko that allows Gimp to pass
1133         on --display to it's plugins.
1134
1135 Sun Dec 14 00:08:00 PST 1997 Raph Levien <raph@acm.org>
1136         * a minor patch to make the file selection dialog not always
1137         select the first file in a directory
1138
1139 Sat Dec 13 Jay Painter <jpaint@serv.net>
1140         * gtk/gtkvscrollbar.c: added focus flag so vertical scrollbars
1141         can get keyboard focus
1142
1143 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
1144         * Removed warning when XGetWindowProperty fails - this can
1145           be the desired behavior.
1146         
1147 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
1148         * gdk/makecursor* gdk/makekeysym* gdk/Makefile.am
1149           Removed old sed/awk code and replaced it with a 
1150           spiffier awk-only code from Art_Haas@dril-quip.com
1151         
1152 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
1153         * gdk/gdkgc.c: If gdk_gc_set_clip_rectangle is called with
1154           rectangle = NULL, remove clip mask, instead of segfaulting.
1155         * gtk/gtknotebook.c: Set clip mask before redrawing, so that
1156           we don't overwrite things outside of exposed areas when
1157           drawing them shadows. (Based on a patch from 
1158           Lars Hamann <hamann@braunschweig.netsurf.de>, and Stefan Jeske)
1159         
1160 Thu Dec 11 10:57:29 CST 1997 Shawn T. Amundson <amundson@gimp.org>
1161         * Change to ltconfig to remove -z text for Solaris x86  
1162         * Change to configure stuff so compile works on Solaris x86
1163         * Added gdk/gdkkeysyms.h and gdk/gdkcursors.h back into the tree
1164
1165 Thu Dec 11 09:44:03 1997  Tim Janik  <timj@psynet.net>
1166
1167         * gdk.c: added gdk_progclass==NULL patch by Oliver Graf <ograf@fga.de>.
1168
1169 Wed Dec 10 23:40:03 1997  Tim Janik  <timj@psynet.net>
1170
1171         * fixed some compiler errors, because g_return_if_fail() wasn't used
1172         with a trailing semicolon in some places. fixed few other warnings also.
1173
1174 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
1175         * configure changes: (configure.in, glib/configure.in)
1176         Change test ! `...` to test -z `...`
1177           (Harald Meland <Harald.Meland@usit.uio.no>)
1178         Change $gtk_cv_x_locale to $need_x_locale so it isn't cached.
1179         With --enable_debug, don't touch CFLAGS if they're already set.
1180
1181 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
1182         * gdk/gdkpixmap.c: don't use gdk_black/white for pixmap mask.
1183          From Patrice Fortier <Patrice.Fortier@aquarel.fr>
1184
1185 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
1186         * gtk/testselection.c (selection_received): foreward -> forward.
1187         * gtk/gtktext.c (gtk_text_forward_delete): Renamed; changed all
1188         callers.
1189         * gtk/gtktext.h: foreward -> forward.
1190           From Tom Tromey  <tromey@cygnus.com>
1191
1192 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
1193         * gtk/gtkimage.c: Fixes to expose() handler
1194           From Rob Browning <rlb@cs.utexas.edu>
1195         
1196 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
1197         * gtk/gtklabel.h:
1198         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
1199         is used by the new gtktooltips.c.
1200         * gtk/testgtk.c (create_labels, create_main_window): A new test
1201         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
1202
1203 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
1204         * gtk/gtklabel.h:
1205         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
1206         is used by the new gtktooltips.c.
1207         * gtk/testgtk.c (create_labels, create_main_window): A new test
1208         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
1209
1210 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
1211         * gdk/gdk.c, gdk/gdk.h, gdk/gdktypes.h: 
1212           Remove dependencies of interfaces on USE_XIM
1213         * gdki18n.h: Attempt to make wchar handling more portable
1214         * gdkwindow.c: Include config.h. (For gdkinput.h)
1215         
1216 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
1217         * gtk/gtkentry.c, gtk/gtkentry.h: 
1218            Fixed word motion
1219            Added cut/copy/paste via X clipboard
1220            Generalized extending selection using <Shift> to work with all types
1221              of motion, not just arrow keys.
1222            Don't change length of GtkEntry structure because of USE_XIM
1223
1224 Sun Dec  7 03:19:02 1997  Tim Janik  <timj@psynet.net>
1225
1226         * gtkfilesel.c: applied jamesa-971010-0 for stability.
1227         * gtkrc.c: applied jamesa-971010-2 for a small optimization.
1228         * gtkcheckmenuitem.h:
1229         * gtkcheckmenuitem.c:
1230         * gtkradiomenuitem.c:
1231         * testgtk.c: applied johannes-971113-0 which adds
1232         gtk_check_menu_item_set_show_toggle() to change the way check
1233         menu items and radio menu items look.
1234
1235 Fri Dec 5 1997 Elliot Lee <sopwith@cuc.edu>
1236         * gdk/gdk.c: clean up warnings, remove some un-ifdef'd debugging
1237         printing, DnD is Bug Free now, etc.
1238         * gtk/gtkcolorsel.c: fix DnD support.
1239         * gtk/gtkmain.c: DnD events go to the original window even if
1240         there is a grab - if I drop on a window the data had better go
1241         to it and not some other window :)
1242         * gtk/testgtk.c: Replace (GtkSignalFunc) with GTK_SIGNAL_FUNC(),
1243         and do a nicer DnD demo.
1244         * My very first ChangeLog entry, seeing as people have
1245         a fixation on them (what's wrong with "rcs2log" output?)
1246
1247 Thu Dec 4 1997 Owen Taylor <owt1@cornell.edu>
1248         * gdk/gdkgc.c: Ignore gdk_gc_set_font if font is a fontset.
1249
1250 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
1251         * gtk/gtkstyle.c: fixed a problem introduced recently in 
1252         gtk_style_detach witch crashed script_fu.
1253
1254 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
1255         * gdk/Makefile.am: add a dependence for $(DEP_FILES) on
1256         $(BUILT_SOURCES) to work around automake problem
1257         
1258 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
1259         * configure.in glib/configure.in glib/glibconfig.h.in gdk/gdk.h
1260         gdk/gdk18n.h gdk.c gtk/gtkentry.c: Try to handle variations in 
1261         <wchar.h> headers gracefully. Do not automatically include 
1262         gdk/gdki18n.h.
1263         
1264 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
1265         * gtk/gtkoptionmenu.c: fixed a old bug where if you set a new 
1266         menu for a optionmenu the widget would not get positioned correctly
1267         inside of the optionmenu.
1268
1269 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
1270         * gdk/gdkpixmap.c: Include unistd.h to get SEEK_END
1271         for SunOS (john_johns@credence.com)
1272         
1273 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
1274         * gtk+/fnmatch.c: Define _GNU_SOURCE before including
1275         fnmatch.h to make sure all constants are defined.
1276         (Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp>)
1277         
1278 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
1279         * configure.in, glib/configure.in: Make the logic to add -Wall,
1280         -ansi, -pedantic for GCC operational.
1281
1282 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
1283         * glib/glib.h, glib/configure.in. Disabled gldouble, since
1284         it wasn't used anywhere and caused portability problems
1285
1286 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
1287         * glib/glib.h, glib/configure.in, glib/glibconfig.h.in: Added a
1288         g_memmove function which is simply memmove if it exists, otherwise
1289         bcopy.(Should really check if bcopy has the correct semantics, and
1290         create our own memmove is necessary) 
1291         * glib/gstring.c, glib/garray.c, gtk/gtktext.c:
1292         memmove => g_memmove
1293         
1294 Sun Nov 30 1997 Jay Painter <jpaint@serv.net>
1295         * gtk/gtknotebook.c: fixed a old bug where all the notebook pages
1296         which were not displayed when the notebook widget was realized were
1297         never size allocated when they were realized.
1298
1299 Thr Nov 28 1997 Jay Painter <jpaint@serv.net>
1300         * gtk/gtklist.h: removed GtkSelectionMode
1301         * gtk/gtkenums.h: added GtkSelectionMode
1302
1303 Fri Nov 28 01:26:55 1997  Tim Janik  <timj@psynet.net>
1304
1305         * gtk/gtkwindow.c (gtk_window_show): propagate a size_request before
1306         the initial window creations (prevents windows with size of -1x-1).
1307
1308         * gtk/gtkmain.c (gtk_main_level): new function to determine
1309         the current recursion level of gtkmain().
1310         (gtk_true) (gtk_false): new functions implemented as a convenience
1311         for signals that just need a handler with the appropriate return value.
1312
1313 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
1314         gdk.c: Fix so that "other_events" are actually generated
1315
1316 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
1317         Patches to support internationalized input by:
1318           Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
1319           TANAKA Shinya <shinya@race.u-tokyo.ac.jp>
1320
1321         From the README:
1322         
1323         Feature:
1324           Followings are the main feature of this patch.
1325             * support XIM protocol.
1326             * GtkEntry widget support Over-The-Spot and Root style input.
1327             * input style is configurable by command-line option.
1328
1329         Furthermore, this patch includes several changes which are useful 
1330           without XIM too.
1331         
1332             * copy and paste with other clients by compound text.
1333             * Window title can be specified by multi byte string.
1334
1335         configure.in: 
1336           Added --with-locale and --enable-xim options
1337         gdk/Makefile.am:
1338         gdk/gdki18n.h [new file]
1339           Multibyte string manipulation functions
1340         gdk/gdk.c
1341         gdk/gdk.h
1342         gdk/gdkprivate.h
1343           Input method and context handling functions
1344           Command line options to control input methods
1345           Changes to KeyPress handling to support input methods
1346           Fixes to not return events for destroyed windows
1347         gdk/gdkselection.c
1348           Text property handling functions
1349         gdk/gdkwindow.c
1350           Set window title by multibyte string
1351         gtk/gtkentry.c
1352           Support for using an input context for XIM input.
1353           Cut and paste using compound text.
1354           Improvements to pasting (no longer replace the active selection
1355             with itself OWT)
1356         gtk/gtkselection.c
1357           fix to send selection clear events to the right owner
1358         gtk/testgtkrc
1359           Added a default fontset that will allow international characters
1360         INSTALL
1361           Some rudimentary documentation about the new configuration options.
1362         
1363 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
1364         gtk/gtkaspectframe.c:
1365         Some minor improvements to rounding in aspectframes.
1366         Make sure that child allocation is always >= 0
1367         Always trigger size allocation with gtk_widget_queue_resize
1368         to prevent calling size_allocate before allocation done.
1369
1370 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
1371         gtk/gtkframe.c:
1372         Changed tests for drawability to GTK_WIDGET_DRAWABLE
1373         Always trigger size allocation with gtk_widget_queue_resize
1374         to prevent calling size_allocate before allocation done.
1375
1376 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
1377         gtk-dairiki-971117-2.patch
1378         gtk/gtkaspectframe.c (gtk_aspect_frame_size_allocate): When
1379         computing new dimensions of the subwidget, round to nearest
1380         integer rather than truncating.
1381
1382 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
1383         gtk-dairiki-971117-1.patch
1384         * gtk/gtkvruler.c (gtk_vruler_draw_ticks):
1385         * gtk/gtkhruler.c (gtk_hruler_draw_ticks): Ensure that subticks
1386         always are drawn when they should be (sometimes they were getting
1387         drawn with zero length --- invisible).  Also clear rectangle
1388         behind text labels to ensure they don't touch or overlap ticks. 
1389
1390 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
1391         * gtk/gtkaspectframe.c (gtk_aspect_frame_set): 
1392         gtk-dairiki-971117-0.patch
1393         Clear window when aspect ratio or alignment is changed.
1394
1395 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
1396         * gtk/gtkobject.h: fixed GTK_OBJECT_NSIGNALS macro
1397
1398 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
1399         * gtk/gtklabel.h: modified gtklabel to clip its drawing to
1400         its given area, now it will always draw in the area it's 
1401         been given and clip accordingly.  Note: this may cause
1402         the a label to disappear on widgets which don't give their
1403         child labels proper area!
1404
1405 Mon, 17 Nov 1997 Michael K. Johnson <johnsonm@redhat.com>
1406         * gtkwidget.c: gtk_set_style_recurse was not allowing updated
1407         widget names to cause new styles to be applied.
1408         * gtkentry.c gtkentry.h: The entry widget now has invisible
1409         attribute.  The cursor does not move to show you typing; this
1410         is an intentional design decision but I'm not so attached to it
1411         that I'll reverse any patches that change it...  :-)
1412
1413         This patch is a modified version of a patch to which I have
1414         lost the attribution.  I modified it by packing the "visible"
1415         flag into the structure more tightly (without damaging backwards
1416         compatibility on sane systems) and by allowing entry timers
1417         to run.
1418
1419 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
1420         * gtkviewport.c: Raph's Mon, 10 Nov 1997 patch to gtk-list 
1421         to fix some viewport bugs
1422
1423 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
1424         * gtk/gtkwidget.c: gtk-ajaborsk-971016-2
1425         A little patch again to prevent user to use gtk_widget_set_events()
1426         when a widget is already realized.
1427         In this case, the gtk_widget_set_events() doesn't work.
1428
1429 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
1430         * gtk/gtkwindow.c: gtk-ajaborsk-971016-1
1431         This small patch correct position for GTK_WIN_POS_CENTER and
1432         GTK_WIN_POS_MOUSE GtkWindow positions.
1433
1434 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
1435         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
1436         * gdk/gdk.h: header for above
1437
1438 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
1439         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
1440         * gdk/gdk.h: header for above
1441
1442 Wed Nov 12 1997 Jay Painter <jpaint@serv.net>
1443         * gdk/gdkpixmap.c: Patrice Fortier's patch for transparent pixmaps.
1444         * gdk/gdk.h:
1445           gdk/gdkdraw.c: Patrice Fortier's patch to add pixel draw function.
1446
1447 Sun Nov  9 1997 Jay Painter <jpaint@serv.net>
1448         * Fixed problems with makefiles relating to the bug
1449         which required glib to be installed.
1450         * Fixed makefiles to incluce the xpm's in gtk+/gtk needed
1451         for testgtk.
1452         * Updated gtk+ and gtk+/glib to libtool-1.0f
1453
1454 Fri Nov  7 1997 Jay Painter <jpaint@serv.net>
1455         * gtk/gtktext.c: return char_widths[ch & 0xff]; in line 2152
1456
1457 Thr Nov  5 1997 Jay Painter <jpaint@serv.net>
1458         * gtk/testgtk.c: added drag and drop test, removed the test hack
1459         from the button test
1460
1461 Tue Nov  4 08:28:57 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
1462
1463         * gtk/gtkmain.c (gtk_handle_idle): Patch from David Mosberger to
1464         avoid crashes when handling idle function (this manifested itself
1465         in the Umax and Microtek backends in SANE.
1466
1467 Sun Nov  2 07:34:56 1997  Tim Janik  <timj@psynet.net>
1468
1469         * gtk/gtkfilesel.c: Small fixes about a segmentation viaolation
1470         cause by a double click in the directoy list (introduced by my
1471         previous changes).
1472         
1473         * gtk/gtklist.c: Small fixes to gtk_list_add() and gtk_list_remove().
1474         
1475         * gtk/testgtk.c (list_add): Applied Stefan Wille's patch to make this
1476         function do something ;).
1477
1478 Fri Oct 31 Jay Painter <jpaint@serv.net>
1479         *gdk/gdk.c: reformatted DND code for GTK coding standards
1480         *gdk/gdkwindow.c: changed memory allocation for DND to q_mem stuff
1481
1482 Thu Oct 30 Jay Painter <jpaint@serv.net>
1483         * gdk/gdkwindow.c: 
1484         * gdk/gdk/gdk.h:
1485         * gtk/gtkwidget.h:
1486         * gtk/gtkwidget.c: Applied Stephan Willie's shaped window patch
1487
1488         * gdk/gdkwindow: 
1489         * gdk/gdk.h:
1490         * gtk/gtkwidget.h:
1491         * gtk/gtkwidget.c: reformatted the DND code to conform to GTK
1492                 coding standards
1493
1494         * gtk/testgtk: massive fixes, SW's shaped window example
1495
1496 Thu Oct 30 07:33:27 1997  Tim Janik  <timj@psynet.net>
1497
1498         * gtk/gtklistitem.c (gtk_real_list_item_toggle): applied Johannes
1499         Keukelaar's <johannes@nada.kth.se> patch for keyboard support in
1500         GtkList widgets.
1501
1502         * gtk/gtkfilesel.c: adapted dir and file list selection
1503         behaviour to deal with keyboard selections. this is a little
1504         bit tricky: in the dir list it just changes the entrys value on a one
1505         button press. but on a keyboard selection via gtk_widget_activate() it
1506         does a new population (likewise on a double click) as this seems more
1507         obvious.
1508
1509 1997-10-25  Marius Vollmer  <mvo@zagadka.ping.de>
1510
1511         * gdk/gdkcolor.c (gdk_colormap_get_system): Initialize
1512         private->ref_count.
1513
1514 Wed Oct 22 09:47:43 1997  Tim Janik  <timj@psynet.net>
1515
1516         * gtk/gtkwindow.c (gtk_window_key_release_event): Fixed a stupid
1517         bug that caused the key_release_event to be propagated twice.
1518
1519 Sun Oct 12 11:01:43 1997  Tim Janik  <timj@psynet.net>
1520
1521         * acconfig.h:
1522         * configure.in:
1523         * gdk/gdkimage.c: Added configure check for IPC_RMID_DEFERRED_RELEASE,
1524         because shmat() fails after a shmctl(..., IPC_RMID,...) for OSF1 V3.2,
1525         SunOS 4.1.1, 5.5, 5.5.1, 5.6, IRIX 5.2 and 6.2.
1526
1527 Mon Oct  6 11:59:07 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
1528
1529         * gdk/gdk.c (gdk_event_translate): In line 1693, fixed typo that
1530         would cause motion notify events not to be delivered.
1531
1532 Sun Oct  5 18:15:06 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
1533
1534         * gtk/gtkrc.c (gtk_rc_parse_bg_pixmap): Changed strdup() for
1535         g_strdup().
1536
1537 Wed Sep 24 17:16:34 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
1538
1539         * configure.in: Fixed a stupid error in the test for libXext that
1540         would cause it to fail if X_EXTRA_LIBS was not empty.
1541
1542         * gtk/gtkmain.h (gtk-timj-970919.patch):
1543         * gtk/gtkmain.c (gtk-timj-970919.patch): new function
1544         `gtk_idle_remove_by_data' to remove all idle callbacks that take a
1545         specific piece of data as argument.  (gtk_get_current_event):
1546         remove idles through gtk_idle_remove_by_data.
1547         
1548         * gtk/gtkwidget.c (gtk-timj-970919.patch):
1549         (gtk_widget_destroy): remove pending idles for
1550         widgets that have GTK_REDRAW_PENDING or GTK_RESIZE_PENDING and
1551         GTK_ANCHORED set (only anchored widgets can have a resize queue
1552         handler pending). widgets that have GTK_RESIZE_NEEDED will be removed
1553         from their anchored toplevels `resize_widgets' list.
1554         
1555         (gtk_widget_queue_draw): let the widget remember the queue handler
1556         tag (through `redraw_handler_key') for later call to `gtk_idle_remove'.
1557         
1558         (gtk_widget_queue_resize): let the widget remember the queue handler
1559         tag (through `resize_handler_key') for later call to `gtk_idle_remove'.
1560         corrected referencing the toplevel widget for which the handler is
1561         pending. if a widget is added to the `resize_widgets' list of a
1562         toplevel widget, GTK_RESIZE_NEEDED is set and it's referenced.
1563         
1564         (gtk_real_widget_queue_resize): on the deletion of the `resize_widgets'
1565         list, unset GTK_RESIZE_NEEDED and unreference the removed widgets.
1566         
1567         * gtk/gtkwindow.c (gtk-timj-970919.patch):
1568         (gtk_real_window_move_resize): move `resize_containers = NULL'
1569         initialization out of if-statement.
1570         while stepping through the `resize_widgets' list, unreference the
1571         widgets and clear GTK_RESIZE_NEEDED. if a widget realy needs are
1572         resize, they are flagged through GTK_RESIZE_NEEDED now (instead of
1573         GTK_RESIZE_PENDING, as this is indicative for a pending handler).
1574         added checks to provide segfaulting if a widgets parent pointer
1575         is NULL (e.g. on toplevel widgets that have GTK_RESIZE_NEEDED set).
1576
1577 Tue Sep 23 13:23:27 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
1578
1579         * gdk/gdkimage.c: Applied Tim Janik's patch to mark shm segments
1580         as IPC_RMID so that they are automatically removed always.
1581
1582         * gdk/gdkfont.c: Removed casts from lvalues.
1583
1584         * gtk/gtkmain.c: Removed GTK_RETLOC_*() (which do a cast) from lvalues.
1585
1586         * gtk/gtkaccelerator.c (gtk_accelerator_table_remove): Added
1587         "const" to the accelerator_key param to be consistent with the
1588         declaration in gtkaccelerator.h.  The const is not useful in this
1589         case, anyway.
1590
1591 Tue Sep 16 13:11:06 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
1592
1593         * gtkpreview.c: Andrew Logan Kieschnick's change to eliminate
1594         round-off error when gamma is set to 1.0.
1595
1596         * gtkrange.c:
1597         * gtkviewport.c: Jay Painter's changes to modify the way in which
1598         viewports resize.
1599
1600         * gdkinput.c:
1601         * gdkinputgxi.h:
1602         * gdkinputxfree.h:
1603         * gtk/Makefile.am:
1604         * gtk.h:
1605         * gtkeventbox.c:
1606         * gtkeventbox.h: Owen Taylor's event box widget and fixes for X
1607         input support (that I had broken).
1608
1609         * gdk.h:
1610         * gdkwindow.c:
1611         * gtksignal.h:
1612         * gtksignal.c: Elliot Lee's changes to support Objective C. (id is
1613         apparently a reserved word in Objective C).
1614
1615 Sun Sep 14 22:33:15 1997  Peter Mattis  <pmattis@localhost>
1616
1617         * gtkwidget.c (gtk_widget_queue_resize): If the toplevel container
1618         is invisible we simply call "gtk_container_need_resize" on
1619         it. This fixes a bug with option menus not redrawing correctly.
1620
1621         * gtkmenuitem.c (gtk_menu_item_enter): (gtk_menu_item_leave):
1622         These functions now simply pass the event on to their parent. This
1623         is necessary for menus to work properly due to the change in how
1624         grabs are dealts with.
1625
1626         * gtkwindow.c (gtk_real_window_move_resize): Fixed a bug that
1627         caused the GTK_RESIZE_PENDING flag to not be unset in some cases.
1628
1629 Fri Sep  5 20:49:37 1997  Marius Vollmer  <mvo@zagadka.ping.de>
1630
1631         Bug fixes:
1632
1633         * Makefile.am: Added PATCHES to EXTRA_DIST.
1634         * gtk/gtkpixmap.c (gtk_pixmap_new): Move the "pixmap != NULL" test
1635         after the allocation of the pixmap.
1636
1637         To shut up the compiler:
1638
1639         * gtk/gtkfilesel.c (get_pwdb): Initialize home_dir.
1640         * gtk/gtkmain.c (gtk_init): Replace comments around calls to
1641         g_set_*_handler with "if (0)".
1642         * gtk/gtkrc.c (gtk_rc_get_token): Initialize hex_number and
1643         float_number.
1644         * gtk/gtkwindow.c (gtk_window_key_press_event): Initialize
1645         direction.
1646
1647         Changes to the type system in gtk/:
1648
1649         * Makefile.am: Added gtktypebuiltins.h to gtkinclude_HEADERS.
1650         Added gtk.defs, runelisp, gentypeinfo.el and gtktypebuiltins.c to
1651         EXTRA_DIST.  Added rules to generate gtktypebuiltins.* from
1652         gtk.defs.
1653
1654         * runelisp, gentypeinfo.el, gtk.defs: New files.
1655
1656         * gtkaccelerator.c, gtkaccelerator.h (gtk_accelerator_table_ref):
1657         Return the table so that this function can be used as the `copy'
1658         function for GTK_TYPE_BOXED values.
1659         * gtkstyle.c, gtkstyle.h (gtk_style_ref): Likewise.
1660
1661         * gtkenums.h: Removed GtkArgType enum.
1662
1663         * gtkmain.c (gtk_init): Call gtk_type_init to initialize the type
1664         system.
1665
1666         * gtkobject.c (gtk_object_init_type): New function to take over
1667         for gtk_object_get_type. (gtk_object_get_type): Just return the
1668         constant GTK_TYPE_OBJECT. (gtk_object_collect_args): Do the right
1669         thing for the new GTK_TYPE_* types.
1670         * gtksignal.c (gtk_params_get): Likewise.
1671
1672         * gtktypeutils.c: (gtk_type_init_builtin_types): New
1673         function. (gtk_type_init): Call it.  Also made non-static.
1674         (gtk_type_unique): The allocation scheme for numerical ids has
1675         changed: The low 8 bits hold the appropriate GtkFundamentalType of
1676         a type, the rest is a globally unique sequence number.
1677         (gtk_type_hash): Use the sequence number of a key to hash it.
1678         (gtk_type_register_builtin): New function.
1679
1680         * gtktypeutils.h: (GtkFundamentalType): New enumeration of the
1681         fundamental types. (GTK_TYPE_MAKE, GTK_FUNDAMENTAL_TYPE,
1682         GTK_TYPE_SEQNO): New macros to work with the new id scheme.
1683         (GtkArg): Added fields for new types and renamed old ones.  GtkArg
1684         should now be a mostly opaque structure, except name and type.
1685         (GTK_VALUE_*): New macros to access the values of a GtkArg.
1686         (GTK_RETLOC_*): New macros to access the location of a return
1687         value that is contained in a GtkArg.  * gtktypebuiltins.h: New
1688         file to access the typeids of the builtin types.
1689
1690         * gtkwidget.h (GTK_TYPE_WIDGET): New macro to access the type id
1691         of the widget class.
1692
1693         Thru out: Changed GTK_ARG_* to the appropriate GTK_TYPE_*.
1694         Changed access to GtkArg structure to the appropriate GTK_VALUE_*
1695         or GTK_RETLOC_* macro.  Changed GtkArgType to GtkType.  Changed
1696         some guints to GtkType.
1697
1698         General changes in gtk/ to support interpreters:
1699
1700         * gtkradiobutton.c (gtk_radio_button_new_from_widget,
1701         gtk_radio_button_new_with_label_from_widget): New functions.
1702
1703         * gtksignal.c (gtk_signal_connect_no_marshal): New function.
1704         (struct _GtkHandler): Added no_marshal and destroy_func fields.
1705         (gtk_signal_handler_new): Initialize them.
1706         (gtk_signal_connect_by_type): Added no_marshal and destroy_func
1707         arguments.  Changed all callers.
1708         (gtk_signal_destroy): Invoke destroy_func if there is one and the
1709         global destroy func does not apply.  (gtk_handlers_run): If the
1710         handler has no_marshal set, call its function directly without
1711         going thru the signal's marshaller.
1712
1713 Wed Sep  3 09:56:22 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
1714
1715         * gtkrange.c: Changed the way the range control focus was drawn so
1716         that the range control is drawn correctly when it does not have
1717         the focus.
1718
1719 Tue Sep  2 17:41:17 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
1720
1721         * gtkwidget.c: 'gtk_real_widget_queue_resize' should only remove
1722         the "resize_widgets" if another resize is not pending.
1723
1724 Mon Sep  1 18:28:08 1997  Peter Mattis  <pmattis@localhost>
1725
1726         * gtkmain.c: Changed the way GDK_DELETE events are handled. Only,
1727         if 'gtk_widget_event' returns TRUE is the widget destroyed. By
1728         default, 'gtk_widget_event' will return FALSE causing the window
1729         to not be destroyed. This prevents segfaults in the GIMP and other
1730         programs that do not correctly handle GDK_DELETE events.
1731
1732         * gtkmain.c: Added modal dialog support by allowing events
1733         destined for a child of the grab widget to go to the child instead
1734         of the grab widget. (Added 'gtk_widget_is_ancestor' to determine
1735         the relationship between the grab widget and the event widget).
1736
1737         * *.[ch]: Incorprated a whole mess of patches. (Started keeping
1738         the ChangeLog up to date again).
1739
1740 Thu Jun  5 17:22:21 1997  Peter Mattis  <pmattis@localhost>
1741
1742         * gtkmenufactory.c:
1743         * gtkmenufactory.h: Added 'gtk_menu_factory_remove_*'
1744         calls. Removing entries/paths causes the associated widgets to be
1745         destroyed.
1746
1747         * gtkwidget.c:
1748         * gtkwidget.h: Calling 'gtk_widget_set_style' is used as an
1749         indication that the programmer specifically wants that style to be
1750         used. RC-style substitution is disabled for the widget after such
1751         a call.
1752
1753         * gtkpixmap.c:
1754         * gtkpixmap.h:
1755         * gtkimage.c:
1756         * gtkimage.h: Changed to use clip mask and a single pixmap (or
1757         image) to deal with transparent areas.
1758
1759         * gdkpixmap.c: Modified xpm loading routines to optionally return
1760         a clip mask.
1761
1762         * gdkgc.c:
1763         * gdkdraw.c:
1764         * gdktypes.h: Modifications to allow clip masks to be used with
1765         gc's. Clip masks are bitmaps that specify drawable regions.
1766
1767 Thu May  1 03:11:51 1997  Peter Mattis  <pmattis@localhost>
1768
1769         * gtkscrolledwindow.c: Scrolled windows need to have the
1770         GTK_NO_WINDOW flag set. Not having it set caused an obscure
1771         redrawing bug.
1772
1773 Wed Apr 30 12:38:03 1997  Peter Mattis  <pmattis@localhost>
1774
1775         * gtkhruler.c:
1776         * gtkvruler.c: Fixed a small bug that caused the indicator to be
1777         positioned slightly off.
1778
1779 Sun Apr 27 14:28:21 1997  Peter Mattis  <pmattis@localhost>
1780
1781         * gtkmenushell.c:
1782         * gtkmenushell.h:
1783         * gtkmenu.c:
1784         * gtkmenu.h: Changes so that if a menu is popped up there is a
1785         timeout period during which a menu item will not be activated and
1786         if the mouse button is released in that period the menu will stay
1787         popped up.
1788
1789         * gtkcurve.c:
1790         * gtkcurve.h: Included curve widget courtesy of David
1791         Mosberger-Tang (davidm@azstarnet.com).
1792
1793         * gtkentry.c:
1794         * gtkentry.h: Changed "insert" and "delete" signals to
1795         "insert_text" and "delete_text" respectively. (The symbol "delete"
1796         cannot be used since it is a C++ reserved word).
1797
1798 Sat Apr 19 01:43:49 1997  Peter Mattis  <pmattis@localhost>
1799
1800         * gtkmenufactory.c: A path which ends in "<nothing>" will cause an
1801         invisible (hidden) menu entry to be created. This is useful for
1802         setting an accelerator key for which a corresponding menu entry is
1803         not desired.
1804
1805         * gtktooltips.c: Fixed some problems with destruction of the
1806         active tip widget not properly updating the tooltips data
1807         structures.
1808
1809 Fri Apr 18 15:09:45 1997  Peter Mattis  <pmattis@localhost>
1810
1811         * gtkcontainer.c:
1812         * gtklist.c:
1813         * gtkwidget.c:
1814         * gtkwidget.h: Patch from Owen Taylor (owt1@cornell.edu) which
1815         fixes problems with destruction of objects and with destruction of
1816         objects which hold the focus.
1817
1818 Thu Apr 17 11:29:15 1997  Peter Mattis  <pmattis@localhost>
1819
1820         * gtkmenushell.c: Incorrect logic in
1821         'gtk_menu_shell_button_release' for deciding when a menu should
1822         stay popped up when the mouse button is released.
1823
1824         * *.c: Miscellaneous fixes from folks on the net.
1825
1826 Tue Apr 15 02:43:17 1997  Peter Mattis  <pmattis@localhost>
1827
1828         * *.c:
1829         * gtkwidget.h: Added GTK_BASIC widget flag which when set
1830         specifies a widget as "basic". A "basic" widget is one which
1831         doesn't take input events. For example, labels, pixmaps, boxes,
1832         tables, alignments, etc.
1833
1834 Sat Apr 12 15:23:08 1997  Peter Mattis  <pmattis@localhost>
1835
1836         * gtkcolorsel.c: Add "#include <math.h>" to define M_PI.
1837
1838         * gtksignal.c: Fixed a bug in 'gtk_signal_emit' which showed up
1839         because of the new cast checking macros. The 'object' was being
1840         accessed after it had been destroyed.
1841
1842         * gtkoptionmenu.c: Fixed bug with using 'GTK_BIN' instead of
1843         'GTK_BUTTON' which showed up because of the new cast checking
1844         macros.
1845
1846         * *.h: 'GTK_CHECK_CAST', 'GTK_CHECK_CLASS_CAST' and
1847         'GTK_CHECK_TYPE' used by standard widget macros everywhere.
1848
1849 Wed Apr  9 00:54:17 1997  Peter Mattis  <pmattis@localhost>
1850
1851         * docs/gtk.texi: Started further work on documentation. Major
1852         changes and additions are being made.
1853
1854         * gtkarrow.c:
1855         * gtkarrow.h: Removed function 'gtk_arrow_get'.
1856
1857         * gtkcontainer.c: 'gtk_container_check_resize' no performs
1858         additional checking to account for the case where the containers
1859         allocation is no longer sufficient because its parent (or its
1860         parents parent, etc.) needs to resize its children.
1861
1862 Tue Apr  8 21:15:50 1997  Peter Mattis  <pmattis@localhost>
1863
1864         * gtkstyle.c: Fixed a bug in 'gtk_style_init' in which the font
1865         was not ref'd (via 'gdk_font_ref'), but was free'd (via in
1866         'gdk_font_free') in 'gtk_style_destroy'. (David
1867         Mosberger-Tang). Also cleaned up 'gtk_style_destroy' while I was
1868         at it.
1869
1870         * gtkmain.c: Fixed a bug in 'gtk_propogate_event' which caused
1871         entry widgets (and probably other widgets) not to be destroyed in
1872         some instances.
1873
1874 Mon Apr  7 01:20:38 1997  Peter Mattis  <pmattis@localhost>
1875
1876         * gtkentry.c:
1877         * gtkentry.h: Changed the "insert_text", "delete_text" and
1878         "changed_text" signals to "insert", "delete", and "changed"
1879         respectively. They really should have been named this way
1880         originally except the previous signal mechanism prevented
1881         duplicate signal names. ("changed" is also used by adjustments).
1882
1883         * gtkradiomenuitem.c:
1884         * gtkradiomenuitem.h: New widget.
1885
1886         * gtkcheckmenuitem.c:
1887         * gtkcheckmenuitem.h: New widget.
1888
1889         * gtksignal.c: Modified 'gtk_signal_lookup' to require an object
1890         type to be passed as a parameter. In addition, signals are now
1891         only needed to be uniquely defined in their branch of the class
1892         hierarchy. This allows the same signal name to be used in two
1893         different branches of the class hierarchy. For instance, the
1894         "changed" signal is used both by adjustments and entries...in
1895         different ways!
1896
1897         * gtktypeutils.c: Added 'gtk_type_parent' which returns the parent
1898         type for a given type.
1899
1900 Sun Apr  6 22:08:35 1997  Peter Mattis  <pmattis@localhost>
1901
1902         * gtkwidget.c: If a widget is set insensitive it loses the focus
1903         if it had it.
1904
1905         * gtkcontainer.c: Insensitive widgets no longer participate in tab
1906         traversal.
1907
1908         * gtkscrolledwindow.c: The "viewport" child is now destroyed and a
1909         container class "foreach" function was written (which fixes the
1910         sensitivity bug).
1911
1912 Sat Apr  5 14:25:38 1997  Peter Mattis  <pmattis@localhost>
1913
1914         * gtkhscrollbar.c:
1915         * gtkvscrollbar.c: Fixed trough size allocation bug.
1916
1917         * gtkhscale.c:
1918         * gtkvscale.c: Fixed trough size allocation and position bug that
1919         showed up when scales were placed in notebooks.
1920
1921 Thu Mar 27 17:45:54 1997  David Mosberger-Tang  <davidm@azstarnet.com>
1922
1923         * gtk/gtkmain.c (gtk_handle_idle): Fix appending pending_idles to
1924         idle_functions so it works even when idle_functions is empty.
1925
1926 Sat Mar 15 14:15:59 1997  Peter Mattis  <pmattis@localhost>
1927
1928         * *.[ch]: Moved '*_class_init' and '*_init' function declarations
1929         for widgets into the source file as those functions no longer had
1930         to be public.
1931
1932         * gtkcheckbutton.c: Fixed redrawing of check button.
1933
1934         * gtkframe.c: Fixed redrawing of frame when the shadow type is
1935         changed.
1936
1937 Sat Mar  8 15:19:23 1997  Peter Mattis  <pmattis@localhost>
1938
1939         * gdkimage.c: Fixed a stupid bug with 'gdk_image_new' which
1940         potentially added a NULL image to "image_list" and caused problems
1941         when 'gdk_image_exit' was called.
1942
1943 Wed Mar  5 00:40:08 1997  Peter Mattis  <pmattis@localhost>
1944
1945         * gtkpreview.c: Massively changed the colormap handling used by
1946         the preview widget. Gray previews are now dithered. A single
1947         visual and colormap is shared by the color and gray previews. A
1948         GTK_PREVIEW_INFO property is installed on the root window in
1949         certain cases to allow multiple GTK programs to share the system
1950         colormap.
1951
1952 Sun Mar  2 05:43:06 1997  Peter Mattis  <pmattis@localhost>
1953
1954         * gtkcheckbutton.c: 'gtk_checkbutton_size_allocate' was allocating
1955         too much space to its children and not leaving the check button
1956         room for the focus border.
1957
1958         * gtknotebook.c: 'gtk_notebook_size_request' wasn't requesting
1959         enough space when the notebook tabs are visible.
1960
1961 Sat Mar  1 01:59:35 1997  Peter Mattis  <pmattis@localhost>
1962
1963         * gtkpreview.c: Fixed a problem with 'gtk_preview_put' when the
1964         image byte order is GDK_MSB_FIRST.
1965
1966         * gtksignal.c:
1967         * gtksignal.h: Added 'gtk_signal_connect_after' and
1968         'gtk_signal_connect_object_after' functions. These connect signal
1969         handlers which will run after the class function associated with
1970         the signal.
1971
1972         * gtkstyle.c: Fixed a stupid bug in 'gtk_style_new_from_key' that
1973         was causing twice as many styles to be created as necesary.
1974
1975         * gtkwidget.c: 'gtk_real_widget_size_allocate' erases the widgets
1976         old allocation if it has the GTK_NO_WINDOW flag set.
1977
1978         * gtkwidget.c: 'gtk_real_widget_unmap' now erases the widget if it
1979         has the GTK_NO_WINDOW flag set.
1980
1981         * gtklabel.c: Removed 'gtk_label_unmap' as similar functionality
1982         was added to gtk_real_widget_unmap.
1983
1984         * gtkbin.c: Modified 'gtk_bin_map' and 'gtk_bin_unmap' so that it
1985         erases and draws the widget if it has the GTK_NO_WINDOW flag set.
1986
1987         * gtkframe.c: Modified 'gtk_frame_size_allocate' so that it erases
1988         the old allocation.
1989
1990 Fri Feb 28 03:27:05 1997  Peter Mattis  <pmattis@localhost>
1991
1992         * gtkwindow.c: 'gtk_window_set_title' now changes the window title
1993         if the window is already realized.
1994
1995         * gtkentry.c: 'gtk_entry_set_text' was emitting both a
1996         "delete_text" and a "changed_text" signal. Modified so that it
1997         only emits a "changed_text" signal.
1998
1999         * gtkpreview.c: Modified to work correctly on systems with MSB
2000         byte order. The colormap for TRUE and DIRECT color displays is now
2001         created if the default visual is not equal to the visual we are
2002         using.
2003
2004         * gtkstyle.c: 'gtk_style_attach' and 'gtk_style_find' weren't
2005         working properly in the presence of multiple colormaps are
2006         different depth visuals.
2007
2008         * gtkcontainer.c: Massively improved focus traversal using tab and
2009         arrow keys. It now uses the layout of the widgets to determine
2010         where to move the focus to.
2011
2012 Mon Feb 24 03:24:02 1997  Peter Mattis  <pmattis@localhost>
2013
2014         * gtkmenufactory.c: Set the accelerator table field for menus when
2015         they are created.
2016
2017         * gtkmenu.c:
2018         * gtkmenu.h: Added a default accelerator table field to menus so
2019         that runtime modification of accelerator keys in menus can work
2020         better.
2021
2022         * gtkrange.c: 'gtk_range_default_{h,v}motion' had faulty logic for
2023         deciding what to do when the slider was at the edge of the
2024         trough. They previously didn't update the adjustment value event
2025         if the value wasn't what it should be when the slider was at the
2026         edge of the trough.
2027
2028         * gtkviewport.c: 'gtk_viewport_size_allocate' and
2029         'gtk_viewport_adjustment_value_changed' both had the potential for
2030         performing a divide by 0. Checks are now in place to prevent this.
2031
2032         * gtkmenu.c: 'gtk_menu_map' now makes sure the menu lies on screen
2033         if the position function is NULL.
2034
2035         * gtkentry.c: Modified selection handling. 'gtk_delete_selection'
2036         actually removes the X selection now. 'gtk_entry_destroy' removes
2037         the selection as well and relies on the change in "gdk.c" to make
2038         sure the selection event will not be sent to a non-existant
2039         window.
2040
2041         * gdk.c: Selection events are only passed on if the selection
2042         owner is not NULL.
2043
2044         * gtkstyle.c: 'gtk_style_detach' and 'gtk_style_destroy' were not
2045         destroying the black and white gc's.
2046
2047 Sun Feb 23 19:17:56 1997  Peter Mattis  <pmattis@localhost>
2048
2049         * gtkwindow.c: 'gtk_window_size_request' was setting the window
2050         hints. This was also being done in 'gtk_window_map', so the
2051         instance being done in 'gtk_window_size_request' was removed.
2052
2053 Fri Feb 21 01:04:01 1997  Peter Mattis  <pmattis@localhost>
2054
2055         * gtkwidget.c: 'gtk_widget_draw' has to use the widgets allocated
2056         position for the drawing rectangle when the widget has the
2057         GTK_NO_WINDOW flag set.
2058
2059         * gtkwidget.c: In 'gtk_widget_init' the visual and colormap were
2060         being directly compared against 'default_visual' and
2061         'default_colormap' instead of calling
2062         'gtk_widget_get_default_{visual,colormap}'.
2063
2064         * gdkrectangle.c: Amazing! There was a bug in the
2065         'gtk_rectangle_intersect' logic. Its been there for near eternity
2066         and I never noticed.
2067
2068         * gtkpreview.c:
2069         * gtkpreview.h: Created preview widget which allows drawing to an
2070         rgb or grayscale buffer which is automatically displayed on the
2071         screen. Performs dithering as necessary.
2072
2073 Thu Feb 20 20:33:21 1997  Peter Mattis  <pmattis@localhost>
2074
2075         * gdkwindow.c: Modified the logic in 'gdk_window_new' which
2076         determined when to add a window to the WM_COLORMAP_WINDOWS
2077         property.
2078
2079 Wed Feb 19 19:55:29 1997  Peter Mattis  <pmattis@localhost>
2080
2081         * gtkruler.c: 'gtk_ruler_make_pixmap' was always destroying the
2082         old backing store and creating a new one even when it would create
2083         a new one of exactly the same size as the old one.
2084
2085 Tue Feb 18 18:32:10 1997  Peter Mattis  <pmattis@localhost>
2086
2087         * gmem.c: 'g_mem_chunk_alloc' was incorrectly modifying the mem
2088         areas free mem field when reallocating a previously freed
2089         atom. This caused a fairly severe memory leak.
2090
2091         * gtkmenushell.c: 'gtk_menu_shell_button_release' had a bug in the
2092         logic for deciding whether to initiate an X pointer grab or not
2093         when the mouse button was released. It now only initiates a grab
2094         if the mouse is released within an active menu item.
2095
2096 Fri Feb 14 00:57:40 1997  Peter Mattis  <pmattis@localhost>
2097
2098         * gtknotebook.c: Changed the look of notebook tabs slightly.
2099
2100         * gtkentry.c:
2101         * gtkentry.h: Deleting an entry widget which is holding the X
2102         selection presents some difficulties. The X selection must be
2103         released, but the widget can't be destroyed until the
2104         SELECTION_CLEAR event is received that the X server will send in
2105         response to clearing the X selection. There are probably still
2106         bugs in the current method of entry widget deletion when the X
2107         selection is held.
2108
2109         * gtkmain.c: 'gtk_propagate_event' was not properly destroying the
2110         toplevel window when receiving a key press event.
2111
2112         * gtkwidget.c: Setting a widget insensitive did not cause it to
2113         redraw. It now does.
2114
2115 Thu Feb 13 16:59:07 1997  Peter Mattis  <pmattis@localhost>
2116
2117         * gtkviewport.c: 'gtk_viewport_size_allocate' was allocating its
2118         child widget an adjusted allocation. Since the actual scrolling
2119         has handled by a subwindow this caused the child to be double
2120         scrolled. Modified to always set the child allocations origin to
2121         (0, 0).
2122
2123 Wed Feb 12 01:06:48 1997  Peter Mattis  <pmattis@localhost>
2124
2125         * gtkentry.c: Text is now centered vertically. Previously it was
2126         pushed up against the top. This problem was only evident when the
2127         widget was allocated more vertical space than it requested.
2128
2129         * gtkfilesel.c: 'gtk_file_selection_key_press' was previously only
2130         a stub for tab completion. The actual tab completion call had been
2131         left out. (Oops!)
2132
2133 Tue Feb 11 01:43:08 1997  Peter Mattis  <pmattis@localhost>
2134
2135         * gtksignal.c: 'gtk_signal_disconnect_by_data' was going into a
2136         loop and crashing. Bad logic. Fixed.
2137
2138         * gtkmain.c: An idle function which returns FALSE will be removed
2139         from the list of idle functions. This makes the functioning of
2140         idle functions and timeouts more similar.
2141
2142         * gtkentry.c: 'gtk_entry_get_text' now returns an empty string
2143         when the actual text is NULL. This allows "stupid" programs to use
2144         the value returned by 'gtk_entry_get_text' blindly (without
2145         checking to see if its NULL).
2146
2147         * gtkradiobutton.c: Modified 'gtk_radio_button_clicked' so that
2148         'gtk_toggle_button_toggled' is called _after_ the widget state is
2149         changed.
2150
2151         * gtksignal.c:
2152         * gtksignal.h: Added 'gtk_signal_name' which returns the character
2153         string name for a given signal number.
2154
2155         * gtkwidget.c: 'gtk_widget_set_parent' checks to see if the widget
2156         is now "anchored" through the parent chain to a widget which is
2157         GTK_ANCHORED. If it is, then it changes the widgets style using
2158         'gtk_rc_get_style' and recursively performs the same operation on
2159         the widgets children. This is necessary is 'gtk_rc_get_style' only
2160         works properly on "anchored" widgets.
2161
2162         * gtkwindow.c: Modified GTK_WIN_POS logic so that it is only used
2163         immediately after the window has been shown.
2164
2165         * gtkmenu.c: 'gtk_menu_key_press'. Can now change menu item
2166         accelerator keys on the fly. Why? Why not. Cool/useless feature of
2167         the day.
2168
2169         * gtkmenuitem.c: Accelerator key drawing. Somehow that never got
2170         finished. (Oops!)
2171
2172         * gtkdrawingarea.c: 'gtk_drawing_area_size_allocate' was not
2173         actually installed during 'gtk_drawing_area_class_init'. (Oops!)
2174
2175         * gtkframe.c: 'gtk_frame_size_request' fixed size requisition
2176         problem caused by unsigned arithmetic.
2177
2178         * gtkwindow.c: Modified window widget so that it only uses the
2179         widget uposition auxiliary information immediately after it has
2180         been shown. This prevents the annoying bug which can cause a
2181         uposition'ed window to jump back to its original position after
2182         the user moves it.
2183
2184         * gtkwidget.c: Need to ref and unref style in
2185         'gtk_widget_{push,pop}_style' to make sure that a style on the
2186         style stack is not destroyed.
2187
2188         * gtktogglebutton.c: 'gtk_toggle_button_set_state' now calls
2189         gtk_button_clicked to actually change the state of the
2190         button. In this way, radio buttons can now perform the appropriate
2191         actions when the toggle button state is set.
2192
2193 Mon Feb 10 00:27:39 1997  Peter Mattis  <pmattis@localhost>
2194
2195         * gtklist.c: 'gtk_list_select_item' and 'gtk_list_unselect_item'
2196         were casting a GList* variable to a a GtkWidget* variable. Bad bad
2197         bad. (Tim Janik).
2198
2199         * gtksignal.c: Modified 'gtk_signal_connect' and
2200         'gtk_signal_connect_object' to warn when a signal type cannot be
2201         found.
2202
2203 Sun Feb  9 00:15:30 1997  Peter Mattis  <pmattis@localhost>
2204
2205         * gtkoptionmenu.c:
2206         * gtkoptionmenu.h: Changed option menus back to being derived from
2207         buttons. This fixes up some screwiness with their user
2208         interaction.
2209
2210         * gtkwindow.c: Modified key press handler to support focus
2211         traversal.
2212
2213         * gtkcontainer.c:
2214         * gtkcontainer.h: Added default focus traversal back in.
2215
2216 Sat Feb  8 10:44:38 1997  Peter Mattis  <pmattis@localhost>
2217
2218         * gtkviewport.h:
2219         * gtkviewport.c: Massively sped up viewport scrolling. Used to be
2220         reallocating child's size (offset) each time a scrollbar
2221         moved. Now a subwindow is moved. All the children are moved
2222         automatically by moving the subwindow. Much much much faster.
2223
2224 Tue Feb  4 00:20:44 1997  Peter Mattis  <pmattis@localhost>
2225
2226         * gtree.c: Changed 'g_tree_node_search' to use a loop instead of
2227         recursion.
2228
2229 Mon Feb  3 11:30:03 1997  Peter Mattis  <pmattis@localhost>
2230
2231         * gtkbutton.c: Removed 'parent_destroy' global and replaced it
2232         with 'parent_class' global to reflect style used in other
2233         widgets.
2234
2235         * gtknotebook.c: Tab labels were being allocated less than their
2236         requested size.
2237
2238         * gtkrange.c:
2239         * gtkrange.h: Moved the "digits" field of scales into the range
2240         type. The adjustment value for scales is truncated to the number
2241         of visible digits instead of being left untouched.
2242
2243         * gtree.c: Fixed a bug in the AVL tree implementation. Single
2244         rotations were always being performed during insertion. It is
2245         sometimes necessary to perform a double rotation.
2246
2247         * gtklabel.c: Modified 'gtk_label_expose' to only draw the label
2248         when the allocated space is greater than or equal to the requested
2249         space.
2250
2251         * gtklabel.c: Added call to 'gtk_widget_unmap' to
2252         'gtk_label_destroy' in order for the label to redraw correctly
2253         (erase itself) when destroyed.
2254
2255         * gtklabel.c: Added 'gtk_label_unmap' call which erases the labels
2256         allocation when it gets unmapped.
2257
2258         * *.h: Removed a few remaining instances of using "class" as a
2259         parameter name. (Causes problems for C++).
2260
2261 Fri Jan 31 12:26:50 1997  Peter Mattis  <pmattis@localhost>
2262
2263         * gtkcontainer.c: 'gtk_container_enable_resize' needs to call
2264         'gtk_container_check_resize' instead of
2265         'gtk_container_need_resize'.
2266
2267         * gtkwidget.c: 'gtk_real_widget_show' now maps the widget if its
2268         parent is mapped.
2269
2270         * gtkscrolledwindow.c: Fixed size allocation when the scrollbar
2271         policy's are GTK_POLICY_AUTOMATIC. Doing it correctly is harder
2272         than I originally thought.
2273
2274         * gtklist.c: Added 'gtk_list_child_position' to determine the
2275         integer position in a list of a child. Filled in the
2276         'gtk_list_item_select' and 'gtk_list_item_unselect' stubs.
2277
2278 Thu Jan 30 16:08:06 1997  Peter Mattis  <pmattis@localhost>
2279
2280         * gmem.c: Changed the implementation of G_ALLOC_AND_FREE mem
2281         chunks. They used to allocate SIZEOF_VOID_P extra bytes per atom
2282         in order to keep track of which mem area they were allocated
2283         from. Now the mem area is determined by searching through an AVL
2284         tree of the mem areas for a mem chunk and comparing memory
2285         locations. A little slower, but makes G_ALLOC_AND_FREE mem chunks
2286         much more attractive.
2287
2288         * gtree.c: Added an AVL tree implementation to glib.
2289
2290         * gtksignal.c:
2291         * gstring.c: va_arg (arg_list, {char, short}) is
2292         invalid. Arguments passed in a variable argument list are
2293         promoted. ({char, short}->int). Seemed to work ok before under
2294         Linux. Crashed under FreeBSD.
2295
2296 Tue Jan 28 02:27:51 1997  Peter Mattis  <pmattis@localhost>
2297
2298         * gdkwindow.c: Fixed a major slowdown apparent in the file
2299         selection dialog which was caused by calling
2300         'gtk_window_add_colormap_windows' way way way too often.
2301
2302         * *.c: Many widgets called 'gtk_container_need_resize' when
2303         something internal changed which would cause the widget to grow or
2304         shrink. The assumption was made that the widget would change size
2305         and an expose event would be generated. This happens "most" of the
2306         time. But its possible for certain widgets to change size without
2307         generating expose events, or for its internal geometry to change
2308         without a change of size which would mean no expose event was
2309         generated. So a wrapper function called
2310         'gtk_container_check_resize' was created and
2311         'gtk_container_need_resize' was modified so that it returns FALSE
2312         if a resize was actually generated and TRUE if nothing
2313         changed. This allows 'gtk_container_check_resize' to initiate a
2314         'gtk_widget_size_allocate' and 'gtk_widget_draw' to emulate the
2315         expose event.
2316
2317 Sat Jan 25 14:17:44 1997  Peter Mattis  <pmattis@localhost>
2318
2319         * gtkmain.c: Fixed a bug with propogating key press events. The
2320         events were sent 2 times to the toplevel windows which caused the
2321         focus widget to be activated twice when the space bar was pressed.
2322
2323         * */configure.in:
2324         * */Makefile.am: Added support for libtool and removed the old
2325         shared library configuration craziness.
2326
2327 Fri Jan 24 12:59:22 1997  Peter Mattis  <pmattis@localhost>
2328
2329         * gtktext.c:
2330         * gtktext.h: Josh's fixes and additions to the text widget.
2331
2332         * gtkfill.c:
2333         * gtkfill.h: Filler widget useful for filling space in a
2334         table. Can specify a minimum size. Used by the canvas widget.
2335
2336         * gtknotebook.c:
2337         * gtknotebook.h: Made outline of notebook widget.
2338
2339         * gtkcanvas.c:
2340         * gtkcanvas.h: Started canvas widget. A composite of 2 rulers (w/
2341         an origin), 2 scrolllbars. Guides, grids, snap to.
2342
2343 Sun Jan 19 18:26:45 1997  Peter Mattis  <pmattis@localhost>
2344
2345         * gtkdialog.c:
2346         * gtkdialog.h: Created dialog widget which creates a standard
2347         looking dialog with buttons along the button and a separator.
2348
2349         * gtkxid.c: Generalized the window table code for looking up a gdk
2350         window based on an XID to work for any XID and a piece of
2351         data. Can now look up gdk fonts based on their XID.
2352
2353         * gtkruler.c:
2354         * gtkruler.h:
2355         * gtkhruler.c:
2356         * gtkhruler.h:
2357         * gtkvruler.c:
2358         * gtkvruler.h: Started conversion of the ruler widget.
2359
2360         * gtktext.c:
2361         * gtktext.h: Started conversion of the text widget. Scrolling
2362         doesn't work.
2363
2364         * gtkmain.c: Fixed a fairly major bug. The event widget needs to
2365         be in a call for the entire duration of handling an event. Not
2366         just for when the event widget itself is handling the event.
2367
2368         * gtkfilesel.c: Fixed up some bugs with resizing.
2369
2370 Fri Jan 10 14:18:03 1997  Peter Mattis  <pmattis@localhost>
2371
2372         * gtkwidget.c:
2373         * gtkwidget.h:
2374         * gtkentry.c:
2375         * gtkentry.h: Support for selections.
2376
2377         * gdkselection.c:
2378         * gdk.c:
2379         * gdktypes.h:
2380         * gdk.h: Gdk support for X selections. Currently only text
2381         selections are supported.
2382
2383         * gtksignal.c: Fixed a major bug which occurred when destroying an
2384         object. Memory was being written to after it was freed.
2385
2386         * gtkfilesel.c:
2387         * gtkfilesel.h: Hooked up more functionality to the file selection
2388         dialog.
2389
2390 Wed Jan  8 18:13:53 1997  Peter Mattis  <pmattis@localhost>
2391
2392         * gtkfilesel.c:
2393         * gtkfilesel.h: Mostly converted old file selection dialog
2394         widget. The widget is derived from the GtkWindow class and is
2395         quite a bit simpler in the widget code.
2396
2397         * gtkwidget.c: Fixed 'gtk_widget_grab_focus' and
2398         'gtk_widget_grab_default' to check that the toplevel widget is a
2399         type of window (which includes classes derived from windows).
2400
2401 Tue Jan  7 01:12:32 1997  Peter Mattis  <pmattis@localhost>
2402
2403         * gtkwindow.c: Was calling 'gtk_window_resize' twice in a
2404         row...why?
2405
2406         * gtksignal.c:
2407         * gtksignal.h:
2408         * *.c: Changed 'gtk_signal_new' so that the class function that is
2409         called when the signal is emitted can be called either before,
2410         after or both before and after the calling of any signal
2411         handlers.
2412
2413         * gtkobject.c:
2414         * gtkobject.h: Added 'object_data' mechanism for storing data
2415         associated with a character string key in objects. Removed
2416         'user_data' field of objects and changed
2417         'gtk_object_{get,set}_user_data' to use the object data
2418         mechanism. Removed 'handlers' field of objects.
2419
2420         * gtkwidget.c:
2421         * gtkwidget.h:
2422         * gtkwindow.c: Modified aux info mechanism to use object data
2423         mechanism.
2424
2425         * gtksignal.c: Modified signal mechanism to use object data
2426         mechanism instead of 'handlers' field.
2427
2428
2429 Mon Jan  6 15:10:16 1997  Peter Mattis  <pmattis@localhost>
2430
2431         * gtkmenushell.c: Fixed up button press handling so as to conform
2432         more closely to that used by Motif.
2433
2434 Wed Jan  1 21:27:17 1997  Peter Mattis  <pmattis@localhost>
2435
2436         * gtkmenu.c:
2437         * gtkmenu.h:
2438         * gtkmenubar.c:
2439         * gtkmenubar.h:
2440         * gtkmenushell.c:
2441         * gtkmenushell.h: Reorganization of menu-ing code so that code
2442         duplication is reduced. The menu shell now contains most of the
2443         code for menu-ing interaction while menus and menubars simply layout
2444         their child menu items in the appropriate place.
2445
2446 Sun Dec 29 17:48:18 1996  Peter Mattis  <pmattis@localhost>
2447
2448         * gtkmenu.c:
2449         * gtkmenubar.c:
2450         * gtkmenuitem.h:
2451         * gtkmenuitem.c: Modifications so that menu item accelerators and
2452         the submenu indicator are drawn correctly and the correct amount
2453         of space is allocated.
2454
2455 Sat Dec 28 00:32:13 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
2456
2457         * gtkmenufactory.h:
2458         * gtkmenufactory.c: Started menu factories as an easy method to
2459         create and manipulate menus.
2460
2461 Fri Dec 27 13:17:34 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
2462
2463         * gtkmenu.c:
2464         * gtkmenu.h:
2465         * gtkmenubar.c:
2466         * gtkmenubar.h:
2467         * gtkmenuitem.c:
2468         * gtkmenuitem.h:
2469         * gtkmenushell.c:
2470         * gtkmenushell.h: Implemented basic menu functionality. Menubars
2471         and popup menus work. Submenus work. (Much left to be done).
2472
2473 Wed Dec 18 15:27:05 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
2474
2475         * gtktypeutils.h:
2476         * gtktypeutils.c: Added 'gtk_type_from_name' which returns a type
2477         identifier given a type name. Implemented using a second hash
2478         table keyed by type names.
2479
2480         * gtkbutton.c:
2481         * gtktogglebutton.c: Fixed very small messed-up drawing bug when a
2482         button loses its focus.
2483
2484         * gtkwidget.h:
2485         * gtkwidget.c:
2486         * gtkbutton.c:
2487         * gtkwindow.c: Added default button handling. Default buttons now
2488         draw correctly and pressing return or enter causes the default
2489         button (if one exists) to be activated.
2490
2491 Tue Dec 17 19:32:21 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
2492
2493         * gtkhscale.c:
2494         * gtkvscale.c: Overrode 'draw_slider' method of ranges in order to
2495         draw the slider of scales with a line in them so as to be closer
2496         to the Motif look-and-feel.
2497
2498         * gtkwindow.c: Modified 'gtk_window_focus_in_event' so that focus
2499         in events are only handled when the window is visible. Fixes a bug
2500         where spurious focus in events get sent when a window is being
2501         hidden.
2502
2503         * gtkwidget.h: Added 'activate_signal' field to the GtkWidgetClass
2504         structure. Added 'gtk_widget_activate' call to emit the activate
2505         signal for a widget if it is non-zero.
2506
2507 Tue Dec 10 15:59:45 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
2508
2509         * gtkwidget.c: 'gtk_widget_set_name' oops in strdup'ing the old
2510         "widget->name" instead of the new one we are setting.
2511
2512         * gtkrc.c: 'gtk_rc_widget_path' changed to use
2513         'gtk_widget_get_name' instead of accessing the "widget->name"
2514         field directly.
2515
2516         * gtkwidget.c: Added 'gtk_widget_get_name' function which returns
2517         the widgets name if it exists and the widgets type name if it does
2518         not.
2519
2520         * gtkcheckbutton.c: Added 'gtk_check_button_draw'
2521         function. Modified 'gtk_check_button_expose' to pass an expose
2522         event to child instead of callings its draw function.
2523
2524         * gtkentry.c: 'gtk_entry_draw_text' why was "+1" being added to
2525         the font->ascent to calculate the font position? This was wrong
2526         and caused some characters in fonts to be clipped. (Notably "g").
2527
2528         * gtkentry.c: 'gtk_entry_realize' specify GTK_BUTTON1_MOTION_MASK
2529         and GTK_POINTER_MOTION_HINT_MASK for _both_ windows.
2530
2531         * gtkmain.c: 'gtk_propagate_event' needs to set the GTK_IN_CALL
2532         flag for the object before calling 'gtk_widget_event' and needs to
2533         destroy the object if necessary after 'gtk_widget_event' returns.
2534
2535         * gtkradiobutton.c: 'gtk_radio_button_clicked' needs to call
2536         'gtk_toggle_button_toggled' when the currently active button is
2537         toggled.
2538
2539         * gtkwidget.c: 'gtk_real_widget_hide' needs to call
2540         'gtk_widget_unmap' if the widget is currently mapped.
2541
2542         * gtkwindow.c: Prevent automatic resizing after the user has
2543         specified a new window size. Add 'handling_resize' flag to
2544         windows.
2545
2546         * gtkscrolledwindow.c: Implement the GTK_POLICY_AUTOMATIC
2547         scrollbar policy. Need to connect to the adjustments 'changed'
2548         signal and notice when the scrollbars aren't in use.
2549
2550         * gtkcontainer.c: 'gtk_container_init' must set 'auto_resize' and
2551         'need_resize' fields to TRUE and FALSE respectively.
2552
2553         * gtkwidget.c: 'gtk_widget_set_parent' must all set a widgets state
2554         to its parents state.
2555
2556 Sun Dec  1 01:31:01 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
2557
2558         * Started ChangeLog