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