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