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