]> Pileus Git - ~andy/gtk/blob - ChangeLog.pre-2-8
6a6840b598c70669d95615529f7a85f561283fda
[~andy/gtk] / ChangeLog.pre-2-8
1 Sat Jan  9 20:52:00 PST 1998 Ian Main <imain@gimp.org>
2         * gtk/gtkfilesel.c:  Changed a few tests in the path correcting
3                 function.  Hopefully this helps the filesel stability.
4
5 Fri Jan  8 00:55:00 PST 1998 Jay Painter <jpaint@serv.net>
6         * gtk/gtkclist.c:
7         * gtk/gtkclist.h: modifications to GtkCList so it's look and 
8         feel is the same as scrolled windows.
9
10 Thu Jan  8 17:56:09 PST 1998 Manish Singh <yosh@gimp.org>
11
12         * glib/gscanner.c
13         * gtk/gtclist.c
14         * config.h.in
15         * configure.in: added test for inline and put the inline keywords
16         back in
17
18         * gtk/gtklabel.c: made the prototypes match the definitions
19
20         * gtk/fnmatch.c: minor change to make sure the right config.h
21         gets included
22         
23 1998-01-07  Elliot Lee  <sopwith@localhost.cs.cuc.edu>
24
25         * gtk/gtkcombobox.c gtk/gtkcombobox.h: New widget, GtkComboBox
26         * gdk/gdkwindow.c: Make gdk_window_init set the width &
27                 height of gdk_root_parent
28
29 Wed Jan  7 18:06:17 PST 1998 Manish Singh <yosh@gimp.org>
30
31         * gtk/gtkentry.c:
32         * gtk/gtkentry.h: applied patch to use a backing pixmap for
33         drawing, which removes the bad flickering. (gtk-wille-980106-0)
34
35 Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
36
37         * glib/glib.h
38         * glib/glist.c
39         * glib/gslist.c
40         * glib/testglib.c: Added g_[s]list_insert_sorted function
41         and appropriate tests in testglib
42
43 Tue Jan  6 17:07:29 1998  Owen Taylor  <owt1@cornell.edu>
44         * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c : 
45            Fixed problem with deleting while text is selected.
46            Changed behavior so that motion keys remove selection.
47            Added new gtk_entry_select_region () call.
48
49 Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
50         * glib/glib.h: Changed guint32 -> guint for bitfields. 
51           (Bitfields must be int or unsigned int?)
52
53 Sat Jan  3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
54         * gtk/testgtk.c: better CList test
55
56 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
57
58         * gtk/gtkscrolledwindow.c: initialize scrollbar_spacing
59           (gtk-fortier-980103-0)
60
61 Sat Jan  3 10:15:08 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
62
63         * configure.in: fixed a typo (no_xext_lib, not no_ext_lib).
64
65 Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
66
67         * gtk/gtkentry.c:
68         * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
69         fixed-length entry fields (gtk_entry_new_with_max_length)
70         
71 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
72         * reverted glibconfig.h and glib.h files back to the
73         way they were before my ugly hack
74         * gtk/gtkclist.c:
75         * glib/gscanner.c: removed inlines from clist and gscanner
76
77 Fri Jan  2 23:55:24 CST 1998 Shawn T. Amundson <amundson@gimp.org>
78
79         * Several portability fixes from Michael Callahan 
80           <callahan@xmission.com> including adding in missing
81           #includes and adding void in function prototypes.
82
83 Fri Jan  2 19:28:52 1988 Jay Painter <jpaint@serv.net>
84         * gtk/gtkclist.h:
85         * gtk/gtkclist.c:
86         * gtk/gtk.h:
87         * gtk/testgtk.c:
88         * gtk/testgtkrc: added GtkCList, column list widget, and a small test
89         to testgtk
90
91 Fri Jan  2 15:42:51 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
92
93         * gtk/gtkmain.c (gtk_main_iteration): Make the big switch handle
94         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.
95
96 Fri Jan  2 12:07:33 CST 1998 Shawn T. Amundson <amundson@gimp.org>
97
98         * gtk/gtkviewport.c: corrects a small resize bug in the 
99           viewport widget.  The viewport widget provides a _set_shadow 
100           function to draw its shadows. But if GTK_SHADOW_NONE is sent 
101           to this function, the viewport isn't resized correctly (it's 
102           still considered as a shadowed widget).  (gtk-fortier-971213-0)
103
104         * gtk/gtknotebook.c: this patch fixes the redraw problems of 
105           notebook tabs, without using gdk_gc_set_clip_rectangle.
106           (gtk-hamann_jeske-971218-0)
107  
108         * add gtk_widget_(show/hide)_all (Stefan Wille)
109           (gtk-wille-301297-0)  Patch for testgtk not included
110           because it did not patch clean.  
111
112 Thu Jan  1 21:21:56 PST 1998 Manish Singh <yosh@gimp.org>
113
114         * configure.in: fixed up the xinput test
115         * Miscellaneous portability fixes.
116
117 Mon Dec 29 22:05:45 1997  Miguel de Icaza  <miguel@nuclecu.unam.mx>
118
119         * gdk/gdkgc.c (gdk_gc_copy): New function, used to copy the values
120         from one gc to another gc.
121
122 Sat Dec 27 20:39:99 1997  Elliot Lee <sopwith@redhat.com>
123         * gtk/gtkhandlebox.c: It mostly works now, please test it and make
124         fixes as needed.
125
126 Fri Dec 26 11:20:03 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
127
128         * gtk/Makefile.am (gtkinclude_HEADERS): added gtkhandlebox.c
129
130         * gtk/gtkhandlebox.c (gtk_handle_box_reparent): eliminated a
131         compiler warning caused by not casting an argument in a debugging
132         message. :)
133
134 Fri Dec 26 02:59:39 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
135
136         * gdk/gdktypes.h gdk/gdk.c gdk/gdkwindow.c: Added new
137         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.  They are needed
138         for Alan Cox's TV widget and for GtkXmHTML.  Only missing with
139         respect to their Xlib counterparts are the major_code and
140         minor_code fields from the GdkEventNoExpose structure.  Does
141         anyone need them?
142
143 Tue Dec 23 03:03:17 1997  Tim Janik  <timj@psynet.net>
144
145         * gtk/gtkscrolledwindow.c (SCROLLBAR_SPACING): this macro computes
146         the spacing from klass->scrollbar_spacing now. adapted all functions
147         that used this macro (based on a patch from Patrice Fortier).
148         * gtk/gtkscrolledwindow.h (struct _GtkScrolledWindowClass): added
149         scrollbar_spacing to substitute a define (patch from Patrice Fortier).
150
151         * gtk/gtkrc.h (gtk_rc_parse_string): new function.
152         * gtk/gtkrc.c: many functions adapted to use GScanner for scanning.
153         (gtk_rc_parse): use gtk_rc_parse_any for parsing.
154         (gtk_rc_parse_string): new function to support parsing from
155         strings, just calls gtk_rc_parse_any.
156         (gtk_rc_parse_any): new function using GScanner as lexer.
157
158 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
159
160         * GDK support for 1 bpp depth screens.
161
162 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
163
164         * Changes from Bolliet Jerome <bolliet@in2p3.fr> to gtktree.
165           Corrects a bug in gtk_tree_remove_items and gtk_tree_item_destroy.
166           Adds the possibility to connect all items by lines. This is the 
167           default now.  You can overide this with the function 
168           gtk_tree_set_view_line which take a tree and a boolean.
169
170 Thu Dec 18 23:26:49 CST 1997 Shawn T. Amundson <amundson@gimp.org>
171
172         * removed configure, Makefile.in, and aclocal.m4 files
173
174 Wed Dec 17 23:36:57 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
175
176         * gdk/gdkcc.c (gdk_color_context_free): Caught a stray
177         gdk_colormap_destroy that Owen missed (and Shawn found).
178
179 Wed Dec 17 20:59:52 1997  Owen Taylor  <owt1@cornell.edu>
180         * gdk/gdkinput.c gdk/gdkinput.h gdk/gdkinputcommon.h
181           gdk/gdkinputxfree.h gdk/gdkinputgxi.h gdk/gdkinputnone.h.
182           gtk/gtkinputdialog.h gtk/testinput.c
183         Added support for device keys mapping to key events.
184         Fixed various bugs.
185
186 Wed Dec 17 20:53:00 1997  Owen Taylor  <owt1@cornell.edu>
187         * gdk/gdk.c gdk/gdk.h: Changed gdk_get_event to remove
188         predicate filtering, and to allocate the events.
189         Added gdk_event_get_graphics_expose for scroll handling.
190         * gtk/gtkmain.c gtk/gtktext.c:
191         Use above changes. Interface change for gtk_get_current_event.
192         * testgtk.c
193         Added another test to test new scrolling mechanism.s
194         * gdk/gdk.c gdk/gdk.h gdk/gdkwindow.c gdk/gdkprivate.h: 
195         Added beginnings of event filtering. Removed obsolte
196         OtherEvent mechanism.
197         * gdk/gdk.c: Combined FocusIn/FocusOut events. Now ignore
198         focus events which aren't for window itself. (Only pay
199         attention to NotifyAncestor/Inferior/Nonlinear)
200         * gtk/gtkwindow.c gtk/gtkwindow.h: Virtualize set_focus 
201         function so it can be overridden.
202         * gtk/gtkwidget.c: Reparenting should now work for
203         containers. (Guillaume Laurent <glaurent@worldnet.fr>)
204         * gdk/gdkgc.c: By default, GraphicsExpose events are now
205         _not_ generated.
206         * gtk/testselection.c: Suppress a warning, fix a bug?
207
208 Wed Dec 17 20:47:42 1997  Owen Taylor  <owt1@cornell.edu>
209         * configure.in, glib/configure.in: 
210         Remember if user set CFLAGS, so we can set it for --enable-debug
211           only if they didn't. 
212         Added missing quotes. )Raphael.Quinet@eed.ericsson.se)
213         Only use -DX_LOCALE if setlocale doesn't work.
214         * gdk/gdki18n.h: Simplified system for trying to get iswalnum() -
215         include <wctype.h> if present, otherwise <wchar.h> if present.
216         
217 Wed Dec 17 21:09:12 1997  Owen Taylor  <owt1@cornell.edu>
218   1997-10-13  Marius Vollmer  <mvo@zagadka.ping.de>
219
220     Bug fixes:
221         
222         * gtksignal.c (gtk_params_get): Initialize the GtkArg even when
223         the return type is GTK_TYPE_NONE.
224
225     Revamped reference counting, see the file REFCOUNTING.
226
227         * Makefile.am (EXTRA_DIST): Added REFCOUNTING.
228         * REFCOUNTING: New file.
229
230         * gdk/gdk.c (received_destroy_notify, window_to_destroy): Removed.
231         (gdk_event_get): Code that deals with the above removed.
232         (gdk_event_translate): Abort when the GdkWindow for the XEvent
233         cannot be found.  For DestroyNotify: Do not use
234         receive_destroy_notify and window_to_destroy but call
235         gdk_window_destroy_notify.
236
237         * gdk/gdk.h: (gdk_pixmap_destroy, gdk_colormap_destroy,
238         gdk_fontset_free): Removed.
239         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
240         gdk_bitmap_unref): New prototypes.
241         (gdk_font_free, gdk_font_unref): Renamed gdk_font_free to
242         gdk_font_unref.
243
244         * gdk/gdkcolor.c (gdk_colormap_real_destroy): Made static.
245         (gdk_colormap_destroy): Removed.
246
247         * gdk/gdkfont.c (gdk_font_free): Renamed to gdk_font_unref.
248         Handle fontsets as well.
249         (gdk_fontset_free): Removed.
250
251         * gdk/gdkpixmap.c (gdk_pixmap_destroy): Removed.
252         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
253         gdk_bitmap_ref): New functions.
254
255         * gdk/gdkwindow.c: (gdk_window_new, gdk_window_foreign_new): Call
256         gdk_window_ref for the pointer in the xid table.
257         (gdk_window_internal_destroy): Renamed from gdk_window_destroy.
258         New parameter XDESTROY that takes the role of `destroyed==2';
259         removed special casing of `destroyed==2'.  Free dnd_data only when
260         really destroying.  Do not touch the ref_count.  Calling
261         gdk_window_destroy on a Pixmap is now a real error, not just a
262         warning.
263         (gdk_window_destroy): Just call gdk_window_internal_destroy and
264         gdk_window_unref, as advertised in REFCOUNTING.
265         (gdk_window_destroy_notify): New function.
266         (gdk_window_unref): Print a warning when the ref_count is zero and
267         the window has not been destroyed.  Should never happen.  Do not
268         destroy the window, just free the memory.
269         
270         * gdk/gdkprivate.h (gdk_window_real_destroy): Removed.
271
272         * gtk/gtkaccelerator.c (gtk_accelerator_table_destroy): Removed.
273         (gtk_accelerator_table_unref): Do the job of
274         gtk_accelerator_table_destroy directly.
275         (gtk_accelerator_table_init): Init ref_count with 1.
276
277         * gtk/gtkaccelerator.h (gtk_accelerator_table_destroy): Removed.
278
279         * gtk/gtkcurve.c, gtk/gtkgamma.c: Replaced gdk_pixmap_destroy with
280         gdk_pixmap_unref.
281
282         * gtk/gtkhscrollbar.c (gtk_hscrollbar_realize): Reflect the fact
283         that the widget->window is used as the range->trough in the
284         ref_count.
285         * gtk/gtkvscrollbar.c (gtk_vscrollbar_realize): Likewise.
286
287         * gtk/gtkmain.c (gtk_main_iteration): Protect event_widget with
288         ref/unref while handling the GDK_DELETE and GDK_DESTROY events.
289
290         * gtk/gtkmenu.c (gtk_menu_set_accelerator_table): Don't do
291         anything when the new accel_table is the old one.
292
293         * gtk/gtkmenufactory.c (gtk_menu_factory_destroy): Unref
294         factory->table if there is one.
295         (gtk_menu_factory_create, gtk_menu_factory_create_widget): Don't
296         ref newly created accel_table, it is now created with a ref_count
297         of 1.
298
299         * gtk/gtkmenuitem.c (gtk_menu_item_set_submenu):  Don't do
300         anything when the new submenu is the old one.
301
302         * gtk/gtkpixmap.c (gtk_pixmap_destroy): New static function.
303         (parent_class): New global variable.
304         (gtk_pixmap_init): Set object_class->destroy.
305         (gtk_pixmap_set): Don't do anything about the pixmap when the new
306         pixmap is the old one.  Likewise for the mask.
307
308         * gtk/gtkprogressbar.c, gtk/gtkruler.c: Replaced
309         gdk_pixmap_destroy with gdk_pixmap_unref.
310
311         * gtk/gtkrange.c (gtk_range_set_adjustment):  Don't do
312         anything when the new adjustment is the old one.
313
314         * gtk/gtkrc.c: Replaced gdk_fontset_free/gdk_font_free with
315         gdk_font_unref.
316
317         * gtk/gtkstyle.c (gtk_style_new): Initialize ref_count with 1.
318         (gtk_styles_init): Replace gtk_style_destroy with gtk_style_unref
319         for the cache.
320         (gtk_style_new_from_key): Ref style before returning it when it
321         has not been newly created.
322         (gtk_style_destroy): Don't look at the ref_count, destroy always.
323         Free style-font with gdk_font_unref, regardless of font->type.
324
325         * gtk/gtktooltips.c (gtk_tooltips_real_destroy): Renamed from
326         gtk_tooltips_destroy and made static.  Don't look at ref_count,
327         destroy always.
328         (gtk_tooltips_new): Initialize ref_count with 1.
329         (gtk_tooltips_unref): Don't look at pending_destroy, destroy
330         always when ref_count is 0.
331         (gtk_tooltios_widget_remove): Use gtk_tooltips_destroy_data
332         instead of hand-coded destruction.
333
334         * gtk/gtktooltips.h (GtkTooltips::pending_destroy): Removed.
335         (gtk_tooltips_destroy): Removed.
336
337         * gtk/gtkviewport.c (gtk_viewport_set_hadjustment,
338         gtk_viewport_set_vadjustment): Don't do anything when the new
339         adjustment is the old one.
340
341         * gtk/gtkwidget.c (gtk_widget_reparent): Protect the reparented
342         widget with ref/unref while moving it.
343         (gtk_widget_set_default_colormap): Replace gdk_colormap_destroy
344         with the proper ref/unref spell.
345         (gtk_widget_set_default_style): Don't do anything when the new
346         style is the old one.
347
348         * gtk/testinput.c (configure_event): Replaced gdk_pixmap_destroy
349         with gdk_pixmap_unref.
350         
351     More Interpreter support:
352
353         * gdk/gdktypes.h (GdkDestroyNotify): New type.
354         
355         * gdk/gdk.c (struct _GdkInput::destroy): New field.
356         (gdk_input_add_interp): New version of gdk_input_add that follows
357         the interp conventions for callbacks.
358         (gdk_input_add): Implement in terms of gdk_input_add_interp.
359         (gdk_input_remove): Call destroy notify when appropriate.
360
361         * gdk/gdk.h (gdk_input_add_interp): New prototype.
362
363         * gtk.defs: Updated from guile-gtk.
364         * gtk/gtktypebuiltins.c, gtk/gtktypebuiltins.h: Regenerated.
365         
366         * gtk/gtkmain.c (GtkInputFunction, struct _GtkInputFunction): New
367         types.
368         (gtk_invoke_input_function, gtk_destroy_input_function,
369         gtk_input_add_interp, gtk_input_remove): New functions.
370
371 Wed Dec 17 12:00:48 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
372
373         * gdk/gdkcc.c: New GdkColorContext functionality!  This should
374         eventually solve all of our color management problems.  Gdk still
375         needs to be modified to support visuals with less than 8 bpp.  Gtk
376         needs to be modified just a bit.
377
378 Wed Dec 17 13:56:17 PST 1997 Manish Singh <yosh@gimp.org>
379
380         * a small patch by Lauri Alanko that allows Gimp to pass
381         on --display to it's plugins.
382
383 Sun Dec 14 00:08:00 PST 1997 Raph Levien <raph@acm.org>
384         * a minor patch to make the file selection dialog not always
385         select the first file in a directory
386
387 Sat Dec 13 Jay Painter <jpaint@serv.net>
388         * gtk/gtkvscrollbar.c: added focus flag so vertical scrollbars
389         can get keyboard focus
390
391 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
392         * Removed warning when XGetWindowProperty fails - this can
393           be the desired behavior.
394         
395 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
396         * gdk/makecursor* gdk/makekeysym* gdk/Makefile.am
397           Removed old sed/awk code and replaced it with a 
398           spiffier awk-only code from Art_Haas@dril-quip.com
399         
400 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
401         * gdk/gdkgc.c: If gdk_gc_set_clip_rectangle is called with
402           rectangle = NULL, remove clip mask, instead of segfaulting.
403         * gtk/gtknotebook.c: Set clip mask before redrawing, so that
404           we don't overwrite things outside of exposed areas when
405           drawing them shadows. (Based on a patch from 
406           Lars Hamann <hamann@braunschweig.netsurf.de>, and Stefan Jeske)
407         
408 Thu Dec 11 10:57:29 CST 1997 Shawn T. Amundson <amundson@gimp.org>
409         * Change to ltconfig to remove -z text for Solaris x86  
410         * Change to configure stuff so compile works on Solaris x86
411         * Added gdk/gdkkeysyms.h and gdk/gdkcursors.h back into the tree
412
413 Thu Dec 11 09:44:03 1997  Tim Janik  <timj@psynet.net>
414
415         * gdk.c: added gdk_progclass==NULL patch by Oliver Graf <ograf@fga.de>.
416
417 Wed Dec 10 23:40:03 1997  Tim Janik  <timj@psynet.net>
418
419         * fixed some compiler errors, because g_return_if_fail() wasn't used
420         with a trailing semicolon in some places. fixed few other warnings also.
421
422 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
423         * configure changes: (configure.in, glib/configure.in)
424         Change test ! `...` to test -z `...`
425           (Harald Meland <Harald.Meland@usit.uio.no>)
426         Change $gtk_cv_x_locale to $need_x_locale so it isn't cached.
427         With --enable_debug, don't touch CFLAGS if they're already set.
428
429 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
430         * gdk/gdkpixmap.c: don't use gdk_black/white for pixmap mask.
431          From Patrice Fortier <Patrice.Fortier@aquarel.fr>
432
433 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
434         * gtk/testselection.c (selection_received): foreward -> forward.
435         * gtk/gtktext.c (gtk_text_forward_delete): Renamed; changed all
436         callers.
437         * gtk/gtktext.h: foreward -> forward.
438           From Tom Tromey  <tromey@cygnus.com>
439
440 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
441         * gtk/gtkimage.c: Fixes to expose() handler
442           From Rob Browning <rlb@cs.utexas.edu>
443         
444 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
445         * gtk/gtklabel.h:
446         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
447         is used by the new gtktooltips.c.
448         * gtk/testgtk.c (create_labels, create_main_window): A new test
449         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
450
451 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
452         * gtk/gtklabel.h:
453         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
454         is used by the new gtktooltips.c.
455         * gtk/testgtk.c (create_labels, create_main_window): A new test
456         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
457
458 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
459         * gdk/gdk.c, gdk/gdk.h, gdk/gdktypes.h: 
460           Remove dependencies of interfaces on USE_XIM
461         * gdki18n.h: Attempt to make wchar handling more portable
462         * gdkwindow.c: Include config.h. (For gdkinput.h)
463         
464 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
465         * gtk/gtkentry.c, gtk/gtkentry.h: 
466            Fixed word motion
467            Added cut/copy/paste via X clipboard
468            Generalized extending selection using <Shift> to work with all types
469              of motion, not just arrow keys.
470            Don't change length of GtkEntry structure because of USE_XIM
471
472 Sun Dec  7 03:19:02 1997  Tim Janik  <timj@psynet.net>
473
474         * gtkfilesel.c: applied jamesa-971010-0 for stability.
475         * gtkrc.c: applied jamesa-971010-2 for a small optimization.
476         * gtkcheckmenuitem.h:
477         * gtkcheckmenuitem.c:
478         * gtkradiomenuitem.c:
479         * testgtk.c: applied johannes-971113-0 which adds
480         gtk_check_menu_item_set_show_toggle() to change the way check
481         menu items and radio menu items look.
482
483 Fri Dec 5 1997 Elliot Lee <sopwith@cuc.edu>
484         * gdk/gdk.c: clean up warnings, remove some un-ifdef'd debugging
485         printing, DnD is Bug Free now, etc.
486         * gtk/gtkcolorsel.c: fix DnD support.
487         * gtk/gtkmain.c: DnD events go to the original window even if
488         there is a grab - if I drop on a window the data had better go
489         to it and not some other window :)
490         * gtk/testgtk.c: Replace (GtkSignalFunc) with GTK_SIGNAL_FUNC(),
491         and do a nicer DnD demo.
492         * My very first ChangeLog entry, seeing as people have
493         a fixation on them (what's wrong with "rcs2log" output?)
494
495 Thu Dec 4 1997 Owen Taylor <owt1@cornell.edu>
496         * gdk/gdkgc.c: Ignore gdk_gc_set_font if font is a fontset.
497
498 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
499         * gtk/gtkstyle.c: fixed a problem introduced recently in 
500         gtk_style_detach witch crashed script_fu.
501
502 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
503         * gdk/Makefile.am: add a dependence for $(DEP_FILES) on
504         $(BUILT_SOURCES) to work around automake problem
505         
506 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
507         * configure.in glib/configure.in glib/glibconfig.h.in gdk/gdk.h
508         gdk/gdk18n.h gdk.c gtk/gtkentry.c: Try to handle variations in 
509         <wchar.h> headers gracefully. Do not automatically include 
510         gdk/gdki18n.h.
511         
512 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
513         * gtk/gtkoptionmenu.c: fixed a old bug where if you set a new 
514         menu for a optionmenu the widget would not get positioned correctly
515         inside of the optionmenu.
516
517 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
518         * gdk/gdkpixmap.c: Include unistd.h to get SEEK_END
519         for SunOS (john_johns@credence.com)
520         
521 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
522         * gtk+/fnmatch.c: Define _GNU_SOURCE before including
523         fnmatch.h to make sure all constants are defined.
524         (Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp>)
525         
526 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
527         * configure.in, glib/configure.in: Make the logic to add -Wall,
528         -ansi, -pedantic for GCC operational.
529
530 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
531         * glib/glib.h, glib/configure.in. Disabled gldouble, since
532         it wasn't used anywhere and caused portability problems
533
534 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
535         * glib/glib.h, glib/configure.in, glib/glibconfig.h.in: Added a
536         g_memmove function which is simply memmove if it exists, otherwise
537         bcopy.(Should really check if bcopy has the correct semantics, and
538         create our own memmove is necessary) 
539         * glib/gstring.c, glib/garray.c, gtk/gtktext.c:
540         memmove => g_memmove
541         
542 Sun Nov 30 1997 Jay Painter <jpaint@serv.net>
543         * gtk/gtknotebook.c: fixed a old bug where all the notebook pages
544         which were not displayed when the notebook widget was realized were
545         never size allocated when they were realized.
546
547 Thr Nov 28 1997 Jay Painter <jpaint@serv.net>
548         * gtk/gtklist.h: removed GtkSelectionMode
549         * gtk/gtkenums.h: added GtkSelectionMode
550
551 Fri Nov 28 01:26:55 1997  Tim Janik  <timj@psynet.net>
552
553         * gtk/gtkwindow.c (gtk_window_show): propagate a size_request before
554         the initial window creations (prevents windows with size of -1x-1).
555
556         * gtk/gtkmain.c (gtk_main_level): new function to determine
557         the current recursion level of gtkmain().
558         (gtk_true) (gtk_false): new functions implemented as a convenience
559         for signals that just need a handler with the appropriate return value.
560
561 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
562         gdk.c: Fix so that "other_events" are actually generated
563
564 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
565         Patches to support internationalized input by:
566           Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
567           TANAKA Shinya <shinya@race.u-tokyo.ac.jp>
568
569         From the README:
570         
571         Feature:
572           Followings are the main feature of this patch.
573             * support XIM protocol.
574             * GtkEntry widget support Over-The-Spot and Root style input.
575             * input style is configurable by command-line option.
576
577         Furthermore, this patch includes several changes which are useful 
578           without XIM too.
579         
580             * copy and paste with other clients by compound text.
581             * Window title can be specified by multi byte string.
582
583         configure.in: 
584           Added --with-locale and --enable-xim options
585         gdk/Makefile.am:
586         gdk/gdki18n.h [new file]
587           Multibyte string manipulation functions
588         gdk/gdk.c
589         gdk/gdk.h
590         gdk/gdkprivate.h
591           Input method and context handling functions
592           Command line options to control input methods
593           Changes to KeyPress handling to support input methods
594           Fixes to not return events for destroyed windows
595         gdk/gdkselection.c
596           Text property handling functions
597         gdk/gdkwindow.c
598           Set window title by multibyte string
599         gtk/gtkentry.c
600           Support for using an input context for XIM input.
601           Cut and paste using compound text.
602           Improvements to pasting (no longer replace the active selection
603             with itself OWT)
604         gtk/gtkselection.c
605           fix to send selection clear events to the right owner
606         gtk/testgtkrc
607           Added a default fontset that will allow international characters
608         INSTALL
609           Some rudimentary documentation about the new configuration options.
610         
611 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
612         gtk/gtkaspectframe.c:
613         Some minor improvements to rounding in aspectframes.
614         Make sure that child allocation is always >= 0
615         Always trigger size allocation with gtk_widget_queue_resize
616         to prevent calling size_allocate before allocation done.
617
618 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
619         gtk/gtkframe.c:
620         Changed tests for drawability to GTK_WIDGET_DRAWABLE
621         Always trigger size allocation with gtk_widget_queue_resize
622         to prevent calling size_allocate before allocation done.
623
624 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
625         gtk-dairiki-971117-2.patch
626         gtk/gtkaspectframe.c (gtk_aspect_frame_size_allocate): When
627         computing new dimensions of the subwidget, round to nearest
628         integer rather than truncating.
629
630 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
631         gtk-dairiki-971117-1.patch
632         * gtk/gtkvruler.c (gtk_vruler_draw_ticks):
633         * gtk/gtkhruler.c (gtk_hruler_draw_ticks): Ensure that subticks
634         always are drawn when they should be (sometimes they were getting
635         drawn with zero length --- invisible).  Also clear rectangle
636         behind text labels to ensure they don't touch or overlap ticks. 
637
638 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
639         * gtk/gtkaspectframe.c (gtk_aspect_frame_set): 
640         gtk-dairiki-971117-0.patch
641         Clear window when aspect ratio or alignment is changed.
642
643 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
644         * gtk/gtkobject.h: fixed GTK_OBJECT_NSIGNALS macro
645
646 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
647         * gtk/gtklabel.h: modified gtklabel to clip its drawing to
648         its given area, now it will always draw in the area it's 
649         been given and clip accordingly.  Note: this may cause
650         the a label to disappear on widgets which don't give their
651         child labels proper area!
652
653 Mon, 17 Nov 1997 Michael K. Johnson <johnsonm@redhat.com>
654         * gtkwidget.c: gtk_set_style_recurse was not allowing updated
655         widget names to cause new styles to be applied.
656         * gtkentry.c gtkentry.h: The entry widget now has invisible
657         attribute.  The cursor does not move to show you typing; this
658         is an intentional design decision but I'm not so attached to it
659         that I'll reverse any patches that change it...  :-)
660
661         This patch is a modified version of a patch to which I have
662         lost the attribution.  I modified it by packing the "visible"
663         flag into the structure more tightly (without damaging backwards
664         compatibility on sane systems) and by allowing entry timers
665         to run.
666
667 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
668         * gtkviewport.c: Raph's Mon, 10 Nov 1997 patch to gtk-list 
669         to fix some viewport bugs
670
671 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
672         * gtk/gtkwidget.c: gtk-ajaborsk-971016-2
673         A little patch again to prevent user to use gtk_widget_set_events()
674         when a widget is already realized.
675         In this case, the gtk_widget_set_events() doesn't work.
676
677 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
678         * gtk/gtkwindow.c: gtk-ajaborsk-971016-1
679         This small patch correct position for GTK_WIN_POS_CENTER and
680         GTK_WIN_POS_MOUSE GtkWindow positions.
681
682 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
683         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
684         * gdk/gdk.h: header for above
685
686 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
687         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
688         * gdk/gdk.h: header for above
689
690 Wed Nov 12 1997 Jay Painter <jpaint@serv.net>
691         * gdk/gdkpixmap.c: Patrice Fortier's patch for transparent pixmaps.
692         * gdk/gdk.h:
693           gdk/gdkdraw.c: Patrice Fortier's patch to add pixel draw function.
694
695 Sun Nov  9 1997 Jay Painter <jpaint@serv.net>
696         * Fixed problems with makefiles relating to the bug
697         which required glib to be installed.
698         * Fixed makefiles to incluce the xpm's in gtk+/gtk needed
699         for testgtk.
700         * Updated gtk+ and gtk+/glib to libtool-1.0f
701
702 Fri Nov  7 1997 Jay Painter <jpaint@serv.net>
703         * gtk/gtktext.c: return char_widths[ch & 0xff]; in line 2152
704
705 Thr Nov  5 1997 Jay Painter <jpaint@serv.net>
706         * gtk/testgtk.c: added drag and drop test, removed the test hack
707         from the button test
708
709 Tue Nov  4 08:28:57 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
710
711         * gtk/gtkmain.c (gtk_handle_idle): Patch from David Mosberger to
712         avoid crashes when handling idle function (this manifested itself
713         in the Umax and Microtek backends in SANE.
714
715 Sun Nov  2 07:34:56 1997  Tim Janik  <timj@psynet.net>
716
717         * gtk/gtkfilesel.c: Small fixes about a segmentation viaolation
718         cause by a double click in the directoy list (introduced by my
719         previous changes).
720         
721         * gtk/gtklist.c: Small fixes to gtk_list_add() and gtk_list_remove().
722         
723         * gtk/testgtk.c (list_add): Applied Stefan Wille's patch to make this
724         function do something ;).
725
726 Fri Oct 31 Jay Painter <jpaint@serv.net>
727         *gdk/gdk.c: reformatted DND code for GTK coding standards
728         *gdk/gdkwindow.c: changed memory allocation for DND to q_mem stuff
729
730 Thu Oct 30 Jay Painter <jpaint@serv.net>
731         * gdk/gdkwindow.c: 
732         * gdk/gdk/gdk.h:
733         * gtk/gtkwidget.h:
734         * gtk/gtkwidget.c: Applied Stephan Willie's shaped window patch
735
736         * gdk/gdkwindow: 
737         * gdk/gdk.h:
738         * gtk/gtkwidget.h:
739         * gtk/gtkwidget.c: reformatted the DND code to conform to GTK
740                 coding standards
741
742         * gtk/testgtk: massive fixes, SW's shaped window example
743
744 Thu Oct 30 07:33:27 1997  Tim Janik  <timj@psynet.net>
745
746         * gtk/gtklistitem.c (gtk_real_list_item_toggle): applied Johannes
747         Keukelaar's <johannes@nada.kth.se> patch for keyboard support in
748         GtkList widgets.
749
750         * gtk/gtkfilesel.c: adapted dir and file list selection
751         behaviour to deal with keyboard selections. this is a little
752         bit tricky: in the dir list it just changes the entrys value on a one
753         button press. but on a keyboard selection via gtk_widget_activate() it
754         does a new population (likewise on a double click) as this seems more
755         obvious.
756
757 1997-10-25  Marius Vollmer  <mvo@zagadka.ping.de>
758
759         * gdk/gdkcolor.c (gdk_colormap_get_system): Initialize
760         private->ref_count.
761
762 Wed Oct 22 09:47:43 1997  Tim Janik  <timj@psynet.net>
763
764         * gtk/gtkwindow.c (gtk_window_key_release_event): Fixed a stupid
765         bug that caused the key_release_event to be propagated twice.
766
767 Sun Oct 12 11:01:43 1997  Tim Janik  <timj@psynet.net>
768
769         * acconfig.h:
770         * configure.in:
771         * gdk/gdkimage.c: Added configure check for IPC_RMID_DEFERRED_RELEASE,
772         because shmat() fails after a shmctl(..., IPC_RMID,...) for OSF1 V3.2,
773         SunOS 4.1.1, 5.5, 5.5.1, 5.6, IRIX 5.2 and 6.2.
774
775 Mon Oct  6 11:59:07 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
776
777         * gdk/gdk.c (gdk_event_translate): In line 1693, fixed typo that
778         would cause motion notify events not to be delivered.
779
780 Sun Oct  5 18:15:06 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
781
782         * gtk/gtkrc.c (gtk_rc_parse_bg_pixmap): Changed strdup() for
783         g_strdup().
784
785 Wed Sep 24 17:16:34 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
786
787         * configure.in: Fixed a stupid error in the test for libXext that
788         would cause it to fail if X_EXTRA_LIBS was not empty.
789
790         * gtk/gtkmain.h (gtk-timj-970919.patch):
791         * gtk/gtkmain.c (gtk-timj-970919.patch): new function
792         `gtk_idle_remove_by_data' to remove all idle callbacks that take a
793         specific piece of data as argument.  (gtk_get_current_event):
794         remove idles through gtk_idle_remove_by_data.
795         
796         * gtk/gtkwidget.c (gtk-timj-970919.patch):
797         (gtk_widget_destroy): remove pending idles for
798         widgets that have GTK_REDRAW_PENDING or GTK_RESIZE_PENDING and
799         GTK_ANCHORED set (only anchored widgets can have a resize queue
800         handler pending). widgets that have GTK_RESIZE_NEEDED will be removed
801         from their anchored toplevels `resize_widgets' list.
802         
803         (gtk_widget_queue_draw): let the widget remember the queue handler
804         tag (through `redraw_handler_key') for later call to `gtk_idle_remove'.
805         
806         (gtk_widget_queue_resize): let the widget remember the queue handler
807         tag (through `resize_handler_key') for later call to `gtk_idle_remove'.
808         corrected referencing the toplevel widget for which the handler is
809         pending. if a widget is added to the `resize_widgets' list of a
810         toplevel widget, GTK_RESIZE_NEEDED is set and it's referenced.
811         
812         (gtk_real_widget_queue_resize): on the deletion of the `resize_widgets'
813         list, unset GTK_RESIZE_NEEDED and unreference the removed widgets.
814         
815         * gtk/gtkwindow.c (gtk-timj-970919.patch):
816         (gtk_real_window_move_resize): move `resize_containers = NULL'
817         initialization out of if-statement.
818         while stepping through the `resize_widgets' list, unreference the
819         widgets and clear GTK_RESIZE_NEEDED. if a widget realy needs are
820         resize, they are flagged through GTK_RESIZE_NEEDED now (instead of
821         GTK_RESIZE_PENDING, as this is indicative for a pending handler).
822         added checks to provide segfaulting if a widgets parent pointer
823         is NULL (e.g. on toplevel widgets that have GTK_RESIZE_NEEDED set).
824
825 Tue Sep 23 13:23:27 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
826
827         * gdk/gdkimage.c: Applied Tim Janik's patch to mark shm segments
828         as IPC_RMID so that they are automatically removed always.
829
830         * gdk/gdkfont.c: Removed casts from lvalues.
831
832         * gtk/gtkmain.c: Removed GTK_RETLOC_*() (which do a cast) from lvalues.
833
834         * gtk/gtkaccelerator.c (gtk_accelerator_table_remove): Added
835         "const" to the accelerator_key param to be consistent with the
836         declaration in gtkaccelerator.h.  The const is not useful in this
837         case, anyway.
838
839 Tue Sep 16 13:11:06 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
840
841         * gtkpreview.c: Andrew Logan Kieschnick's change to eliminate
842         round-off error when gamma is set to 1.0.
843
844         * gtkrange.c:
845         * gtkviewport.c: Jay Painter's changes to modify the way in which
846         viewports resize.
847
848         * gdkinput.c:
849         * gdkinputgxi.h:
850         * gdkinputxfree.h:
851         * gtk/Makefile.am:
852         * gtk.h:
853         * gtkeventbox.c:
854         * gtkeventbox.h: Owen Taylor's event box widget and fixes for X
855         input support (that I had broken).
856
857         * gdk.h:
858         * gdkwindow.c:
859         * gtksignal.h:
860         * gtksignal.c: Elliot Lee's changes to support Objective C. (id is
861         apparently a reserved word in Objective C).
862
863 Sun Sep 14 22:33:15 1997  Peter Mattis  <pmattis@localhost>
864
865         * gtkwidget.c (gtk_widget_queue_resize): If the toplevel container
866         is invisible we simply call "gtk_container_need_resize" on
867         it. This fixes a bug with option menus not redrawing correctly.
868
869         * gtkmenuitem.c (gtk_menu_item_enter): (gtk_menu_item_leave):
870         These functions now simply pass the event on to their parent. This
871         is necessary for menus to work properly due to the change in how
872         grabs are dealts with.
873
874         * gtkwindow.c (gtk_real_window_move_resize): Fixed a bug that
875         caused the GTK_RESIZE_PENDING flag to not be unset in some cases.
876
877 Fri Sep  5 20:49:37 1997  Marius Vollmer  <mvo@zagadka.ping.de>
878
879         Bug fixes:
880
881         * Makefile.am: Added PATCHES to EXTRA_DIST.
882         * gtk/gtkpixmap.c (gtk_pixmap_new): Move the "pixmap != NULL" test
883         after the allocation of the pixmap.
884
885         To shut up the compiler:
886
887         * gtk/gtkfilesel.c (get_pwdb): Initialize home_dir.
888         * gtk/gtkmain.c (gtk_init): Replace comments around calls to
889         g_set_*_handler with "if (0)".
890         * gtk/gtkrc.c (gtk_rc_get_token): Initialize hex_number and
891         float_number.
892         * gtk/gtkwindow.c (gtk_window_key_press_event): Initialize
893         direction.
894
895         Changes to the type system in gtk/:
896
897         * Makefile.am: Added gtktypebuiltins.h to gtkinclude_HEADERS.
898         Added gtk.defs, runelisp, gentypeinfo.el and gtktypebuiltins.c to
899         EXTRA_DIST.  Added rules to generate gtktypebuiltins.* from
900         gtk.defs.
901
902         * runelisp, gentypeinfo.el, gtk.defs: New files.
903
904         * gtkaccelerator.c, gtkaccelerator.h (gtk_accelerator_table_ref):
905         Return the table so that this function can be used as the `copy'
906         function for GTK_TYPE_BOXED values.
907         * gtkstyle.c, gtkstyle.h (gtk_style_ref): Likewise.
908
909         * gtkenums.h: Removed GtkArgType enum.
910
911         * gtkmain.c (gtk_init): Call gtk_type_init to initialize the type
912         system.
913
914         * gtkobject.c (gtk_object_init_type): New function to take over
915         for gtk_object_get_type. (gtk_object_get_type): Just return the
916         constant GTK_TYPE_OBJECT. (gtk_object_collect_args): Do the right
917         thing for the new GTK_TYPE_* types.
918         * gtksignal.c (gtk_params_get): Likewise.
919
920         * gtktypeutils.c: (gtk_type_init_builtin_types): New
921         function. (gtk_type_init): Call it.  Also made non-static.
922         (gtk_type_unique): The allocation scheme for numerical ids has
923         changed: The low 8 bits hold the appropriate GtkFundamentalType of
924         a type, the rest is a globally unique sequence number.
925         (gtk_type_hash): Use the sequence number of a key to hash it.
926         (gtk_type_register_builtin): New function.
927
928         * gtktypeutils.h: (GtkFundamentalType): New enumeration of the
929         fundamental types. (GTK_TYPE_MAKE, GTK_FUNDAMENTAL_TYPE,
930         GTK_TYPE_SEQNO): New macros to work with the new id scheme.
931         (GtkArg): Added fields for new types and renamed old ones.  GtkArg
932         should now be a mostly opaque structure, except name and type.
933         (GTK_VALUE_*): New macros to access the values of a GtkArg.
934         (GTK_RETLOC_*): New macros to access the location of a return
935         value that is contained in a GtkArg.  * gtktypebuiltins.h: New
936         file to access the typeids of the builtin types.
937
938         * gtkwidget.h (GTK_TYPE_WIDGET): New macro to access the type id
939         of the widget class.
940
941         Thru out: Changed GTK_ARG_* to the appropriate GTK_TYPE_*.
942         Changed access to GtkArg structure to the appropriate GTK_VALUE_*
943         or GTK_RETLOC_* macro.  Changed GtkArgType to GtkType.  Changed
944         some guints to GtkType.
945
946         General changes in gtk/ to support interpreters:
947
948         * gtkradiobutton.c (gtk_radio_button_new_from_widget,
949         gtk_radio_button_new_with_label_from_widget): New functions.
950
951         * gtksignal.c (gtk_signal_connect_no_marshal): New function.
952         (struct _GtkHandler): Added no_marshal and destroy_func fields.
953         (gtk_signal_handler_new): Initialize them.
954         (gtk_signal_connect_by_type): Added no_marshal and destroy_func
955         arguments.  Changed all callers.
956         (gtk_signal_destroy): Invoke destroy_func if there is one and the
957         global destroy func does not apply.  (gtk_handlers_run): If the
958         handler has no_marshal set, call its function directly without
959         going thru the signal's marshaller.
960
961 Wed Sep  3 09:56:22 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
962
963         * gtkrange.c: Changed the way the range control focus was drawn so
964         that the range control is drawn correctly when it does not have
965         the focus.
966
967 Tue Sep  2 17:41:17 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
968
969         * gtkwidget.c: 'gtk_real_widget_queue_resize' should only remove
970         the "resize_widgets" if another resize is not pending.
971
972 Mon Sep  1 18:28:08 1997  Peter Mattis  <pmattis@localhost>
973
974         * gtkmain.c: Changed the way GDK_DELETE events are handled. Only,
975         if 'gtk_widget_event' returns TRUE is the widget destroyed. By
976         default, 'gtk_widget_event' will return FALSE causing the window
977         to not be destroyed. This prevents segfaults in the GIMP and other
978         programs that do not correctly handle GDK_DELETE events.
979
980         * gtkmain.c: Added modal dialog support by allowing events
981         destined for a child of the grab widget to go to the child instead
982         of the grab widget. (Added 'gtk_widget_is_ancestor' to determine
983         the relationship between the grab widget and the event widget).
984
985         * *.[ch]: Incorprated a whole mess of patches. (Started keeping
986         the ChangeLog up to date again).
987
988 Thu Jun  5 17:22:21 1997  Peter Mattis  <pmattis@localhost>
989
990         * gtkmenufactory.c:
991         * gtkmenufactory.h: Added 'gtk_menu_factory_remove_*'
992         calls. Removing entries/paths causes the associated widgets to be
993         destroyed.
994
995         * gtkwidget.c:
996         * gtkwidget.h: Calling 'gtk_widget_set_style' is used as an
997         indication that the programmer specifically wants that style to be
998         used. RC-style substitution is disabled for the widget after such
999         a call.
1000
1001         * gtkpixmap.c:
1002         * gtkpixmap.h:
1003         * gtkimage.c:
1004         * gtkimage.h: Changed to use clip mask and a single pixmap (or
1005         image) to deal with transparent areas.
1006
1007         * gdkpixmap.c: Modified xpm loading routines to optionally return
1008         a clip mask.
1009
1010         * gdkgc.c:
1011         * gdkdraw.c:
1012         * gdktypes.h: Modifications to allow clip masks to be used with
1013         gc's. Clip masks are bitmaps that specify drawable regions.
1014
1015 Thu May  1 03:11:51 1997  Peter Mattis  <pmattis@localhost>
1016
1017         * gtkscrolledwindow.c: Scrolled windows need to have the
1018         GTK_NO_WINDOW flag set. Not having it set caused an obscure
1019         redrawing bug.
1020
1021 Wed Apr 30 12:38:03 1997  Peter Mattis  <pmattis@localhost>
1022
1023         * gtkhruler.c:
1024         * gtkvruler.c: Fixed a small bug that caused the indicator to be
1025         positioned slightly off.
1026
1027 Sun Apr 27 14:28:21 1997  Peter Mattis  <pmattis@localhost>
1028
1029         * gtkmenushell.c:
1030         * gtkmenushell.h:
1031         * gtkmenu.c:
1032         * gtkmenu.h: Changes so that if a menu is popped up there is a
1033         timeout period during which a menu item will not be activated and
1034         if the mouse button is released in that period the menu will stay
1035         popped up.
1036
1037         * gtkcurve.c:
1038         * gtkcurve.h: Included curve widget courtesy of David
1039         Mosberger-Tang (davidm@azstarnet.com).
1040
1041         * gtkentry.c:
1042         * gtkentry.h: Changed "insert" and "delete" signals to
1043         "insert_text" and "delete_text" respectively. (The symbol "delete"
1044         cannot be used since it is a C++ reserved word).
1045
1046 Sat Apr 19 01:43:49 1997  Peter Mattis  <pmattis@localhost>
1047
1048         * gtkmenufactory.c: A path which ends in "<nothing>" will cause an
1049         invisible (hidden) menu entry to be created. This is useful for
1050         setting an accelerator key for which a corresponding menu entry is
1051         not desired.
1052
1053         * gtktooltips.c: Fixed some problems with destruction of the
1054         active tip widget not properly updating the tooltips data
1055         structures.
1056
1057 Fri Apr 18 15:09:45 1997  Peter Mattis  <pmattis@localhost>
1058
1059         * gtkcontainer.c:
1060         * gtklist.c:
1061         * gtkwidget.c:
1062         * gtkwidget.h: Patch from Owen Taylor (owt1@cornell.edu) which
1063         fixes problems with destruction of objects and with destruction of
1064         objects which hold the focus.
1065
1066 Thu Apr 17 11:29:15 1997  Peter Mattis  <pmattis@localhost>
1067
1068         * gtkmenushell.c: Incorrect logic in
1069         'gtk_menu_shell_button_release' for deciding when a menu should
1070         stay popped up when the mouse button is released.
1071
1072         * *.c: Miscellaneous fixes from folks on the net.
1073
1074 Tue Apr 15 02:43:17 1997  Peter Mattis  <pmattis@localhost>
1075
1076         * *.c:
1077         * gtkwidget.h: Added GTK_BASIC widget flag which when set
1078         specifies a widget as "basic". A "basic" widget is one which
1079         doesn't take input events. For example, labels, pixmaps, boxes,
1080         tables, alignments, etc.
1081
1082 Sat Apr 12 15:23:08 1997  Peter Mattis  <pmattis@localhost>
1083
1084         * gtkcolorsel.c: Add "#include <math.h>" to define M_PI.
1085
1086         * gtksignal.c: Fixed a bug in 'gtk_signal_emit' which showed up
1087         because of the new cast checking macros. The 'object' was being
1088         accessed after it had been destroyed.
1089
1090         * gtkoptionmenu.c: Fixed bug with using 'GTK_BIN' instead of
1091         'GTK_BUTTON' which showed up because of the new cast checking
1092         macros.
1093
1094         * *.h: 'GTK_CHECK_CAST', 'GTK_CHECK_CLASS_CAST' and
1095         'GTK_CHECK_TYPE' used by standard widget macros everywhere.
1096
1097 Wed Apr  9 00:54:17 1997  Peter Mattis  <pmattis@localhost>
1098
1099         * docs/gtk.texi: Started further work on documentation. Major
1100         changes and additions are being made.
1101
1102         * gtkarrow.c:
1103         * gtkarrow.h: Removed function 'gtk_arrow_get'.
1104
1105         * gtkcontainer.c: 'gtk_container_check_resize' no performs
1106         additional checking to account for the case where the containers
1107         allocation is no longer sufficient because its parent (or its
1108         parents parent, etc.) needs to resize its children.
1109
1110 Tue Apr  8 21:15:50 1997  Peter Mattis  <pmattis@localhost>
1111
1112         * gtkstyle.c: Fixed a bug in 'gtk_style_init' in which the font
1113         was not ref'd (via 'gdk_font_ref'), but was free'd (via in
1114         'gdk_font_free') in 'gtk_style_destroy'. (David
1115         Mosberger-Tang). Also cleaned up 'gtk_style_destroy' while I was
1116         at it.
1117
1118         * gtkmain.c: Fixed a bug in 'gtk_propogate_event' which caused
1119         entry widgets (and probably other widgets) not to be destroyed in
1120         some instances.
1121
1122 Mon Apr  7 01:20:38 1997  Peter Mattis  <pmattis@localhost>
1123
1124         * gtkentry.c:
1125         * gtkentry.h: Changed the "insert_text", "delete_text" and
1126         "changed_text" signals to "insert", "delete", and "changed"
1127         respectively. They really should have been named this way
1128         originally except the previous signal mechanism prevented
1129         duplicate signal names. ("changed" is also used by adjustments).
1130
1131         * gtkradiomenuitem.c:
1132         * gtkradiomenuitem.h: New widget.
1133
1134         * gtkcheckmenuitem.c:
1135         * gtkcheckmenuitem.h: New widget.
1136
1137         * gtksignal.c: Modified 'gtk_signal_lookup' to require an object
1138         type to be passed as a parameter. In addition, signals are now
1139         only needed to be uniquely defined in their branch of the class
1140         hierarchy. This allows the same signal name to be used in two
1141         different branches of the class hierarchy. For instance, the
1142         "changed" signal is used both by adjustments and entries...in
1143         different ways!
1144
1145         * gtktypeutils.c: Added 'gtk_type_parent' which returns the parent
1146         type for a given type.
1147
1148 Sun Apr  6 22:08:35 1997  Peter Mattis  <pmattis@localhost>
1149
1150         * gtkwidget.c: If a widget is set insensitive it loses the focus
1151         if it had it.
1152
1153         * gtkcontainer.c: Insensitive widgets no longer participate in tab
1154         traversal.
1155
1156         * gtkscrolledwindow.c: The "viewport" child is now destroyed and a
1157         container class "foreach" function was written (which fixes the
1158         sensitivity bug).
1159
1160 Sat Apr  5 14:25:38 1997  Peter Mattis  <pmattis@localhost>
1161
1162         * gtkhscrollbar.c:
1163         * gtkvscrollbar.c: Fixed trough size allocation bug.
1164
1165         * gtkhscale.c:
1166         * gtkvscale.c: Fixed trough size allocation and position bug that
1167         showed up when scales were placed in notebooks.
1168
1169 Thu Mar 27 17:45:54 1997  David Mosberger-Tang  <davidm@azstarnet.com>
1170
1171         * gtk/gtkmain.c (gtk_handle_idle): Fix appending pending_idles to
1172         idle_functions so it works even when idle_functions is empty.
1173
1174 Sat Mar 15 14:15:59 1997  Peter Mattis  <pmattis@localhost>
1175
1176         * *.[ch]: Moved '*_class_init' and '*_init' function declarations
1177         for widgets into the source file as those functions no longer had
1178         to be public.
1179
1180         * gtkcheckbutton.c: Fixed redrawing of check button.
1181
1182         * gtkframe.c: Fixed redrawing of frame when the shadow type is
1183         changed.
1184
1185 Sat Mar  8 15:19:23 1997  Peter Mattis  <pmattis@localhost>
1186
1187         * gdkimage.c: Fixed a stupid bug with 'gdk_image_new' which
1188         potentially added a NULL image to "image_list" and caused problems
1189         when 'gdk_image_exit' was called.
1190
1191 Wed Mar  5 00:40:08 1997  Peter Mattis  <pmattis@localhost>
1192
1193         * gtkpreview.c: Massively changed the colormap handling used by
1194         the preview widget. Gray previews are now dithered. A single
1195         visual and colormap is shared by the color and gray previews. A
1196         GTK_PREVIEW_INFO property is installed on the root window in
1197         certain cases to allow multiple GTK programs to share the system
1198         colormap.
1199
1200 Sun Mar  2 05:43:06 1997  Peter Mattis  <pmattis@localhost>
1201
1202         * gtkcheckbutton.c: 'gtk_checkbutton_size_allocate' was allocating
1203         too much space to its children and not leaving the check button
1204         room for the focus border.
1205
1206         * gtknotebook.c: 'gtk_notebook_size_request' wasn't requesting
1207         enough space when the notebook tabs are visible.
1208
1209 Sat Mar  1 01:59:35 1997  Peter Mattis  <pmattis@localhost>
1210
1211         * gtkpreview.c: Fixed a problem with 'gtk_preview_put' when the
1212         image byte order is GDK_MSB_FIRST.
1213
1214         * gtksignal.c:
1215         * gtksignal.h: Added 'gtk_signal_connect_after' and
1216         'gtk_signal_connect_object_after' functions. These connect signal
1217         handlers which will run after the class function associated with
1218         the signal.
1219
1220         * gtkstyle.c: Fixed a stupid bug in 'gtk_style_new_from_key' that
1221         was causing twice as many styles to be created as necesary.
1222
1223         * gtkwidget.c: 'gtk_real_widget_size_allocate' erases the widgets
1224         old allocation if it has the GTK_NO_WINDOW flag set.
1225
1226         * gtkwidget.c: 'gtk_real_widget_unmap' now erases the widget if it
1227         has the GTK_NO_WINDOW flag set.
1228
1229         * gtklabel.c: Removed 'gtk_label_unmap' as similar functionality
1230         was added to gtk_real_widget_unmap.
1231
1232         * gtkbin.c: Modified 'gtk_bin_map' and 'gtk_bin_unmap' so that it
1233         erases and draws the widget if it has the GTK_NO_WINDOW flag set.
1234
1235         * gtkframe.c: Modified 'gtk_frame_size_allocate' so that it erases
1236         the old allocation.
1237
1238 Fri Feb 28 03:27:05 1997  Peter Mattis  <pmattis@localhost>
1239
1240         * gtkwindow.c: 'gtk_window_set_title' now changes the window title
1241         if the window is already realized.
1242
1243         * gtkentry.c: 'gtk_entry_set_text' was emitting both a
1244         "delete_text" and a "changed_text" signal. Modified so that it
1245         only emits a "changed_text" signal.
1246
1247         * gtkpreview.c: Modified to work correctly on systems with MSB
1248         byte order. The colormap for TRUE and DIRECT color displays is now
1249         created if the default visual is not equal to the visual we are
1250         using.
1251
1252         * gtkstyle.c: 'gtk_style_attach' and 'gtk_style_find' weren't
1253         working properly in the presence of multiple colormaps are
1254         different depth visuals.
1255
1256         * gtkcontainer.c: Massively improved focus traversal using tab and
1257         arrow keys. It now uses the layout of the widgets to determine
1258         where to move the focus to.
1259
1260 Mon Feb 24 03:24:02 1997  Peter Mattis  <pmattis@localhost>
1261
1262         * gtkmenufactory.c: Set the accelerator table field for menus when
1263         they are created.
1264
1265         * gtkmenu.c:
1266         * gtkmenu.h: Added a default accelerator table field to menus so
1267         that runtime modification of accelerator keys in menus can work
1268         better.
1269
1270         * gtkrange.c: 'gtk_range_default_{h,v}motion' had faulty logic for
1271         deciding what to do when the slider was at the edge of the
1272         trough. They previously didn't update the adjustment value event
1273         if the value wasn't what it should be when the slider was at the
1274         edge of the trough.
1275
1276         * gtkviewport.c: 'gtk_viewport_size_allocate' and
1277         'gtk_viewport_adjustment_value_changed' both had the potential for
1278         performing a divide by 0. Checks are now in place to prevent this.
1279
1280         * gtkmenu.c: 'gtk_menu_map' now makes sure the menu lies on screen
1281         if the position function is NULL.
1282
1283         * gtkentry.c: Modified selection handling. 'gtk_delete_selection'
1284         actually removes the X selection now. 'gtk_entry_destroy' removes
1285         the selection as well and relies on the change in "gdk.c" to make
1286         sure the selection event will not be sent to a non-existant
1287         window.
1288
1289         * gdk.c: Selection events are only passed on if the selection
1290         owner is not NULL.
1291
1292         * gtkstyle.c: 'gtk_style_detach' and 'gtk_style_destroy' were not
1293         destroying the black and white gc's.
1294
1295 Sun Feb 23 19:17:56 1997  Peter Mattis  <pmattis@localhost>
1296
1297         * gtkwindow.c: 'gtk_window_size_request' was setting the window
1298         hints. This was also being done in 'gtk_window_map', so the
1299         instance being done in 'gtk_window_size_request' was removed.
1300
1301 Fri Feb 21 01:04:01 1997  Peter Mattis  <pmattis@localhost>
1302
1303         * gtkwidget.c: 'gtk_widget_draw' has to use the widgets allocated
1304         position for the drawing rectangle when the widget has the
1305         GTK_NO_WINDOW flag set.
1306
1307         * gtkwidget.c: In 'gtk_widget_init' the visual and colormap were
1308         being directly compared against 'default_visual' and
1309         'default_colormap' instead of calling
1310         'gtk_widget_get_default_{visual,colormap}'.
1311
1312         * gdkrectangle.c: Amazing! There was a bug in the
1313         'gtk_rectangle_intersect' logic. Its been there for near eternity
1314         and I never noticed.
1315
1316         * gtkpreview.c:
1317         * gtkpreview.h: Created preview widget which allows drawing to an
1318         rgb or grayscale buffer which is automatically displayed on the
1319         screen. Performs dithering as necessary.
1320
1321 Thu Feb 20 20:33:21 1997  Peter Mattis  <pmattis@localhost>
1322
1323         * gdkwindow.c: Modified the logic in 'gdk_window_new' which
1324         determined when to add a window to the WM_COLORMAP_WINDOWS
1325         property.
1326
1327 Wed Feb 19 19:55:29 1997  Peter Mattis  <pmattis@localhost>
1328
1329         * gtkruler.c: 'gtk_ruler_make_pixmap' was always destroying the
1330         old backing store and creating a new one even when it would create
1331         a new one of exactly the same size as the old one.
1332
1333 Tue Feb 18 18:32:10 1997  Peter Mattis  <pmattis@localhost>
1334
1335         * gmem.c: 'g_mem_chunk_alloc' was incorrectly modifying the mem
1336         areas free mem field when reallocating a previously freed
1337         atom. This caused a fairly severe memory leak.
1338
1339         * gtkmenushell.c: 'gtk_menu_shell_button_release' had a bug in the
1340         logic for deciding whether to initiate an X pointer grab or not
1341         when the mouse button was released. It now only initiates a grab
1342         if the mouse is released within an active menu item.
1343
1344 Fri Feb 14 00:57:40 1997  Peter Mattis  <pmattis@localhost>
1345
1346         * gtknotebook.c: Changed the look of notebook tabs slightly.
1347
1348         * gtkentry.c:
1349         * gtkentry.h: Deleting an entry widget which is holding the X
1350         selection presents some difficulties. The X selection must be
1351         released, but the widget can't be destroyed until the
1352         SELECTION_CLEAR event is received that the X server will send in
1353         response to clearing the X selection. There are probably still
1354         bugs in the current method of entry widget deletion when the X
1355         selection is held.
1356
1357         * gtkmain.c: 'gtk_propagate_event' was not properly destroying the
1358         toplevel window when receiving a key press event.
1359
1360         * gtkwidget.c: Setting a widget insensitive did not cause it to
1361         redraw. It now does.
1362
1363 Thu Feb 13 16:59:07 1997  Peter Mattis  <pmattis@localhost>
1364
1365         * gtkviewport.c: 'gtk_viewport_size_allocate' was allocating its
1366         child widget an adjusted allocation. Since the actual scrolling
1367         has handled by a subwindow this caused the child to be double
1368         scrolled. Modified to always set the child allocations origin to
1369         (0, 0).
1370
1371 Wed Feb 12 01:06:48 1997  Peter Mattis  <pmattis@localhost>
1372
1373         * gtkentry.c: Text is now centered vertically. Previously it was
1374         pushed up against the top. This problem was only evident when the
1375         widget was allocated more vertical space than it requested.
1376
1377         * gtkfilesel.c: 'gtk_file_selection_key_press' was previously only
1378         a stub for tab completion. The actual tab completion call had been
1379         left out. (Oops!)
1380
1381 Tue Feb 11 01:43:08 1997  Peter Mattis  <pmattis@localhost>
1382
1383         * gtksignal.c: 'gtk_signal_disconnect_by_data' was going into a
1384         loop and crashing. Bad logic. Fixed.
1385
1386         * gtkmain.c: An idle function which returns FALSE will be removed
1387         from the list of idle functions. This makes the functioning of
1388         idle functions and timeouts more similar.
1389
1390         * gtkentry.c: 'gtk_entry_get_text' now returns an empty string
1391         when the actual text is NULL. This allows "stupid" programs to use
1392         the value returned by 'gtk_entry_get_text' blindly (without
1393         checking to see if its NULL).
1394
1395         * gtkradiobutton.c: Modified 'gtk_radio_button_clicked' so that
1396         'gtk_toggle_button_toggled' is called _after_ the widget state is
1397         changed.
1398
1399         * gtksignal.c:
1400         * gtksignal.h: Added 'gtk_signal_name' which returns the character
1401         string name for a given signal number.
1402
1403         * gtkwidget.c: 'gtk_widget_set_parent' checks to see if the widget
1404         is now "anchored" through the parent chain to a widget which is
1405         GTK_ANCHORED. If it is, then it changes the widgets style using
1406         'gtk_rc_get_style' and recursively performs the same operation on
1407         the widgets children. This is necessary is 'gtk_rc_get_style' only
1408         works properly on "anchored" widgets.
1409
1410         * gtkwindow.c: Modified GTK_WIN_POS logic so that it is only used
1411         immediately after the window has been shown.
1412
1413         * gtkmenu.c: 'gtk_menu_key_press'. Can now change menu item
1414         accelerator keys on the fly. Why? Why not. Cool/useless feature of
1415         the day.
1416
1417         * gtkmenuitem.c: Accelerator key drawing. Somehow that never got
1418         finished. (Oops!)
1419
1420         * gtkdrawingarea.c: 'gtk_drawing_area_size_allocate' was not
1421         actually installed during 'gtk_drawing_area_class_init'. (Oops!)
1422
1423         * gtkframe.c: 'gtk_frame_size_request' fixed size requisition
1424         problem caused by unsigned arithmetic.
1425
1426         * gtkwindow.c: Modified window widget so that it only uses the
1427         widget uposition auxiliary information immediately after it has
1428         been shown. This prevents the annoying bug which can cause a
1429         uposition'ed window to jump back to its original position after
1430         the user moves it.
1431
1432         * gtkwidget.c: Need to ref and unref style in
1433         'gtk_widget_{push,pop}_style' to make sure that a style on the
1434         style stack is not destroyed.
1435
1436         * gtktogglebutton.c: 'gtk_toggle_button_set_state' now calls
1437         gtk_button_clicked to actually change the state of the
1438         button. In this way, radio buttons can now perform the appropriate
1439         actions when the toggle button state is set.
1440
1441 Mon Feb 10 00:27:39 1997  Peter Mattis  <pmattis@localhost>
1442
1443         * gtklist.c: 'gtk_list_select_item' and 'gtk_list_unselect_item'
1444         were casting a GList* variable to a a GtkWidget* variable. Bad bad
1445         bad. (Tim Janik).
1446
1447         * gtksignal.c: Modified 'gtk_signal_connect' and
1448         'gtk_signal_connect_object' to warn when a signal type cannot be
1449         found.
1450
1451 Sun Feb  9 00:15:30 1997  Peter Mattis  <pmattis@localhost>
1452
1453         * gtkoptionmenu.c:
1454         * gtkoptionmenu.h: Changed option menus back to being derived from
1455         buttons. This fixes up some screwiness with their user
1456         interaction.
1457
1458         * gtkwindow.c: Modified key press handler to support focus
1459         traversal.
1460
1461         * gtkcontainer.c:
1462         * gtkcontainer.h: Added default focus traversal back in.
1463
1464 Sat Feb  8 10:44:38 1997  Peter Mattis  <pmattis@localhost>
1465
1466         * gtkviewport.h:
1467         * gtkviewport.c: Massively sped up viewport scrolling. Used to be
1468         reallocating child's size (offset) each time a scrollbar
1469         moved. Now a subwindow is moved. All the children are moved
1470         automatically by moving the subwindow. Much much much faster.
1471
1472 Tue Feb  4 00:20:44 1997  Peter Mattis  <pmattis@localhost>
1473
1474         * gtree.c: Changed 'g_tree_node_search' to use a loop instead of
1475         recursion.
1476
1477 Mon Feb  3 11:30:03 1997  Peter Mattis  <pmattis@localhost>
1478
1479         * gtkbutton.c: Removed 'parent_destroy' global and replaced it
1480         with 'parent_class' global to reflect style used in other
1481         widgets.
1482
1483         * gtknotebook.c: Tab labels were being allocated less than their
1484         requested size.
1485
1486         * gtkrange.c:
1487         * gtkrange.h: Moved the "digits" field of scales into the range
1488         type. The adjustment value for scales is truncated to the number
1489         of visible digits instead of being left untouched.
1490
1491         * gtree.c: Fixed a bug in the AVL tree implementation. Single
1492         rotations were always being performed during insertion. It is
1493         sometimes necessary to perform a double rotation.
1494
1495         * gtklabel.c: Modified 'gtk_label_expose' to only draw the label
1496         when the allocated space is greater than or equal to the requested
1497         space.
1498
1499         * gtklabel.c: Added call to 'gtk_widget_unmap' to
1500         'gtk_label_destroy' in order for the label to redraw correctly
1501         (erase itself) when destroyed.
1502
1503         * gtklabel.c: Added 'gtk_label_unmap' call which erases the labels
1504         allocation when it gets unmapped.
1505
1506         * *.h: Removed a few remaining instances of using "class" as a
1507         parameter name. (Causes problems for C++).
1508
1509 Fri Jan 31 12:26:50 1997  Peter Mattis  <pmattis@localhost>
1510
1511         * gtkcontainer.c: 'gtk_container_enable_resize' needs to call
1512         'gtk_container_check_resize' instead of
1513         'gtk_container_need_resize'.
1514
1515         * gtkwidget.c: 'gtk_real_widget_show' now maps the widget if its
1516         parent is mapped.
1517
1518         * gtkscrolledwindow.c: Fixed size allocation when the scrollbar
1519         policy's are GTK_POLICY_AUTOMATIC. Doing it correctly is harder
1520         than I originally thought.
1521
1522         * gtklist.c: Added 'gtk_list_child_position' to determine the
1523         integer position in a list of a child. Filled in the
1524         'gtk_list_item_select' and 'gtk_list_item_unselect' stubs.
1525
1526 Thu Jan 30 16:08:06 1997  Peter Mattis  <pmattis@localhost>
1527
1528         * gmem.c: Changed the implementation of G_ALLOC_AND_FREE mem
1529         chunks. They used to allocate SIZEOF_VOID_P extra bytes per atom
1530         in order to keep track of which mem area they were allocated
1531         from. Now the mem area is determined by searching through an AVL
1532         tree of the mem areas for a mem chunk and comparing memory
1533         locations. A little slower, but makes G_ALLOC_AND_FREE mem chunks
1534         much more attractive.
1535
1536         * gtree.c: Added an AVL tree implementation to glib.
1537
1538         * gtksignal.c:
1539         * gstring.c: va_arg (arg_list, {char, short}) is
1540         invalid. Arguments passed in a variable argument list are
1541         promoted. ({char, short}->int). Seemed to work ok before under
1542         Linux. Crashed under FreeBSD.
1543
1544 Tue Jan 28 02:27:51 1997  Peter Mattis  <pmattis@localhost>
1545
1546         * gdkwindow.c: Fixed a major slowdown apparent in the file
1547         selection dialog which was caused by calling
1548         'gtk_window_add_colormap_windows' way way way too often.
1549
1550         * *.c: Many widgets called 'gtk_container_need_resize' when
1551         something internal changed which would cause the widget to grow or
1552         shrink. The assumption was made that the widget would change size
1553         and an expose event would be generated. This happens "most" of the
1554         time. But its possible for certain widgets to change size without
1555         generating expose events, or for its internal geometry to change
1556         without a change of size which would mean no expose event was
1557         generated. So a wrapper function called
1558         'gtk_container_check_resize' was created and
1559         'gtk_container_need_resize' was modified so that it returns FALSE
1560         if a resize was actually generated and TRUE if nothing
1561         changed. This allows 'gtk_container_check_resize' to initiate a
1562         'gtk_widget_size_allocate' and 'gtk_widget_draw' to emulate the
1563         expose event.
1564
1565 Sat Jan 25 14:17:44 1997  Peter Mattis  <pmattis@localhost>
1566
1567         * gtkmain.c: Fixed a bug with propogating key press events. The
1568         events were sent 2 times to the toplevel windows which caused the
1569         focus widget to be activated twice when the space bar was pressed.
1570
1571         * */configure.in:
1572         * */Makefile.am: Added support for libtool and removed the old
1573         shared library configuration craziness.
1574
1575 Fri Jan 24 12:59:22 1997  Peter Mattis  <pmattis@localhost>
1576
1577         * gtktext.c:
1578         * gtktext.h: Josh's fixes and additions to the text widget.
1579
1580         * gtkfill.c:
1581         * gtkfill.h: Filler widget useful for filling space in a
1582         table. Can specify a minimum size. Used by the canvas widget.
1583
1584         * gtknotebook.c:
1585         * gtknotebook.h: Made outline of notebook widget.
1586
1587         * gtkcanvas.c:
1588         * gtkcanvas.h: Started canvas widget. A composite of 2 rulers (w/
1589         an origin), 2 scrolllbars. Guides, grids, snap to.
1590
1591 Sun Jan 19 18:26:45 1997  Peter Mattis  <pmattis@localhost>
1592
1593         * gtkdialog.c:
1594         * gtkdialog.h: Created dialog widget which creates a standard
1595         looking dialog with buttons along the button and a separator.
1596
1597         * gtkxid.c: Generalized the window table code for looking up a gdk
1598         window based on an XID to work for any XID and a piece of
1599         data. Can now look up gdk fonts based on their XID.
1600
1601         * gtkruler.c:
1602         * gtkruler.h:
1603         * gtkhruler.c:
1604         * gtkhruler.h:
1605         * gtkvruler.c:
1606         * gtkvruler.h: Started conversion of the ruler widget.
1607
1608         * gtktext.c:
1609         * gtktext.h: Started conversion of the text widget. Scrolling
1610         doesn't work.
1611
1612         * gtkmain.c: Fixed a fairly major bug. The event widget needs to
1613         be in a call for the entire duration of handling an event. Not
1614         just for when the event widget itself is handling the event.
1615
1616         * gtkfilesel.c: Fixed up some bugs with resizing.
1617
1618 Fri Jan 10 14:18:03 1997  Peter Mattis  <pmattis@localhost>
1619
1620         * gtkwidget.c:
1621         * gtkwidget.h:
1622         * gtkentry.c:
1623         * gtkentry.h: Support for selections.
1624
1625         * gdkselection.c:
1626         * gdk.c:
1627         * gdktypes.h:
1628         * gdk.h: Gdk support for X selections. Currently only text
1629         selections are supported.
1630
1631         * gtksignal.c: Fixed a major bug which occurred when destroying an
1632         object. Memory was being written to after it was freed.
1633
1634         * gtkfilesel.c:
1635         * gtkfilesel.h: Hooked up more functionality to the file selection
1636         dialog.
1637
1638 Wed Jan  8 18:13:53 1997  Peter Mattis  <pmattis@localhost>
1639
1640         * gtkfilesel.c:
1641         * gtkfilesel.h: Mostly converted old file selection dialog
1642         widget. The widget is derived from the GtkWindow class and is
1643         quite a bit simpler in the widget code.
1644
1645         * gtkwidget.c: Fixed 'gtk_widget_grab_focus' and
1646         'gtk_widget_grab_default' to check that the toplevel widget is a
1647         type of window (which includes classes derived from windows).
1648
1649 Tue Jan  7 01:12:32 1997  Peter Mattis  <pmattis@localhost>
1650
1651         * gtkwindow.c: Was calling 'gtk_window_resize' twice in a
1652         row...why?
1653
1654         * gtksignal.c:
1655         * gtksignal.h:
1656         * *.c: Changed 'gtk_signal_new' so that the class function that is
1657         called when the signal is emitted can be called either before,
1658         after or both before and after the calling of any signal
1659         handlers.
1660
1661         * gtkobject.c:
1662         * gtkobject.h: Added 'object_data' mechanism for storing data
1663         associated with a character string key in objects. Removed
1664         'user_data' field of objects and changed
1665         'gtk_object_{get,set}_user_data' to use the object data
1666         mechanism. Removed 'handlers' field of objects.
1667
1668         * gtkwidget.c:
1669         * gtkwidget.h:
1670         * gtkwindow.c: Modified aux info mechanism to use object data
1671         mechanism.
1672
1673         * gtksignal.c: Modified signal mechanism to use object data
1674         mechanism instead of 'handlers' field.
1675
1676
1677 Mon Jan  6 15:10:16 1997  Peter Mattis  <pmattis@localhost>
1678
1679         * gtkmenushell.c: Fixed up button press handling so as to conform
1680         more closely to that used by Motif.
1681
1682 Wed Jan  1 21:27:17 1997  Peter Mattis  <pmattis@localhost>
1683
1684         * gtkmenu.c:
1685         * gtkmenu.h:
1686         * gtkmenubar.c:
1687         * gtkmenubar.h:
1688         * gtkmenushell.c:
1689         * gtkmenushell.h: Reorganization of menu-ing code so that code
1690         duplication is reduced. The menu shell now contains most of the
1691         code for menu-ing interaction while menus and menubars simply layout
1692         their child menu items in the appropriate place.
1693
1694 Sun Dec 29 17:48:18 1996  Peter Mattis  <pmattis@localhost>
1695
1696         * gtkmenu.c:
1697         * gtkmenubar.c:
1698         * gtkmenuitem.h:
1699         * gtkmenuitem.c: Modifications so that menu item accelerators and
1700         the submenu indicator are drawn correctly and the correct amount
1701         of space is allocated.
1702
1703 Sat Dec 28 00:32:13 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1704
1705         * gtkmenufactory.h:
1706         * gtkmenufactory.c: Started menu factories as an easy method to
1707         create and manipulate menus.
1708
1709 Fri Dec 27 13:17:34 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1710
1711         * gtkmenu.c:
1712         * gtkmenu.h:
1713         * gtkmenubar.c:
1714         * gtkmenubar.h:
1715         * gtkmenuitem.c:
1716         * gtkmenuitem.h:
1717         * gtkmenushell.c:
1718         * gtkmenushell.h: Implemented basic menu functionality. Menubars
1719         and popup menus work. Submenus work. (Much left to be done).
1720
1721 Wed Dec 18 15:27:05 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1722
1723         * gtktypeutils.h:
1724         * gtktypeutils.c: Added 'gtk_type_from_name' which returns a type
1725         identifier given a type name. Implemented using a second hash
1726         table keyed by type names.
1727
1728         * gtkbutton.c:
1729         * gtktogglebutton.c: Fixed very small messed-up drawing bug when a
1730         button loses its focus.
1731
1732         * gtkwidget.h:
1733         * gtkwidget.c:
1734         * gtkbutton.c:
1735         * gtkwindow.c: Added default button handling. Default buttons now
1736         draw correctly and pressing return or enter causes the default
1737         button (if one exists) to be activated.
1738
1739 Tue Dec 17 19:32:21 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1740
1741         * gtkhscale.c:
1742         * gtkvscale.c: Overrode 'draw_slider' method of ranges in order to
1743         draw the slider of scales with a line in them so as to be closer
1744         to the Motif look-and-feel.
1745
1746         * gtkwindow.c: Modified 'gtk_window_focus_in_event' so that focus
1747         in events are only handled when the window is visible. Fixes a bug
1748         where spurious focus in events get sent when a window is being
1749         hidden.
1750
1751         * gtkwidget.h: Added 'activate_signal' field to the GtkWidgetClass
1752         structure. Added 'gtk_widget_activate' call to emit the activate
1753         signal for a widget if it is non-zero.
1754
1755 Tue Dec 10 15:59:45 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1756
1757         * gtkwidget.c: 'gtk_widget_set_name' oops in strdup'ing the old
1758         "widget->name" instead of the new one we are setting.
1759
1760         * gtkrc.c: 'gtk_rc_widget_path' changed to use
1761         'gtk_widget_get_name' instead of accessing the "widget->name"
1762         field directly.
1763
1764         * gtkwidget.c: Added 'gtk_widget_get_name' function which returns
1765         the widgets name if it exists and the widgets type name if it does
1766         not.
1767
1768         * gtkcheckbutton.c: Added 'gtk_check_button_draw'
1769         function. Modified 'gtk_check_button_expose' to pass an expose
1770         event to child instead of callings its draw function.
1771
1772         * gtkentry.c: 'gtk_entry_draw_text' why was "+1" being added to
1773         the font->ascent to calculate the font position? This was wrong
1774         and caused some characters in fonts to be clipped. (Notably "g").
1775
1776         * gtkentry.c: 'gtk_entry_realize' specify GTK_BUTTON1_MOTION_MASK
1777         and GTK_POINTER_MOTION_HINT_MASK for _both_ windows.
1778
1779         * gtkmain.c: 'gtk_propagate_event' needs to set the GTK_IN_CALL
1780         flag for the object before calling 'gtk_widget_event' and needs to
1781         destroy the object if necessary after 'gtk_widget_event' returns.
1782
1783         * gtkradiobutton.c: 'gtk_radio_button_clicked' needs to call
1784         'gtk_toggle_button_toggled' when the currently active button is
1785         toggled.
1786
1787         * gtkwidget.c: 'gtk_real_widget_hide' needs to call
1788         'gtk_widget_unmap' if the widget is currently mapped.
1789
1790         * gtkwindow.c: Prevent automatic resizing after the user has
1791         specified a new window size. Add 'handling_resize' flag to
1792         windows.
1793
1794         * gtkscrolledwindow.c: Implement the GTK_POLICY_AUTOMATIC
1795         scrollbar policy. Need to connect to the adjustments 'changed'
1796         signal and notice when the scrollbars aren't in use.
1797
1798         * gtkcontainer.c: 'gtk_container_init' must set 'auto_resize' and
1799         'need_resize' fields to TRUE and FALSE respectively.
1800
1801         * gtkwidget.c: 'gtk_widget_set_parent' must all set a widgets state
1802         to its parents state.
1803
1804 Sun Dec  1 01:31:01 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1805
1806         * Started ChangeLog