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