]> Pileus Git - ~andy/gtk/blob - ChangeLog.pre-2-8
Update.
[~andy/gtk] / ChangeLog.pre-2-8
1 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
2         * gdk/gdk.c, gdk/gdk.h, gdk/gdktypes.h: 
3           Remove dependencies of interfaces on USE_XIM
4         * gdki18n.h: Attempt to make wchar handling more portable
5         * gdkwindow.c: Include config.h. (For gdkinput.h)
6         
7 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
8         * gtk/gtkentry.c, gtk/gtkentry.h: 
9            Fixed word motion
10            Added cut/copy/paste via X clipboard
11            Generalized extending selection using <Shift> to work with all types
12              of motion, not just arrow keys.
13            Don't change length of GtkEntry structure because of USE_XIM
14
15 Sun Dec  7 03:19:02 1997  Tim Janik  <timj@psynet.net>
16
17         * gtkfilesel.c: applied jamesa-971010-0 for stability.
18         * gtkrc.c: applied jamesa-971010-2 for a small optimization.
19         * gtkcheckmenuitem.h:
20         * gtkcheckmenuitem.c:
21         * gtkradiomenuitem.c:
22         * testgtk.c: applied johannes-971113-0 which adds
23         gtk_check_menu_item_set_show_toggle() to change the way check
24         menu items and radio menu items look.
25
26 Fri Dec 5 1997 Elliot Lee <sopwith@cuc.edu>
27         * gdk/gdk.c: clean up warnings, remove some un-ifdef'd debugging
28         printing, DnD is Bug Free now, etc.
29         * gtk/gtkcolorsel.c: fix DnD support.
30         * gtk/gtkmain.c: DnD events go to the original window even if
31         there is a grab - if I drop on a window the data had better go
32         to it and not some other window :)
33         * gtk/testgtk.c: Replace (GtkSignalFunc) with GTK_SIGNAL_FUNC(),
34         and do a nicer DnD demo.
35         * My very first ChangeLog entry, seeing as people have
36         a fixation on them (what's wrong with "rcs2log" output?)
37
38 Thu Dec 4 1997 Owen Taylor <owt1@cornell.edu>
39         * gdk/gdkgc.c: Ignore gdk_gc_set_font if font is a fontset.
40
41 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
42         * gtk/gtkstyle.c: fixed a problem introduced recently in 
43         gtk_style_detach witch crashed script_fu.
44
45 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
46         * gdk/Makefile.am: add a dependence for $(DEP_FILES) on
47         $(BUILT_SOURCES) to work around automake problem
48         
49 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
50         * configure.in glib/configure.in glib/glibconfig.h.in gdk/gdk.h
51         gdk/gdk18n.h gdk.c gtk/gtkentry.c: Try to handle variations in 
52         <wchar.h> headers gracefully. Do not automatically include 
53         gdk/gdki18n.h.
54         
55 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
56         * gtk/gtkoptionmenu.c: fixed a old bug where if you set a new 
57         menu for a optionmenu the widget would not get positioned correctly
58         inside of the optionmenu.
59
60 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
61         * gdk/gdkpixmap.c: Include unistd.h to get SEEK_END
62         for SunOS (john_johns@credence.com)
63         
64 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
65         * gtk+/fnmatch.c: Define _GNU_SOURCE before including
66         fnmatch.h to make sure all constants are defined.
67         (Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp>)
68         
69 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
70         * configure.in, glib/configure.in: Make the logic to add -Wall,
71         -ansi, -pedantic for GCC operational.
72
73 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
74         * glib/glib.h, glib/configure.in. Disabled gldouble, since
75         it wasn't used anywhere and caused portability problems
76
77 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
78         * glib/glib.h, glib/configure.in, glib/glibconfig.h.in: Added a
79         g_memmove function which is simply memmove if it exists, otherwise
80         bcopy.(Should really check if bcopy has the correct semantics, and
81         create our own memmove is necessary) 
82         * glib/gstring.c, glib/garray.c, gtk/gtktext.c:
83         memmove => g_memmove
84         
85 Sun Nov 30 1997 Jay Painter <jpaint@serv.net>
86         * gtk/gtknotebook.c: fixed a old bug where all the notebook pages
87         which were not displayed when the notebook widget was realized were
88         never size allocated when they were realized.
89
90 Thr Nov 28 1997 Jay Painter <jpaint@serv.net>
91         * gtk/gtklist.h: removed GtkSelectionMode
92         * gtk/gtkenums.h: added GtkSelectionMode
93
94 Fri Nov 28 01:26:55 1997  Tim Janik  <timj@psynet.net>
95
96         * gtk/gtkwindow.c (gtk_window_show): propagate a size_request before
97         the initial window creations (prevents windows with size of -1x-1).
98
99         * gtk/gtkmain.c (gtk_main_level): new function to determine
100         the current recursion level of gtkmain().
101         (gtk_true) (gtk_false): new functions implemented as a convenience
102         for signals that just need a handler with the appropriate return value.
103
104 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
105         gdk.c: Fix so that "other_events" are actually generated
106
107 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
108         Patches to support internationalized input by:
109           Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
110           TANAKA Shinya <shinya@race.u-tokyo.ac.jp>
111
112         From the README:
113         
114         Feature:
115           Followings are the main feature of this patch.
116             * support XIM protocol.
117             * GtkEntry widget support Over-The-Spot and Root style input.
118             * input style is configurable by command-line option.
119
120         Furthermore, this patch includes several changes which are useful 
121           without XIM too.
122         
123             * copy and paste with other clients by compound text.
124             * Window title can be specified by multi byte string.
125
126         configure.in: 
127           Added --with-locale and --enable-xim options
128         gdk/Makefile.am:
129         gdk/gdki18n.h [new file]
130           Multibyte string manipulation functions
131         gdk/gdk.c
132         gdk/gdk.h
133         gdk/gdkprivate.h
134           Input method and context handling functions
135           Command line options to control input methods
136           Changes to KeyPress handling to support input methods
137           Fixes to not return events for destroyed windows
138         gdk/gdkselection.c
139           Text property handling functions
140         gdk/gdkwindow.c
141           Set window title by multibyte string
142         gtk/gtkentry.c
143           Support for using an input context for XIM input.
144           Cut and paste using compound text.
145           Improvements to pasting (no longer replace the active selection
146             with itself OWT)
147         gtk/gtkselection.c
148           fix to send selection clear events to the right owner
149         gtk/testgtkrc
150           Added a default fontset that will allow international characters
151         INSTALL
152           Some rudimentary documentation about the new configuration options.
153         
154 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
155         gtk/gtkaspectframe.c:
156         Some minor improvements to rounding in aspectframes.
157         Make sure that child allocation is always >= 0
158         Always trigger size allocation with gtk_widget_queue_resize
159         to prevent calling size_allocate before allocation done.
160
161 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
162         gtk/gtkframe.c:
163         Changed tests for drawability to GTK_WIDGET_DRAWABLE
164         Always trigger size allocation with gtk_widget_queue_resize
165         to prevent calling size_allocate before allocation done.
166
167 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
168         gtk-dairiki-971117-2.patch
169         gtk/gtkaspectframe.c (gtk_aspect_frame_size_allocate): When
170         computing new dimensions of the subwidget, round to nearest
171         integer rather than truncating.
172
173 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
174         gtk-dairiki-971117-1.patch
175         * gtk/gtkvruler.c (gtk_vruler_draw_ticks):
176         * gtk/gtkhruler.c (gtk_hruler_draw_ticks): Ensure that subticks
177         always are drawn when they should be (sometimes they were getting
178         drawn with zero length --- invisible).  Also clear rectangle
179         behind text labels to ensure they don't touch or overlap ticks. 
180
181 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
182         * gtk/gtkaspectframe.c (gtk_aspect_frame_set): 
183         gtk-dairiki-971117-0.patch
184         Clear window when aspect ratio or alignment is changed.
185
186 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
187         * gtk/gtkobject.h: fixed GTK_OBJECT_NSIGNALS macro
188
189 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
190         * gtk/gtklabel.h: modified gtklabel to clip its drawing to
191         its given area, now it will always draw in the area it's 
192         been given and clip accordingly.  Note: this may cause
193         the a label to disappear on widgets which don't give their
194         child labels proper area!
195
196 Mon, 17 Nov 1997 Michael K. Johnson <johnsonm@redhat.com>
197         * gtkwidget.c: gtk_set_style_recurse was not allowing updated
198         widget names to cause new styles to be applied.
199         * gtkentry.c gtkentry.h: The entry widget now has invisible
200         attribute.  The cursor does not move to show you typing; this
201         is an intentional design decision but I'm not so attached to it
202         that I'll reverse any patches that change it...  :-)
203
204         This patch is a modified version of a patch to which I have
205         lost the attribution.  I modified it by packing the "visible"
206         flag into the structure more tightly (without damaging backwards
207         compatibility on sane systems) and by allowing entry timers
208         to run.
209
210 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
211         * gtkviewport.c: Raph's Mon, 10 Nov 1997 patch to gtk-list 
212         to fix some viewport bugs
213
214 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
215         * gtk/gtkwidget.c: gtk-ajaborsk-971016-2
216         A little patch again to prevent user to use gtk_widget_set_events()
217         when a widget is already realized.
218         In this case, the gtk_widget_set_events() doesn't work.
219
220 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
221         * gtk/gtkwindow.c: gtk-ajaborsk-971016-1
222         This small patch correct position for GTK_WIN_POS_CENTER and
223         GTK_WIN_POS_MOUSE GtkWindow positions.
224
225 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
226         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
227         * gdk/gdk.h: header for above
228
229 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
230         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
231         * gdk/gdk.h: header for above
232
233 Wed Nov 12 1997 Jay Painter <jpaint@serv.net>
234         * gdk/gdkpixmap.c: Patrice Fortier's patch for transparent pixmaps.
235         * gdk/gdk.h:
236           gdk/gdkdraw.c: Patrice Fortier's patch to add pixel draw function.
237
238 Sun Nov  9 1997 Jay Painter <jpaint@serv.net>
239         * Fixed problems with makefiles relating to the bug
240         which required glib to be installed.
241         * Fixed makefiles to incluce the xpm's in gtk+/gtk needed
242         for testgtk.
243         * Updated gtk+ and gtk+/glib to libtool-1.0f
244
245 Fri Nov  7 1997 Jay Painter <jpaint@serv.net>
246         * gtk/gtktext.c: return char_widths[ch & 0xff]; in line 2152
247
248 Thr Nov  5 1997 Jay Painter <jpaint@serv.net>
249         * gtk/testgtk.c: added drag and drop test, removed the test hack
250         from the button test
251
252 Tue Nov  4 08:28:57 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
253
254         * gtk/gtkmain.c (gtk_handle_idle): Patch from David Mosberger to
255         avoid crashes when handling idle function (this manifested itself
256         in the Umax and Microtek backends in SANE.
257
258 Sun Nov  2 07:34:56 1997  Tim Janik  <timj@psynet.net>
259
260         * gtk/gtkfilesel.c: Small fixes about a segmentation viaolation
261         cause by a double click in the directoy list (introduced by my
262         previous changes).
263         
264         * gtk/gtklist.c: Small fixes to gtk_list_add() and gtk_list_remove().
265         
266         * gtk/testgtk.c (list_add): Applied Stefan Wille's patch to make this
267         function do something ;).
268
269 Fri Oct 31 Jay Painter <jpaint@serv.net>
270         *gdk/gdk.c: reformatted DND code for GTK coding standards
271         *gdk/gdkwindow.c: changed memory allocation for DND to q_mem stuff
272
273 Thu Oct 30 Jay Painter <jpaint@serv.net>
274         * gdk/gdkwindow.c: 
275         * gdk/gdk/gdk.h:
276         * gtk/gtkwidget.h:
277         * gtk/gtkwidget.c: Applied Stephan Willie's shaped window patch
278
279         * gdk/gdkwindow: 
280         * gdk/gdk.h:
281         * gtk/gtkwidget.h:
282         * gtk/gtkwidget.c: reformatted the DND code to conform to GTK
283                 coding standards
284
285         * gtk/testgtk: massive fixes, SW's shaped window example
286
287 Thu Oct 30 07:33:27 1997  Tim Janik  <timj@psynet.net>
288
289         * gtk/gtklistitem.c (gtk_real_list_item_toggle): applied Johannes
290         Keukelaar's <johannes@nada.kth.se> patch for keyboard support in
291         GtkList widgets.
292
293         * gtk/gtkfilesel.c: adapted dir and file list selection
294         behaviour to deal with keyboard selections. this is a little
295         bit tricky: in the dir list it just changes the entrys value on a one
296         button press. but on a keyboard selection via gtk_widget_activate() it
297         does a new population (likewise on a double click) as this seems more
298         obvious.
299
300 1997-10-25  Marius Vollmer  <mvo@zagadka.ping.de>
301
302         * gdk/gdkcolor.c (gdk_colormap_get_system): Initialize
303         private->ref_count.
304
305 Wed Oct 22 09:47:43 1997  Tim Janik  <timj@psynet.net>
306
307         * gtk/gtkwindow.c (gtk_window_key_release_event): Fixed a stupid
308         bug that caused the key_release_event to be propagated twice.
309
310 Sun Oct 12 11:01:43 1997  Tim Janik  <timj@psynet.net>
311
312         * acconfig.h:
313         * configure.in:
314         * gdk/gdkimage.c: Added configure check for IPC_RMID_DEFERRED_RELEASE,
315         because shmat() fails after a shmctl(..., IPC_RMID,...) for OSF1 V3.2,
316         SunOS 4.1.1, 5.5, 5.5.1, 5.6, IRIX 5.2 and 6.2.
317
318 Mon Oct  6 11:59:07 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
319
320         * gdk/gdk.c (gdk_event_translate): In line 1693, fixed typo that
321         would cause motion notify events not to be delivered.
322
323 Sun Oct  5 18:15:06 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
324
325         * gtk/gtkrc.c (gtk_rc_parse_bg_pixmap): Changed strdup() for
326         g_strdup().
327
328 Wed Sep 24 17:16:34 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
329
330         * configure.in: Fixed a stupid error in the test for libXext that
331         would cause it to fail if X_EXTRA_LIBS was not empty.
332
333         * gtk/gtkmain.h (gtk-timj-970919.patch):
334         * gtk/gtkmain.c (gtk-timj-970919.patch): new function
335         `gtk_idle_remove_by_data' to remove all idle callbacks that take a
336         specific piece of data as argument.  (gtk_get_current_event):
337         remove idles through gtk_idle_remove_by_data.
338         
339         * gtk/gtkwidget.c (gtk-timj-970919.patch):
340         (gtk_widget_destroy): remove pending idles for
341         widgets that have GTK_REDRAW_PENDING or GTK_RESIZE_PENDING and
342         GTK_ANCHORED set (only anchored widgets can have a resize queue
343         handler pending). widgets that have GTK_RESIZE_NEEDED will be removed
344         from their anchored toplevels `resize_widgets' list.
345         
346         (gtk_widget_queue_draw): let the widget remember the queue handler
347         tag (through `redraw_handler_key') for later call to `gtk_idle_remove'.
348         
349         (gtk_widget_queue_resize): let the widget remember the queue handler
350         tag (through `resize_handler_key') for later call to `gtk_idle_remove'.
351         corrected referencing the toplevel widget for which the handler is
352         pending. if a widget is added to the `resize_widgets' list of a
353         toplevel widget, GTK_RESIZE_NEEDED is set and it's referenced.
354         
355         (gtk_real_widget_queue_resize): on the deletion of the `resize_widgets'
356         list, unset GTK_RESIZE_NEEDED and unreference the removed widgets.
357         
358         * gtk/gtkwindow.c (gtk-timj-970919.patch):
359         (gtk_real_window_move_resize): move `resize_containers = NULL'
360         initialization out of if-statement.
361         while stepping through the `resize_widgets' list, unreference the
362         widgets and clear GTK_RESIZE_NEEDED. if a widget realy needs are
363         resize, they are flagged through GTK_RESIZE_NEEDED now (instead of
364         GTK_RESIZE_PENDING, as this is indicative for a pending handler).
365         added checks to provide segfaulting if a widgets parent pointer
366         is NULL (e.g. on toplevel widgets that have GTK_RESIZE_NEEDED set).
367
368 Tue Sep 23 13:23:27 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
369
370         * gdk/gdkimage.c: Applied Tim Janik's patch to mark shm segments
371         as IPC_RMID so that they are automatically removed always.
372
373         * gdk/gdkfont.c: Removed casts from lvalues.
374
375         * gtk/gtkmain.c: Removed GTK_RETLOC_*() (which do a cast) from lvalues.
376
377         * gtk/gtkaccelerator.c (gtk_accelerator_table_remove): Added
378         "const" to the accelerator_key param to be consistent with the
379         declaration in gtkaccelerator.h.  The const is not useful in this
380         case, anyway.
381
382 Tue Sep 16 13:11:06 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
383
384         * gtkpreview.c: Andrew Logan Kieschnick's change to eliminate
385         round-off error when gamma is set to 1.0.
386
387         * gtkrange.c:
388         * gtkviewport.c: Jay Painter's changes to modify the way in which
389         viewports resize.
390
391         * gdkinput.c:
392         * gdkinputgxi.h:
393         * gdkinputxfree.h:
394         * gtk/Makefile.am:
395         * gtk.h:
396         * gtkeventbox.c:
397         * gtkeventbox.h: Owen Taylor's event box widget and fixes for X
398         input support (that I had broken).
399
400         * gdk.h:
401         * gdkwindow.c:
402         * gtksignal.h:
403         * gtksignal.c: Elliot Lee's changes to support Objective C. (id is
404         apparently a reserved word in Objective C).
405
406 Sun Sep 14 22:33:15 1997  Peter Mattis  <pmattis@localhost>
407
408         * gtkwidget.c (gtk_widget_queue_resize): If the toplevel container
409         is invisible we simply call "gtk_container_need_resize" on
410         it. This fixes a bug with option menus not redrawing correctly.
411
412         * gtkmenuitem.c (gtk_menu_item_enter): (gtk_menu_item_leave):
413         These functions now simply pass the event on to their parent. This
414         is necessary for menus to work properly due to the change in how
415         grabs are dealts with.
416
417         * gtkwindow.c (gtk_real_window_move_resize): Fixed a bug that
418         caused the GTK_RESIZE_PENDING flag to not be unset in some cases.
419
420 Fri Sep  5 20:49:37 1997  Marius Vollmer  <mvo@zagadka.ping.de>
421
422         Bug fixes:
423
424         * Makefile.am: Added PATCHES to EXTRA_DIST.
425         * gtk/gtkpixmap.c (gtk_pixmap_new): Move the "pixmap != NULL" test
426         after the allocation of the pixmap.
427
428         To shut up the compiler:
429
430         * gtk/gtkfilesel.c (get_pwdb): Initialize home_dir.
431         * gtk/gtkmain.c (gtk_init): Replace comments around calls to
432         g_set_*_handler with "if (0)".
433         * gtk/gtkrc.c (gtk_rc_get_token): Initialize hex_number and
434         float_number.
435         * gtk/gtkwindow.c (gtk_window_key_press_event): Initialize
436         direction.
437
438         Changes to the type system in gtk/:
439
440         * Makefile.am: Added gtktypebuiltins.h to gtkinclude_HEADERS.
441         Added gtk.defs, runelisp, gentypeinfo.el and gtktypebuiltins.c to
442         EXTRA_DIST.  Added rules to generate gtktypebuiltins.* from
443         gtk.defs.
444
445         * runelisp, gentypeinfo.el, gtk.defs: New files.
446
447         * gtkaccelerator.c, gtkaccelerator.h (gtk_accelerator_table_ref):
448         Return the table so that this function can be used as the `copy'
449         function for GTK_TYPE_BOXED values.
450         * gtkstyle.c, gtkstyle.h (gtk_style_ref): Likewise.
451
452         * gtkenums.h: Removed GtkArgType enum.
453
454         * gtkmain.c (gtk_init): Call gtk_type_init to initialize the type
455         system.
456
457         * gtkobject.c (gtk_object_init_type): New function to take over
458         for gtk_object_get_type. (gtk_object_get_type): Just return the
459         constant GTK_TYPE_OBJECT. (gtk_object_collect_args): Do the right
460         thing for the new GTK_TYPE_* types.
461         * gtksignal.c (gtk_params_get): Likewise.
462
463         * gtktypeutils.c: (gtk_type_init_builtin_types): New
464         function. (gtk_type_init): Call it.  Also made non-static.
465         (gtk_type_unique): The allocation scheme for numerical ids has
466         changed: The low 8 bits hold the appropriate GtkFundamentalType of
467         a type, the rest is a globally unique sequence number.
468         (gtk_type_hash): Use the sequence number of a key to hash it.
469         (gtk_type_register_builtin): New function.
470
471         * gtktypeutils.h: (GtkFundamentalType): New enumeration of the
472         fundamental types. (GTK_TYPE_MAKE, GTK_FUNDAMENTAL_TYPE,
473         GTK_TYPE_SEQNO): New macros to work with the new id scheme.
474         (GtkArg): Added fields for new types and renamed old ones.  GtkArg
475         should now be a mostly opaque structure, except name and type.
476         (GTK_VALUE_*): New macros to access the values of a GtkArg.
477         (GTK_RETLOC_*): New macros to access the location of a return
478         value that is contained in a GtkArg.  * gtktypebuiltins.h: New
479         file to access the typeids of the builtin types.
480
481         * gtkwidget.h (GTK_TYPE_WIDGET): New macro to access the type id
482         of the widget class.
483
484         Thru out: Changed GTK_ARG_* to the appropriate GTK_TYPE_*.
485         Changed access to GtkArg structure to the appropriate GTK_VALUE_*
486         or GTK_RETLOC_* macro.  Changed GtkArgType to GtkType.  Changed
487         some guints to GtkType.
488
489         General changes in gtk/ to support interpreters:
490
491         * gtkradiobutton.c (gtk_radio_button_new_from_widget,
492         gtk_radio_button_new_with_label_from_widget): New functions.
493
494         * gtksignal.c (gtk_signal_connect_no_marshal): New function.
495         (struct _GtkHandler): Added no_marshal and destroy_func fields.
496         (gtk_signal_handler_new): Initialize them.
497         (gtk_signal_connect_by_type): Added no_marshal and destroy_func
498         arguments.  Changed all callers.
499         (gtk_signal_destroy): Invoke destroy_func if there is one and the
500         global destroy func does not apply.  (gtk_handlers_run): If the
501         handler has no_marshal set, call its function directly without
502         going thru the signal's marshaller.
503
504 Wed Sep  3 09:56:22 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
505
506         * gtkrange.c: Changed the way the range control focus was drawn so
507         that the range control is drawn correctly when it does not have
508         the focus.
509
510 Tue Sep  2 17:41:17 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
511
512         * gtkwidget.c: 'gtk_real_widget_queue_resize' should only remove
513         the "resize_widgets" if another resize is not pending.
514
515 Mon Sep  1 18:28:08 1997  Peter Mattis  <pmattis@localhost>
516
517         * gtkmain.c: Changed the way GDK_DELETE events are handled. Only,
518         if 'gtk_widget_event' returns TRUE is the widget destroyed. By
519         default, 'gtk_widget_event' will return FALSE causing the window
520         to not be destroyed. This prevents segfaults in the GIMP and other
521         programs that do not correctly handle GDK_DELETE events.
522
523         * gtkmain.c: Added modal dialog support by allowing events
524         destined for a child of the grab widget to go to the child instead
525         of the grab widget. (Added 'gtk_widget_is_ancestor' to determine
526         the relationship between the grab widget and the event widget).
527
528         * *.[ch]: Incorprated a whole mess of patches. (Started keeping
529         the ChangeLog up to date again).
530
531 Thu Jun  5 17:22:21 1997  Peter Mattis  <pmattis@localhost>
532
533         * gtkmenufactory.c:
534         * gtkmenufactory.h: Added 'gtk_menu_factory_remove_*'
535         calls. Removing entries/paths causes the associated widgets to be
536         destroyed.
537
538         * gtkwidget.c:
539         * gtkwidget.h: Calling 'gtk_widget_set_style' is used as an
540         indication that the programmer specifically wants that style to be
541         used. RC-style substitution is disabled for the widget after such
542         a call.
543
544         * gtkpixmap.c:
545         * gtkpixmap.h:
546         * gtkimage.c:
547         * gtkimage.h: Changed to use clip mask and a single pixmap (or
548         image) to deal with transparent areas.
549
550         * gdkpixmap.c: Modified xpm loading routines to optionally return
551         a clip mask.
552
553         * gdkgc.c:
554         * gdkdraw.c:
555         * gdktypes.h: Modifications to allow clip masks to be used with
556         gc's. Clip masks are bitmaps that specify drawable regions.
557
558 Thu May  1 03:11:51 1997  Peter Mattis  <pmattis@localhost>
559
560         * gtkscrolledwindow.c: Scrolled windows need to have the
561         GTK_NO_WINDOW flag set. Not having it set caused an obscure
562         redrawing bug.
563
564 Wed Apr 30 12:38:03 1997  Peter Mattis  <pmattis@localhost>
565
566         * gtkhruler.c:
567         * gtkvruler.c: Fixed a small bug that caused the indicator to be
568         positioned slightly off.
569
570 Sun Apr 27 14:28:21 1997  Peter Mattis  <pmattis@localhost>
571
572         * gtkmenushell.c:
573         * gtkmenushell.h:
574         * gtkmenu.c:
575         * gtkmenu.h: Changes so that if a menu is popped up there is a
576         timeout period during which a menu item will not be activated and
577         if the mouse button is released in that period the menu will stay
578         popped up.
579
580         * gtkcurve.c:
581         * gtkcurve.h: Included curve widget courtesy of David
582         Mosberger-Tang (davidm@azstarnet.com).
583
584         * gtkentry.c:
585         * gtkentry.h: Changed "insert" and "delete" signals to
586         "insert_text" and "delete_text" respectively. (The symbol "delete"
587         cannot be used since it is a C++ reserved word).
588
589 Sat Apr 19 01:43:49 1997  Peter Mattis  <pmattis@localhost>
590
591         * gtkmenufactory.c: A path which ends in "<nothing>" will cause an
592         invisible (hidden) menu entry to be created. This is useful for
593         setting an accelerator key for which a corresponding menu entry is
594         not desired.
595
596         * gtktooltips.c: Fixed some problems with destruction of the
597         active tip widget not properly updating the tooltips data
598         structures.
599
600 Fri Apr 18 15:09:45 1997  Peter Mattis  <pmattis@localhost>
601
602         * gtkcontainer.c:
603         * gtklist.c:
604         * gtkwidget.c:
605         * gtkwidget.h: Patch from Owen Taylor (owt1@cornell.edu) which
606         fixes problems with destruction of objects and with destruction of
607         objects which hold the focus.
608
609 Thu Apr 17 11:29:15 1997  Peter Mattis  <pmattis@localhost>
610
611         * gtkmenushell.c: Incorrect logic in
612         'gtk_menu_shell_button_release' for deciding when a menu should
613         stay popped up when the mouse button is released.
614
615         * *.c: Miscellaneous fixes from folks on the net.
616
617 Tue Apr 15 02:43:17 1997  Peter Mattis  <pmattis@localhost>
618
619         * *.c:
620         * gtkwidget.h: Added GTK_BASIC widget flag which when set
621         specifies a widget as "basic". A "basic" widget is one which
622         doesn't take input events. For example, labels, pixmaps, boxes,
623         tables, alignments, etc.
624
625 Sat Apr 12 15:23:08 1997  Peter Mattis  <pmattis@localhost>
626
627         * gtkcolorsel.c: Add "#include <math.h>" to define M_PI.
628
629         * gtksignal.c: Fixed a bug in 'gtk_signal_emit' which showed up
630         because of the new cast checking macros. The 'object' was being
631         accessed after it had been destroyed.
632
633         * gtkoptionmenu.c: Fixed bug with using 'GTK_BIN' instead of
634         'GTK_BUTTON' which showed up because of the new cast checking
635         macros.
636
637         * *.h: 'GTK_CHECK_CAST', 'GTK_CHECK_CLASS_CAST' and
638         'GTK_CHECK_TYPE' used by standard widget macros everywhere.
639
640 Wed Apr  9 00:54:17 1997  Peter Mattis  <pmattis@localhost>
641
642         * docs/gtk.texi: Started further work on documentation. Major
643         changes and additions are being made.
644
645         * gtkarrow.c:
646         * gtkarrow.h: Removed function 'gtk_arrow_get'.
647
648         * gtkcontainer.c: 'gtk_container_check_resize' no performs
649         additional checking to account for the case where the containers
650         allocation is no longer sufficient because its parent (or its
651         parents parent, etc.) needs to resize its children.
652
653 Tue Apr  8 21:15:50 1997  Peter Mattis  <pmattis@localhost>
654
655         * gtkstyle.c: Fixed a bug in 'gtk_style_init' in which the font
656         was not ref'd (via 'gdk_font_ref'), but was free'd (via in
657         'gdk_font_free') in 'gtk_style_destroy'. (David
658         Mosberger-Tang). Also cleaned up 'gtk_style_destroy' while I was
659         at it.
660
661         * gtkmain.c: Fixed a bug in 'gtk_propogate_event' which caused
662         entry widgets (and probably other widgets) not to be destroyed in
663         some instances.
664
665 Mon Apr  7 01:20:38 1997  Peter Mattis  <pmattis@localhost>
666
667         * gtkentry.c:
668         * gtkentry.h: Changed the "insert_text", "delete_text" and
669         "changed_text" signals to "insert", "delete", and "changed"
670         respectively. They really should have been named this way
671         originally except the previous signal mechanism prevented
672         duplicate signal names. ("changed" is also used by adjustments).
673
674         * gtkradiomenuitem.c:
675         * gtkradiomenuitem.h: New widget.
676
677         * gtkcheckmenuitem.c:
678         * gtkcheckmenuitem.h: New widget.
679
680         * gtksignal.c: Modified 'gtk_signal_lookup' to require an object
681         type to be passed as a parameter. In addition, signals are now
682         only needed to be uniquely defined in their branch of the class
683         hierarchy. This allows the same signal name to be used in two
684         different branches of the class hierarchy. For instance, the
685         "changed" signal is used both by adjustments and entries...in
686         different ways!
687
688         * gtktypeutils.c: Added 'gtk_type_parent' which returns the parent
689         type for a given type.
690
691 Sun Apr  6 22:08:35 1997  Peter Mattis  <pmattis@localhost>
692
693         * gtkwidget.c: If a widget is set insensitive it loses the focus
694         if it had it.
695
696         * gtkcontainer.c: Insensitive widgets no longer participate in tab
697         traversal.
698
699         * gtkscrolledwindow.c: The "viewport" child is now destroyed and a
700         container class "foreach" function was written (which fixes the
701         sensitivity bug).
702
703 Sat Apr  5 14:25:38 1997  Peter Mattis  <pmattis@localhost>
704
705         * gtkhscrollbar.c:
706         * gtkvscrollbar.c: Fixed trough size allocation bug.
707
708         * gtkhscale.c:
709         * gtkvscale.c: Fixed trough size allocation and position bug that
710         showed up when scales were placed in notebooks.
711
712 Thu Mar 27 17:45:54 1997  David Mosberger-Tang  <davidm@azstarnet.com>
713
714         * gtk/gtkmain.c (gtk_handle_idle): Fix appending pending_idles to
715         idle_functions so it works even when idle_functions is empty.
716
717 Sat Mar 15 14:15:59 1997  Peter Mattis  <pmattis@localhost>
718
719         * *.[ch]: Moved '*_class_init' and '*_init' function declarations
720         for widgets into the source file as those functions no longer had
721         to be public.
722
723         * gtkcheckbutton.c: Fixed redrawing of check button.
724
725         * gtkframe.c: Fixed redrawing of frame when the shadow type is
726         changed.
727
728 Sat Mar  8 15:19:23 1997  Peter Mattis  <pmattis@localhost>
729
730         * gdkimage.c: Fixed a stupid bug with 'gdk_image_new' which
731         potentially added a NULL image to "image_list" and caused problems
732         when 'gdk_image_exit' was called.
733
734 Wed Mar  5 00:40:08 1997  Peter Mattis  <pmattis@localhost>
735
736         * gtkpreview.c: Massively changed the colormap handling used by
737         the preview widget. Gray previews are now dithered. A single
738         visual and colormap is shared by the color and gray previews. A
739         GTK_PREVIEW_INFO property is installed on the root window in
740         certain cases to allow multiple GTK programs to share the system
741         colormap.
742
743 Sun Mar  2 05:43:06 1997  Peter Mattis  <pmattis@localhost>
744
745         * gtkcheckbutton.c: 'gtk_checkbutton_size_allocate' was allocating
746         too much space to its children and not leaving the check button
747         room for the focus border.
748
749         * gtknotebook.c: 'gtk_notebook_size_request' wasn't requesting
750         enough space when the notebook tabs are visible.
751
752 Sat Mar  1 01:59:35 1997  Peter Mattis  <pmattis@localhost>
753
754         * gtkpreview.c: Fixed a problem with 'gtk_preview_put' when the
755         image byte order is GDK_MSB_FIRST.
756
757         * gtksignal.c:
758         * gtksignal.h: Added 'gtk_signal_connect_after' and
759         'gtk_signal_connect_object_after' functions. These connect signal
760         handlers which will run after the class function associated with
761         the signal.
762
763         * gtkstyle.c: Fixed a stupid bug in 'gtk_style_new_from_key' that
764         was causing twice as many styles to be created as necesary.
765
766         * gtkwidget.c: 'gtk_real_widget_size_allocate' erases the widgets
767         old allocation if it has the GTK_NO_WINDOW flag set.
768
769         * gtkwidget.c: 'gtk_real_widget_unmap' now erases the widget if it
770         has the GTK_NO_WINDOW flag set.
771
772         * gtklabel.c: Removed 'gtk_label_unmap' as similar functionality
773         was added to gtk_real_widget_unmap.
774
775         * gtkbin.c: Modified 'gtk_bin_map' and 'gtk_bin_unmap' so that it
776         erases and draws the widget if it has the GTK_NO_WINDOW flag set.
777
778         * gtkframe.c: Modified 'gtk_frame_size_allocate' so that it erases
779         the old allocation.
780
781 Fri Feb 28 03:27:05 1997  Peter Mattis  <pmattis@localhost>
782
783         * gtkwindow.c: 'gtk_window_set_title' now changes the window title
784         if the window is already realized.
785
786         * gtkentry.c: 'gtk_entry_set_text' was emitting both a
787         "delete_text" and a "changed_text" signal. Modified so that it
788         only emits a "changed_text" signal.
789
790         * gtkpreview.c: Modified to work correctly on systems with MSB
791         byte order. The colormap for TRUE and DIRECT color displays is now
792         created if the default visual is not equal to the visual we are
793         using.
794
795         * gtkstyle.c: 'gtk_style_attach' and 'gtk_style_find' weren't
796         working properly in the presence of multiple colormaps are
797         different depth visuals.
798
799         * gtkcontainer.c: Massively improved focus traversal using tab and
800         arrow keys. It now uses the layout of the widgets to determine
801         where to move the focus to.
802
803 Mon Feb 24 03:24:02 1997  Peter Mattis  <pmattis@localhost>
804
805         * gtkmenufactory.c: Set the accelerator table field for menus when
806         they are created.
807
808         * gtkmenu.c:
809         * gtkmenu.h: Added a default accelerator table field to menus so
810         that runtime modification of accelerator keys in menus can work
811         better.
812
813         * gtkrange.c: 'gtk_range_default_{h,v}motion' had faulty logic for
814         deciding what to do when the slider was at the edge of the
815         trough. They previously didn't update the adjustment value event
816         if the value wasn't what it should be when the slider was at the
817         edge of the trough.
818
819         * gtkviewport.c: 'gtk_viewport_size_allocate' and
820         'gtk_viewport_adjustment_value_changed' both had the potential for
821         performing a divide by 0. Checks are now in place to prevent this.
822
823         * gtkmenu.c: 'gtk_menu_map' now makes sure the menu lies on screen
824         if the position function is NULL.
825
826         * gtkentry.c: Modified selection handling. 'gtk_delete_selection'
827         actually removes the X selection now. 'gtk_entry_destroy' removes
828         the selection as well and relies on the change in "gdk.c" to make
829         sure the selection event will not be sent to a non-existant
830         window.
831
832         * gdk.c: Selection events are only passed on if the selection
833         owner is not NULL.
834
835         * gtkstyle.c: 'gtk_style_detach' and 'gtk_style_destroy' were not
836         destroying the black and white gc's.
837
838 Sun Feb 23 19:17:56 1997  Peter Mattis  <pmattis@localhost>
839
840         * gtkwindow.c: 'gtk_window_size_request' was setting the window
841         hints. This was also being done in 'gtk_window_map', so the
842         instance being done in 'gtk_window_size_request' was removed.
843
844 Fri Feb 21 01:04:01 1997  Peter Mattis  <pmattis@localhost>
845
846         * gtkwidget.c: 'gtk_widget_draw' has to use the widgets allocated
847         position for the drawing rectangle when the widget has the
848         GTK_NO_WINDOW flag set.
849
850         * gtkwidget.c: In 'gtk_widget_init' the visual and colormap were
851         being directly compared against 'default_visual' and
852         'default_colormap' instead of calling
853         'gtk_widget_get_default_{visual,colormap}'.
854
855         * gdkrectangle.c: Amazing! There was a bug in the
856         'gtk_rectangle_intersect' logic. Its been there for near eternity
857         and I never noticed.
858
859         * gtkpreview.c:
860         * gtkpreview.h: Created preview widget which allows drawing to an
861         rgb or grayscale buffer which is automatically displayed on the
862         screen. Performs dithering as necessary.
863
864 Thu Feb 20 20:33:21 1997  Peter Mattis  <pmattis@localhost>
865
866         * gdkwindow.c: Modified the logic in 'gdk_window_new' which
867         determined when to add a window to the WM_COLORMAP_WINDOWS
868         property.
869
870 Wed Feb 19 19:55:29 1997  Peter Mattis  <pmattis@localhost>
871
872         * gtkruler.c: 'gtk_ruler_make_pixmap' was always destroying the
873         old backing store and creating a new one even when it would create
874         a new one of exactly the same size as the old one.
875
876 Tue Feb 18 18:32:10 1997  Peter Mattis  <pmattis@localhost>
877
878         * gmem.c: 'g_mem_chunk_alloc' was incorrectly modifying the mem
879         areas free mem field when reallocating a previously freed
880         atom. This caused a fairly severe memory leak.
881
882         * gtkmenushell.c: 'gtk_menu_shell_button_release' had a bug in the
883         logic for deciding whether to initiate an X pointer grab or not
884         when the mouse button was released. It now only initiates a grab
885         if the mouse is released within an active menu item.
886
887 Fri Feb 14 00:57:40 1997  Peter Mattis  <pmattis@localhost>
888
889         * gtknotebook.c: Changed the look of notebook tabs slightly.
890
891         * gtkentry.c:
892         * gtkentry.h: Deleting an entry widget which is holding the X
893         selection presents some difficulties. The X selection must be
894         released, but the widget can't be destroyed until the
895         SELECTION_CLEAR event is received that the X server will send in
896         response to clearing the X selection. There are probably still
897         bugs in the current method of entry widget deletion when the X
898         selection is held.
899
900         * gtkmain.c: 'gtk_propagate_event' was not properly destroying the
901         toplevel window when receiving a key press event.
902
903         * gtkwidget.c: Setting a widget insensitive did not cause it to
904         redraw. It now does.
905
906 Thu Feb 13 16:59:07 1997  Peter Mattis  <pmattis@localhost>
907
908         * gtkviewport.c: 'gtk_viewport_size_allocate' was allocating its
909         child widget an adjusted allocation. Since the actual scrolling
910         has handled by a subwindow this caused the child to be double
911         scrolled. Modified to always set the child allocations origin to
912         (0, 0).
913
914 Wed Feb 12 01:06:48 1997  Peter Mattis  <pmattis@localhost>
915
916         * gtkentry.c: Text is now centered vertically. Previously it was
917         pushed up against the top. This problem was only evident when the
918         widget was allocated more vertical space than it requested.
919
920         * gtkfilesel.c: 'gtk_file_selection_key_press' was previously only
921         a stub for tab completion. The actual tab completion call had been
922         left out. (Oops!)
923
924 Tue Feb 11 01:43:08 1997  Peter Mattis  <pmattis@localhost>
925
926         * gtksignal.c: 'gtk_signal_disconnect_by_data' was going into a
927         loop and crashing. Bad logic. Fixed.
928
929         * gtkmain.c: An idle function which returns FALSE will be removed
930         from the list of idle functions. This makes the functioning of
931         idle functions and timeouts more similar.
932
933         * gtkentry.c: 'gtk_entry_get_text' now returns an empty string
934         when the actual text is NULL. This allows "stupid" programs to use
935         the value returned by 'gtk_entry_get_text' blindly (without
936         checking to see if its NULL).
937
938         * gtkradiobutton.c: Modified 'gtk_radio_button_clicked' so that
939         'gtk_toggle_button_toggled' is called _after_ the widget state is
940         changed.
941
942         * gtksignal.c:
943         * gtksignal.h: Added 'gtk_signal_name' which returns the character
944         string name for a given signal number.
945
946         * gtkwidget.c: 'gtk_widget_set_parent' checks to see if the widget
947         is now "anchored" through the parent chain to a widget which is
948         GTK_ANCHORED. If it is, then it changes the widgets style using
949         'gtk_rc_get_style' and recursively performs the same operation on
950         the widgets children. This is necessary is 'gtk_rc_get_style' only
951         works properly on "anchored" widgets.
952
953         * gtkwindow.c: Modified GTK_WIN_POS logic so that it is only used
954         immediately after the window has been shown.
955
956         * gtkmenu.c: 'gtk_menu_key_press'. Can now change menu item
957         accelerator keys on the fly. Why? Why not. Cool/useless feature of
958         the day.
959
960         * gtkmenuitem.c: Accelerator key drawing. Somehow that never got
961         finished. (Oops!)
962
963         * gtkdrawingarea.c: 'gtk_drawing_area_size_allocate' was not
964         actually installed during 'gtk_drawing_area_class_init'. (Oops!)
965
966         * gtkframe.c: 'gtk_frame_size_request' fixed size requisition
967         problem caused by unsigned arithmetic.
968
969         * gtkwindow.c: Modified window widget so that it only uses the
970         widget uposition auxiliary information immediately after it has
971         been shown. This prevents the annoying bug which can cause a
972         uposition'ed window to jump back to its original position after
973         the user moves it.
974
975         * gtkwidget.c: Need to ref and unref style in
976         'gtk_widget_{push,pop}_style' to make sure that a style on the
977         style stack is not destroyed.
978
979         * gtktogglebutton.c: 'gtk_toggle_button_set_state' now calls
980         gtk_button_clicked to actually change the state of the
981         button. In this way, radio buttons can now perform the appropriate
982         actions when the toggle button state is set.
983
984 Mon Feb 10 00:27:39 1997  Peter Mattis  <pmattis@localhost>
985
986         * gtklist.c: 'gtk_list_select_item' and 'gtk_list_unselect_item'
987         were casting a GList* variable to a a GtkWidget* variable. Bad bad
988         bad. (Tim Janik).
989
990         * gtksignal.c: Modified 'gtk_signal_connect' and
991         'gtk_signal_connect_object' to warn when a signal type cannot be
992         found.
993
994 Sun Feb  9 00:15:30 1997  Peter Mattis  <pmattis@localhost>
995
996         * gtkoptionmenu.c:
997         * gtkoptionmenu.h: Changed option menus back to being derived from
998         buttons. This fixes up some screwiness with their user
999         interaction.
1000
1001         * gtkwindow.c: Modified key press handler to support focus
1002         traversal.
1003
1004         * gtkcontainer.c:
1005         * gtkcontainer.h: Added default focus traversal back in.
1006
1007 Sat Feb  8 10:44:38 1997  Peter Mattis  <pmattis@localhost>
1008
1009         * gtkviewport.h:
1010         * gtkviewport.c: Massively sped up viewport scrolling. Used to be
1011         reallocating child's size (offset) each time a scrollbar
1012         moved. Now a subwindow is moved. All the children are moved
1013         automatically by moving the subwindow. Much much much faster.
1014
1015 Tue Feb  4 00:20:44 1997  Peter Mattis  <pmattis@localhost>
1016
1017         * gtree.c: Changed 'g_tree_node_search' to use a loop instead of
1018         recursion.
1019
1020 Mon Feb  3 11:30:03 1997  Peter Mattis  <pmattis@localhost>
1021
1022         * gtkbutton.c: Removed 'parent_destroy' global and replaced it
1023         with 'parent_class' global to reflect style used in other
1024         widgets.
1025
1026         * gtknotebook.c: Tab labels were being allocated less than their
1027         requested size.
1028
1029         * gtkrange.c:
1030         * gtkrange.h: Moved the "digits" field of scales into the range
1031         type. The adjustment value for scales is truncated to the number
1032         of visible digits instead of being left untouched.
1033
1034         * gtree.c: Fixed a bug in the AVL tree implementation. Single
1035         rotations were always being performed during insertion. It is
1036         sometimes necessary to perform a double rotation.
1037
1038         * gtklabel.c: Modified 'gtk_label_expose' to only draw the label
1039         when the allocated space is greater than or equal to the requested
1040         space.
1041
1042         * gtklabel.c: Added call to 'gtk_widget_unmap' to
1043         'gtk_label_destroy' in order for the label to redraw correctly
1044         (erase itself) when destroyed.
1045
1046         * gtklabel.c: Added 'gtk_label_unmap' call which erases the labels
1047         allocation when it gets unmapped.
1048
1049         * *.h: Removed a few remaining instances of using "class" as a
1050         parameter name. (Causes problems for C++).
1051
1052 Fri Jan 31 12:26:50 1997  Peter Mattis  <pmattis@localhost>
1053
1054         * gtkcontainer.c: 'gtk_container_enable_resize' needs to call
1055         'gtk_container_check_resize' instead of
1056         'gtk_container_need_resize'.
1057
1058         * gtkwidget.c: 'gtk_real_widget_show' now maps the widget if its
1059         parent is mapped.
1060
1061         * gtkscrolledwindow.c: Fixed size allocation when the scrollbar
1062         policy's are GTK_POLICY_AUTOMATIC. Doing it correctly is harder
1063         than I originally thought.
1064
1065         * gtklist.c: Added 'gtk_list_child_position' to determine the
1066         integer position in a list of a child. Filled in the
1067         'gtk_list_item_select' and 'gtk_list_item_unselect' stubs.
1068
1069 Thu Jan 30 16:08:06 1997  Peter Mattis  <pmattis@localhost>
1070
1071         * gmem.c: Changed the implementation of G_ALLOC_AND_FREE mem
1072         chunks. They used to allocate SIZEOF_VOID_P extra bytes per atom
1073         in order to keep track of which mem area they were allocated
1074         from. Now the mem area is determined by searching through an AVL
1075         tree of the mem areas for a mem chunk and comparing memory
1076         locations. A little slower, but makes G_ALLOC_AND_FREE mem chunks
1077         much more attractive.
1078
1079         * gtree.c: Added an AVL tree implementation to glib.
1080
1081         * gtksignal.c:
1082         * gstring.c: va_arg (arg_list, {char, short}) is
1083         invalid. Arguments passed in a variable argument list are
1084         promoted. ({char, short}->int). Seemed to work ok before under
1085         Linux. Crashed under FreeBSD.
1086
1087 Tue Jan 28 02:27:51 1997  Peter Mattis  <pmattis@localhost>
1088
1089         * gdkwindow.c: Fixed a major slowdown apparent in the file
1090         selection dialog which was caused by calling
1091         'gtk_window_add_colormap_windows' way way way too often.
1092
1093         * *.c: Many widgets called 'gtk_container_need_resize' when
1094         something internal changed which would cause the widget to grow or
1095         shrink. The assumption was made that the widget would change size
1096         and an expose event would be generated. This happens "most" of the
1097         time. But its possible for certain widgets to change size without
1098         generating expose events, or for its internal geometry to change
1099         without a change of size which would mean no expose event was
1100         generated. So a wrapper function called
1101         'gtk_container_check_resize' was created and
1102         'gtk_container_need_resize' was modified so that it returns FALSE
1103         if a resize was actually generated and TRUE if nothing
1104         changed. This allows 'gtk_container_check_resize' to initiate a
1105         'gtk_widget_size_allocate' and 'gtk_widget_draw' to emulate the
1106         expose event.
1107
1108 Sat Jan 25 14:17:44 1997  Peter Mattis  <pmattis@localhost>
1109
1110         * gtkmain.c: Fixed a bug with propogating key press events. The
1111         events were sent 2 times to the toplevel windows which caused the
1112         focus widget to be activated twice when the space bar was pressed.
1113
1114         * */configure.in:
1115         * */Makefile.am: Added support for libtool and removed the old
1116         shared library configuration craziness.
1117
1118 Fri Jan 24 12:59:22 1997  Peter Mattis  <pmattis@localhost>
1119
1120         * gtktext.c:
1121         * gtktext.h: Josh's fixes and additions to the text widget.
1122
1123         * gtkfill.c:
1124         * gtkfill.h: Filler widget useful for filling space in a
1125         table. Can specify a minimum size. Used by the canvas widget.
1126
1127         * gtknotebook.c:
1128         * gtknotebook.h: Made outline of notebook widget.
1129
1130         * gtkcanvas.c:
1131         * gtkcanvas.h: Started canvas widget. A composite of 2 rulers (w/
1132         an origin), 2 scrolllbars. Guides, grids, snap to.
1133
1134 Sun Jan 19 18:26:45 1997  Peter Mattis  <pmattis@localhost>
1135
1136         * gtkdialog.c:
1137         * gtkdialog.h: Created dialog widget which creates a standard
1138         looking dialog with buttons along the button and a separator.
1139
1140         * gtkxid.c: Generalized the window table code for looking up a gdk
1141         window based on an XID to work for any XID and a piece of
1142         data. Can now look up gdk fonts based on their XID.
1143
1144         * gtkruler.c:
1145         * gtkruler.h:
1146         * gtkhruler.c:
1147         * gtkhruler.h:
1148         * gtkvruler.c:
1149         * gtkvruler.h: Started conversion of the ruler widget.
1150
1151         * gtktext.c:
1152         * gtktext.h: Started conversion of the text widget. Scrolling
1153         doesn't work.
1154
1155         * gtkmain.c: Fixed a fairly major bug. The event widget needs to
1156         be in a call for the entire duration of handling an event. Not
1157         just for when the event widget itself is handling the event.
1158
1159         * gtkfilesel.c: Fixed up some bugs with resizing.
1160
1161 Fri Jan 10 14:18:03 1997  Peter Mattis  <pmattis@localhost>
1162
1163         * gtkwidget.c:
1164         * gtkwidget.h:
1165         * gtkentry.c:
1166         * gtkentry.h: Support for selections.
1167
1168         * gdkselection.c:
1169         * gdk.c:
1170         * gdktypes.h:
1171         * gdk.h: Gdk support for X selections. Currently only text
1172         selections are supported.
1173
1174         * gtksignal.c: Fixed a major bug which occurred when destroying an
1175         object. Memory was being written to after it was freed.
1176
1177         * gtkfilesel.c:
1178         * gtkfilesel.h: Hooked up more functionality to the file selection
1179         dialog.
1180
1181 Wed Jan  8 18:13:53 1997  Peter Mattis  <pmattis@localhost>
1182
1183         * gtkfilesel.c:
1184         * gtkfilesel.h: Mostly converted old file selection dialog
1185         widget. The widget is derived from the GtkWindow class and is
1186         quite a bit simpler in the widget code.
1187
1188         * gtkwidget.c: Fixed 'gtk_widget_grab_focus' and
1189         'gtk_widget_grab_default' to check that the toplevel widget is a
1190         type of window (which includes classes derived from windows).
1191
1192 Tue Jan  7 01:12:32 1997  Peter Mattis  <pmattis@localhost>
1193
1194         * gtkwindow.c: Was calling 'gtk_window_resize' twice in a
1195         row...why?
1196
1197         * gtksignal.c:
1198         * gtksignal.h:
1199         * *.c: Changed 'gtk_signal_new' so that the class function that is
1200         called when the signal is emitted can be called either before,
1201         after or both before and after the calling of any signal
1202         handlers.
1203
1204         * gtkobject.c:
1205         * gtkobject.h: Added 'object_data' mechanism for storing data
1206         associated with a character string key in objects. Removed
1207         'user_data' field of objects and changed
1208         'gtk_object_{get,set}_user_data' to use the object data
1209         mechanism. Removed 'handlers' field of objects.
1210
1211         * gtkwidget.c:
1212         * gtkwidget.h:
1213         * gtkwindow.c: Modified aux info mechanism to use object data
1214         mechanism.
1215
1216         * gtksignal.c: Modified signal mechanism to use object data
1217         mechanism instead of 'handlers' field.
1218
1219
1220 Mon Jan  6 15:10:16 1997  Peter Mattis  <pmattis@localhost>
1221
1222         * gtkmenushell.c: Fixed up button press handling so as to conform
1223         more closely to that used by Motif.
1224
1225 Wed Jan  1 21:27:17 1997  Peter Mattis  <pmattis@localhost>
1226
1227         * gtkmenu.c:
1228         * gtkmenu.h:
1229         * gtkmenubar.c:
1230         * gtkmenubar.h:
1231         * gtkmenushell.c:
1232         * gtkmenushell.h: Reorganization of menu-ing code so that code
1233         duplication is reduced. The menu shell now contains most of the
1234         code for menu-ing interaction while menus and menubars simply layout
1235         their child menu items in the appropriate place.
1236
1237 Sun Dec 29 17:48:18 1996  Peter Mattis  <pmattis@localhost>
1238
1239         * gtkmenu.c:
1240         * gtkmenubar.c:
1241         * gtkmenuitem.h:
1242         * gtkmenuitem.c: Modifications so that menu item accelerators and
1243         the submenu indicator are drawn correctly and the correct amount
1244         of space is allocated.
1245
1246 Sat Dec 28 00:32:13 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1247
1248         * gtkmenufactory.h:
1249         * gtkmenufactory.c: Started menu factories as an easy method to
1250         create and manipulate menus.
1251
1252 Fri Dec 27 13:17:34 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1253
1254         * gtkmenu.c:
1255         * gtkmenu.h:
1256         * gtkmenubar.c:
1257         * gtkmenubar.h:
1258         * gtkmenuitem.c:
1259         * gtkmenuitem.h:
1260         * gtkmenushell.c:
1261         * gtkmenushell.h: Implemented basic menu functionality. Menubars
1262         and popup menus work. Submenus work. (Much left to be done).
1263
1264 Wed Dec 18 15:27:05 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1265
1266         * gtktypeutils.h:
1267         * gtktypeutils.c: Added 'gtk_type_from_name' which returns a type
1268         identifier given a type name. Implemented using a second hash
1269         table keyed by type names.
1270
1271         * gtkbutton.c:
1272         * gtktogglebutton.c: Fixed very small messed-up drawing bug when a
1273         button loses its focus.
1274
1275         * gtkwidget.h:
1276         * gtkwidget.c:
1277         * gtkbutton.c:
1278         * gtkwindow.c: Added default button handling. Default buttons now
1279         draw correctly and pressing return or enter causes the default
1280         button (if one exists) to be activated.
1281
1282 Tue Dec 17 19:32:21 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1283
1284         * gtkhscale.c:
1285         * gtkvscale.c: Overrode 'draw_slider' method of ranges in order to
1286         draw the slider of scales with a line in them so as to be closer
1287         to the Motif look-and-feel.
1288
1289         * gtkwindow.c: Modified 'gtk_window_focus_in_event' so that focus
1290         in events are only handled when the window is visible. Fixes a bug
1291         where spurious focus in events get sent when a window is being
1292         hidden.
1293
1294         * gtkwidget.h: Added 'activate_signal' field to the GtkWidgetClass
1295         structure. Added 'gtk_widget_activate' call to emit the activate
1296         signal for a widget if it is non-zero.
1297
1298 Tue Dec 10 15:59:45 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1299
1300         * gtkwidget.c: 'gtk_widget_set_name' oops in strdup'ing the old
1301         "widget->name" instead of the new one we are setting.
1302
1303         * gtkrc.c: 'gtk_rc_widget_path' changed to use
1304         'gtk_widget_get_name' instead of accessing the "widget->name"
1305         field directly.
1306
1307         * gtkwidget.c: Added 'gtk_widget_get_name' function which returns
1308         the widgets name if it exists and the widgets type name if it does
1309         not.
1310
1311         * gtkcheckbutton.c: Added 'gtk_check_button_draw'
1312         function. Modified 'gtk_check_button_expose' to pass an expose
1313         event to child instead of callings its draw function.
1314
1315         * gtkentry.c: 'gtk_entry_draw_text' why was "+1" being added to
1316         the font->ascent to calculate the font position? This was wrong
1317         and caused some characters in fonts to be clipped. (Notably "g").
1318
1319         * gtkentry.c: 'gtk_entry_realize' specify GTK_BUTTON1_MOTION_MASK
1320         and GTK_POINTER_MOTION_HINT_MASK for _both_ windows.
1321
1322         * gtkmain.c: 'gtk_propagate_event' needs to set the GTK_IN_CALL
1323         flag for the object before calling 'gtk_widget_event' and needs to
1324         destroy the object if necessary after 'gtk_widget_event' returns.
1325
1326         * gtkradiobutton.c: 'gtk_radio_button_clicked' needs to call
1327         'gtk_toggle_button_toggled' when the currently active button is
1328         toggled.
1329
1330         * gtkwidget.c: 'gtk_real_widget_hide' needs to call
1331         'gtk_widget_unmap' if the widget is currently mapped.
1332
1333         * gtkwindow.c: Prevent automatic resizing after the user has
1334         specified a new window size. Add 'handling_resize' flag to
1335         windows.
1336
1337         * gtkscrolledwindow.c: Implement the GTK_POLICY_AUTOMATIC
1338         scrollbar policy. Need to connect to the adjustments 'changed'
1339         signal and notice when the scrollbars aren't in use.
1340
1341         * gtkcontainer.c: 'gtk_container_init' must set 'auto_resize' and
1342         'need_resize' fields to TRUE and FALSE respectively.
1343
1344         * gtkwidget.c: 'gtk_widget_set_parent' must all set a widgets state
1345         to its parents state.
1346
1347 Sun Dec  1 01:31:01 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1348
1349         * Started ChangeLog