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