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