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