]> Pileus Git - ~andy/gtk/blob - ChangeLog.pre-2-10
Don't read the character past the end of the text.
[~andy/gtk] / ChangeLog.pre-2-10
1 Mon Apr 13 21:40:14 1998  Owen Taylor  <owt1@cornell.edu>
2
3         * gtk/gtktext.c (find_char_width): Don't read the
4         character past the end of the text.
5
6         * gtk/gtkrange.c (gtk_real_range_timer): If the mouse
7         button has been released before the timer is activated,
8         don't keep on scrolling.
9
10         * gdk/gdk.c (gdk_event_translate): Filter subsequent configure
11         events after we discard the first. Removed obsolete and
12         sometimes very slow GdkOtherEvent. (Left in gdktypes.h
13         with signal in GTK)
14
15 Mon Apr 13 18:03:54 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
16
17         * README: update address info to gtk.org for ftp and web sites.
18
19 1998-04-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
20
21         * gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for
22         XPolygonRegion().
23
24         * gdk/gdk.h: Added prototype for gdk_region_polygon().
25
26         * gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons.
27
28 Mon Apr 13 15:04:26 1998  Michael K. Johnson <johnsonm@redhat.com>
29
30         * gtk/testgtk.c (create_clist): removed duplicate call to
31         gtk_widget_set_policy.
32
33 Mon Apr 13 05:03:11 1998  Tim Janik  <timj@gtk.org>
34
35         * gtk/gtkwindow.c (gtk_window_add_accelerator_table): check for
36         accelerator table to be != NULL.
37         (gtk_window_remove_accelerator_table): likewise.
38
39 Sun Apr 12 19:35:09 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
40
41         * INSTALL: typo, gtk-1.0.0 should be gtk+-1.0.0
42         * README: A little more intro on what gtk is...
43
44 Sun Apr 12 22:43:22 1998  Owen Taylor  <owt1@cornell.edu>
45
46         * gtk/gtkmenuitem.c (gtk_menu_item_size_allocate):
47         An old allocation error.
48
49         * gtk/gtkviewport.c (gtk_viewport_add): Don't map
50         when adding a not-VISIBLE widget to a VISIBLE 
51         viewport.
52         
53 Sun Apr 12 18:54:29 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
54
55         * Changed LGPL address for FSF in all .h and .c files
56
57 Sun Apr 12 20:09:40 1998  Owen Taylor  <owt1@cornell.edu>
58
59         * gtk/gtklabel.[ch] (gtk_label_expose): Set a flag so
60         instead of clearing the area in advance. That looked
61         _really_ bad.
62
63         * gtk/gtkcontainer.c (gtk_container_class_init): Changed
64         "focus" to RUN_LAST.
65
66         * gtk/gtkentry.c (gtk_entry_realize): Fixed place
67         where allocation was used where requisition was meant.
68         (Found by David J N Begley <david@avarice.nepean.uws.edu.au>)
69
70         * gtk/gtkwindow.c (gtk_window_set_default): Fixed
71         assertion in when setting default to NULL> 
72         ("Damon Chaplin" <DAChaplin@email.msn.com>)
73
74         * gtk/gtkwidget.c (gtk_widget_unparent): Unset the
75         default widget on the toplevel, if necessary.
76
77 Sun Apr 12 02:04:21 1998  Owen Taylor  <owt1@cornell.edu>
78
79         * gtk/gtkpreview.c: Removed unecessary and harmful
80         htons/ntohs when storing properties. (X does the byte
81         swapping itself)
82
83 Sat Apr 11 02:01:31 1998  Owen Taylor  <owt1@cornell.edu>
84
85         * gtk/gtktext.c (scroll_down): Removed incorrect part of
86         assertion that was causing failures for scrolling a single
87         line very short text widget.
88
89 Sat Apr 11 01:41:55 1998  Owen Taylor  <owt1@cornell.edu>
90
91         * gtk/gtktext.c (expose_text): Fixed a sign problem 
92         (typedef gint guint!). Added some checks to make sure things
93         are positive.
94
95 Sat Apr 11 05:51:22 1998  Tim Janik  <timj@gtk.org>
96
97         * gtk/gtktooltips.c (gtk_tooltips_event_handler): don't shut down the
98         tooltip on expose events.
99
100         * gtk/testgtk.c (create_progress_bar): add an example tooltip.
101
102 Fri Apr 10 00:10:16 1998  Owen Taylor  <owt1@cornell.edu>
103
104         * README/INSTALL: Extended for the 1.0 release.
105         * TODO:           Eliminated the "before 1.0" section
106
107 Thu Apr  9 19:31:51 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
108
109         * AUTHORS NEWS README configure.in gtk+.spec glib/configure.in:
110           changes for 1.0.0 release.
111
112 Thu Apr  9 18:36:31 1998  Owen Taylor  <owt1@cornell.edu>
113
114         * gtk/gtkmisc.c gdk/gdkwindow gtk/gtkentry.c gtk/testgtk.c:
115         Picky --enable-ansi cleanups.
116
117         * gtk/gtkstatusbar.c (gtk_statusbar_pop): Pop top message
118         off _belonging_to_this_context_. (gtk-d4bjorn-980409-0)
119
120         From "Damon Chaplin" <DAChaplin@email.msn.com>
121         
122         * gtk/gtktable.c (gtk_table_size_request_pass3): Small fix to size
123         requisition code.
124
125         * gtk/gtknotebook.c: Make sure not to do things to page->tab_label
126         if it doesn't exist.
127
128 Thu Apr  9 14:24:35 1998  Owen Taylor  <owt1@cornell.edu>
129
130         (Found by Mattias.Gronlund" <Mattias.Gronlund@sa.erisoft.se>)
131         
132         * gtk/gtkcurve.c (gtk_curve_interpolate): Added a
133         missing g_free.
134
135         * gtk/gtkcurve.c (gtk_curve_graph_events): Limits
136         were off by one, resulting in writing past array
137         bounds. Removed some unused code.
138
139         * gdk/gdk.c (gdk_dnd_drag_begin): The event structure
140         used for gdk_event_put should be a GdkEvent, not a 
141         subtype, since it will all be copied.
142
143         * gtk/gtkcolorsel.c: Added a unrealize handler that
144         unref's the GC's that were created.
145
146         * gtk/testgtk.c (clist_warning_test): ref and sink
147         child because it may never be added to anything.
148
149 Wed Apr  8 20:50:02 1998  Owen Taylor  <owt1@cornell.edu>
150
151         * gtk/gtkwindow.c (gtk_window_set_hints): Removed unsed
152         variables (gtk-jbuhler-980408-0)
153
154 Wed Apr  8 17:27:40 1998  Owen Taylor  <owt1@cornell.edu>
155
156         * gtk/gtkwidget.c (gtk_widget_unparent): Make sure
157         widgets get removed from the resize queue before the
158         connection between them and the resize queue is broken
159         by unparenting their parent.
160
161 1998-04-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
162
163         * gdk/gdk.c (gdk_event_translate): During drag and drop, set the
164         event mask at ButtonPress time to include ButtonPressMask and
165         ButtonReleaseMask, otherwise, if the button is released, and we
166         get a LeaveNotify event, it still thinks we are doing a drag.
167
168 Tue Apr  7 22:45:37 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
169
170         * Released GTK+ 0.99.10
171
172 Wed Apr  8 01:33:58 1998  Owen Taylor  <owt1@cornell.edu>
173
174         * gtk/gtkviewport.c (gtk_viewport_realize): Handle border
175         width correctly on realize after allocate.
176
177 Tue Apr  7 23:06:00 1998  Owen Taylor  <owt1@cornell.edu>
178
179         * Changes for GTK+ 0.99.10
180         
181         * examples/find-examples.sh: Script to find all the
182         files we need to distribute from the examples directory.
183
184 Tue Apr  7 19:14:03 1998  Owen Taylor  <owt1@cornell.edu>
185
186         * gdk/gdkpixmap.c: Added maximum field widths to prevent
187         possible '%s' scanf overflows. Replaced scanf("%c")
188         with getc(), Don't interpret /*/ as a full comment. Use
189         g_realloc/g_new.
190
191         * gtk/gtkwidget.h gtk/gtkprivate.h: Changed all flag
192         tests to check for ((GTK_WIDGET_FLAGS(widget) & FLAG) != 0)
193         instead of (GTK_WIDGET_FLAGS(widget) & FLAG)
194
195         * gtk/gtkfilesel.c: Use getwd() instead of getcwd() on  
196         SunOS, because getcwd() hangs up in a wait4().
197         (Found by David Monniaux <monniaux@clipper.ens.fr>)
198
199         - Check device/inode/mtime not just inode/mtime, when
200         caching scanned directories.
201         (From: scottk@ig.utexas.edu (Scott Kempf))
202         
203         * gdk/gdkpixmap.c: Check for 0 width/height when
204         creating pixmaps.
205
206         * gtk/*.c: Global substitution of recently introduced
207         "MAX (0," for allocations to "MAX (1,", since 
208         creating a backing pixmap with a zero width or height
209         fails.
210
211         * gdk/gdkwindow.c (gdk_window_new): Don't set all the
212         WM properties for child windows. Don't set the base
213         size, since the value we set will be taken as a minimum
214         size.
215
216 Wed Apr  8 00:00:48 1998  Tim Janik  <timj@gtk.org>
217
218         * gtk/gtklabel.c (gtk_label_expose): don't take '\n' into account for
219         size computation (Damon Chaplin).
220
221         * gtk/gtkvscale.c (gtk_vscale_draw_value): adjusted static snprintf()
222         buffer size to 32 characters (Damon Chaplin).
223         * gtk/gtkhscale.c (gtk_hscale_draw_value): likewise.
224
225         * gtk/gtkmain.c (gtk_main_iteration_do): gdk_flush() the X-queue if
226         iteration_done==TRUE since we will most likely not get invoked again
227         (Marius Vollmer).
228
229 Mon Apr  6 23:48:29 1998  Owen Taylor  <owt1@cornell.edu>
230
231         * gtk/gtkwindow.c (gtk_window_realize): Set the
232         window hints on every map so that GTK_WIN_POS_MOUSE
233         works correctly.
234
235 1998-04-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>
236
237         * gtk/gtktable.h: 
238         * gtk/gtktable.c (gtk_table_set_homogeneous): Added function to
239         set the homogeneous flag of the table (needed by derived widgets
240         and such).
241
242 1998-04-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>
243
244         * gtk/gtkradiobutton.h: Add prototype for gtk_radio_button_new_with_label_from_widget.
245
246 Mon Apr  6 18:48:49 BST 1998 Tony Gale  <gale@gtk.org>
247
248         * docs/gtkfaq.sgml: more on GIMP (et al) configure
249           problems.
250
251 Mon Apr  6 08:05:23 1998  Owen Taylor  <owt1@cornell.edu>
252
253         * gtk/gtkbutton.c (gtk_button_paint): Take border in
254         account properly.
255
256         * gtk/gtktext.c (gtk_text_realize): Don't recompute
257         geometry when creating with initial 1x1 geometry,
258         since our calculations can't handle that. Leave
259         text->line_start_cache NULL as sign we don't have
260         a real geometry yet.
261
262         * gtk/gtkentry.c (gtk_entry_motion_notify): Use the x
263         value we get from gdk_window_get_pointer, not from
264         event->x - since we always specify OwnerGrabButtonMask
265         (why???), event->x can refer to another window.
266
267 Mon Apr  6 08:08:49 BST 1998  Tony Gale <gale@gtk.org>
268
269         * docs/gtk_tut.sgml examples/helloworld/helloworld.c:
270           Change a missed "delete_event" return value description
271           from TRUE to FALSE.
272
273 Mon Apr  6 00:28:28 1998  Owen Taylor  <owt1@cornell.edu>
274
275         * gtk/gtkcontainer.c (gtk_container_focus_tab): Make
276         tab key move in reading order (left-to-right top
277         to bottom) - which might have been the original intended 
278         behavior modulo sorting bugs.
279
280         * gtk-config.in: Never output -I/usr/include from --cflags
281
282 Sun Apr  5 21:47:12 1998  Owen Taylor  <owt1@cornell.edu>
283
284         * gtk/gtkmenubar.c: Fixed bug where right justified
285         menu would overlap last left justified item.
286
287 Sun Apr  5 19:30:23 1998  Owen Taylor  <owt1@cornell.edu>
288
289         * gtk/gtkclist.c: Fixed assignment of adjustment->value
290         to negative values. Moved a few other allocation type things
291         around in ways that may or may matter. Fixed some allocation
292         errors (scrollbars were overlapping main window).
293
294         * gtk/gtkbutton.c (gtk_real_button_released): Small hack to keep
295         button labels from vanishing when the invoked operation blocks.
296
297         * gtk/gtkbox.c (gtk_box_remove): Assigning GTK_WIDGET_VISIBLE (widget)
298         to a gboolean (char) is _bad_. GTK_VISIBLE == 256.
299
300 Sun Apr  5 15:08:25 1998  Owen Taylor  <owt1@cornell.edu>
301
302         * gtk/gtkmain.c: Reverted broken implementation of removing
303         the current timeout/idle. Substituted a (hopefully) functional one.
304
305 Sun Apr  5 09:35:55 1998  Tim Janik  <timj@gtk.org>
306
307         * gtk/gtkmain.c (gtk_events_pending): take expired timeouts into
308         account, otherwise things like e.g. spin-buttons don't work.
309         also, count gtk_main_quit() as an event.
310
311 Sun Apr  5 08:03:01 1998  Tim Janik  <timj@gtk.org>
312
313         * gtk/gtkspinbutton.c: fixed panel allocation and stacking order,
314         fixed the base class realization.
315
316         * gtk/gtkmisc.c: implemented widget arguments. 
317
318         * gtk/gtkentry.c: fixes in _realize to behave similar to
319         _size_allocate.
320
321 Sat Apr  4 12:23:23 BST 1998  Tony Gale  <gale@gtk.org>
322
323         * docs/gtk_tut.sgml: (gtk-crichton-980403-0) subsections on
324           Aspect Frames and Paned widgets.
325
326         * examples/paned examples/aspectframe: new examples
327
328 Fri Apr  3 23:15:55 1998  Owen Taylor  <owt1@cornell.edu>
329
330         * gtk/gtktext.c: Test for need to recompute geometry with
331         GTK_WIDGET_REALIZED(), not GTK_WIDGET_DRAWABLE().
332
333 1998-04-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>
334
335         * gtk/gtkhandlebox.c (draw_textured_frame): New function to draw a
336         nifty "textured metal" frame.  Could be useful in gtkstyle.c, maybe.
337         (gtk_handle_box_paint): Paint a handle that does not make you puke
338         when you look at it.
339
340 Fri Apr  3 21:03:38 1998  Owen Taylor  <owt1@cornell.edu>
341
342         * gtk/gtktext.c (gtk_text_realize): Call recompute_geometry()
343         upon realization, since it can't be done in the previous
344         size_allocate.
345
346 Fri Apr  3 20:36:52 1998  Owen Taylor  <owt1@cornell.edu>
347
348         * gdk/gdk.c gtk/gtkmain.c: Accept debug options 
349         in the form --g[td]k[-no]-debug=xxx as well
350
351 Fri Apr  3 18:33:47 1998  Owen Taylor  <owt1@cornell.edu>
352
353         * gtk-config.in: Added flags --prefix[=dir] and
354         --exec-prefix[=DIR] which allow querying and overriding the
355         configured-in prefix and exec-prefix.
356
357         * gtk.m4: Added configure flags --with-gtk-prefix=
358         and --with-gtk-exec-prefix= to set the --prefix and
359         --exec-prefix argumetns to gtk.m4
360
361 Fri Apr  3 17:14:55 1998  Owen Taylor  <owt1@cornell.edu>
362
363         * gdk/gdk.c: More extensive debugging output
364
365         * gtk/gtkalignment.c gtk/gtkbutton.c gtk/gtkcheckbutton.c
366           gtk/gtkclist.c gtk/gtkeventbox.c gtk/gtkhandlebox.c
367           gtk/gtk[hv]box.c gtk/gtk[hv]paned.c gtk/gtklist.c
368           gtk/gtkmenu.c gtk/gtkmenubar.c gtk/gtkmenuitem.c
369           gtk/gtknotebook.c gtk/gtktable.c gtk/gtktree.c 
370           gtk/gtktreeitem.c gtk/gtkviewport.c
371
372         Avoid assigning negative values to unsigned allocation.width and
373         height
374
375         * gtk/gtkwindow.c:
376
377         Instead of realizing the widget, then size allocating, (resulting
378         in XMoveResizeWindows for all children, do the size allocation
379         first, then realize. 
380
381         In gtk_real_window_move_resize, combine move and resize
382         into a single GDK/X call when possible.
383
384         * gtk/gtkclist.c gtk/gtkdrawingarea.c: 
385
386         Remove assumption that the widget will be size allocated _after_
387         it is realized.
388         
389         * gtk/gtklist.c (gtk_list_motion_notify): Removed useless
390         debugging message.
391
392 Wed Apr  1 21:51:37 1998  Owen Taylor  <owt1@cornell.edu>
393
394         * gtk/gtkmain.c: return NULL for gtk_get_event_widget (NULL)
395
396         * gtk/gtkentry.c: New algorithm to get more normal behavior
397         with scroll_offset when changing fonts.
398         
399 Thu Apr  2 17:30:04 BST 1998 Tony Gale <gale@gtk.org>
400
401         * examples/gtkdial/Makefile,
402           examples/menu/Makefile,
403           examples/tictactoe/Makefile : add correct dependencies
404
405 Thu Apr  2 13:04:37 BST 1998 Tony Gale <gale@gtk.org>
406
407         * docs/gtkfaq.sgml: add question on failing GIMP configure
408
409 Tue Mar 31 15:41:57 PST 1998 Shawn T. Amundson
410
411         * Makefile.am:
412         * examples/*: added the rest of the tutorial examples
413
414 Tue Mar 31 06:37:16 1998  Tim Janik  <timj@gtk.org>
415
416         * gtk/testgtk.c (create_cursors): forgot to set the initial `0' cursor.
417
418 1998-03-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
419
420         * gdk/gdkdnd.c (gdk_dnd_display_drag_cursor): First fix: Move the
421         window first, display it after (this removes one of the annoying
422         flashing effects).
423
424 Mon Mar 30 21:29:43 1998  Owen Taylor  <owt1@cornell.edu>
425
426         * gtk/gtkentry.c: Add a "style_set" callback, so the
427         font can be changed at run time. (needed for GIMP text
428         tool)
429
430 Tue Mar 31 01:17:23 1998  Tim Janik  <timj@gtk.org>
431
432         * gtk/gtknotebook.c (gtk_notebook_menu_item_create): show the menu_label
433         unconditionally (even if it is not a default label).
434         (gtk_notebook_update_labels): if we have a tab_label, then use its label
435         as the default menu_label.
436
437 Mon Mar 30 16:35:57 1998  Owen Taylor  <owt1@cornell.edu>
438
439         * gtk/testgtk.c: Improved main loop test. (Quits main
440         loop properly, makes it more obvious to the user
441         what is going on)
442
443         * gtk/gtkwidget.c (gtk_widget_unparent): Reset the
444         allocation _after_ clearing the window.
445
446         * configure.in: If can't find XShmAttach in Xext, check
447         in XextSam (for AIX).
448
449         * gtk/gtkmain.c (gtk_events_pending): Remember, small
450         numbers are _high_ priority for idle queues.
451
452         * gtk/gtkmain.c (gtk_handle_current_timeouts): Allow
453         removing the currently running timeout.
454
455         * gtk/testgtk.c (timeout_test): Use the right prototype
456         for callback.
457
458 Mon Mar 30 21:40:21 1998  Tim Janik  <timj@gtk.org>
459
460         * gtk/gtkclist.c (gtk_clist_row_from_ypixel): removed this function,
461         it was unneeded and not exported.
462
463         * gtk/gtkwidget.c (gtk_widget_ref) (gtk_widget_unref): don't check-cast
464         the widgets to volatile GtkObjects (which was there for debugging
465         purposes only). these functions should probably be macros, but that
466         would break binary compatibility again, sigh.
467         (gtk_widget_destroy): removed superfluous check-casts, since the
468         neccessary checks are done in gtk_object_destroy anyways. this should
469         be a macro as well but stays as a function for the above reasoonings.
470
471 Mon Mar 30 17:21:27 BST 1998 Tony Gale  <gale@gimp.org>
472
473         * docs/gtk_tut.sgml: reflect the change of meaning
474           of the delete_event return value
475
476 Sun Mar 29 22:25:22 BST 1998 Tony Gale  <gale@gimp.org>
477
478         * docs/gtk_tut.sgml: more on the Text widget,
479           update the tictactoe example to the current code
480  
481 Sun Mar 29 22:29:00 1998  Tim Janik  <timj@gtk.org>
482
483         * gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
484         Added wrapping capabilities to GtkSpinButton. New function :
485         gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
486
487 Sat Mar 28 21:18:42 1998  Owen Taylor  <owt1@cornell.edu>
488
489         * gtk/gtkcombo.c (gtk_combo_disable_activate): 
490         Disconnect from combo->entry, not combo.
491         (From: Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>)
492
493         * gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpm): Deal
494         better with xpm's with bad colors in them.
495         
496 Fri Mar 27 21:01:17 1998  Owen Taylor  <owt1@cornell.edu>
497
498         * gdk/gdk.c (gdk_event_translate): Don't call
499         XTranslateCoordinates on a destroyed window. (Why do we
500         do event processing at all on destroyed windows when we
501         throw out the results?)
502
503         * gtk/gtklabel.c: Clear the background when changing style/
504         state.
505
506 Fri Mar 27 16:35:00 PST 1998 Shawn T. Amundson <amundson@gtk.org>
507
508         * Released GTK+ 0.99.9
509         
510         * examples: added a couple more, fixed some Makefiles
511
512 Fri Mar 27 17:58:41 1998  Owen Taylor  <owt1@cornell.edu>
513
514         * gtk/gtkhandlebox.c (gtk_handle_box_paint): Don't clear
515         the window on an expose event. On draws, just clear the
516         portion we are redrawing.
517
518         * gdk/gdkfont.c (gdk_fontset_load): Corrected calculation
519         of fontset ascent/descent.
520
521         * gtk/gtkwidget.[ch]: Added new function to show a toplevel
522         window and wait for it to be mapped, gtk_window_show_now ()
523
524 Fri Mar 27 08:51:17 PST 1998 Shawn T. Amundson <amundson@gtk.org>
525
526         * docs/Makefile.sgml: some stuff for doing plain text and
527           postscript
528
529 Fri Mar 27 00:13:18 1998  Owen Taylor  <owt1@cornell.edu>
530
531         * gtk/gtkmain.c (gtk_propagate_event): If the widget is _not_
532         a descendant of a Window widget, propagate key presses like
533         other events.
534
535         * gtk/gtkentry.c gtk/gtktext.c: Ignore multiple simultaneous
536         button presses instead of treating subsequent presses as
537         release/press pairs for tablet compatibility.
538
539         * configure.in config.h.in: Removed inline checks, because they
540         are duplicated in glib.
541
542         * gtk/gtkwidget.c (gtk_widget_draw): When gtk_widget_draw ()
543         occurs with queued draw already in place, redraw _entire_
544         widget. (Pointed out by Tim Janik)
545
546 Thu Mar 26 23:12:54 1998  Tim Janik  <timj@gtk.org>
547
548         * gtk/gtkmain.c (gtk_propagate_event): make a clear distinction between
549         key press/release events, which will be sent to a widgets toplevel
550         ancestor and be forwarded from there, and all other events that need to
551         get propagated up the widget tree (pointed out by Owen Taylor).
552
553 Thu Mar 26 21:37:57 1998  Tim Janik  <timj@gtk.org>
554
555         * gtk/gtkradiobutton.c (gtk_radio_button_draw_indicator): always
556         display the correct active state.
557
558         * gtk/gtkcheckbutton.c (gtk_real_check_button_draw_indicator): always
559         display the correct active state.
560
561         * gtk/gtkwidget.c (gtk_widget_set_arg): CAN_FOCUS and CAN_DEFAULT flag
562         changes need to queue a resize.
563
564         * gtk/gtkbutton.c (gtk_button_paint): take border_width into
565         consideration for restrict area.
566
567         * gtk/gtktogglebutton.c (gtk_toggle_button_class_init): enable the
568         draw_default member of GtkButton, otherwise the diplay is messed up
569         for CAN_DEFAULT toggles.
570         (gtk_toggle_button_draw_focus): always display whether the toggle button
571         is active or not.
572
573         * gtk/gtkwidget.c (gtk_widget_set_state): 
574         (gtk_widget_set_sensitive): 
575         (gtk_widget_set_parent): 
576         (gtk_widget_propagate_state): take into consideration, whether we really
577         want to change childrens states, or just restauration of old states.
578
579 Thu Mar 26 15:33:50 1998  Owen Taylor  <owt1@cornell.edu>
580
581         * gtk/gtkwidget.c: When gtk_widget_draw() is called on a 
582         REDRAW_PENDING widget, draw it and remove it from the
583         queue instead of doing nothing.
584
585         * gtk/Makefile.am gdk/Makefile.am: Switch order of includes
586         directories, to make doubly sure that wrong glibconfig.h
587         isn't used. (See also glib/ChangeLog)
588
589         * gtk/gtkentry.c (gtk_entry_draw_focus): Don't draw the
590         cursor unless the entry is editable.
591
592         (From: Stefan Jeske <jeske@braunschweig.netsurf.de>)
593
594 Thu Mar 26 08:31:58 1998  Tim Janik  <timj@gtk.org>
595
596         * gtk/gtkmain.c (gtk_propagate_event): do not propagate unhandled key
597         events on widgets with parent==NULL twice.
598
599 Tue Mar 24 14:59:50 1998  Tim Janik  <timj@gtk.org>
600
601         * gtk/gtkhandlebox.h:
602         * gtk/gtkhandlebox.c: implemented new flag shrink_on_detach (TRUE by
603         default) which will cause the handle boxes requisition to collapse in
604         case the child is already detached.
605
606 Tue Mar 24 00:17:42 1998  Owen Taylor  <owt1@cornell.edu>
607
608         * gtk/gtkcombo.c gtk/gtkmenu.c: Use reversed arrow for
609         menus ala Motif (and fix Options menus, which had X cursor
610         before), and show normal arrow when inside ComboBox.
611
612         * gtk/gtkfilesel.c: Various memory leaks removed, as
613         pointed out by Mattias.Gronlund" <Mattias.Gronlund@sa.erisoft.se>
614
615         * docs/gtk_tut.sgml: Change compiling explaination
616         to refer to gtk-config.
617         (From: johannes@nada.kth.se (Johannes Keukelaar))
618         
619 1998-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
620
621         * gtk/gtkclist.c (gtk_clist_size_allocate): Fixed xthickness ->
622         ythickness typo.
623
624 Tue Mar 24 03:53:18 1998  Tim Janik  <timj@gtk.org>
625
626         * gtk/gtkbox.c (gtk_box_remove): save the widgets visibility flag for
627         evaluation after the widget got destroyed, discovered by Johannes
628         Keukelaar <johannes@nada.kth.se>.
629
630 1998-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
631
632         * gtk/gtkclist.c (gtk_clist_set_row_data_full): Select the row
633         which got its data changed, and not (0, 0).
634
635 Mon Mar 23 18:19:42 1998  Owen Taylor  <owt1@cornell.edu>
636
637         * gtk/gtkmenu.c gtk/gtkmenushell.c: Instead of making
638         an X grab when the button is released, grab immediately.
639         This solves a problem where menus wouldn't pop down
640         if the caller didn't have the BUTTON_RELEASE mask on
641         their window, and and another where the X grab would
642         be released prematurely.
643
644         * gtk/gtklist.c gtk/gtktree.c: Do sanity checking on
645         button presses to make sure they occurred in a child item.
646         (From: "Damon Chaplin" <DAChaplin@email.msn.com>)
647
648         * gtk/gtkmenushell.c: Do sanity checking on button
649         press/releases. Handle button events on window widget
650         descendents of menu items correctly.
651         
652         * gtk/gtkclist.c gtk/gtkbutton.c gtk/gtkviewport.c 
653           gtk/gtkeventbox.c:
654
655         Make the window size allocated in _realize() match that
656         in _size_allocate(). Take into account the border width
657         in the draw() handler.
658
659 Mon Mar 23 15:26:25 1998  Tim Janik  <timj@gtk.org>
660
661         * gtk/gtkentry.c (gtk_entry_append_text): check for text!=NULL.
662         (gtk_entry_prepend_text): likewise.
663         some else picky indentation fixes.
664
665 Mon Mar 23 12:03:03 CST 1998 Shawn T. Amundson <amundson@gtk.org>
666
667         * examples/: added this directory with stuff from
668           the tutorial, updated to compile and work with recent
669           changes
670
671 Mon Mar 23 01:04:51 1998  Owen Taylor  <owt1@cornell.edu>
672
673         * gtk/gtktext.[ch] testgtk.c: Added optional word wrap, controlled
674           by new function gtk_text_set_word_wrap; and a check button
675           in the Text test.
676
677         * gtk/gtktext.c: First line wasn't getting updated
678         properly when selection was removed.
679
680 Sun Mar 22 23:33:50 1998  Owen Taylor  <owt1@cornell.edu>
681
682         * gtk/gtkentry.c (gtk_entry_insert_text): Fixed some
683           problems with !gtk_use_mb introduced in the last change.
684
685 Sun Mar 22 21:00:43 1998  Owen Taylor  <owt1@cornell.edu>
686
687         * gtk/gtkpaned.c: Fix so children don't get bogus draws.
688
689 Mon Mar 23 01:08:30 1998  Tim Janik  <timj@gtk.org>
690
691         * gtk/gtkclist.c (gtk_clist_class_init): leave container_class->add and
692         container_class->remove untouched if we don't implement them.
693
694         * gtk/gtkcontainer.c (gtk_container_class_init): add missing NULL
695         initialization for the class method (*foreach). implement a default
696         handler to output a warning for (*add) and (*remove).
697
698 Sun Mar 22 19:01:36 1998  Owen Taylor  <owt1@cornell.edu>
699
700         * gdk/gdkcolor.c: Fixes to allow GTK to work with colormaps
701           that aren't 256 entries long. (colormap->colors is
702           now dynamically allocated)
703
704 Sun Mar 22 16:25:46 1998  Owen Taylor  <owt1@cornell.edu>
705
706         * gtk/gtkmain.c (gtk_init): fixes to locale checks
707
708         * gtk/testgtk.c (create_dnd): Create the dnd icons separately
709           to avoid strange interactions with shapes demo.
710
711         * gtk/gtkentry.[ch]: 
712           - Limit the length of the text to 2048 to prevent long delays
713           - Fix problems with buffer overruns
714           - Draw only the onscreen portion of the text to prevent wrapping
715             of shorts in the X drawing code.
716           - Keep track of character positions and x-offsets to speed
717             up algorithms.
718
719 Sun Mar 22 11:37:51 CST 1998 Shawn T. Amundson <amundson@gtk.org>
720
721         * gtk/gtkcolorsel.c: 
722         * gtk/gtkfilesel.c: use button_box for buttons
723
724 Sat Mar 21 19:07:01 1998  Owen Taylor  <owt1@cornell.edu>
725
726         * gtk/testgtk.c (dnd_drop): Don't respond to drops when
727           grab is in effect. (workaround)
728
729         * gdk/gdkfont.c (gdk_fontset_load): More details on
730           error messages.
731
732         * gdk/gdk.c: Translate va_list to XVaNestedList instead
733           of just casting it.
734
735         * gtk/gtkmain.c: Make temporary copy of string returned by
736           setlocale, since it may be changed by subsequent calls.
737
738 Sat Mar 21 22:54:31 1998  Tim Janik  <timj@gtk.org>
739
740         * gtk/gtkhandlebox.h:
741         * gtk/gtkhandlebox.c: major overhaul of the code, fixed all
742         known bugs (hopefully ;).
743
744 Sat Mar 20 15:33:17 1998  Tim Janik  <timj@gtk.org>
745
746         * gtk/gtkwidget.c (gtk_widget_real_show): queue the resize for the
747         parent.
748
749 Thu Mar 19 02:00:50 1998  Tim Janik  <timj@gtk.org>
750
751         * gtk/gtkwidget.c (gtk_widget_unrealize): unset flags after emission,
752         especially GTK_MAPPED, since that might not have been taken care of
753         by an UNMAP emission.
754
755 Sat Mar 21 10:39:02 CET 1998 Paolo Molaro <lupus@debian.org>
756
757         * gtk/gtkcombo.[ch] "activate" signal can be disabled now
758
759 Fri Mar 20 20:49:33 1998  Radek Doulik  <rodo@aquarius>
760
761         * gtk/gtktoolbar.c (gtk_toolbar_insert_element): changed packing
762         in toolbar elements, so texts are always at the bottom
763
764 Wed Mar 18 01:07:11 1998  Radek Doulik  <rodo@aquarius>
765
766         * gtk/gtkclist.c (gtk_clist_column_titles_show): test if
767         clist->title_window exists before showing it,
768         gtk_clist_column_titles_hide also fixed
769
770 Thu Mar 19 16:40:47 PST 1998 Shawn T. Amundson <amundson@gimp.org>
771
772         * Released GTK+ 0.99.8
773
774 Thu Mar 19 16:28:48 CST 1998 Shawn T. Amundson <amundson@gimp.org>
775
776         * the Solaris ltconfig patch from draco
777
778 Wed Mar 18 17:03:02 PST 1998 Manish Singh <yosh@gimp.org>
779
780         * gtk/gtkcolorsel.c: #define M_PI if it isn't already
781         * gtk/testgtk.c: initialize transparent properly, to make purify
782         happy
783
784 Thu Mar 19 00:37:44 1998  Tim Janik  <timj@gtk.org>
785
786         * gtk/gtkscrolledwindow.c (gtk_scrolled_window_construct): perform the
787         neccessary checks on funtion begin. use the scrolled_window that got
788         passed to this function, and not a new one.
789
790 Wed Mar 18 11:09:10 1998  Owen Taylor  <owt1@cornell.edu>
791         ( From: James Henstridge <james@daa.com.au> )
792
793         * gtk/gtkclist.c: Don't remove, then destroy labels in
794           gtk_clist_set_column_[*], just remove them.
795         
796         * gtk/gtkmain.c (gtk_invoke_timeout_function): call
797           marshal when appropriate, not function.
798
799 Tue Mar 17 14:15:07 1998  Owen Taylor  <owt1@cornell.edu>
800
801         * gtk/testgtk.c (create_main_window): Alphabetize tests
802
803         * gtk/gtk[hv]paned.c: Change division on resize if
804           necessary to keep handle visible.
805
806         * gtk/gtkgamma.c gtk/gtkcurve.c: Moved initialization into 
807           _init() functions.
808
809         * gtk/gtkscrolledwindow.c: Added missing _construct()
810           functions.
811
812 Wed Mar 18 17:38:25 CET 1998    Paolo Molaro <lupus@debian.org>
813
814         * gtk/gtkentry.[ch]: checked in gtk_entry_set_max_length
815         (it truncates the texts if it's longer, now)
816
817 Wed Mar 18 02:06:52 1998  Tim Janik  <timj@gtk.org>
818
819         * gtk/gtkcontainer.c (gtk_container_border_width): use the resize queue.
820
821         * gtk/gtkwindow.c (gtk_window_set_arg): gtk_window_set_hints() after
822         setting certain arguments, so they actually take affect.
823         (gtk_window_set_policy): likewise.
824
825 Tue Mar 17 22:45:39 1998  Tim Janik  <timj@gtk.org>
826
827         * gtk/gtkwidget.c (gtk_widget_get_arg): return real boolean values
828         not just numbers.
829
830         * gtk/gtktogglebutton.c (gtk_toggle_button_set_state): check
831         state for != 0, otherwise we get strange results.
832
833 Tue Mar 17 01:55:00 1998  Owen Taylor  <owt1@cornell.edu>
834
835         * gtk/gtkmain.c gtk/gtkentry.c: Try to guess if we can
836           use the mb* functions safely. (For glibc, they do
837           UTF-8). Heuristic is (X_LOCALE && locale != C/POSIX)
838           || (mblen("\xc0", MB_CUR_MAX) == 1).
839        
840         (From: "Richard Lloyd" <rkl@csc.liv.ac.uk>)
841         
842         * gdk/gdk.c (gdk_ic_get_attr): Use an intermediate
843           variable to avoid taking the address of the result
844           of va_arg. 
845
846         * gtk/gtkentry.c gtk/gtkeditable.c gtkobject.c
847           gtk/testselection.c: signedness fixups
848
849         * gtk/gtkcontainer.c: Fixed implicit cast between
850           gpointer and func pointer by changing.
851
852         * gtk/gtkcombo.c, gtk/gtkentry.c, gtk/gtktext.c:
853           static void forward declaration vs. void actual fixed
854
855         * gtk/testgtk.c: Limit total number of tree items to 10,000
856         
857 Mon Mar 16 21:14:52 1998  Owen Taylor  <owt1@cornell.edu>
858
859         * gdk/gdkvisual.c: Put visual names into #ifdef G_ENABLE_DEBUG
860             gtk-jbuhler-980315-0.patch
861
862         * gdk/gdkcc.c: Changed DEBUG => G_ENABLE_DEBUG, eliminate
863           unused variable warnings.
864
865 Tue Mar 17 16:19:47 1998  Tim Janik  <timj@gimp.org>
866
867         * gdk/gdk.c: 
868         * gdk/gdkvisual.c: changed some debugging messages to be prefixed
869         by "Gdk:".
870
871         * gtk/gtkwidget.c (gtk_widget_real_draw): applied
872         gtk-shige-980317-0.patch.gz to set all event fields, but modified
873         the event.send_event field to be set to TRUE, since the event is not
874         really comming from the server.
875
876         * gtk/gtkwindow.c (gtk_window_init): applied gtk-ograf-980317-1.patch.gz
877         which cares about an initial setting of program name and program class.
878
879         * gdk/gdk.c (gdk_init): applied gtk-ograf-980317-0.patch.gz, which
880         strips leading pathnames from gdk_progname.
881
882 Tue Mar 17 12:36:35 1998  Tim Janik  <timj@gimp.org>
883
884         * gtk/gtkstyle.c (gtk_default_draw_arrow): fixed a bug about drawing
885         GTK_ARROW_LEFT, correction from Damon Chaplin <DAChaplin@email.msn.com>.
886
887 Tue Mar 17 02:02:02 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
888
889         * gdk/gdk.c (gdk_dnd_drag_leave): Use StructureNotifyMaskMask as
890         the mask, as this enables an application listening to those events
891         to catch the root events.  Thanks to Maciej for pointing us in the
892         right direction.
893         (gdk_dnd_drag_enter): Likewise.
894         (gdk_dnd_drag_leave): Likewise.
895         * gdk/gdkwindow.c (gdk_window_dnd_data_set): Likewise.
896
897 Mon Mar 16 22:31:02 1998  Federico Mena  <federico@nuclecu.unam.mx>
898
899         * gdk/gdkwindow.c (gdk_window_xid_at): Use signed integers so that
900         testing will not fail for windows that are off-screen.  
901
902         (gdk_window_xid_at_coords): Only considers visible windows.     
903
904 Tue Mar 17 03:56:13 1998  Tim Janik  <timj@gimp.org>
905
906         * gtk/gtkspinbutton.h: exported gtk_spin_button_spin since it is
907         used in testgtk, and besides that.
908
909         * gtk/testgtk.c: created a new "test" cursors, which showes different
910         types of GdkCursors and is a very simple example at using the drawing
911         area.
912
913 Mon Mar 16 18:19:31 GMT 1998 Tony Gale  <gale@gimp.org>
914         * docs/gtkfaq.sgml:
915             - new question on modal windows
916             - new question on updating progressbars
917             - update all the links to gtk.org
918
919 Mon Mar 16 09:15:03 GMT 1998 Tony Gale  <gale@gimp.org>
920
921         * docs/gtk_tut.sgml: 
922             - New subsection on colourselection from Tom Bech <tomb@ii.uib.no>
923             - Moved fileselection text to Miscallaneous Widgets section
924             - Started new section on the Text widget
925             - Removed Viewport, Paned, HPaned and VPaned from list of
926               NO_WINDOW widgets.
927
928 Mon Mar 16 01:33:36 1998  Owen Taylor  <owt1@cornell.edu>
929
930         * gtk-config.in: Added trailing newline, hopefully will
931           fix the problem with esac disappearing.
932
933         * gtk/Makefile.am (test-debug): Improved test targets
934           will work with --enable-shared
935             [From:  Raja R Harinath  <harinath@cs.umn.edu>]
936
937         * gtk.m4: Not all shells understand $(...).  Use `...` instead.
938             [From:  Raja R Harinath  <harinath@cs.umn.edu>]
939         - use AM_PATH_PROG instead of AM_CHECK_PROG, so the user
940           can specify programs not in their path.
941   
942         * Makefile.am: added gtk.m4 to EXTRA_DIST
943
944 Sun Mar 15 23:44:10 1998  Tim Janik  <timj@gimp.org>
945
946         * gtk/gtkwidget.h:
947         * gtk/gtkmenushell.c: 
948         * gtk/gtkmenu.c: 
949         * gtk/gtkmain.c: removed EXCLUSIVE_GRAB again, just disable modal
950         event delivery for insensitive children.
951
952 Sun Mar 15 22:44:33 1998  Tim Janik  <timj@gimp.org>
953
954         * gtk/gtkmenushell.c (gtk_menu_shell_button_release): for now reverted
955         the last change, since it broke click-select-click menus for gimp.
956
957 Sun Mar 15 20:13:42 1998  Tim Janik  <timj@gimp.org>
958
959         * gtk/gtkmain.c (gtk_quit_destructor): removed the ugly check whether
960         we need gtk_widget_destroy or gtk_object_destroy. these functions are
961         by no means allowed to act differently!
962
963         * gtk/gtkmisc.c (gtk_misc_set_alignment): check for _DRAWABLE instead
964         of _VISIBLE to operate on widget->window.
965         (gtk_misc_set_padding): likewise.
966
967         * gtk/gtkwidget.c: slightly reordered object arguments.
968
969         * gtk/gtkobject.c (gtk_object_setv):
970         * gtk/gtkobject.c (gtk_object_getv):
971         operator `!' has precedence over `&'.
972
973 Sun Mar 15 14:38:34 1998  Tim Janik  <timj@gimp.org>
974
975         * gtk/gtknotebook.c (gtk_notebook_pages_allocate): applied a fix from
976         lars against a segfault that i discovered.
977
978 Sun Mar 15 13:25:28 1998  Tim Janik  <timj@gimp.org>
979
980         * gtk/gtkwidget.h: added new flag GTK_EXCLUSIVE_GRAB.
981         * gtk/gtkmain.c: allow exclusive grabs.
982
983         * gtk/gtkmenu.c: grab exclusively.
984         * gtk/gtkmenushell.c: grab exclusively.
985
986         * gtk/gtkmenushell.c: don't activate insensitive menu items when
987         in click-selects mode.
988
989         * gtk/gtkmenushell.c (gtk_menu_shell_enter_notify): activate submenus
990         on popup.
991
992         * gtk/gtkmenushell.c (gtk_menu_shell_button_release): don't take
993         *additional* button presses into account.
994
995         * gtk/gtkmenushell.c (gtk_menu_shell_button_press): don't take
996         foreign button releases into account.
997
998 Sun Mar 15 08:27:06 1998  Tim Janik  <timj@gimp.org>
999
1000         * gtk/gtktipsquery.c (gtk_tips_query_set_labels): changed run type
1001         of GtkTipsQuery::widget_entered to GTK_RUN_LAST, so it can be overidden
1002         by the user.
1003
1004         * gtk/gtkwindow.c (gtk_window_configure_event): small fix by
1005         Assar Westerlund <assar@sics.se>.
1006
1007         * gtk/gtkmenu.c (gtk_menu_key_press): don't cast a NULL pointer.
1008
1009 Sat Mar 14 19:36:16 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1010
1011         * Released 0.99.7
1012
1013 Sat Mar 14 20:07:45 1998  Owen Taylor  <owt1@cornell.edu>
1014
1015         * gtk.m4: Fixed reversed conditional, so checks against
1016           supplied version.
1017
1018 Sat Mar 14 10:10:46 1998  Tim Janik  <timj@gimp.org>
1019
1020         * gtk/gtkmain.c (gtk_main): fixed a bug with invoking the quit handlers
1021         that could cause them to be removed wihout being invoked.
1022
1023 Sat Mar 14 14:36:40 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1024
1025         * Released 0.99.6
1026         
1027         * gdk/gtk_tut.sgml:
1028         * gdk/gtk_tut_it.sgml: fixed Ian Main's e-mail address
1029
1030 Sat Mar 14 17:48:42 1998  Owen Taylor  <owt1@cornell.edu>
1031
1032         * gtk/Makefile.am: Don't refer to current directory as 
1033         $(top_builddir)/gtk to avoid confusing non-gmakes. Made
1034         Emacs-dependent maintainer-oonly
1035
1036 Sat Mar 14 17:47:12 1998  Owen Taylor  <owt1@cornell.edu>
1037
1038         * gdk/gdkwindow.c: (gdk_window_set_group): Fixed use of
1039            unitialized variable.
1040
1041 Sat Mar 14 13:26:09 1998  Owen Taylor  <owt1@cornell.edu>
1042
1043         * gtk/gtkentry.c gtk/gtktext.c: Some cleanups of signedness
1044           warnings
1045
1046         * gtk/gtkhandlebox.h: Changed gint ... : 1 to guint ... : 1
1047          
1048 1998-03-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1049
1050         * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Moved the
1051         gtk_signal_connect of the specified callback into the big switch()
1052         for buttons.  We don't want to connect to the "clicked" signal of
1053         a custom widget or a space element, because it may not have one.
1054         (gtk_toolbar_insert_element): Extra sanity check; if the type is
1055         GTK_TOOLBAR_CHILD_WIDGET, then the specified widget must not be NULL.
1056
1057 Sat Mar 14 02:54:28 PST 1998 Manish Singh <yosh@gimp.org>
1058
1059         * gtk.m4: fixed a bashism in gtk tests
1060
1061 Sat Mar 14 08:29:56 1998  Tim Janik  <timj@gimp.org>
1062
1063         * gtk/gtkhandlebox.c (gtk_handle_box_size_allocate): refuse to allocate
1064         with a greater height than requested.
1065         (gtk_handle_box_remove): clean up if the child is detached.
1066
1067         * gtk/gtktoolbar.c (gtk_toolbar_size_allocate): don't take invisible
1068         children into account.
1069
1070 Sat Mar 14 02:12:44 1998  Owen Taylor  <owt1@cornell.edu>
1071
1072         * gtk/gtkmain.c gdk/gdk.c: Don't leave NULL's in argv.
1073
1074 Sat Mar 14 01:36:51 1998  Owen Taylor  <owt1@cornell.edu>
1075
1076         * gtk-config.in: Added -I $exec_prefix/glib/include to cflags
1077
1078 Sat Mar 14 00:03:34 1998  Owen Taylor  <owt1@cornell.edu>
1079
1080         * gtk/gtkwindow.c:
1081           Don't resize windows when request is rejected by WM.
1082           Only use the resize count to guess whether a Configure
1083           event was a rejection by the WM, or a move.
1084
1085         * gdk/gdk.c gdk/gdktypes.h: 
1086           - Don't XDestroyWindow foreign windows (If they're a child of
1087           one of our windows, reparent them to root and send them a WM 
1088           delete event, otherwise, just delete the GTK structure.) 
1089           Handle notification of their deletion properly.
1090           (Made foreign windows a seperate window type to do this)
1091         
1092         * gtk/gtkobject.c (gtk_object_set_data_full): 
1093           Call the DestroyNotify when replacing the object data.
1094
1095 Sat Mar 14 02:03:13 1998  Tim Janik  <timj@gimp.org>
1096
1097         * gtk/gtksignal.c: make use of *_by_id() functions for handler key.
1098
1099         * gtk/gtkwidget.c: make use of *_by_id() functions for a bunch of keys.
1100         (gtk_widget_shutdown): new function to perform pre-destruction shutdown
1101         of the widget.
1102         (gtk_widget_unparent): call gtk_widget_set_parent_window(widget,NULL)
1103
1104         * gtk/gtkobject.h: 
1105         * gtk/gtkobject.c: GtkObject destruction is now split into an internally
1106         used shutdown class method and the usual GtkObject::destroy signal
1107         emission. this allowes for class based shutdown functionality prior
1108         to actuall object destruction.
1109         added *_by_id() counterparts for gtk_object_data_* functions, meant for
1110         internal use only.
1111
1112         * gtk/gtkmain.c (gtk_quit_add_destroy): new function which will destroy
1113         a GtkObject once gtk_main() of a certain level finishes. it is save to
1114         destroy the object prior to that, gtk_quit_add_destroy will only destroy
1115         objects that are still existing.
1116
1117 1998-03-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1118
1119         * gtk/gtkclist.c (gtk_clist_row_is_visible): Now we return a
1120         GtkVisibility value, instead of a simple boolean.  Also, changed
1121         all the functions that expected a boolean value to use
1122         "!= GTK_VISIBILITY_NONE".
1123
1124         * gtk/gtkclist.h: Changed prototype for gtk_clist_row_is_visible().
1125
1126         * gtk/gtkenums.h (enum): Added GtkVisibility enum.
1127
1128 Fri Mar 13 11:23:55 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1129
1130         * docs/gtk_tut.sgml:
1131         * docs/gtk_tut_it.sgml:
1132         * docs/gtk_tut_packbox1.gif:
1133         * docs/gtk_tut_packbox2.gif:
1134         * docs/gtk_tut_table.gif: added graphics, update tutorials
1135           appropriately
1136
1137 Fri Mar 13 18:25:07 1998  Tim Janik  <timj@gimp.org>
1138
1139         * gtk/gtkcombo.c: fix popup calculations (removal
1140         of FIXMEs), changes from Lars Hamann.
1141
1142 Fri Mar 13 10:25:16 1998  Tim Janik  <timj@gimp.org>
1143
1144         * gtk/gtkwidget.h: 
1145         * gtk/gtkwidget.c: renamed gtk_widget_delete_hides to
1146         gtk_widget_hide_on_delete at owens request, and because the
1147         new name is much more descriptive.
1148
1149 Fri Mar 13 17:33:56 GMT 1998 Tony Gale <gale@gimp.org>
1150
1151         docs/gtkfaq.sgml: fix the spelling of Helge Hess's name
1152
1153 Fri Mar 13 09:40:17 GMT 199 Tony Gale  <gale@gimp.org>
1154
1155         * docs/gtkfaq.sgml: update links to documentation and
1156           remove question on what needs to be done before 1.0
1157
1158 Fri Mar 13 01:17:44 1998  George Lebl  <jirka@5z.com>
1159
1160         * gtk/gtkfilesel.c: Set the column width of the clists
1161           to the longest string length so that the bottom scrollbar
1162           appears when you get some long files in the list
1163
1164 1998-03-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1165
1166         * docs/gtk_tut.sgml: fix one missing quote.
1167
1168 Thu Mar 12 18:01:03 1998  Owen Taylor  <owt1@cornell.edu>
1169
1170         * gtk.m4 gtk-config.in Makefile.am configure.in: 
1171           Added a new mechanism for GTK-dependent programs to
1172           find out about the installed GTK. (Does not remove
1173           any current functionality)
1174
1175         * gtk+-xconfig.in: Was no longer used for anything.
1176
1177 Thu Mar 12 20:17:47 1998  Tim Janik  <timj@gimp.org>
1178
1179         * gtk/gtkhandlebox.c (gtk_handle_box_delete_float): return TRUE for
1180         GtkWidget::delete_event to avoid destruction of our float window.
1181
1182         * gtk/gtkmain.c (gtk_main_iteration_do): GDK_DELETE will destroy a
1183         widget if the last handler returned FALSE or there was none connected.
1184
1185         * gtk/testgtk.c: adapted all delete_event/destroy case that were affected.
1186
1187         * gtk/gtkwidget.c (gtk_widget_delete_hides): new function that will hide
1188         a widget and return TRUE to avoid window deletion if
1189         connected to GtkWIdget::delete_event.
1190
1191 Thu Mar 12 11:51:33 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1192
1193         * docs/gtk.texi: Changed name of GTK to the GIMP Toolkit
1194
1195 Wed Mar 11 22:52:57 1998  Russell Nelson <nelson@crynwr.com>
1196
1197         * gtk/gtktest.c: new_pixmap wasn't using its filename argument.
1198         * docs/gtk.texi: Add descriptions
1199
1200 Wed Mar 11 14:36:48 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1201
1202         * gtk/docs/: added tutorial, changed some files around to
1203           make more sense.
1204
1205 Thu Mar 12 10:49:38 1998  Tim Janik  <timj@gimp.org>
1206
1207         * gtk/gtkmain.h: 
1208         * gtk/gtkmain.c: changed handler tags to be of type guint, reflecting
1209         the internal tag handling.
1210
1211         * gtk/gtkcurve.h: macro fixups.
1212
1213 Thu Mar 12 08:55:34 1998  Tim Janik  <timj@gimp.org>
1214
1215         * gtkitem.c:
1216         * gtktree.c:
1217         * gtklist.c: fetch the inintial value of attributes.event_mask from
1218         gtk_widget_get_events (widget) (pointed out by Damon Chaplin
1219         <DAChaplin@email.msn.com>).
1220
1221 Thu Mar 12 07:43:33 1998  Tim Janik  <timj@gimp.org>
1222
1223         * gdk/gdk.h:
1224         * gdk/gdkvisual.c: applied gtk-shige-980311-0.patch.gz, which removes
1225         the erronerous gdk_query_visuals() function in favour of
1226         gdk_list_visuals() which does a correct job.
1227
1228         * gtk/gtkcontainer.h: applied gtk-draco-980311-0.patch.gz which fixes
1229         a class cast check.
1230
1231         * gtk/gtkspinbutton.c: applied gtk-hamann_jeske-980312-0.patch.gz about
1232         '+' sign acceptance.
1233
1234         * gtk/gtknotebook.c: applied gtk-hamann_jeske-980311-1.patch.gz which
1235         cares about delayed tab label creation.
1236
1237 Thu Mar 12 06:58:17 1998  Tim Janik  <timj@gimp.org>
1238
1239         * gtk/gtktree.c (gtk_tree_map): avoid warnings about NULL casts.
1240
1241         * gtk/gtkstatusbar.c (gtk_statusbar_destroy): don't leak the context
1242         id key's slist.
1243
1244         * gtk/gtkobject.c (gtk_object_set_data_full): duplicate keys that get
1245         inserted into the hashtable, otherwise this function *forces* the caller
1246         to leak memory, for dynamically allocated keys (problem pinpointed by
1247         Mattias Gronlund).
1248
1249 Tue Mar 10 23:02:42 1998  Owen Taylor  <owt1@cornell.edu>
1250
1251         * gdk/gdkdnd.c gtk/gtkclist.c gtk/gtksignal.c gtk/testgtk.c:
1252           Various minor cleanups related to -W
1253
1254 1998-03-11  Elliot Lee  <sopwith@bogus.circ.us.eu.org>
1255
1256         * gtk/gtkentry.h: Keep it consistent - 
1257         don't list gtk_entry_set_max_length unless it's implemented.
1258         (Someone make up their mind please ;-)
1259
1260 Wed Mar 11 07:10:11 1998  Tim Janik  <timj@gimp.org>
1261
1262         * gtk/gtkspinbutton.h: 
1263         * gtk/gtkspinbutton.c: applied gtk-hamann_jeske-980311-0.patch.gz,
1264         to limit entered characters to numbers, '-' and '.'.
1265
1266 Wed Mar 11 04:35:06 1998  Tim Janik  <timj@gimp.org>
1267
1268         * gtk/gtklist.c:
1269         * gtk/gtktree.h: 
1270         * gtk/gtktree.c:
1271         * gtk/gtktreeitem.h: 
1272         * gtk/gtktreeitem.c: applied gtk-bolliet-980310-0.patch.gz which adds
1273         more checks and implements gtk_tree_clear_items. made a bunch of style
1274         and indentation fixes.
1275
1276 Wed Mar 11 03:35:17 1998  Tim Janik  <timj@gimp.org>
1277
1278         * gtk/gtktooltips.h:
1279         * gtk/gtktooltips.c: code and structure clean ups. fixed the
1280         tooltips flickering bug.
1281
1282 Tue Mar 10 14:24:09 1998  Owen Taylor  <owt1@cornell.edu>
1283
1284         * gtk/gtkselection.c (gtk_selection_clear): Make the return
1285           result reflect whether the clear event was out of data.
1286
1287         * gtk/gtkeditable.c: Ignore out of date selection clear
1288           events.
1289
1290         * gtk/gtkentry.c gtk/gtktext.c: Don't synthesize releases
1291           on [2/3]BUTTON presses, since we get the normal click as well.
1292
1293           Claim the selection when selecting words/lines.
1294
1295 Tue Mar 10 13:34:29 1998  Owen Taylor  <owt1@cornell.edu>
1296
1297         * gtk/gtkrange.c (gtk_range_default_[vh]trough_click): 
1298           Take forward/back step arrows into account when computing
1299           position for middle button clicks.
1300
1301         * gtk/gtktext.c gtk/gtkentry.c:
1302           - Fixes for deleting characters (don't subtract guints and get
1303             negative numbers!)
1304           - Reset cursor_virtual_x when moving by words and lines
1305           - Extra sanity checks
1306           - Fix to gtk_text_get_chars 
1307                  (from Tony Gale <gale@daedalus.dera.gov.uk>)
1308
1309 1998-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1310
1311         * gdk/gdkgc.c (gdk_gc_set_function): Replace GXor by GXxor.  Seems
1312         to have been a typo.
1313
1314 Tue Mar 10 00:49:18 EST 1998 The Rasterman <raster@redhat.com>
1315         * gdk/gdkwindow.c: (gdk_window_xid_at) fixed minor memory leak and
1316         minor buglet in tree search.
1317                 
1318 Mon Mar  9 21:21:19 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1319
1320         * Released 0.99.5
1321
1322 Mon Mar  9 23:24:42 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1323
1324         * gtk/gtkclist.c (gtk_clist_get_selection_info): Export
1325         functionality.
1326
1327 Tue Mar 10 05:42:34 1998  Tim Janik  <timj@gimp.org>
1328
1329         * configure.in: Bumped version number to 0.99.5.
1330
1331 Tue Mar 10 05:30:05 1998  Tim Janik  <timj@gimp.org>
1332
1333         * gtk/gtkrange.h:
1334         * gtk/gtkrange.c:
1335         changed gtk_range_trough_click() to take an additional jump_perc arg,
1336         class method and callers changed.
1337
1338         * gdk/gdk.c (gdk_ic_destroy): applied gtk-gronlund-980309-1.patch.gz
1339         which fixes a memory leak.
1340
1341 Mon Mar  9 20:38:15 1998  Owen Taylor  <owt1@cornell.edu>
1342
1343         * gtk/gtkentry.c gtk/gtkeditable.c gtk/gtkspinbutton.c: 
1344           Moved "activate" to editable class. Made the vfuncs in 
1345           gtkeditable just vfuncs not signals.
1346
1347         * gtkentry.[ch] gtktext.[ch]: Made behavior when pressing
1348           multiple buttons at once more rational.
1349
1350         * gtkentry.c gtktext.c: Unified and rationalized key
1351           bindings. (Now are basically emacs+CUA)
1352         
1353         * gtktext.c: 
1354           - Last position now always shares the property of the preceding
1355             character
1356           - Freeze the widget when inserting large amounts of text.
1357           - Selecting lines now selects the _whole_ line.
1358           - Fixed bug with displaying the cursor
1359           - Ctrl-Home/End now move the cursor to the _absolute home/end
1360         
1361         * gtkmenuitem.c: Remove necessary code out of a g_return_if_fail
1362
1363 1998-03-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1364
1365         * gtk/gtkclist.c (gtk_clist_set_foreground): We now accept the
1366         color parameter to be NULL.  If it is NULL, it will mark the row
1367         with "color not set", so it will be repainted with the default color.
1368         (gtk_clist_set_background): Likewise.
1369
1370 Mon Mar  9 15:48:10 1998  Tim Janik  <timj@gimp.org>
1371
1372         * Signal signedness and naming corrections, plus GtkType fixes:
1373
1374         * gtk/gtkadjustment.c: 
1375         * gtk/gtkbutton.c:
1376         * gtk/gtkcheckmenuitem.c:
1377         * gtk/gtkclist.c: 
1378         * gtk/gtkcolorsel.c: 
1379         * gtk/gtkcontainer.c: 
1380         * gtk/gtkcurve.c: 
1381         * gtk/gtkdata.c: 
1382         * gtk/gtkeditable.c: 
1383         * gtk/gtkentry.c: 
1384         * gtk/gtkhandlebox.c: 
1385         * gtk/gtkinputdialog.c: 
1386         * gtk/gtkitem.c: 
1387         * gtk/gtklist.c: 
1388         * gtk/gtkmenuitem.c: 
1389         * gtk/gtkmenushell.c: 
1390         * gtk/gtknotebook.c: 
1391         * gtk/gtkstatusbar.c: 
1392         * gtk/gtktoolbar.c: 
1393         * gtk/gtktree.c: 
1394         * gtk/gtktreeitem.c: 
1395         * gtk/gtkwidget.c: 
1396         * gtk/gtktogglebutton.c: 
1397         * gtk/gtkwindow.c: 
1398         made the <widget>_signals[] arrays of type guint rather than gint.
1399
1400         * gtk/gtkwidget.c (gtk_widget_get_ancestor): made widget_type a GtkType.
1401
1402         * gtk/gtkcombo.h:
1403         handler ids need to be of type guint (entry_change_id, list_change_id).
1404
1405         * gtk/gtkaccelerator.c:
1406         changed signal_num to signal_id and typed it guint.
1407
1408         * gtk/gtkmain.c: made gtk_ndebug_keys a guint.
1409
1410         * gtk/gtkmenu.h: 
1411         * gtk/gtkmenu.c:
1412         (gtk_menu_popup): made button a guint.
1413         (gtk_menu_set_active): made index a guint.
1414
1415         * gtk/gtkmenuitem.h: 
1416         * gtk/gtkmenuitem.c: 
1417         made accelerator_signal a guint.
1418
1419         * gtk/gtkoptionmenu.h:
1420         * gtk/gtkoptionmenu.c:
1421         (gtk_option_menu_set_history): made index a guint.
1422
1423         * gtk/gtksignal.h: 
1424         * gtk/gtksignal.c: 
1425         * gtk/gtkobject.h: 
1426         * gtk/gtkobject.c: changed a bunch of prototypes to take guints rather
1427         than gints. also made some conversions from guint to GtkType, left over
1428         from when the fundamental-types system was introduced.
1429
1430         * gtk/gtkobject.h: 
1431         * gtk/gtkobject.c: made object_data_id_index and obj_count guints.
1432         made *signals and nsignals guints in GtkObjectClass.
1433
1434 Mon Mar  9 13:36:53 GMT 1998 Tony Gale  <gale@gimp.org>
1435
1436         * docs/gtkfaq.sgml:
1437
1438         - Use 'diff -ru' for patches
1439         - Explained patch application/rejection
1440         - Added information on CVS
1441         - New question on right justified menus with menufactory
1442
1443         From Nathan:
1444
1445         - Information on Objective-C bindings
1446         - Add missing variable in colour example.
1447   
1448 Mon Mar  9 11:44:33 1998  Tim Janik  <timj@gimp.org>
1449
1450         * gtk/gtkfilesel.c (gtk_file_selection_update_history_menu): reverted
1451         the changes ian introduced in r1.16 on Mar 06, since they broke the
1452         history menu.
1453
1454 Mon Mar  9 08:07:01 1998  Tim Janik  <timj@gimp.org>
1455
1456         * gtk/gtkspinbutton.h: 
1457         * gtk/gtkspinbutton.c:
1458         applied gtk-hamann_jeske-980308-0.patch.gz to have a
1459         gtk_spin_button_construct() function
1460
1461 Mon Mar  9 01:01:41 1998  Owen Taylor  <owt1@cornell.edu>
1462
1463         * gtk/gtkrc.c: No, you can't add a GtkStyle * to a
1464           list of GtkRcNode *. (Fixes huge performance problem)
1465           Plus, don't bother creating a new style unless style
1466           actually has bg pixmaps.
1467
1468 Sun Mar  8 15:53:33 1998  Owen Taylor  <owt1@cornell.edu>
1469
1470         * gtk/gtktext.c: 
1471
1472         - Show selection correctly when starting selection with arrows
1473
1474         - Display pixmap background only when not editable
1475
1476         - Redraw focus area more carefully to prevent flashing (and
1477           make style of drawing consistent with Entry)
1478
1479         * gtk/gtktreeitem.c: ref colormaps for pixmap by colormap
1480           storage.
1481         
1482         * gtk/gtkrc.c: Store a separate style for each RcStyle for
1483           each colormap, so we can handle background pixmaps 
1484           correctly, which need to be per-colormap. (Leaks
1485           colormaps...)
1486
1487           Parse text color style entries correctly.
1488
1489         * gtk/testgtk.c: insert text without fg color
1490           gtk/testgtkrc: move "*" after rest, so the other class styles
1491                          take effect
1492
1493         * gdk/gdkwindow.c gdk/gdk.c gdk/gdkprivate.h: Send DND events
1494           safely, in case drop window disappears. (Performance hit
1495           because XSync()'s are necessary)
1496
1497         * gdk/gdk.h gdk/gdkpixmap.c: Added 
1498           gdk_pixmap_colormap_create_from_xpm[_d] to allow creating
1499           pixmaps from xpm's before you have a GdkWindow.
1500         
1501 Sun Mar  8 12:33:38 PST 1998 Jay Painter <jpaint@serv.net>
1502         
1503         * gtk/gtkclist.c: the GList clist->selection now contains row indexes
1504           in the data portion of the linked list structure instead of pointers,
1505           fixed several bugs with the different selection modes
1506
1507         * gtk/testgtk.c: displays information for unselect events, and prints the list
1508           of selected rows
1509
1510 Sun Mar  8 13:03:22 1998  Tim Janik  <timj@gimp.org>
1511
1512         * gtk/gtkrange.h: removed gtk_range_calc_value().
1513
1514 Sun Mar  8 04:22:36 1998  Tim Janik  <timj@gimp.org>
1515
1516         * gtk/gtkfilesel.c: applied gtk-gronlund-980307.patch.gz which
1517           fixes a memory leak by making use of gtk_clist_set_row_data_full.
1518
1519         * gtk/gtkclist.c: applied gtk-gronlund-980307.patch.gz which ads a
1520           gtk_clist_set_row_data_full () function. slightly modified to
1521           always invoke the destroy function regardless of the value of
1522           the row_data.
1523         
1524         * docs/gtk.texi: applied gtk-draco-980305-1.patch.gz, spelling fixes.
1525         
1526         * gdk/gdk.c (gdk_init):
1527           cleared up a tiny memory leak from not destroying a temporary copy
1528           of argv (gtk-gronlund-980307-02.patch.gz).
1529
1530 Sun Mar  8 03:00:17 1998  Tim Janik  <timj@gimp.org>
1531
1532         * configure.in: define the version variables in config.h.
1533
1534         * gtk/gtkmain.h:
1535         * gtk/gtkmain.c: added static version variables.
1536
1537         * gdk/gdkpixmap.c: fixed memory leaks (gtk-gronlund-980307-1.patch.gz)
1538
1539 Sat Mar  7 18:46:57 1998  Owen Taylor  <owt1@cornell.edu>
1540
1541         * gtk/gtkpreview.[ch]: Added a new function, gtk_preview_reset(),
1542           that can be used (under highly controlled circumstances),
1543           to change the properties of the preview colormap after
1544           a preview has already been created and destroyed.
1545
1546 Sun Mar  8 00:18:04 1998  Tim Janik  <timj@gimp.org>
1547
1548         * gtk/gtkobject.c: register living objects in a hashtable.
1549
1550 Sat Mar  7 20:20:53 1998  Tim Janik  <timj@gimp.org>
1551
1552         * gtk/gtkobject.c:
1553         (gtk_object_check_cast):
1554         (gtk_object_check_class_cast): 
1555           made the object/class cast checks much more descriptive, based on
1556           gtk-draco-980305-2.patch.gz and gtk-draco-980306-1.patch.gz but
1557           optimized for common code path.
1558
1559         * gtk/gtkpreview.c: added a few extra checks for the visual
1560         (gtk-draco-980305-0.patch.gz).
1561
1562         * gdk/gdk.c (gdk_signal): abort() on a signal if G_ENABLE_DEBUG
1563           is defined, so we dump core (gtk-draco-980305-0.patch.gz).
1564
1565 Sat Mar  7 13:00:00 1998  The Rasterman <raster@redhat.com>
1566
1567         * gdk/gdkwindow.c (gdk_window_xid_at_coords),(gdk_window_xid_at):
1568           added these two calls, gdk_window_xid_at_coords beign the one
1569           to actually call to look up the current X Window ID at a particular
1570           x,y co-ordinate onscreen accounting for a list of windows to be 
1571           excluded from this search. Useful for DND support.
1572         * gdk/gdkprivate.h added in above function calls.
1573
1574 Sat Mar  7 01:07:24 1998  Owen Taylor  <owt1@cornell.edu>
1575
1576         * gtk/gtkrange.c (gtk_range_expose): Fixed the vscrollbar
1577           flickering problem, by checking the area on expose events.
1578           (There was a hscrollbar flickering problem as well, it
1579            just wasn't very noticeable)
1580
1581 Fri Mar  6 21:30:05 1998  Owen Taylor  <owt1@cornell.edu>
1582
1583         * gtk/gtkeditable.c: Disallow pasting into non-editable
1584           widgets.
1585
1586         * gtk/gtktext.[ch]: 
1587
1588           -Added scrolling when dragging the selection
1589            paste the top/bottom.
1590
1591           -Fix some of the problems with displaying the selection
1592            state before mouse release.
1593
1594           -Disallow pasting into non-editable widgets
1595
1596           -Fixed segfault when changing window size
1597
1598           -Update the cursor correctly when switching between
1599            editable and non-editable
1600
1601         * testgtk.c: Added a toggle button for editability for
1602           the text widget. 
1603
1604 Fri Mar  6 14:47:33 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1605
1606         * Applied gtk-matsu-980205-0 (oops, should be 980305)
1607           gdk/gdkinputcommon.h: return NULL if device is not ready
1608           gtk/gtkwindow.c: check for GDK_ISO_Left_Tab
1609
1610 Fri Mar  6 13:17:58 1998  Marc Ewing  <marc@.redhat.com>
1611
1612         * gtk/gtkclist.c (real_select_row, real_unselect_row): 
1613           fix selection bugs
1614
1615 Thu Mar  5 20:41:27 1998  Ian Main  <imain@gnu.org>
1616
1617         * gtk/gtkfilesel.c: Added
1618           gtk_file_selection_show_fileop_buttons(GtkFileSelection *fs), and
1619           gtk_file_selection_hide_fileop_buttons(GtkFileSelection *fs).
1620           Changed pulldown to only contain current directory name instead of
1621           the full path.  Removed Help button (it can now be packed into the
1622           button_area if desired).
1623                 
1624         * gtk/gtkfilesel.h: Added GtkWidget *button_area (the fileop
1625           buttons at the top are packed into this hbox), and GtkWidget
1626           action_area (hbox below clists) to GtkFileSelection structure.
1627
1628         * gtk/testgtk.c: Changed the filesel example to show off the hiding/
1629           showing of fileop buttons, and the packing area.
1630
1631 1998-03-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>
1632
1633         * gdk/gdkprivate.h: Changed the name of default_filters to
1634         gdk_default_filters to avoid namespace pollution.  Yes, it just
1635         happened to me.
1636         * gdk/gdk.c (gdk_event_translate):
1637         * gdk/gdkglobals.c: 
1638         * gdk/gdkwindow.c (gdk_window_add_filter gdk_window_remove_filter): Likewise.
1639
1640 Thu Mar  5 12:32:06 1998  Marc Ewing  <marc@redhat.com>
1641
1642         * gtk/gtkclist.c (select_row): emit UNselect on rows
1643           that are not selected.
1644
1645 Thu Mar  5 01:22:06 1998  Owen Taylor  <owt1@cornell.edu>
1646
1647         * gtk/gtkwidget.c (gtk_widget_unparent): Unset allocation
1648           on unparent, to force reallocation if we get adding back
1649           to a new parent which is already size-allocated.
1650
1651         * gtk/gtktreeitem.[ch]: Keep track of separate +/- pixmaps
1652           for each colormap, removed the idle hack.
1653
1654         * gdk/gdk.c: Don't warn when unable to open XIM method,
1655           since X11R5 apparently has no default method.
1656
1657         * gtk/gtkwidget.c (gtk_widget_set_style_internal): Don't
1658           call size_request on initial emission - since the
1659           widget size isn't set yet, it can't change.
1660
1661         * gtk/Makefile.am: New rules 'test' and 'test-debug' to run
1662           testgtk with the correct working directory.
1663
1664         * gtk/gtkentry.c (gtk_move_forward_word): 
1665           Check for position at end of line.
1666
1667         * gtk/gtkinputdialog.h (struct _GtkInputDialogClass): 
1668           removed 'gpointer data' arguments from default handler
1669           structures.
1670
1671 Wed Mar  4 20:06:47 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1672
1673         * gdk/gdk.c (gdk_event_translate): Drags can only be started with
1674         the left button.
1675
1676 Wed Mar  4 16:02:44 GMT 1998 Tony Gale  <gale@gimp.org>
1677
1678         * docs/gtkfaq.sgml: widget hierarchy update from Tim Janik
1679
1680 Mon Mar  2 19:57:27 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1681
1682         * gdk/gdkproperty.c (gdk_atom_name): Initialize gdk_error_code to
1683         zero before calling the X routine.
1684
1685 Tue Mar  3 01:22:25 1998  Tim Janik  <timj@gimp.org>
1686
1687         * gtk/gtkspinbutton.c: applied patch from lars and steffan to proper
1688         check for realized widgets.
1689
1690 Mon Mar  2 18:27:09 CST 1998 Shawn T. Amundson <amundson@gimp.org>
1691
1692         * gtk/gtkstatusbar.h: fixed ifndef..define typo
1693
1694 Mon Mar  2 17:48:38 1998  Owen Taylor  <owt1@cornell.edu>
1695
1696         Miscellaneous minor fixes to remove ANSI C incompatibilities
1697
1698         * gdk/gdkregion.c gtk/gtkclist.c: fix // comments
1699
1700         * gdk/gdkdnd.c gdk/gdkinputcommon.h: change types of
1701         some arguments to ANSI functions
1702
1703         * gtk/gtkcombo.c gtk/gtktree.c: fix casts of function pointers
1704           to void *
1705
1706         * gtk/gtkmain.c: An actual bug! (in deprecated gtk_input_add_interp)
1707
1708         * gtk/gtknotebook.h: Bitfields must be gint or guint. (and should
1709           be guint)
1710
1711         * gtk/gtkstatusbar.c: trailing ';'
1712
1713         * gtk/testgtk.c: GList where there should have been GSList
1714
1715 Mon Mar  2 12:26:59 1998  Owen Taylor  <owt1@cornell.edu>
1716
1717         * gtk/gtkentry.c: Changed 'entry != NULL' to 'editable != NULL'
1718           in three spots.
1719
1720 Sun Mar  1 18:29:58 PST 1998 Shawn T. amundson <amundson@gimp.org>
1721
1722         * Released GTK+ 0.99.4.
1723
1724 Sun Mar  1 16:47:29 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1725
1726         * gtk/testgtk.c: small fix to notebook portion
1727
1728 Sun Mar  1 15:18:38 PST 1998 Shawn T. Amundson <amundson@gimp.org>
1729
1730         * Required changes for version change to 0.99.4
1731
1732         * gtk/gtktree.[ch]: patch from J. Bolliet to correct some bugs
1733         * gtk/testgtk.c: added test here from J. Bolliet, removed testtree
1734
1735         * gtk/clist: gtk-abilleira-981602-0, allows gtk_clist_set_pixmap 
1736           and gtk_clist_set_pixtext to not require a mask
1737         
1738         * gdk/gdkdraw.c,gdk.h: gtk-trow-980217-0
1739           adds gdk_draw_lines and fixes some things about 
1740           gdk_draw_polygon         
1741
1742 Sun Mar  1 17:40:58 1998  Owen Taylor  <owt1@cornell.edu>
1743
1744         * gdk/gdkpixmap.c: Make sure either the window or
1745         the depth is given when creating a pixmap.
1746
1747 Sun Mar  1 22:59:09 1998  Tim Janik  <timj@gimp.org>
1748
1749         * gtk/gtkstatusbar.h: 
1750         * gtk/gtkstatusbar.c: complete api change to honour message contexts.
1751         unfortunaltely this also involved argument changes on the signal
1752         emissions which will not be caught by the compiler. your callbacks
1753         should look like:
1754         void  message_text_popped (GtkStatusbar   *statusbar,
1755                                    guint           context_id,
1756                                    const gchar    *text,
1757                                    gpointer        func_data);
1758
1759         * gtk/gtkwidget.c (gtk_widget_set_rc_style): eliminated bug about
1760         initial signal emission.
1761         (gtk_widget_set_parent): don't ensure style, just call
1762         gtk_widget_set_style_recurse.
1763         (gtk_widget_set_style_recurse): only change a widget's rc styles if
1764         if there has already been a lookup.
1765         
1766         * gtk/testgtk.c: adaptions for statusbar widget.
1767         substituted notebook pixmaps with pixmaps from fvwm, since
1768         we don't know where the originals came from.
1769         
1770         * gtk/gtkobject.c (gtk_object_data_destroy): call the destroy
1771         notifier with the objects data, not its internal structure.
1772         
1773         * gtk/gtkspinbutton.c (gtk_spin_button_button_press): small
1774         fix from lars.
1775
1776 Sun Mar  1 15:08:13 CST 1998 Shawn T. Amundson <amundson@gimp.org>
1777
1778         * docs/*.texi changes from Greg Mclean.
1779
1780 Sun Mar  1 18:41:07 1998  Tim Janik  <timj@gimp.org>
1781
1782         * gtk/gtkwidget.c (gtk_widget_restore_default_style): hm if we save the
1783         default style, we should also provide a function to restore it ;).
1784
1785         * gtk/main.[hc]: small fixups to idle handlers, added support for quit
1786         handlers.
1787
1788 Sun Mar  1 05:18:11 1998  Owen Taylor  <owt1@cornell.edu>
1789
1790         * gtk/gtkentry.c gtk/gtktext.c gtkeditable.[ch]
1791
1792         Changed interface to cut/copy/paste so it makes sense
1793         when triggered by say, menu items.
1794
1795 Sun Mar  1 03:20:39 1998  Owen Taylor  <owt1@cornell.edu>
1796
1797         * gtk/gtkentry.[ch] gtk/gtktext.[ch] gtkeditable.[ch]
1798
1799         Turned off debugging in gtktext.c
1800
1801         Bug fixes for cutting, pasting, deleting, etc. 
1802
1803         Some of the bugs that were there before have definitely
1804         been fixed. 
1805         
1806         * gtk/testgtk.c gtk/testgtkrc: Removed my ugly orange backgrounds,
1807         to make things look nicer. 
1808         
1809 Sat Feb 28 23:58:54 1998  Owen Taylor  <owt1@cornell.edu>
1810
1811         * gtk/gtkentry.[ch] gtktext.[ch] gtkeditable.[ch]
1812
1813         Created a new base widget type Editable for the entry and
1814         text widgets, which encapsulates most of the selection and
1815         clipboard handling stuff, plus some common signals.
1816
1817         Changed the Entry widget extensively to support this, 
1818         but the interface and appearance should be the same.
1819
1820         Changed the Text widget moderately to support this.
1821
1822         It now supports:
1823
1824         - Selection style cut and paste
1825         - Clipboard style cut and paste
1826         - Emacs style key bindings (~same as Entry)
1827         - Word motion
1828         - "changed" signal
1829
1830         There are definitely still some bugs in the new stuff.
1831
1832         Use style->base for the background and style->text for
1833         the foreground.
1834         
1835         * gtkfilesel.c gtkspinbutton.c testgtk.c: small changes
1836         to fit the new interface more exactly.
1837         
1838 Sat Feb 28 19:29:09 1998  Tim Janik  <timj@gimp.org>
1839
1840         * gtk/gtkclist.c (gtk_clist_new_with_titles): retrive the clist widget
1841         from gtk_type_new (gtk_clist_get_type ()), not gtk_clist_new(),
1842         otherwise gtk_clist_construct() gets called twice.
1843
1844         * gtk/gtkhandlebox.h:
1845         * gtk/gtkhandlebox.c: emit signals when the child is attached/detached.
1846
1847 Sat Feb 28 15:18:36 1998  Tim Janik  <timj@gimp.org>
1848
1849         * gtk/gtkpreview.c: fix behavior of gtk_preview_put() with
1850         srcx/srcy != 0, gtk-shige-980127-0.patch.gz by
1851         AOSASA Shigeru <aozasa@sakuranet.or.jp>.
1852
1853         * gdk: applied gtk-roebling-980121-0.patch.gz, patch for region
1854         support in Gdk, by Robert Roebling <roebling@ruf.uni-freiburg.de>.
1855
1856 Fri Feb 27 15:31:55 1998  Tim Janik  <timj@gimp.org>
1857
1858         * gtk/gtktipsquery.c: we make an active server grab now, this way we
1859         can change the cursor globally and don't need to tweak event masks
1860         of other windows.
1861
1862         * gtk/gtkframe.c (gtk_frame_style_set): recompute label size.
1863
1864         * gtk/gtkwidget.h:
1865         * gtk/gtkwidget.c:
1866         New signal GtkWidget::style_set to be emitted when a widget's style
1867         changed. New flag GTK_RC_STYLE to indicate whether an rc lookup has
1868         been perfomed for the widget.
1869         (gtk_widget_ensure_style): New function.
1870         (gtk_widget_set_rc_style): New function.
1871
1872         * docs/styles.txt: new file.
1873
1874 Fri Feb 27 01:11:55 1998  Owen Taylor  <owt1@cornell.edu>
1875
1876         * gtk/gtktext.c
1877
1878         - gtk_text_delete and gtk_text_insert now update caches
1879         and refresh screen correctly if the text widget isn't frozen.
1880        
1881         - Fixed bug where text->first_line_start_index wasn't
1882         being updated correctly on insertion and deletion.
1883         
1884         - Added new public macro GTK_TEXT_INDEX (text, ind), and 
1885         function gtk_text_get_chars(text, index, nchars);
1886         
1887 Thu Feb 26 22:36:46 1998  Owen Taylor  <owt1@cornell.edu>
1888
1889         * gdk/gdkwindow.c gdktypes.c gdk.h: 
1890         new functions for setting WM hints
1891
1892          gdk_window_set_icon()
1893          gdk_window_set_icon_name()
1894          gdk_window_set_group()
1895          gdk_window_set_decorations()
1896          gdk_window_set_functions()
1897
1898         * gdk/MwmUtil.h: new uninstalled header file from lesstif 
1899         distribution, used for setting MWM hints.
1900
1901         * gdk/gdkdnd.c Makefile.am: renamed from gdk/gdk_dnd.c
1902         
1903         * gtk/gtkhandlebox.c (gtk_handle_box_realize): Use MWM hints
1904         to undecorate window.
1905
1906         * gtk/testgtk.c gtk/circles.xbm: new test for WM hints.
1907
1908 Wed Feb 25 22:56:42 1998  Tim Janik  <timj@gimp.org>
1909
1910         * gtk/gtkspinbutton.h: 
1911         * gtk/gtkspinbutton.c:
1912         new widget from Lars Hamann <hamann@braunschweig.netsurf.de> and
1913         Stefan Jeske <jeske@braunschweig.netsurf.de>.
1914
1915         * gtk/gtknotebook.c: fixups from lars and stefan.
1916
1917 Wed Feb 25 13:18:53 1998  Owen Taylor  <owt1@cornell.edu>
1918
1919         * gtk/gtkbbox.[ch] gtk/gtkhbox.[ch] gtk/gtkvbox.[ch] :
1920
1921         Move layout constants into an enumeration, split
1922         GTK_BUTTONBOX_DEFAULT into GTK_BUTTONBOX_DEFAULT
1923         and GTK_BUTTONBOX_DEFAULT_STYLE (enumeration member).
1924         
1925         * gtk/gtkclist.c:
1926
1927         Renamed gtk_clist_row_isvisable to .._is_visible
1928
1929         From: Maciej Stachowiak <mstachow@mit.edu>
1930         
1931 Wed Feb 25 13:50:05 GMT 1998  Tony Gale <gale@gimp.org>
1932
1933         * docs/gtkfaq.sgml: added questions on:
1934                 - Why don't the contents of a button move when 
1935                   the button is pressed?
1936                 - How do I catch a double click event in 
1937                   a list widget?         
1938                 - When compiling GTK+ I get an error like: 
1939                   make: file `Makefile' line 456: Syntax error 
1940           Removed questions on menus which are covered in the
1941           tutorial.
1942
1943           Added link to HTML versions of FAQ and Tutorial on my
1944           web site.
1945
1946 Tue Feb 24 22:47:01 1998  Owen Taylor  <owt1@cornell.edu>
1947
1948         * gtk/gtktext.c: Added some support for i18n. The support 
1949         for input methods, including preedit, is there, but input
1950         is ignored unless it comes one byte at a time, so the
1951         CJK locales won't really work. Fixing that would require
1952         variable-width character support in the Text widget, which
1953         is probably the wrong approach. Eventually we'll probably
1954         want to go to UCS-4 internally.
1955
1956         Also, revised key press handling, which should improve
1957         the forwarding of non-handled keypresses to the toplevel,
1958         and make adding selection handling easier.
1959
1960         * gtk/gtkentry.c: Minor changes so that C-d, etc delete
1961         the selection if there is one.
1962
1963         * gdk/gdk.c (gdk_ic_get_events): Check the result of
1964         XGetICValues - it is failing for some reason, and 
1965         causing some warnings to be printed.
1966
1967 Mon Feb 23 15:41:13 1998  Owen Taylor  <owt1@cornell.edu>
1968
1969         * gtk/gtkwidget.c gtk/gtkmenu.c: Don't process configure events
1970         that just move the window, and don't resize it. Because we need
1971         to make sure that a widget gets redrawn after a size_allocate -
1972         and that only happens when the configure event changes the size
1973         of the window. Plus, it's inefficient.
1974         
1975 Mon Feb 23 15:45:37 1998  Marc Ewing <marc@redhat.com>
1976
1977         * gtk/gtktoolbar.h:
1978         * gtk/gtktoolbar.c:
1979         Added gtk_toolbar_*_element() functions.  Rewrote others
1980         to simply call gtk_toolbar_insert_element() to do the
1981         work.
1982         Added two new GtkToolbarChildType options: TOGGLEBUTTON and
1983         RADIOBUTTON, available through the gtk_toolbar_*_element() functions.
1984         
1985 Mon Feb 23 13:44:10 1998  Tim Janik  <timj@gimp.org>
1986
1987         * gtk/gtkstatusbar.h:
1988         * gtk/gtkstatusbar.c:
1989         (re-)implemented the statusbar widget. my first intend was to fix the
1990         code, but then there was nothing to fix.
1991
1992 Sun Feb 22 20:42:04 1998  Marc Ewing <marc@redhat.com>
1993
1994         * gtk/gtkclist.c (gtk_clist_insert): Allow inserts
1995         on empty clists.
1996         
1997 Sun Feb 22 14:28:43 1998  Owen Taylor  <owt1@cornell.edu>
1998
1999         * gtk/gtkmain.c (gtk_events_pending): Count idle handlers
2000         at internal priority as pending events.
2001
2002 Sun Feb 22 00:20:12 MET 1998  Eckehard Berns  <eb@berns.prima.de>
2003
2004         * gdk/gdkcc.c (gdk_color_context_query_colors): fixed a bug for mode
2005         GDK_CC_MODE_TRUE, when on a 24-bit visual on a 32-bit mashine.
2006
2007 Sat Feb 21 15:33:20 1998  Tim Janik  <timj@gimp.org>
2008
2009         * gtk/gtkwidget.h: 
2010         * gtk/gtkwidget.c: renamed signal GtkWidget::set_parent to
2011         GtkWidget::parent_set. since it's purpose is pure notification,
2012         it should have been named this way in the first place.
2013
2014 Sat Feb 21 12:06:11 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
2015
2016         * gtk/gtkentry.c (gtk_entry_set_text): Added a test for passing a
2017         NULL text pointer.
2018
2019 Sat Feb 21 14:49:17 1998  Tim Janik  <timj@gimp.org>
2020
2021         * gtk/gtkobject.h:
2022         * gtk/gtkobject.c: gtk_object_query_args takes an additional pointer
2023         now which if supplied will point to an array holding the sequential
2024         argument ids.
2025
2026         * gtk/gtktree.c: fix emission of selection_changed signal, supplied
2027         by Bolliet Jerome.
2028
2029         * gtk/gtktreeitem.c: inline the plus and minus pixmaps, supplied by
2030         Bolliet Jerome.
2031
2032         * gtk/gtknotebook.c: do a resize when a page is removed and don't
2033         refer to the removed page on the switch signal, supplied by Lars Hamann
2034         and Stefan Jeske.
2035
2036         * gtk/gtktoolbar.h:
2037         * gtk/gtktoolbar.c:
2038         gtk_toolbar_append_item, gtk_toolbar_prepend_item,
2039         gtk_toolbar_insert_item, gtk_toolbar_append_widget,
2040         gtk_toolbar_prepend_widget, gtk_toolbar_insert_widget: take an additional
2041         gchar *tooltip_private_text as argument to fully support the underlying
2042         call to gtk_tooltip_set_tip.
2043
2044 Fri Feb 20 06:40:00 1998  Tim Janik  <timj@gimp.org>
2045
2046         * gtk/gtktipsquery.h: 
2047         * gtk/gtktipsquery.c:
2048         New widget GtkTipsQuery for letting the user query tooltips of widgets.
2049
2050         * gtk/testgtk.c: add example for GtkTipsQuery.
2051
2052         * gtk/gtk.h: include gtk/gtktipsquery.h.
2053
2054         * gtk/gtklabel.c: enable default constructing.
2055         
2056
2057 Thu Feb 19 18:53:51 1998  Larry Ewing  <lewing@discord.isc.tamu.edu>
2058
2059         * removed g_warnings from the common XShm failure cases in gdkimage.c
2060
2061 1998-02-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2062
2063         * gtk/gtkcombo.c (gtk_combo_entry_key_press): Added M-p and M-n
2064         key equivalents for up and down keys.  Just for us Emacs weenies :-)
2065
2066 Thu Feb 19 12:18:24 1998  Owen Taylor  <owt1@cornell.edu>
2067
2068         * gtk/testgtk.c : Use POINTER_MOTION_HINT when dragging
2069         shapes around. 
2070         (gtk-wille-980203-0 
2071          Stefan Wille  <1wille@vsys1.informatik.uni-hamburg.de>)
2072
2073         * gtk/gtktext.c : Fixes to inserting and deleting characters
2074         on line breaks.
2075         (gtk-magnus-980210-0 Magnus Hulthen <magnus@axiom.se>)
2076
2077         * glib/configure.in glib/glibconfig.h.in: the value of
2078         ---enable_debug is written into glibconfig.h so everything
2079         is recompiled when it changes. (HACK)
2080
2081         * gtk/gtkmain.c gdk/gdk.c docs/debugging.txt:
2082         Added --gdk-no-debug and --gtk-no-debug switches. Effect
2083         of switches is no cumulative.
2084
2085 Thu Feb 19 06:56:52 1998  Tim Janik  <timj@gimp.org>
2086
2087         * gtkbox.c:
2088         * gtkbutton.c:
2089         * gtkcontainer.c:
2090         * gtkframe.c:
2091         * gtklabel.c:
2092         * gtkobject.c:
2093         * gtkwidget.c:
2094         * gtkwindow.c:
2095         present the argument access masks on their announcement.
2096
2097         * gtk/gtkobject.h:
2098         * gtk/gtkobject.c:
2099         (gtk_object_add_arg_type): take an additional argument describing
2100         the access mask of the new arg. this can be of GTK_ARG_READABLE,
2101         GTK_ARG_WRITABLE or GTK_ARG_READWRITE (the latter is an alias for
2102         the two previous ones).
2103         (gtk_object_query_args): provide an access_mask array if desired.
2104
2105         * gtk/gtkwidget.c (gtk_widget_real_realize):
2106         realized the assumtion that widget is a NO_WINDOW widget
2107         in actuall code.
2108
2109         * gtkwindow.c:
2110         slight changes to gtk_window_configure_event that will make
2111         the resizing behaviour a little less odd.
2112         sigh, for some (buggy) reason, there are still container resizes
2113         triggered by manual resizing to very small window sizes.
2114         the cointainer resizes will cause gtk_real_window_move_resize to
2115         be invoked, which makes the app look like it wants to fight the users
2116         resizing action. ;(
2117
2118 Thu Feb 19 01:11:48 1998  Owen Taylor  <owt1@cornell.edu>
2119
2120         * configure.in         gdk/gdk.[ch]         gdk/gdkcc.c 
2121           gdk/gdkglobals.c     gdk/gdkinputcommon.h gdk/gdkprivate.h 
2122           gdk/gdkvisual.c      glib/configure.in    glib/glib.h
2123           glib/gutils.c        gtk/Makefile.am      gtk/gtkmain.c
2124           gtk/gtkobject.[ch]   gtk/gtkdebug.h       docs/debugging.txt   
2125
2126         New system for controlling debugging:
2127
2128         * --enable-debug=[no/yes/minimum]
2129         * G_DISABLE_ASSERT and G_DISABLE_CHECKS for glib
2130         * G_NO_CHECK_CASTS to control cast checking
2131         * G_ENABLE_DEBUG enables run time checking which controls:
2132             Object tracing
2133             Showing events
2134             Miscellaneous g_print's in GDK
2135           And is controlled by --gdk-debug/GDK_DEBUG, --gtk-debug/GTK_DEBUG
2136         * debug_level and show_events are gone from GTK
2137
2138         See docs/debugging.txt for details.
2139         
2140         And some fixups to the configure.in's so '-g' can be
2141         overriden on the command line for --enable-debug
2142         
2143 Thu Feb 19 05:40:51 1998  Tim Janik  <timj@gimp.org>
2144
2145         * gtk/gtknotebook.h:
2146         * gtk/gtknotebook.c:
2147         applied gtk-hamann_jeske-980218-0.patch.gz, a patch from
2148         Lars Hamann and Stefan Jeske which introduces major
2149         usability improvements.
2150         fixed bugs are:
2151         - container border_width>0 does now work correctly for show_tabs==TRUE
2152           and for tab_pos=GTK_POS_BOTTOM/GTK_POS_RIGHT.
2153         - toggleing visibility of the tab labels works now.
2154         - emission of GtkNotebook:switch_page and all page changes
2155         also the signature for the GtkNotebook:switch_page signal changed,
2156         callbacks should now look like:
2157         gint notebook_switch_page (GtkWidget *widget,   GtkNotebookPage *page,
2158                                    gint       page_num, gpointer         data);
2159
2160 Wed Feb 18 01:09:56 PST 1998  Jay Painter <jpaint@serv.net>
2161         * gdk/gdk.c: fixed ambigous else compiler warning
2162         * gtk/gtkgamma.c: fixed ambigous else compiler warning
2163         * gtk/gtkclist.h:
2164         * gtk/gtkclist.c: new signals which break everything! (yeah!)
2165         * gtk/gtkfilesel.c: fixed to use new clist signals
2166
2167 Wed Feb 18 04:38:24 1998  Tim Janik  <timj@gimp.org>
2168
2169         * gtk/gtkwidget.h:
2170         * gtk/gtkwidget.c:
2171           new signal GtkWidget::set_parent. this signal will be emitted once a
2172           widget gets a new/no parent assigned (i.e. from gtk_widget_unparent
2173           and gtk_widget_set_parent).
2174
2175 Wed Feb 18 02:58:50 1998  Tim Janik  <timj@gimp.org>
2176
2177         * gtk/gtktooltips.h:
2178           new functions gtk_tooltips_data_get and
2179           gtk_tooltips_set_tip, gtk_tooltips_set_tips is discouraged now.
2180         (_GtkTooltips): removed some fields that were never used.
2181           changed boolean fields to one bit size, to pack together with
2182           the delay field.
2183         (_GtkTooltipsData): added tip_private, renamed tips_text to
2184           tip_text.
2185         * gtk/gtktooltips.c:
2186           (gtk_tooltips_data_get): new function to retrive the
2187           _GtkTooltipsData structure of a widget.
2188         (gtk_tooltips_set_tip): new function for more extensible tooltips
2189           settings than gtk_tooltips_set_tips which is discuraged now.
2190           removed a bug that caused a stale object_data key to a
2191           _GtkTooltipsData structure.
2192           removed a bug that caused tips falsly to come up for a grab widget
2193           on widgets where events were grabbed from.
2194
2195 1998-02-17  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2196
2197         * gdk/gdkcc.c: Added some missing newlines on debug messages.
2198
2199 Tue Feb 17 05:41:31 1998  Tim Janik  <timj@gimp.org>
2200
2201         * gtk/gtkentry.c (gtk_entry_init): invoke gtk_entry_grow_text already
2202           in this place, so the application will never see entry->text==NULL.
2203           (see also ChangeLog entry from Tue Feb 11 1997 on this).
2204
2205         * gtk/gtkcheckbutton.c:
2206         * gtk/gtkradiobutton.c:
2207         * gtk/gtktogglebutton.c:
2208           applied patch to fix draw_indicator behaviour from Lars Hamann
2209           and Stefan Jeske.
2210
2211         * gtk/gtkmain.h:
2212         * gtk/gtkmain.c (gtk_grab_get_current): new function
2213           that returns the current grab widget or NULL.
2214
2215         * gdk/gdkwindow.c (gdk_window_shape_combine_mask): remove
2216           shape mask if mask==NULL (provided by Stefan Wille).
2217
2218 Tue Feb 17 00:06:26 1998  Owen Taylor  <owt1@cornell.edu>
2219
2220         * gtk/gtkpaned.c, gtk/gtk[hv]paned.c: (gtk-fortier-980215-0)
2221           From Patrice Fortier <Patrice.Fortier@aquarel.fr>
2222
2223           Add a widget->window for paned windows, so they
2224           can be reparented properly.
2225
2226 Mon Feb 16 23:47:09 1998  Owen Taylor  <owt1@cornell.edu>
2227
2228         * gtk/gtkviewport.c: (gtk-fortier-980130-0)
2229           From Patrice Fortier <Patrice.Fortier@aquarel.fr>
2230         
2231           Eliminate some extra expose events for viewports.
2232           (To be conservative, I set the user's event mask for
2233            both widget->window, and viewport->bin_window  -owt)
2234
2235 Mon Feb 16 23:12:14 1998  Owen Taylor  <owt1@cornell.edu>
2236
2237         * gtk/gtkmain.c: Make timeout and idle insertion code
2238           use g_list_insert_sorted().
2239
2240 Mon Feb 16 17:35:17 1998  Owen Taylor  <owt1@cornell.edu>
2241
2242         * gtk/gtktreeitem.c: Use gtk_signal_default_marshaller,
2243           for expand/collapse signals.
2244
2245 Fri Feb 13 19:08:51 1998  Tim Janik  <timj@gimp.org>
2246
2247         * gtk/gtkclist.c (check_exposures): check for clist !REALIZED.
2248         (draw_rows): bail out if the widget isn't drawable.
2249         (hadjustment_value_changed): 
2250         (vadjustment_value_changed): bail out if clist isn't drawable.
2251
2252         * gdk/gdk.c (graphics_expose_predicate): check for private != NULL.
2253         (gdk_event_get_graphics_expose): check for window != NULL.
2254
2255 Fri Feb 13 00:33:26 1998  Owen Taylor  <owt1@cornell.edu>
2256
2257         * gtk/testgtk.c (shape_create_icon): Realize window before
2258           creating xpm so it gets the right colormap/visual,
2259           instead of the default one.
2260
2261 Thu Feb 12 23:59:49 1998  Owen Taylor  <owt1@cornell.edu>
2262
2263         * gtk/gtksignal.[ch] gtk/gtkmain.[ch] gtk/gtkcontainer.[ch]
2264           gtk/gtkselection.[ch] gdk/gdk.[ch] gtktypeutils.h 
2265           
2266           Replaced all _interp functions with _full functions.
2267           (_interp functions left in for compatibility until 0.99.5). 
2268           Difference: _full functions take _both_ a C-language callback and a
2269           marshaller, and simply ignore the C-language callback
2270           if the marshaller is present. This allows the destroy notification
2271           to be used without marshalling.
2272
2273           gtk_selection_add_handler[_full]() regularized to agree
2274           with other callbacks.
2275         
2276           Also, added gtk_input_add_full() to the header file. 
2277           (gtk_input_add_interp() was never there)
2278
2279         * gtk/gtkmain.[ch] gtk/gtkwidget.c: Idle functions are now prioritized.
2280           Added new function gtk_idle_add_priority to create
2281           an idle with a specified priority (default is zero)
2282           constants #defined - GTK_PRIORITY_[HIGH/INTERNAL/DEFAULT/LOW]
2283           (redraws, resizes run at GTK_PRIORITY_INTERNAL)
2284         
2285         * gtk/gtkentry.c gtk/testselection.c: changes to keep up with change
2286           to gtkselection.c. 
2287
2288         * gtk/gtkentry.c gtk/gtkinputdialog.c gtk/gtklist.c
2289           gtk/gtklistitem.c gtktree.c gtk/gtktreeitem.c testgtkrc:
2290
2291           Change style->white to style->base[] where appropriate.
2292           Change the default style to make this apparent. (Yes, its
2293           ugly... it can be removed later)
2294         
2295 Tue Feb 10 15:01:44 1998  Owen Taylor  <owt1@cornell.edu>
2296
2297         * gtk/gtkobject.c gtk/gtkobject.h: Add a DestroyNotify
2298         field, and gtk_object_set_data_full() to match.
2299
2300         * gtk/gtkobject.c (gtk_object_finalize): ObjectData structures
2301         were being added to a free list, then forgotten about. Just
2302         rely on GMemChunk instead.
2303
2304 2018-02-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2305
2306         * gtk/gtkclist.c:
2307         * gtk/gtkentry.c: 
2308         * gtk/gtkfixed.c:
2309         * gtk/gtkhandlebox.c:
2310         * gtk/gtknotebook.c:
2311         * gtk/gtkpaned.c:
2312         * gtk/gtkpreview.c:
2313         * gtk/gtkrange.c:
2314         * gtk/gtkruler.c:
2315         * gtk/gtktext.c:
2316         * gtk/gtkviewport.c:
2317         Fixed unrealize handler to comply with the
2318         documentation (which mentions the right thing to do).
2319
2320 Wed Feb 11 00:18:31 1998  Tim Janik  <timj@gimp.org>
2321
2322         * docs/refcounting.txt: backed out the section "Gnits to care about".
2323         * docs/developers.txt: new file, kinda developers FAQ.
2324
2325         * gtk/gtksignal.c: new function gtk_signal_handler_pending() returning
2326           the id of the next handler pending for that signal or 0.
2327           put struct GtkHandler back into gtksignal.c along with
2328           gtk_signal_get_handlers.
2329
2330 Tue Feb 10 07:12:07 1998  Tim Janik  <timj@gimp.org>
2331
2332         * gtk/gtksignal.h:
2333         * gtk/gtksignal.c:
2334         ok, there have been several severe bugs in the signal handler
2335         referencing and ->next connection stuff. these bugs caused
2336         invokations of handlers that are disconnected and - worse -
2337         destroyed already. invokation of *destroyd* handlers mean:
2338         anything can be executed , because the handler structure can just
2339         as well be realocated.
2340         at the cost of an extra ->prev field per handler we should have a
2341         reasonable stable system now, because of the various places that
2342         can cause a handler to be disconnected (*any* handler invokation can
2343         cause *any* or *all* handlers to be disconnected, there is no way
2344         around a doubly linked list, actually handler disconnection has never
2345         worked correctly because of this.
2346         handlers are connected together via a *doubly* linked list now, and it
2347         is *not* valid to remove a handler out of this list untill all its
2348         references have been droped, i.e. handler->ref_count==0.
2349         to prevent emissions of disconnected but still referenced handlers,
2350         disconnected handlers are simply marked as blocked and get an id of 0
2351         which is an invalid signal handler id.
2352         the handler->id has been changed to have 28 significant bits (using
2353         alignment gaps), since 65536 (old range: guint16) signal connections
2354         (as a total) can easily be reached by complex applications.
2355         this whole handler thingy is at least as tedious as writing doubly
2356         linked list implementations ;)
2357
2358 Mon Feb  9 23:08:16 1998  Owen Taylor  <owt1@cornell.edu>
2359
2360         * gtk/gtkwidget.c (gtk_widget_unparent): Check for
2361           the RESIZE_NEEDED flag and remove the widget from the list.
2362           Remove the check from gtk_widget_destroy (no longer needed).
2363
2364         * Unrealize widget _before_ calling "destroy" signal, and
2365           unset VISIBLE flag.
2366
2367         * Unrealize child widgets _after_ unrealizing parent to improve
2368           visual appearance.
2369
2370 Mon Feb  9 16:42:21 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2371
2372         * gtk/gtksignal.c (gtk_signal_get_handlers): no longer a private
2373         routine;
2374         gtksignal.h: export gtk_signal_get_handlers and GtkHandlers type. 
2375
2376 Sun Feb  8 07:06:54 1998  Tim Janik  <timj@gimp.org>
2377
2378         * gtk/gtkmenu.c (gtk_menu_get_attach_widget): new function to return
2379           the widget that the menu is attached to.
2380
2381 Sat Feb  7 11:33:08 1998  Owen Taylor  <owt1@cornell.edu>
2382
2383         * gdk/gdkgc.c (gdk_gc_copy): use a mask of 0xffffffff
2384           instead of 0xffff, since there are 22 flags currently
2385           defined. (From: Jon Trowbridge <trow@emccta.com>)
2386
2387           Changed to something better. ~((~1) << GCLastBit)
2388                    (From: from Daniel Stephens <daniel@cheeseplant.org>)
2389         
2390 Sat Feb  7 02:29:01 1998  Tim Janik  <timj@gimp.org>
2391
2392         * gdk/gdk.c (gdk_event_translate): don't wipe out window_private's x
2393           and y coordinates if the configure notify is only about resizing,
2394           query the correct origin instead.
2395
2396 Wed Feb  4 23:05:28 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
2397
2398         * gtk/gtkmenufactory.c: menufactories now ref&sink the menus they
2399         create
2400
2401 Thu Feb  5 02:13:08 1998  Tim Janik  <timj@gimp.org>
2402
2403         * gtk/gtklist.h:
2404         * gtk/gtklist.c (gtk_list_remove_items_no_unref): new function
2405           to perform the same actions as gtk_list_remove_items, but
2406           supply the removed widgets with an additional reference count.
2407
2408         * gtk/gtkmain.c (gtk_main_iteration_do): ignore events
2409           with event_widget == NULL, since they are bogus events
2410           from destroyed GdkWindows, exept for the case where
2411           event->type==GDK_PROPERTY_NOTIFY. Always handle expired
2412           timeout functions when returning from this function.
2413
2414         * gtk/gtkwidget.c (gtk_widget_event): ignore GDK_EXPOSE events
2415           if event->window == NULL. Also, if this function couldn't handle
2416           the event for any reason (including failing assumptions), make
2417           the return value to look as if the event had been handled to
2418           avoid further processing (and warnings).
2419           
2420         * gtk/gtkwidget.h:
2421         * gtk/gtkwidget.c: remove gtk_widget_sink, because there is
2422           no point in providing such a function.
2423
2424         * gdk/gdk.c (gdk_init): changed options `-name' and `-class'
2425           to `--name' and `--class', because the old names would
2426           confuse getopt(). these arguments have been introduced in the
2427           changes from gtk+970916 to gtk+970925 without a ChangeLog entry,
2428           changing argument names is painful, it would be nice if people
2429           would care about compatibility and consistency in the first place!
2430
2431 Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>
2432         
2433         * docs/widget_system.txt: new file containing notes about
2434           the inner workings of the widget system of GTK+, a widget
2435           flag description and certain invariants about widget states.
2436         
2437         * docs/refcounting.txt: moved file (previously REFCOUNTING)
2438           introducing The Reference Counting Scheme of GDK an GTK+.
2439           lots of additions/corrections.
2440
2441         * gtk/gtksignal.c (gtk_signal_real_emit): for the emission
2442           of AFTER signals, fetch the objects signals via
2443           gtk_signal_get_handlers again. some handlers might have
2444           been removed or added. not doing this would mess up the
2445           memchunk allocation of signal handlers (this had been
2446           triggered by multiple *_while_alive connections), bad, bad, bad!
2447           (gtk_handlers_run): do the referencing on signal handlers
2448           unconditionally, the invokation of AFTER handlers will now take
2449           care of modified lists.
2450
2451         * gtk/gtksignal.h: added gtk_signal_connect_while_alive.
2452
2453 Tue Feb  3 15:34:27 1998  Owen Taylor  <owt1@cornell.edu>
2454
2455         * gdk/gdkcolor.c (gdk_colormap_get_system): Only query
2456           the colormap for GRAYSCALE and PSEUDOCOLOR visuals,
2457           and don't ask for more than 256 colors in any case.
2458
2459         * gdk/gdkwindow.c (gdk_window_internal_destroy): Remove
2460           the input window information when we destroy the window,
2461           not when we are notified of it.
2462
2463         * gdk/gdkinputcommon.h (gdk_input_device_new): Work around
2464           bug in XFree86 3.3.1's handling of Wacom macro buttons.
2465           by assumming no device will report exactly 25 buttons.
2466
2467         * gdk/gdkinputcommon.h (gdk_input_common_other_event): Fill
2468           in string translation for generated key press events,
2469           do sanity checking on received key codes.
2470
2471         * gdk/gdkcc.c (gdk_color_context_new): Allocate enough
2472           room for a GdkColorContextPrivate, not just for a 
2473           GdkColorContext.
2474
2475 Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>
2476
2477         * gtk/testgtk.c: don't add the same menu to different menuitems/
2478           optionmenus.
2479
2480         * gtk/gtkmenuitem.h:
2481         * gtk/gtkmenuitem.c: new function gtk_menu_item_remove_submenu ro
2482           be consistent with optionmenu. use gtk_menu_attach_to_widget/
2483           gtk_menu_detach for setting/removing the submenu.
2484           invoke gtk_widget_destroy(submenu) in destructor to be consistent
2485           with other destructors.
2486
2487         * gtk/gtkoptionmenu.h: 
2488         * gtk/gtkoptionmenu.c: attach/detach to menu widget via
2489           gtk_menu_attach_to_widget/gtk_menu_detach.
2490           invoke gtk_widget_destroy(menu) in destructor to be consistent
2491           with other destructors.
2492
2493         * gtk/gtkmenu.h: 
2494         * gtk/gtkmenu.c: new functions gtk_menu_attach_to_widget
2495           and gtk_menu_detach that correspond to the action of
2496           gtk_widget_set_parent and gtk_widget_unparent.
2497
2498         * gtk/widget.c: few fixups.
2499
2500 Tue Feb  3 00:12:00 1998  Owen Taylor  <owt1@cornell.edu>
2501         * gtk/gtktable.c 
2502           Fixed problem with division by zero in row/column-spanned
2503           tables. Also removed a bunch of conditionals by making
2504           the observation that x/1 == x.
2505
2506 Mon Feb  2 04:15:08 1998  Tim Janik  <timj@gimp.org>
2507
2508         * gtk/gtkwindow.c:
2509         * gtk/gtkwidget.c:
2510         * gtk/gtkmain.c:
2511         * gtk/gtkwidget.c:
2512         * gtk/gtkcontainer.c:
2513         * gtk/gtkprivate.h (GTK_PRIVATE_UNSET_FLAG) (GTK_PRIVATE_UNSET_FLAGS): 
2514           changed name to reflect that these macros in fact can't operate on
2515           multiple flags.
2516
2517         * gtk/gtktoolbar.c: fixed destroy handler, so it doesn't
2518           segfault with the new refcounting scheme anymore.
2519
2520         * gtk/gtkhandlebox.c:
2521         * gtk/gtkclist.c:
2522         * gtk/gtkentry.c:
2523         * gtk/gtkrange.c:
2524         * gtk/gtktext.c:
2525         * gtk/gtkviewport.c:
2526           enforced
2527           gdk_window_set_user_data (window, NULL);
2528           gdk_window_destroy (window);
2529           window = NULL;
2530           throughout the code.
2531
2532         * gtk/gtkmain.c (gtk_propagate_event): fixed a bad, bad referencing
2533           bug that could caused unreferencing of finalized objects.
2534
2535         * gtk/testgtk.c: destroy fileselection on "OK" (this triggered the
2536           above mentioned bug).
2537
2538         * gtk/gtkwidget.h:
2539         * gtk/gtkwidget.c:
2540         * gtk/gtkobject.h:
2541         * gtk/gtkobject.c:
2542           implemented and object reference tracer (gtk_trace_referencing) which
2543           is activated if GTK_TRACE_OBJECTS is defined (currently per default).
2544           in gdb: set the static variable `gtk_trace_object' to point to the
2545           object that you want to have reference traced.
2546
2547         * gtk/gtkfileselection.c: few cleanups.
2548
2549         * gtk/gtkcolorsel.c:
2550         * gtk/gtkcombo.c:
2551         * gtk/gtkobject.c:
2552         * gtk/gtkselection.c:
2553         * gtk/gtkwidget.c:
2554         * gtk/gtkwindow.c:
2555           cleanups with key name spaces.
2556
2557         * gtk/gtkcombo.c: fixed destruction bug with popwin.
2558
2559         * gtk/gtkcontainer.h: 
2560         * gtk/gtkcontainer.c: GTK_RESIZE_NEEDED is a private flag now.
2561           (gtk_container_register_toplevel): new function.
2562           (gtk_container_unregister_toplevel): new function.
2563
2564         * gtk/gtkmain.c: GTK_LEAVE_PENDING is a private flag now.
2565
2566         * gtk/gtkmenu.c: call gtk_container_register_toplevel in
2567           gtk_menu_class_init instead of this dirty gtk_widget_set_parent(,NULL)
2568           hack. new default handler gtk_menu_destroy for calling
2569           gtk_container_unregister_toplevel. removed GTK_ANCHORED, GTK_UNMAPPED.
2570
2571         * gtk/gtkobject.h: macro cleanups, added GTK_DESTROYED flag.
2572
2573         * gtk/gtkobject.c: only emit DESTROY signal if !GTK_OBJECT_DESTROYED
2574           (object).
2575
2576         * gtk/gtkprivate.h: new file that will not be automatically included.
2577           it holds the private flags for GtkWidget along with it's SET/UNSET
2578           and examination macros.
2579
2580         * gtk/gtkwidget.c: private flags: GTK_RESIZE_NEEDED, GTK_REDRAW_PENDING,
2581           GTK_RESIZE_PENDING, GTK_IN_REPARENT, GTK_USER_STYLE. GTK_ANCHORED is
2582           replaced by GTK_TOPLEVEL. added missing UNSET for GTK_IN_REPARENT.
2583           removed the gtk_widget_set_parent(, NULL) hack for toplevels.
2584           upon destroy free memory for widgets with GTK_WIDGET_HAS_SHAPE_MASK.
2585
2586         * gtk/gtkwidget.h: split up the widget flags into a public and a private
2587           portion. added an extra field private_flags to GtkWidget without making
2588           it bigger by using an alignment gap of 16 bit. macro cleanups.
2589
2590         * gtk/gtkwindow.c: removed GTK_ANCHORED. new function gtk_window_destroy
2591           for calling gtk_container_unregister_toplevel. removed the
2592           gtk_widget_set_parent(,NULL), call gtk_container_register_toplevel
2593           instead. remove GTK_UNMAPPED. GTK_RESIZE_NEEDED is private now.
2594
2595         * gtk/gtksignal.c (gtk_signal_disconnect): removed a bug on
2596           removal that cut off the handler list -> living_objects == 0
2597           with testgtk. made some warnings more descriptive.
2598           new function gtk_signal_connect_object_while_alive, which
2599           will automatically destroy the connection once one of the objects
2600           is destroyed. didn't include this before removal of the above
2601           mentioned bug.
2602
2603 Sat Jan 31 21:26:27 1998  Owen Taylor  <owt1@cornell.edu>
2604
2605         * gtk/gtkwidget.c: Added a new GTK_IN_REPARENT flag and revised
2606           gtk_widget_reparent so that the child would not be unrealized
2607           unnecessarily. Changed gtk_widget_unrealize () to recursively
2608           unrealize the children (since the child windows will be 
2609           destroyed too.)
2610
2611 Sat Jan 31 00:05:34 PST 1998 Manish Singh <yosh@gimp.org>
2612
2613         * gtk/gtkcombo.c: changed to use g_strcasecmp
2614         * gtk/gtkobject.c: #include <stdlib.h> for atexit
2615
2616 Sat Jan 31 00:13:33 1998  Owen Taylor  <owt1@cornell.edu>
2617
2618         * gtk/gtkstyle.c: Backed out change to close polygons
2619           since it caused problems for the Notebook.
2620
2621 Fri Jan 30 22:28:09 1998  Owen Taylor  <owt1@cornell.edu>
2622
2623         * gtk/gtkclist.{c,h}:
2624            - Conformity to new reference counting schemes
2625            - Font and color information is no-longer taken from
2626              the (possibly unitialized) style before the widget
2627              is realized, but is obtained when needed. (Fixes
2628              problems with non-default styles)
2629            - white_gc => base_gc where appropriate
2630            - Handle graphics expose events correctly (or as
2631              correctly as anywhere else) so that scrolling when
2632              overlapped works.
2633
2634 Fri Jan 30 21:32:11 1998  Owen Taylor  <owt1@cornell.edu>
2635
2636         * gtk/gtkwidget.c (gtk_widget_init): Don't replace the object
2637         flags, augment them. (Otherwise we'll clear the FLOATING flag)
2638
2639 Fri Jan 30 23:55:03 1998  Tim Janik  <timj@gimp.org>
2640
2641         * Incorporation of Marius Vollmer's reference counting revolution,
2642           plus various fixups and additions from myself.
2643
2644         * gdk/gdk.h:
2645         * gdk/gdkgc.c: new functions gdk_gc_ref/gdk_gc_unref.
2646
2647         * gdk/gdkprivate.h: cleanups on ref_count field sizes.
2648
2649         * gtk/gtkadjustment.c (gtk_adjustment_set_value): new function for
2650           emission of GtkAdjustment::value_changed signal.
2651
2652         * gtk/gtkbin.c:
2653         * gtk/gtkcolorsel.c:
2654         * gtk/gtkcurve.c:
2655         * gtk/gtkentry.c:
2656         * gtk/gtkframe.c:
2657         * gtk/gtkinputdialog.c:
2658         * gtk/gtklabel.c:
2659         * gtk/gtkpixmap.c:
2660         * gtk/gtkpreview.c:
2661         * gtk/gtkrange.c:
2662         * gtk/gtktable.c:
2663         * gtk/gtkwindow.c:
2664           replaced functionality of gtk_*_destroy by gtk_*_finalize.
2665
2666         * gtk/gtkbox.c:
2667         * gtk/gtkbutton.c:
2668         * gtk/gtkfixed.c:
2669         * gtk/gtkmenushell.c:
2670         * gtk/gtknotebook.c:
2671         * gtk/gtkpaned.c:
2672         * gtk/gtkscale.c:
2673           removed default destroy handler.
2674
2675         * in general: reference parent->window for NO_WINDOW widgets.
2676           set user data of a GdkWindow to NULL before destruction.
2677         
2678         * gtk/gtkbutton.c: use gtk_widget_unparent instead of gtk_widget_destroy
2679           in *_set_arg.
2680
2681         * gtk/gtkcontainer.c: provide other containers with a default destroy
2682           handler that will destroy all children.
2683           new function gtk_container_foreach_interp.
2684           new field resize_widgets.
2685
2686         * gtk/gtklist.c: handle destruction of children in gtk_list_destroy.
2687           replaced occourances of gtk_widget_destroy with gtk_widget_unparent.
2688           reference children that are in the selection list.
2689
2690         * gtk/gtkmain.c: reference grab widgets.
2691           (gtk_get_event_widget): check for event.window != NULL. Note: this
2692           function may return NULL now!.
2693           (gtk_propagate_event): much simplified by using proper reference
2694           counting.
2695
2696         * gtk/gtkmenu.c: introduce GTK_TOPLEVEL, and gtk_widget_set_parent(,
2697           NULL) hack.
2698
2699         * gtk/gtkmenuitem.c: gtk_widget_(un)ref the submenu.
2700
2701         * gtk/gtkmenushell.c: check for return value of gtk_get_event_widget.
2702
2703         * gtk/gtknotebook.c: proper gtk_widget_unparent()ing.
2704
2705         * gtk/gtkobject.c: new functions gtk_object_finalize,
2706           gtk_object_notify_weaks, gtk_object_debug, gtk_object_sink,
2707           gtk_object_weakref, gtk_object_weakunref. implementation of the new
2708           reference counting scheme for gtkobjects (consult gtk+/REFCOUNTING).
2709
2710         * gtk/gtkoptionmenu.c: proper reference counting for option_menu->menu.
2711
2712         * gtk/gtkscrolledwindow.c: new finalize handler for proper referencing
2713           of the subwidgets.
2714
2715         * gtk/gtksignal.c: internal representation of signal_type is now 16 bit
2716           instead of 13 bits. this is needed because of user signals.
2717           new functions gtk_signal_handler_ref and gtk_signal_handler_unref
2718           (replacement for gtk_signal_handler_destroy).
2719           gtk_signal_emit, gtk_signal_emit_by_name, gtk_signal_real_emit used
2720           to return the existence of a GtkObject. this will always be TRUE now,
2721           therefore the return value is now void.
2722
2723         * gtk/gtktooltips.h:
2724         * gtk/gtktooltips.c: GtkTooltips is now a descendant of GtkData and
2725           therefore a real GtkObject.
2726
2727         * gtk/gtktree.c: reference changes similar to thos in gtklist.c.
2728
2729         * gtk/gtktreeitem.c: reference th e pixmaps properly.
2730
2731         * gtk/gtktypeutils.h:
2732         * gtk/gtktypeutils.c: new function gtk_arg_copy() to conform to
2733           the requirements of gtk_object_get().
2734
2735         * gtk/gtkviewport.c: finalize handler for proper referencing of the
2736           adjustments.
2737
2738         * gtk/gtkwidget.c: substituted VISIBILITY_NOTIFY_EVENT by NO_EXPOSE_EVENT.
2739           added finalize handler. added gtk_widget_ref/gtk_widget_unref.
2740           new functions gtk_widget_idle_draw and gtk_widget_idle_sizer, that
2741           will handle all widgets that are currently in either queue.
2742           referencing all over the place. changes because gtk_signal_emit
2743           returns void now. moved queue removal into the destroy handler.
2744           gtk_widget_real_unrealize propagates now down the tree. new flag
2745           GTK_TOPLEVEL. new function gtk_widget_destroyed for connection to the
2746           destroy signal of a widget. this function nullifies the widgets
2747           structure pointer, look at gtkmain.c for an example on this.
2748
2749         * gtk/gtkwindow.c: new functions gtk_window_activate_focus,
2750           gtk_window_activate_default. for activation of the appropriate
2751           children. changes to the resizing code because there is a new
2752           field resize_widgets in GtkContainer now.
2753
2754         * gtk/testgtk.c: some changes because of all the above ;)
2755
2756 Fri Jan 30 17:41:06 1998  George Lebl  <jirka@5z.com>
2757
2758         * gtk/gtktable.c: fixed round-off error in calculation
2759           of tabels with a lot of cells
2760
2761 Fri Jan 30 08:51:16 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
2762
2763         * gdk/gdkcc.c (gdk_color_context_get_pixel): red/green/blue
2764         parameters are now expected to be in [0, 65535], to be consistent
2765         with the rest of Gdk.
2766         (gdk_color_context_get_pixels): Made it use 16-bit color values as
2767         well.  Fixed mdist=1000000 buglet (it should start with at least
2768         0x1000000).
2769         (gdk_color_context_get_pixels_incremental): Same as
2770         gdk_color_context_get_pixels().
2771
2772 Thu Jan 29 22:57:39 1998  Owen Taylor  <owt1@cornell.edu>
2773
2774         * gtk/gtkstyle.c (gtk_default_draw_polygon): Close
2775           the polygon if it isn't already. (To match gtk_draw_polygon)
2776           Simplified logic. (Appearance could probably be
2777           improved for objects with gradual curves by adding in
2778           some intermediate edge coloration)
2779
2780 Thu Jan 29 21:36:14 1998  Tim Janik  <timj@gimp.org>
2781
2782         * gtk/gtksignal.c (gtk_signal_query): new function to gather
2783           information about a certain signal.
2784
2785         * gtk/gtksignal.c (gtk_signal_newv): new function similar to
2786           gtk_signal_new().
2787
2788         * gtk/gtksignal.c (gtk_signal_real_emit): check for function_offset
2789           == 0.
2790
2791         * gtk/gtksignal.c (gtk_signal_connect_by_type): perform a signal
2792           id lookup on the parent as well.
2793
2794         * gtk/gtkobject.c (gtk_object_class_add_user_signal): new
2795           function for implementation of user defined signals.
2796         * gtk/gtkobject.c (gtk_object_class_add_signals): free old
2797           signal id array.
2798
2799         * gtk/gtkobject.h: this holds the typedefs for GtkSignalFunc and
2800           GtkSignalMarshaller now, because they are used for
2801           gtk_object_class_add_user_signal.
2802
2803         * gtk/gtktypeutils.c (gtk_type_class_init): reset object_class->signals
2804           and object_class->nsignals for new object classes.
2805
2806 Tue Jan 27 15:52:48 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
2807
2808         * gtk/gtkhandlebox.c (gtk_handle_box_realize): The auto_shrink
2809         policy of the floating window is now set to TRUE.  This fixes the
2810         problem of the floating window being too big when the handlebox
2811         child is small.
2812         (gtk_handle_box_motion): Now we use GDK_POINTER_MOTION_HINT_MASK
2813         to improve movement.
2814
2815 Tue Jan 27 14:15:50 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2816
2817         * docs/gtkfaq.sgml: more additions/changes Tony Gale.
2818
2819 Mon Jan 26 17:12:12 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2820
2821         * docs/gtkfaq.sgml: additions/changes from new FAQ maintainers
2822           Nathan Froyd and Tony Gale.
2823
2824 Mon Jan 26 16:54:02 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2825
2826         * docs/gtk.texi: additions/changes from Gregory A. McLean
2827
2828 Mon Jan 26 02:15:29 1998  Tim Janik  <timj@gimp.org>
2829
2830         * gdk/gdkdraw.c:
2831         * gdk/gdkgc.c:
2832         * gdk/gdkimage.c:
2833         * gdk/gdkinput.c:
2834         * gdk/gdkpixmap.c:
2835         * gdk/gdkproperty.c:
2836         * gdk/gdkselection.c:
2837         * gdk/gdkwindow.c: added a bunch of checks for window != NULL and
2838           private->destroyed.
2839
2840 Sun Jan 25 19:15:32 1998  Tim Janik  <timj@gimp.org>
2841
2842         * gtk/gtkwidget.h (enum): added new widget flag GTK_LEAVE_PENDING.
2843         * gtk/gtkmain.c (gtk_main_iteration_do): if a widget has
2844           GTK_LEAVE_PENDING set, send it its LEAVE_NOTIFY event, regardless
2845           of a grab or sensitivity.
2846           changed the compression code for enter/leave notify events to
2847           free *both* compressed event, and removed an unneccessary call
2848           to g_list_remove.
2849
2850         * ChangeLog: finally catched up with the recent changes on my part.
2851
2852         * gtk/gtkobject.h: new element n_args in GtkObjectClass.
2853         * gtk/gtkobject.c (gtk_object_query_args): this function now returns
2854           the arguments in the correct order.
2855
2856         * gtk/gtkbox.c:
2857         * gtk/gtkbutton.c:
2858         * gtk/gtkcontainer.c:
2859         * gtk/gtkframe.c:
2860         * gtk/gtklabel.c:
2861         * gtk/gtkobject.c:
2862         * gtk/gtkwidget.c:
2863         * gtk/gtkwindow.c: various fixes and additions to the gtk_*_set_arg
2864           and gtk_*_get_arg() functions.
2865
2866         * gdk/gdk.h:
2867         * gdk/gdk.c (gdk_pointer_is_grabbed): new function.
2868
2869         * gtk/gtkmain.h:
2870         * gtk/gtkmain.c: implementations of gtk_invoke_key_snoopers(),
2871           gtk_key_snooper_install() and gtk_key_snooper_remove(). this
2872           mechanism allowes applications to track global hot keys that need
2873           to bypass accelerator tables and else key processing stuff.
2874
2875 Thu Jan 22 18:58:44 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
2876
2877         * gdk/gdkcc.c: Switched the file to GNU indentation, for consistency.
2878
2879         * gdk/gdktypes.h (struct _GdkColorContext): Picky, picky... fix
2880         two lines with wrong indentation :-)
2881
2882 Thu Jan 22 02:32:06 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
2883
2884         * gtk/Makefile.am: Fixed the call to runelisp to use $(SHELL).
2885           (Cannot rely on the script having execute permissions.)
2886
2887 Wed Jan 21 17:29:54 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2888
2889         * Released 0.99.3
2890
2891 Wed Jan 21 01:32:21 1998  Tim Janik  <timj@psynet.net>
2892
2893         * gtk/gtkwidget.h:
2894         * gtk/gtkwidget.c: changed the state_changed signal to take an
2895           extra argument `old_state'.
2896           removed `gtk_widget_restore_state'.
2897           changed `gtk_widget_set_state' and `gtk_widget_set_sensitive' to use
2898           only one function `gtk_widget_propagate_state' to iterate down the
2899           tree. this causes GtkWidget::state_changed to be invoked on state
2900           changes and on sensitivity changes. some comment cleanups.
2901
2902 Tue Jan 20 16:38:52 1998  Owen Taylor  <owt1@cornell.edu>
2903         * gtk/gtkcombobox.{c,h}: removed
2904           gtk/gtkcombo.{c,h}: added [Paolo Molaro's version]
2905           gtk/testgtk.c: changed to use new version
2906           gtk/Makefile.am gtk/gtk.h
2907         
2908 Mon Jan 19 20:10:19 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2909
2910         * gdk/gdk.h Fixed typo where strdup was used instead of g_strdup
2911           (found by Frank Neumann)
2912
2913 Mon Jan 19 16:21:00 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
2914
2915         * gtk/gtktoolbar.c (gtk_toolbar_class_init): Set
2916         container_class->focus to NULL.  Widgets in the toolbar should not
2917         get the focus via the normal key bindings (no toolkit does this,
2918         and it makes sense).
2919
2920         * gtk/testgtk.c (create_toolbar): Removed the GTK_PIXMAP casts to
2921         match Eckehard's new prototypes.
2922
2923         * gtk/gtktoolbar.h: Switched the order of the tooltip_text and
2924         widget parameters to the gtk_toolbar_*_widget() functions, to be
2925         friendlier to the C++ bindings.  This is per request of Guillaume
2926         Laurent.
2927
2928 Mon Jan 19 09:16:38 1998  Tim Janik  <timj@psynet.net>
2929
2930         * gtk/gtkmain.c (gtk_grab_add) (gtk_grab_remove): this is a stack
2931           of grabbing widgets now, having unique entries. the GTK_HAS_GRAB
2932           flag of a widget is set while it is on the stack (wasn't
2933           implemented before).
2934
2935 Mon Jan 19 00:46:18 1998 MET  Eckehard Berns  <eb@berns.prima.de>
2936
2937         * gtk/gtktoolbar.[ch]: changed
2938           gtk_toolbar_{append,prepend,inser]_item to accept any GtkWidget
2939           as icon to allow more flexibility
2940
2941 Sun Jan 18 16:54:55 CST 1998 Shawn T. Amundson <amundson@gimp.org>
2942         * gtk/gtkstatusbar.[ch] added new widget, the statusbar
2943
2944 Sun Jan 18 09:57:00 1998  Owen Taylor  <owt1@cornell.edu>
2945
2946         * gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkdrawingarea.c
2947           gtk/gtkentry.c gtk/gtkeventbox.c gtk/gtkfixed.c
2948           gtk/gtkhandlebox.c gtk/gtkhscale.c gtk/gtkhscrollbar.c
2949           gtk/gtkitem.c gtk/gtklist.c gtk/gtkmenushell.c gtk/gtkmisc.c
2950           gtk/gtknotebook.c gtk/gtkpaned.c gtk/gtkpreview.c
2951           gtk/gtkprogressbar.c gtk/gtkruler.c gtk/gtktext.c gtk/gtktree.c
2952           gtk/gtkviewport.c gtk/gtkvscale.c gtk/gtkvscrollbar.c
2953           gtk/gtkwidget.{c,h}
2954
2955         Added gtk_widget_set_parent_window() and 
2956         gtk_widget_get_parent_window(). All widgets should use:
2957         
2958            gtk_widget_get_parent_window() instead of widget->parent->window.
2959         
2960         Any widget that wants to have children not in the parent window,
2961         should use gtk_widget_set_parent() in their realize() and
2962         add() routines. 
2963
2964         CList and Viewport widgets changed to do this. (Viewport
2965         widget using code from gtk-fortier-980117-0.patch.)
2966
2967 Sat Jan 17 23:56:02 1998  Owen Taylor  <owt1@cornell.edu>
2968
2969         * gtk/gtkobject.c:
2970            renamed g_string_equal => g_str_equal
2971            renamed g_string_hash => g_str_hash
2972
2973 Sun Jan 18 03:57:52 1998  Tim Janik  <timj@psynet.net>
2974
2975         * gtk/gtkframe.c: gtk_*_get_arg() and gtk_*_set_arg() implementations.
2976         * gtk/gtkobject.c: new arg `GtkObject::object_signal' similar to
2977           `GtkObject::signal'. check for class type in gtk_object_{setv|getv}.
2978
2979         * gtk/gtkobject.c:
2980         * gtk/gtksignal.c:
2981         * gtk/gtktypeutils.h:
2982         * gtk/gtktypeutils.c: added GTK_TYPE_DOUBLE.
2983
2984         * gtk/gtkwidget.c: new args `has_focus' and `has_default'.
2985         * gtk/gtkwindow.c: new arg `window_position'.
2986
2987         * gtk/gtkbox.h:
2988         * gtk/gtkbox.c: new functions gtk_box_reorder_child,
2989         gtk_box_query_child_packing and gtk_box_set_child_packing to
2990         allow modification of the child linkage after the widget tree
2991         is setup.
2992
2993         * gtk/gtkbox.c:
2994         * gtk/gtklabel.c:
2995         * gtk/gtkwindow.c:
2996         * gtk/gtkwidget.c:
2997         * gtk/gtkobject.c: gtk_*_get_arg() and gtk_*_set_arg() fixes
2998           and implementations.
2999         
3000 Sat Jan 17 18:06:35 1998  Owen Taylor  <owt1@cornell.edu>
3001         * gdk/gdk.c (gdk_events_pending): Take putback events into
3002           account
3003
3004         * gdk/gdk.c (gdk_event_free): Handle dropdataavaible memory
3005           allocation correctly. (Incompatible change: client must
3006           _not_ fre event->data and event->data_type.)
3007
3008         * gdk/gdk.c (gdk_event_translate): Changed DND dragging
3009           so that we don't ungrab pointer when we reenter window
3010           to prevent extra Enter/Leave effects which had bad
3011           effects.
3012           Changed drag zone handling to not send uncessary
3013           DragEnter events.
3014           Fixed EnterNotify/LeaveNotify handling. (Only pay
3015           attention to events on window, don't specify these
3016           events to XGrabPointer - that isn't valid, and handle
3017           reverse the sense of the handling of LeaveNotify.)
3018
3019         * gdk/gdkwindow.c (gdk_window_remove_filter): Free removed
3020           filter.
3021
3022         * gtk/gtk.defs (GdkFont): gdk_font_free => gdk_font_unref
3023
3024         * gtk/gtkmain.{c,h} (gtk_events_pending): new function - apps
3025           should use this instead of gdk_events_pending.
3026
3027         * gtk/gtkvbbox.h: Fixed a duplication in the headers.
3028
3029         * gtk/testgtk.c (dnd_drop): Don't free the drop data,
3030           it belongs to the event.
3031
3032 Sat Jan 17 13:26:15 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3033
3034         * gtk/gtkentry.[ch]:  Applied patch from <lupus@lettere.unipd.it> 
3035           which adds gtk_entry_set_max_length function.  This was 
3036           part of gtk-lupus-970112-0.
3037
3038         * gtk/testgtk.c: Applied gtk-wille-980113-0 which fixes 
3039           a problem with a shaped widget keeping grab forever
3040           when double clicked.
3041      
3042         * docs/gtk.texi: patch from Gregory McLean <gregm@randomc.com>
3043           to add some on aspect_frame, button_box, and color_selection
3044           widgets
3045
3046 Sat Jan 17 06:24:05 1998  Tim Janik  <timj@psynet.net>
3047
3048         * gtk/gtktypeutils.h (gtk_type_get_arg): new function.
3049         * gtk/gtkobject.h (gtk_object_query_args): new function.
3050         * gtk/gtkobject.h (gtk_object_getv): new function.
3051         * gtk/gtkwidget.h (gtk_widget_get): new function.
3052
3053 Fri Jan 16 00:36:31 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3054
3055         * gtk/gtkhandlebox.c: Now we use a GtkWindow of type
3056         GTK_WINDOW_DIALOG as a destination for reparenting the child of
3057         the handle box.  This solves the problem of having X calls in
3058         Gtk.  It also makes the handle box work with KWM, OLVWM, 4Dwm (so
3059         I expect mwm to work as well).  I hadn't noticed that previously
3060         it only worked with fvwm and twm.
3061
3062         * gtk/gtkhandlebox.h (struct _GtkHandleBox): Removed the
3063         real_parent field, as it is never used.
3064         (struct _GtkHandleBox): Added a float_window field.  This is a
3065         GtkWindow to where the child is now reparented.
3066
3067         * gtk/gtkhandlebox.c: Lots of changes all over the place.  Now the
3068         widget has two windows.  The steady_window stays put in the parent
3069         container, and the widget->window is the one that gets
3070         reparented.  Now that window is transient, in compliance with the
3071         ICCCM, instead of an OverrideRedirect window.
3072
3073         We have two windows so that we can properly receive Expose events
3074         for the thin 3D line that marks the place where the handlebox is
3075         docked.
3076
3077         * gtk/gtkhandlebox.h (struct _GtkHandleBox): Added fields for
3078         dragging (mouse position information).  Added fleur_cursor so that
3079         we look pretty.  Added steady_window field; it is the window that
3080         actually stays on the parent (widget->window is the one that gets
3081         reparented).
3082
3083 Thu Jan 15 19:03:19 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3084
3085         * gtk/gtkclist.c (gtk_clist_set_column_width): Call
3086         gtk_clist_size_allocate_columns every time the column
3087         configuration changes. 
3088
3089 Fri Jan 16 01:55:17 1998  Tim Janik  <timj@psynet.net>
3090
3091         * improved the gtk_widget_set handling. removed GtkArgFunc and added
3092           GtkArgSetFunc and GtkArgGetFunc in _GtkTypeInfo.
3093           performance consuming strcmp() calls are avoided in gtk_*_set_arg()
3094           now, it is passed an arg_id on which it can switch() now.
3095
3096         * gtk/gtkobject.h:
3097         * gtk/gtkobject.c (gtk_object_add_arg_type): added parameter arg_id.
3098
3099         * gtk/gtktypeutils.h:
3100         * gtk/gtktypeutils.c (gtk_type_set_arg): added parameter arg_id.
3101
3102         * gtk/gtkobject.c: bug fixes and changes in the assertion system for
3103           arg handling. changed g_print() warning calls to real g_warning()s.
3104           
3105         * changed all *_get_type() functions to initialize GtkTypeInfo
3106           correctly with GtkArgSetFunc and GtkArgGetFunc fields.
3107
3108 Thu Jan 15 00:44:27 PST 1998 Jay Painter <jpaint@serv.net>
3109         * gtk/gtkentry.[ch]: Change window cursor to "I"
3110         * gtk/gtkpane.[ch]: Cleared up a tiny memory leak from not destroying the
3111         cursor
3112
3113 Tue Jan 13 07:30:02 PST 1998 Jay Painter <jpaint@serv.net>
3114         * gtk/gtkclist.c: minor updates
3115         * gtk/gtktext.c: you can type in it!  It should also seg-fault *MUCH* less now,
3116         because editing was never really turned off.  
3117         * gtk/testgtk.c: changed the gtktext test a little
3118         * gtk/testgtkrc: removed pixmap background for now, since I intend to break
3119         that for a while
3120
3121 1998-01-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
3122
3123         * gtk/gtktoolbar.c: (gtk_real_toolbar_style_changed): Fixed
3124         child->icon and child->label == NULL bugs.
3125
3126         * gtk/gtktoolbar.h: Added some new functions:
3127                 gtk_toolbar_append_widget()
3128                 gtk_toolbar_prepend_widget()
3129                 gtk_toolbar_insert_widget()
3130         These let the user insert any kind of widget in the toolbar.  Also
3131         changed the gtk_toolbar_*_item() functions to return a
3132         GtkWidget * so that the user can do things with the toolbar buttons.
3133
3134         * gtk/gtktoolbar.c: Now the toolbar supports its own buttons and
3135         arbitrary widgets as well.  Geometry management has been changed
3136         accordingly.  Added gtk_toolbar_remove() function, so container
3137         functionality should be complete now.
3138
3139         * gtk/testgtk.c (create_toolbar): Added an entry widget to test
3140         the new toolbar.
3141
3142         * Most of these changes are adapted from the
3143         gtk-lupus-970112-0-patch (should be 970112... :-)
3144
3145 Sat Jan  9 20:52:00 PST 1998 Ian Main <imain@gimp.org>
3146         * gtk/gtkfilesel.c:  Changed a few tests in the path correcting
3147                 function.  Hopefully this helps the filesel stability.
3148
3149 Fri Jan  8 00:55:00 PST 1998 Jay Painter <jpaint@serv.net>
3150         * gtk/gtkclist.c:
3151         * gtk/gtkclist.h: modifications to GtkCList so it's look and 
3152         feel is the same as scrolled windows.
3153
3154 Thu Jan  8 17:56:09 PST 1998 Manish Singh <yosh@gimp.org>
3155
3156         * glib/gscanner.c
3157         * gtk/gtclist.c
3158         * config.h.in
3159         * configure.in: added test for inline and put the inline keywords
3160         back in
3161
3162         * gtk/gtklabel.c: made the prototypes match the definitions
3163
3164         * gtk/fnmatch.c: minor change to make sure the right config.h
3165         gets included
3166         
3167 1998-01-07  Elliot Lee  <sopwith@localhost.cs.cuc.edu>
3168
3169         * gtk/gtkcombobox.c gtk/gtkcombobox.h: New widget, GtkComboBox
3170         * gdk/gdkwindow.c: Make gdk_window_init set the width &
3171                 height of gdk_root_parent
3172
3173 Wed Jan  7 18:06:17 PST 1998 Manish Singh <yosh@gimp.org>
3174
3175         * gtk/gtkentry.c:
3176         * gtk/gtkentry.h: applied patch to use a backing pixmap for
3177         drawing, which removes the bad flickering. (gtk-wille-980106-0)
3178
3179 Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
3180
3181         * glib/glib.h
3182         * glib/glist.c
3183         * glib/gslist.c
3184         * glib/testglib.c: Added g_[s]list_insert_sorted function
3185         and appropriate tests in testglib
3186
3187 Tue Jan  6 17:09:46 1998  Owen Taylor  <owt1@cornell.edu>
3188         * gtk/gtknotebook.h gtk/gtknotebook.c
3189            Added "switch_page" signal. (gtk-hamann_jeske-971212-0.patch)
3190
3191 Tue Jan  6 17:07:29 1998  Owen Taylor  <owt1@cornell.edu>
3192         * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c : 
3193            Fixed problem with deleting while text is selected.
3194            Changed behavior so that motion keys remove selection.
3195            Added new gtk_entry_select_region () call.
3196
3197 Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
3198         * glib/glib.h: Changed guint32 -> guint for bitfields. 
3199           (Bitfields must be int or unsigned int?)
3200
3201 Sat Jan  3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
3202         * gtk/testgtk.c: better CList test
3203
3204 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3205         * GTK+ 0.99.2 Released
3206
3207 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3208
3209         * gtk/gtkscrolledwindow.c: initialize scrollbar_spacing
3210           (gtk-fortier-980103-0)
3211
3212 Sat Jan  3 10:15:08 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
3213
3214         * configure.in: fixed a typo (no_xext_lib, not no_ext_lib).
3215
3216 Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
3217
3218         * gtk/gtkentry.c:
3219         * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
3220         fixed-length entry fields (gtk_entry_new_with_max_length)
3221         
3222 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
3223         * reverted glibconfig.h and glib.h files back to the
3224         way they were before my ugly hack
3225         * gtk/gtkclist.c:
3226         * glib/gscanner.c: removed inlines from clist and gscanner
3227
3228 Fri Jan  2 23:55:24 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3229
3230         * Several portability fixes from Michael Callahan 
3231           <callahan@xmission.com> including adding in missing
3232           #includes and adding void in function prototypes.
3233
3234 Fri Jan  2 19:28:52 1988 Jay Painter <jpaint@serv.net>
3235         * gtk/gtkclist.h:
3236         * gtk/gtkclist.c:
3237         * gtk/gtk.h:
3238         * gtk/testgtk.c:
3239         * gtk/testgtkrc: added GtkCList, column list widget, and a small test
3240         to testgtk
3241
3242 Fri Jan  2 15:42:51 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3243
3244         * gtk/gtkmain.c (gtk_main_iteration): Make the big switch handle
3245         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.
3246
3247 Fri Jan  2 12:07:33 CST 1998 Shawn T. Amundson <amundson@gimp.org>
3248
3249         * gtk/gtkviewport.c: corrects a small resize bug in the 
3250           viewport widget.  The viewport widget provides a _set_shadow 
3251           function to draw its shadows. But if GTK_SHADOW_NONE is sent 
3252           to this function, the viewport isn't resized correctly (it's 
3253           still considered as a shadowed widget).  (gtk-fortier-971213-0)
3254
3255         * gtk/gtknotebook.c: this patch fixes the redraw problems of 
3256           notebook tabs, without using gdk_gc_set_clip_rectangle.
3257           (gtk-hamann_jeske-971218-0)
3258  
3259         * add gtk_widget_(show/hide)_all (Stefan Wille)
3260           (gtk-wille-301297-0)  Patch for testgtk not included
3261           because it did not patch clean.  
3262
3263 Thu Jan  1 21:21:56 PST 1998 Manish Singh <yosh@gimp.org>
3264
3265         * configure.in: fixed up the xinput test
3266         * Miscellaneous portability fixes.
3267
3268 Mon Dec 29 22:05:45 1997  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3269
3270         * gdk/gdkgc.c (gdk_gc_copy): New function, used to copy the values
3271         from one gc to another gc.
3272
3273 Sat Dec 27 20:39:99 1997  Elliot Lee <sopwith@redhat.com>
3274         * gtk/gtkhandlebox.c: It mostly works now, please test it and make
3275         fixes as needed.
3276
3277 Fri Dec 26 11:20:03 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
3278
3279         * gtk/Makefile.am (gtkinclude_HEADERS): added gtkhandlebox.c
3280
3281         * gtk/gtkhandlebox.c (gtk_handle_box_reparent): eliminated a
3282         compiler warning caused by not casting an argument in a debugging
3283         message. :)
3284
3285 Fri Dec 26 02:59:39 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3286
3287         * gdk/gdktypes.h gdk/gdk.c gdk/gdkwindow.c: Added new
3288         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.  They are needed
3289         for Alan Cox's TV widget and for GtkXmHTML.  Only missing with
3290         respect to their Xlib counterparts are the major_code and
3291         minor_code fields from the GdkEventNoExpose structure.  Does
3292         anyone need them?
3293
3294 Tue Dec 23 03:03:17 1997  Tim Janik  <timj@psynet.net>
3295
3296         * gtk/gtkscrolledwindow.c (SCROLLBAR_SPACING): this macro computes
3297         the spacing from klass->scrollbar_spacing now. adapted all functions
3298         that used this macro (based on a patch from Patrice Fortier).
3299         * gtk/gtkscrolledwindow.h (struct _GtkScrolledWindowClass): added
3300         scrollbar_spacing to substitute a define (patch from Patrice Fortier).
3301
3302         * gtk/gtkrc.h (gtk_rc_parse_string): new function.
3303         * gtk/gtkrc.c: many functions adapted to use GScanner for scanning.
3304         (gtk_rc_parse): use gtk_rc_parse_any for parsing.
3305         (gtk_rc_parse_string): new function to support parsing from
3306         strings, just calls gtk_rc_parse_any.
3307         (gtk_rc_parse_any): new function using GScanner as lexer.
3308
3309 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
3310
3311         * GDK support for 1 bpp depth screens.
3312
3313 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
3314
3315         * Changes from Bolliet Jerome <bolliet@in2p3.fr> to gtktree.
3316           Corrects a bug in gtk_tree_remove_items and gtk_tree_item_destroy.
3317           Adds the possibility to connect all items by lines. This is the 
3318           default now.  You can overide this with the function 
3319           gtk_tree_set_view_line which take a tree and a boolean.
3320
3321 Thu Dec 18 23:26:49 CST 1997 Shawn T. Amundson <amundson@gimp.org>
3322
3323         * removed configure, Makefile.in, and aclocal.m4 files
3324
3325 Wed Dec 17 23:36:57 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
3326
3327         * gdk/gdkcc.c (gdk_color_context_free): Caught a stray
3328         gdk_colormap_destroy that Owen missed (and Shawn found).
3329
3330 Wed Dec 17 20:59:52 1997  Owen Taylor  <owt1@cornell.edu>
3331         * gdk/gdkinput.c gdk/gdkinput.h gdk/gdkinputcommon.h
3332           gdk/gdkinputxfree.h gdk/gdkinputgxi.h gdk/gdkinputnone.h.
3333           gtk/gtkinputdialog.h gtk/testinput.c
3334         Added support for device keys mapping to key events.
3335         Fixed various bugs.
3336
3337 Wed Dec 17 20:53:00 1997  Owen Taylor  <owt1@cornell.edu>
3338         * gdk/gdk.c gdk/gdk.h: Changed gdk_get_event to remove
3339         predicate filtering, and to allocate the events.
3340         Added gdk_event_get_graphics_expose for scroll handling.
3341         * gtk/gtkmain.c gtk/gtktext.c:
3342         Use above changes. Interface change for gtk_get_current_event.
3343         * testgtk.c
3344         Added another test to test new scrolling mechanism.s
3345         * gdk/gdk.c gdk/gdk.h gdk/gdkwindow.c gdk/gdkprivate.h: 
3346         Added beginnings of event filtering. Removed obsolte
3347         OtherEvent mechanism.
3348         * gdk/gdk.c: Combined FocusIn/FocusOut events. Now ignore
3349         focus events which aren't for window itself. (Only pay
3350         attention to NotifyAncestor/Inferior/Nonlinear)
3351         * gtk/gtkwindow.c gtk/gtkwindow.h: Virtualize set_focus 
3352         function so it can be overridden.
3353         * gtk/gtkwidget.c: Reparenting should now work for
3354         containers. (Guillaume Laurent <glaurent@worldnet.fr>)
3355         * gdk/gdkgc.c: By default, GraphicsExpose events are now
3356         _not_ generated.
3357         * gtk/testselection.c: Suppress a warning, fix a bug?
3358
3359 Wed Dec 17 20:47:42 1997  Owen Taylor  <owt1@cornell.edu>
3360         * configure.in, glib/configure.in: 
3361         Remember if user set CFLAGS, so we can set it for --enable-debug
3362           only if they didn't. 
3363         Added missing quotes. )Raphael.Quinet@eed.ericsson.se)
3364         Only use -DX_LOCALE if setlocale doesn't work.
3365         * gdk/gdki18n.h: Simplified system for trying to get iswalnum() -
3366         include <wctype.h> if present, otherwise <wchar.h> if present.
3367         
3368 Wed Dec 17 21:09:12 1997  Owen Taylor  <owt1@cornell.edu>
3369   1997-10-13  Marius Vollmer  <mvo@zagadka.ping.de>
3370
3371     Bug fixes:
3372         
3373         * gtksignal.c (gtk_params_get): Initialize the GtkArg even when
3374         the return type is GTK_TYPE_NONE.
3375
3376     Revamped reference counting, see the file REFCOUNTING.
3377
3378         * Makefile.am (EXTRA_DIST): Added REFCOUNTING.
3379         * REFCOUNTING: New file.
3380
3381         * gdk/gdk.c (received_destroy_notify, window_to_destroy): Removed.
3382         (gdk_event_get): Code that deals with the above removed.
3383         (gdk_event_translate): Abort when the GdkWindow for the XEvent
3384         cannot be found.  For DestroyNotify: Do not use
3385         receive_destroy_notify and window_to_destroy but call
3386         gdk_window_destroy_notify.
3387
3388         * gdk/gdk.h: (gdk_pixmap_destroy, gdk_colormap_destroy,
3389         gdk_fontset_free): Removed.
3390         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
3391         gdk_bitmap_unref): New prototypes.
3392         (gdk_font_free, gdk_font_unref): Renamed gdk_font_free to
3393         gdk_font_unref.
3394
3395         * gdk/gdkcolor.c (gdk_colormap_real_destroy): Made static.
3396         (gdk_colormap_destroy): Removed.
3397
3398         * gdk/gdkfont.c (gdk_font_free): Renamed to gdk_font_unref.
3399         Handle fontsets as well.
3400         (gdk_fontset_free): Removed.
3401
3402         * gdk/gdkpixmap.c (gdk_pixmap_destroy): Removed.
3403         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
3404         gdk_bitmap_ref): New functions.
3405
3406         * gdk/gdkwindow.c: (gdk_window_new, gdk_window_foreign_new): Call
3407         gdk_window_ref for the pointer in the xid table.
3408         (gdk_window_internal_destroy): Renamed from gdk_window_destroy.
3409         New parameter XDESTROY that takes the role of `destroyed==2';
3410         removed special casing of `destroyed==2'.  Free dnd_data only when
3411         really destroying.  Do not touch the ref_count.  Calling
3412         gdk_window_destroy on a Pixmap is now a real error, not just a
3413         warning.
3414         (gdk_window_destroy): Just call gdk_window_internal_destroy and
3415         gdk_window_unref, as advertised in REFCOUNTING.
3416         (gdk_window_destroy_notify): New function.
3417         (gdk_window_unref): Print a warning when the ref_count is zero and
3418         the window has not been destroyed.  Should never happen.  Do not
3419         destroy the window, just free the memory.
3420         
3421         * gdk/gdkprivate.h (gdk_window_real_destroy): Removed.
3422
3423         * gtk/gtkaccelerator.c (gtk_accelerator_table_destroy): Removed.
3424         (gtk_accelerator_table_unref): Do the job of
3425         gtk_accelerator_table_destroy directly.
3426         (gtk_accelerator_table_init): Init ref_count with 1.
3427
3428         * gtk/gtkaccelerator.h (gtk_accelerator_table_destroy): Removed.
3429
3430         * gtk/gtkcurve.c, gtk/gtkgamma.c: Replaced gdk_pixmap_destroy with
3431         gdk_pixmap_unref.
3432
3433         * gtk/gtkhscrollbar.c (gtk_hscrollbar_realize): Reflect the fact
3434         that the widget->window is used as the range->trough in the
3435         ref_count.
3436         * gtk/gtkvscrollbar.c (gtk_vscrollbar_realize): Likewise.
3437
3438         * gtk/gtkmain.c (gtk_main_iteration): Protect event_widget with
3439         ref/unref while handling the GDK_DELETE and GDK_DESTROY events.
3440
3441         * gtk/gtkmenu.c (gtk_menu_set_accelerator_table): Don't do
3442         anything when the new accel_table is the old one.
3443
3444         * gtk/gtkmenufactory.c (gtk_menu_factory_destroy): Unref
3445         factory->table if there is one.
3446         (gtk_menu_factory_create, gtk_menu_factory_create_widget): Don't
3447         ref newly created accel_table, it is now created with a ref_count
3448         of 1.
3449
3450         * gtk/gtkmenuitem.c (gtk_menu_item_set_submenu):  Don't do
3451         anything when the new submenu is the old one.
3452
3453         * gtk/gtkpixmap.c (gtk_pixmap_destroy): New static function.
3454         (parent_class): New global variable.
3455         (gtk_pixmap_init): Set object_class->destroy.
3456         (gtk_pixmap_set): Don't do anything about the pixmap when the new
3457         pixmap is the old one.  Likewise for the mask.
3458
3459         * gtk/gtkprogressbar.c, gtk/gtkruler.c: Replaced
3460         gdk_pixmap_destroy with gdk_pixmap_unref.
3461
3462         * gtk/gtkrange.c (gtk_range_set_adjustment):  Don't do
3463         anything when the new adjustment is the old one.
3464
3465         * gtk/gtkrc.c: Replaced gdk_fontset_free/gdk_font_free with
3466         gdk_font_unref.
3467
3468         * gtk/gtkstyle.c (gtk_style_new): Initialize ref_count with 1.
3469         (gtk_styles_init): Replace gtk_style_destroy with gtk_style_unref
3470         for the cache.
3471         (gtk_style_new_from_key): Ref style before returning it when it
3472         has not been newly created.
3473         (gtk_style_destroy): Don't look at the ref_count, destroy always.
3474         Free style-font with gdk_font_unref, regardless of font->type.
3475
3476         * gtk/gtktooltips.c (gtk_tooltips_real_destroy): Renamed from
3477         gtk_tooltips_destroy and made static.  Don't look at ref_count,
3478         destroy always.
3479         (gtk_tooltips_new): Initialize ref_count with 1.
3480         (gtk_tooltips_unref): Don't look at pending_destroy, destroy
3481         always when ref_count is 0.
3482         (gtk_tooltios_widget_remove): Use gtk_tooltips_destroy_data
3483         instead of hand-coded destruction.
3484
3485         * gtk/gtktooltips.h (GtkTooltips::pending_destroy): Removed.
3486         (gtk_tooltips_destroy): Removed.
3487
3488         * gtk/gtkviewport.c (gtk_viewport_set_hadjustment,
3489         gtk_viewport_set_vadjustment): Don't do anything when the new
3490         adjustment is the old one.
3491
3492         * gtk/gtkwidget.c (gtk_widget_reparent): Protect the reparented
3493         widget with ref/unref while moving it.
3494         (gtk_widget_set_default_colormap): Replace gdk_colormap_destroy
3495         with the proper ref/unref spell.
3496         (gtk_widget_set_default_style): Don't do anything when the new
3497         style is the old one.
3498
3499         * gtk/testinput.c (configure_event): Replaced gdk_pixmap_destroy
3500         with gdk_pixmap_unref.
3501         
3502     More Interpreter support:
3503
3504         * gdk/gdktypes.h (GdkDestroyNotify): New type.
3505         
3506         * gdk/gdk.c (struct _GdkInput::destroy): New field.
3507         (gdk_input_add_interp): New version of gdk_input_add that follows
3508         the interp conventions for callbacks.
3509         (gdk_input_add): Implement in terms of gdk_input_add_interp.
3510         (gdk_input_remove): Call destroy notify when appropriate.
3511
3512         * gdk/gdk.h (gdk_input_add_interp): New prototype.
3513
3514         * gtk.defs: Updated from guile-gtk.
3515         * gtk/gtktypebuiltins.c, gtk/gtktypebuiltins.h: Regenerated.
3516         
3517         * gtk/gtkmain.c (GtkInputFunction, struct _GtkInputFunction): New
3518         types.
3519         (gtk_invoke_input_function, gtk_destroy_input_function,
3520         gtk_input_add_interp, gtk_input_remove): New functions.
3521
3522 Wed Dec 17 12:00:48 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3523
3524         * gdk/gdkcc.c: New GdkColorContext functionality!  This should
3525         eventually solve all of our color management problems.  Gdk still
3526         needs to be modified to support visuals with less than 8 bpp.  Gtk
3527         needs to be modified just a bit.
3528
3529 Wed Dec 17 13:56:17 PST 1997 Manish Singh <yosh@gimp.org>
3530
3531         * a small patch by Lauri Alanko that allows Gimp to pass
3532         on --display to it's plugins.
3533
3534 Sun Dec 14 00:08:00 PST 1997 Raph Levien <raph@acm.org>
3535         * a minor patch to make the file selection dialog not always
3536         select the first file in a directory
3537
3538 Sat Dec 13 Jay Painter <jpaint@serv.net>
3539         * gtk/gtkvscrollbar.c: added focus flag so vertical scrollbars
3540         can get keyboard focus
3541
3542 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
3543         * Removed warning when XGetWindowProperty fails - this can
3544           be the desired behavior.
3545         
3546 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
3547         * gdk/makecursor* gdk/makekeysym* gdk/Makefile.am
3548           Removed old sed/awk code and replaced it with a 
3549           spiffier awk-only code from Art_Haas@dril-quip.com
3550         
3551 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
3552         * gdk/gdkgc.c: If gdk_gc_set_clip_rectangle is called with
3553           rectangle = NULL, remove clip mask, instead of segfaulting.
3554         * gtk/gtknotebook.c: Set clip mask before redrawing, so that
3555           we don't overwrite things outside of exposed areas when
3556           drawing them shadows. (Based on a patch from 
3557           Lars Hamann <hamann@braunschweig.netsurf.de>, and Stefan Jeske)
3558         
3559 Thu Dec 11 10:57:29 CST 1997 Shawn T. Amundson <amundson@gimp.org>
3560         * Change to ltconfig to remove -z text for Solaris x86  
3561         * Change to configure stuff so compile works on Solaris x86
3562         * Added gdk/gdkkeysyms.h and gdk/gdkcursors.h back into the tree
3563
3564 Thu Dec 11 09:44:03 1997  Tim Janik  <timj@psynet.net>
3565
3566         * gdk.c: added gdk_progclass==NULL patch by Oliver Graf <ograf@fga.de>.
3567
3568 Wed Dec 10 23:40:03 1997  Tim Janik  <timj@psynet.net>
3569
3570         * fixed some compiler errors, because g_return_if_fail() wasn't used
3571         with a trailing semicolon in some places. fixed few other warnings also.
3572
3573 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
3574         * configure changes: (configure.in, glib/configure.in)
3575         Change test ! `...` to test -z `...`
3576           (Harald Meland <Harald.Meland@usit.uio.no>)
3577         Change $gtk_cv_x_locale to $need_x_locale so it isn't cached.
3578         With --enable_debug, don't touch CFLAGS if they're already set.
3579
3580 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
3581         * gdk/gdkpixmap.c: don't use gdk_black/white for pixmap mask.
3582          From Patrice Fortier <Patrice.Fortier@aquarel.fr>
3583
3584 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
3585         * gtk/testselection.c (selection_received): foreward -> forward.
3586         * gtk/gtktext.c (gtk_text_forward_delete): Renamed; changed all
3587         callers.
3588         * gtk/gtktext.h: foreward -> forward.
3589           From Tom Tromey  <tromey@cygnus.com>
3590
3591 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
3592         * gtk/gtkimage.c: Fixes to expose() handler
3593           From Rob Browning <rlb@cs.utexas.edu>
3594         
3595 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
3596         * gtk/gtklabel.h:
3597         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
3598         is used by the new gtktooltips.c.
3599         * gtk/testgtk.c (create_labels, create_main_window): A new test
3600         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
3601
3602 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
3603         * gtk/gtklabel.h:
3604         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
3605         is used by the new gtktooltips.c.
3606         * gtk/testgtk.c (create_labels, create_main_window): A new test
3607         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
3608
3609 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
3610         * gdk/gdk.c, gdk/gdk.h, gdk/gdktypes.h: 
3611           Remove dependencies of interfaces on USE_XIM
3612         * gdki18n.h: Attempt to make wchar handling more portable
3613         * gdkwindow.c: Include config.h. (For gdkinput.h)
3614         
3615 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
3616         * gtk/gtkentry.c, gtk/gtkentry.h: 
3617            Fixed word motion
3618            Added cut/copy/paste via X clipboard
3619            Generalized extending selection using <Shift> to work with all types
3620              of motion, not just arrow keys.
3621            Don't change length of GtkEntry structure because of USE_XIM
3622
3623 Sun Dec  7 03:19:02 1997  Tim Janik  <timj@psynet.net>
3624
3625         * gtkfilesel.c: applied jamesa-971010-0 for stability.
3626         * gtkrc.c: applied jamesa-971010-2 for a small optimization.
3627         * gtkcheckmenuitem.h:
3628         * gtkcheckmenuitem.c:
3629         * gtkradiomenuitem.c:
3630         * testgtk.c: applied johannes-971113-0 which adds
3631         gtk_check_menu_item_set_show_toggle() to change the way check
3632         menu items and radio menu items look.
3633
3634 Fri Dec 5 1997 Elliot Lee <sopwith@cuc.edu>
3635         * gdk/gdk.c: clean up warnings, remove some un-ifdef'd debugging
3636         printing, DnD is Bug Free now, etc.
3637         * gtk/gtkcolorsel.c: fix DnD support.
3638         * gtk/gtkmain.c: DnD events go to the original window even if
3639         there is a grab - if I drop on a window the data had better go
3640         to it and not some other window :)
3641         * gtk/testgtk.c: Replace (GtkSignalFunc) with GTK_SIGNAL_FUNC(),
3642         and do a nicer DnD demo.
3643         * My very first ChangeLog entry, seeing as people have
3644         a fixation on them (what's wrong with "rcs2log" output?)
3645
3646 Thu Dec 4 1997 Owen Taylor <owt1@cornell.edu>
3647         * gdk/gdkgc.c: Ignore gdk_gc_set_font if font is a fontset.
3648
3649 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
3650         * gtk/gtkstyle.c: fixed a problem introduced recently in 
3651         gtk_style_detach witch crashed script_fu.
3652
3653 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
3654         * gdk/Makefile.am: add a dependence for $(DEP_FILES) on
3655         $(BUILT_SOURCES) to work around automake problem
3656         
3657 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
3658         * configure.in glib/configure.in glib/glibconfig.h.in gdk/gdk.h
3659         gdk/gdk18n.h gdk.c gtk/gtkentry.c: Try to handle variations in 
3660         <wchar.h> headers gracefully. Do not automatically include 
3661         gdk/gdki18n.h.
3662         
3663 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
3664         * gtk/gtkoptionmenu.c: fixed a old bug where if you set a new 
3665         menu for a optionmenu the widget would not get positioned correctly
3666         inside of the optionmenu.
3667
3668 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3669         * gdk/gdkpixmap.c: Include unistd.h to get SEEK_END
3670         for SunOS (john_johns@credence.com)
3671         
3672 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3673         * gtk+/fnmatch.c: Define _GNU_SOURCE before including
3674         fnmatch.h to make sure all constants are defined.
3675         (Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp>)
3676         
3677 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3678         * configure.in, glib/configure.in: Make the logic to add -Wall,
3679         -ansi, -pedantic for GCC operational.
3680
3681 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3682         * glib/glib.h, glib/configure.in. Disabled gldouble, since
3683         it wasn't used anywhere and caused portability problems
3684
3685 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
3686         * glib/glib.h, glib/configure.in, glib/glibconfig.h.in: Added a
3687         g_memmove function which is simply memmove if it exists, otherwise
3688         bcopy.(Should really check if bcopy has the correct semantics, and
3689         create our own memmove is necessary) 
3690         * glib/gstring.c, glib/garray.c, gtk/gtktext.c:
3691         memmove => g_memmove
3692         
3693 Sun Nov 30 1997 Jay Painter <jpaint@serv.net>
3694         * gtk/gtknotebook.c: fixed a old bug where all the notebook pages
3695         which were not displayed when the notebook widget was realized were
3696         never size allocated when they were realized.
3697
3698 Thr Nov 28 1997 Jay Painter <jpaint@serv.net>
3699         * gtk/gtklist.h: removed GtkSelectionMode
3700         * gtk/gtkenums.h: added GtkSelectionMode
3701
3702 Fri Nov 28 01:26:55 1997  Tim Janik  <timj@psynet.net>
3703
3704         * gtk/gtkwindow.c (gtk_window_show): propagate a size_request before
3705         the initial window creations (prevents windows with size of -1x-1).
3706
3707         * gtk/gtkmain.c (gtk_main_level): new function to determine
3708         the current recursion level of gtkmain().
3709         (gtk_true) (gtk_false): new functions implemented as a convenience
3710         for signals that just need a handler with the appropriate return value.
3711
3712 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
3713         gdk.c: Fix so that "other_events" are actually generated
3714
3715 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
3716         Patches to support internationalized input by:
3717           Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
3718           TANAKA Shinya <shinya@race.u-tokyo.ac.jp>
3719
3720         From the README:
3721         
3722         Feature:
3723           Followings are the main feature of this patch.
3724             * support XIM protocol.
3725             * GtkEntry widget support Over-The-Spot and Root style input.
3726             * input style is configurable by command-line option.
3727
3728         Furthermore, this patch includes several changes which are useful 
3729           without XIM too.
3730         
3731             * copy and paste with other clients by compound text.
3732             * Window title can be specified by multi byte string.
3733
3734         configure.in: 
3735           Added --with-locale and --enable-xim options
3736         gdk/Makefile.am:
3737         gdk/gdki18n.h [new file]
3738           Multibyte string manipulation functions
3739         gdk/gdk.c
3740         gdk/gdk.h
3741         gdk/gdkprivate.h
3742           Input method and context handling functions
3743           Command line options to control input methods
3744           Changes to KeyPress handling to support input methods
3745           Fixes to not return events for destroyed windows
3746         gdk/gdkselection.c
3747           Text property handling functions
3748         gdk/gdkwindow.c
3749           Set window title by multibyte string
3750         gtk/gtkentry.c
3751           Support for using an input context for XIM input.
3752           Cut and paste using compound text.
3753           Improvements to pasting (no longer replace the active selection
3754             with itself OWT)
3755         gtk/gtkselection.c
3756           fix to send selection clear events to the right owner
3757         gtk/testgtkrc
3758           Added a default fontset that will allow international characters
3759         INSTALL
3760           Some rudimentary documentation about the new configuration options.
3761         
3762 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
3763         gtk/gtkaspectframe.c:
3764         Some minor improvements to rounding in aspectframes.
3765         Make sure that child allocation is always >= 0
3766         Always trigger size allocation with gtk_widget_queue_resize
3767         to prevent calling size_allocate before allocation done.
3768
3769 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
3770         gtk/gtkframe.c:
3771         Changed tests for drawability to GTK_WIDGET_DRAWABLE
3772         Always trigger size allocation with gtk_widget_queue_resize
3773         to prevent calling size_allocate before allocation done.
3774
3775 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3776         gtk-dairiki-971117-2.patch
3777         gtk/gtkaspectframe.c (gtk_aspect_frame_size_allocate): When
3778         computing new dimensions of the subwidget, round to nearest
3779         integer rather than truncating.
3780
3781 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3782         gtk-dairiki-971117-1.patch
3783         * gtk/gtkvruler.c (gtk_vruler_draw_ticks):
3784         * gtk/gtkhruler.c (gtk_hruler_draw_ticks): Ensure that subticks
3785         always are drawn when they should be (sometimes they were getting
3786         drawn with zero length --- invisible).  Also clear rectangle
3787         behind text labels to ensure they don't touch or overlap ticks. 
3788
3789 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3790         * gtk/gtkaspectframe.c (gtk_aspect_frame_set): 
3791         gtk-dairiki-971117-0.patch
3792         Clear window when aspect ratio or alignment is changed.
3793
3794 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3795         * gtk/gtkobject.h: fixed GTK_OBJECT_NSIGNALS macro
3796
3797 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
3798         * gtk/gtklabel.h: modified gtklabel to clip its drawing to
3799         its given area, now it will always draw in the area it's 
3800         been given and clip accordingly.  Note: this may cause
3801         the a label to disappear on widgets which don't give their
3802         child labels proper area!
3803
3804 Mon, 17 Nov 1997 Michael K. Johnson <johnsonm@redhat.com>
3805         * gtkwidget.c: gtk_set_style_recurse was not allowing updated
3806         widget names to cause new styles to be applied.
3807         * gtkentry.c gtkentry.h: The entry widget now has invisible
3808         attribute.  The cursor does not move to show you typing; this
3809         is an intentional design decision but I'm not so attached to it
3810         that I'll reverse any patches that change it...  :-)
3811
3812         This patch is a modified version of a patch to which I have
3813         lost the attribution.  I modified it by packing the "visible"
3814         flag into the structure more tightly (without damaging backwards
3815         compatibility on sane systems) and by allowing entry timers
3816         to run.
3817
3818 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
3819         * gtkviewport.c: Raph's Mon, 10 Nov 1997 patch to gtk-list 
3820         to fix some viewport bugs
3821
3822 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
3823         * gtk/gtkwidget.c: gtk-ajaborsk-971016-2
3824         A little patch again to prevent user to use gtk_widget_set_events()
3825         when a widget is already realized.
3826         In this case, the gtk_widget_set_events() doesn't work.
3827
3828 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
3829         * gtk/gtkwindow.c: gtk-ajaborsk-971016-1
3830         This small patch correct position for GTK_WIN_POS_CENTER and
3831         GTK_WIN_POS_MOUSE GtkWindow positions.
3832
3833 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
3834         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
3835         * gdk/gdk.h: header for above
3836
3837 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
3838         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
3839         * gdk/gdk.h: header for above
3840
3841 Wed Nov 12 1997 Jay Painter <jpaint@serv.net>
3842         * gdk/gdkpixmap.c: Patrice Fortier's patch for transparent pixmaps.
3843         * gdk/gdk.h:
3844           gdk/gdkdraw.c: Patrice Fortier's patch to add pixel draw function.
3845
3846 Sun Nov  9 1997 Jay Painter <jpaint@serv.net>
3847         * Fixed problems with makefiles relating to the bug
3848         which required glib to be installed.
3849         * Fixed makefiles to incluce the xpm's in gtk+/gtk needed
3850         for testgtk.
3851         * Updated gtk+ and gtk+/glib to libtool-1.0f
3852
3853 Fri Nov  7 1997 Jay Painter <jpaint@serv.net>
3854         * gtk/gtktext.c: return char_widths[ch & 0xff]; in line 2152
3855
3856 Thr Nov  5 1997 Jay Painter <jpaint@serv.net>
3857         * gtk/testgtk.c: added drag and drop test, removed the test hack
3858         from the button test
3859
3860 Tue Nov  4 08:28:57 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3861
3862         * gtk/gtkmain.c (gtk_handle_idle): Patch from David Mosberger to
3863         avoid crashes when handling idle function (this manifested itself
3864         in the Umax and Microtek backends in SANE.
3865
3866 Sun Nov  2 07:34:56 1997  Tim Janik  <timj@psynet.net>
3867
3868         * gtk/gtkfilesel.c: Small fixes about a segmentation viaolation
3869         cause by a double click in the directoy list (introduced by my
3870         previous changes).
3871         
3872         * gtk/gtklist.c: Small fixes to gtk_list_add() and gtk_list_remove().
3873         
3874         * gtk/testgtk.c (list_add): Applied Stefan Wille's patch to make this
3875         function do something ;).
3876
3877 Fri Oct 31 Jay Painter <jpaint@serv.net>
3878         *gdk/gdk.c: reformatted DND code for GTK coding standards
3879         *gdk/gdkwindow.c: changed memory allocation for DND to q_mem stuff
3880
3881 Thu Oct 30 Jay Painter <jpaint@serv.net>
3882         * gdk/gdkwindow.c: 
3883         * gdk/gdk/gdk.h:
3884         * gtk/gtkwidget.h:
3885         * gtk/gtkwidget.c: Applied Stephan Willie's shaped window patch
3886
3887         * gdk/gdkwindow: 
3888         * gdk/gdk.h:
3889         * gtk/gtkwidget.h:
3890         * gtk/gtkwidget.c: reformatted the DND code to conform to GTK
3891                 coding standards
3892
3893         * gtk/testgtk: massive fixes, SW's shaped window example
3894
3895 Thu Oct 30 07:33:27 1997  Tim Janik  <timj@psynet.net>
3896
3897         * gtk/gtklistitem.c (gtk_real_list_item_toggle): applied Johannes
3898         Keukelaar's <johannes@nada.kth.se> patch for keyboard support in
3899         GtkList widgets.
3900
3901         * gtk/gtkfilesel.c: adapted dir and file list selection
3902         behaviour to deal with keyboard selections. this is a little
3903         bit tricky: in the dir list it just changes the entrys value on a one
3904         button press. but on a keyboard selection via gtk_widget_activate() it
3905         does a new population (likewise on a double click) as this seems more
3906         obvious.
3907
3908 1997-10-25  Marius Vollmer  <mvo@zagadka.ping.de>
3909
3910         * gdk/gdkcolor.c (gdk_colormap_get_system): Initialize
3911         private->ref_count.
3912
3913 Wed Oct 22 09:47:43 1997  Tim Janik  <timj@psynet.net>
3914
3915         * gtk/gtkwindow.c (gtk_window_key_release_event): Fixed a stupid
3916         bug that caused the key_release_event to be propagated twice.
3917
3918 Sun Oct 12 11:01:43 1997  Tim Janik  <timj@psynet.net>
3919
3920         * acconfig.h:
3921         * configure.in:
3922         * gdk/gdkimage.c: Added configure check for IPC_RMID_DEFERRED_RELEASE,
3923         because shmat() fails after a shmctl(..., IPC_RMID,...) for OSF1 V3.2,
3924         SunOS 4.1.1, 5.5, 5.5.1, 5.6, IRIX 5.2 and 6.2.
3925
3926 Mon Oct  6 11:59:07 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3927
3928         * gdk/gdk.c (gdk_event_translate): In line 1693, fixed typo that
3929         would cause motion notify events not to be delivered.
3930
3931 Sun Oct  5 18:15:06 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3932
3933         * gtk/gtkrc.c (gtk_rc_parse_bg_pixmap): Changed strdup() for
3934         g_strdup().
3935
3936 Wed Sep 24 17:16:34 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
3937
3938         * configure.in: Fixed a stupid error in the test for libXext that
3939         would cause it to fail if X_EXTRA_LIBS was not empty.
3940
3941         * gtk/gtkmain.h (gtk-timj-970919.patch):
3942         * gtk/gtkmain.c (gtk-timj-970919.patch): new function
3943         `gtk_idle_remove_by_data' to remove all idle callbacks that take a
3944         specific piece of data as argument.  (gtk_get_current_event):
3945         remove idles through gtk_idle_remove_by_data.
3946         
3947         * gtk/gtkwidget.c (gtk-timj-970919.patch):
3948         (gtk_widget_destroy): remove pending idles for
3949         widgets that have GTK_REDRAW_PENDING or GTK_RESIZE_PENDING and
3950         GTK_ANCHORED set (only anchored widgets can have a resize queue
3951         handler pending). widgets that have GTK_RESIZE_NEEDED will be removed
3952         from their anchored toplevels `resize_widgets' list.
3953         
3954         (gtk_widget_queue_draw): let the widget remember the queue handler
3955         tag (through `redraw_handler_key') for later call to `gtk_idle_remove'.
3956         
3957         (gtk_widget_queue_resize): let the widget remember the queue handler
3958         tag (through `resize_handler_key') for later call to `gtk_idle_remove'.
3959         corrected referencing the toplevel widget for which the handler is
3960         pending. if a widget is added to the `resize_widgets' list of a
3961         toplevel widget, GTK_RESIZE_NEEDED is set and it's referenced.
3962         
3963         (gtk_real_widget_queue_resize): on the deletion of the `resize_widgets'
3964         list, unset GTK_RESIZE_NEEDED and unreference the removed widgets.
3965         
3966         * gtk/gtkwindow.c (gtk-timj-970919.patch):
3967         (gtk_real_window_move_resize): move `resize_containers = NULL'
3968         initialization out of if-statement.
3969         while stepping through the `resize_widgets' list, unreference the
3970         widgets and clear GTK_RESIZE_NEEDED. if a widget realy needs are
3971         resize, they are flagged through GTK_RESIZE_NEEDED now (instead of
3972         GTK_RESIZE_PENDING, as this is indicative for a pending handler).
3973         added checks to provide segfaulting if a widgets parent pointer
3974         is NULL (e.g. on toplevel widgets that have GTK_RESIZE_NEEDED set).
3975
3976 Tue Sep 23 13:23:27 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
3977
3978         * gdk/gdkimage.c: Applied Tim Janik's patch to mark shm segments
3979         as IPC_RMID so that they are automatically removed always.
3980
3981         * gdk/gdkfont.c: Removed casts from lvalues.
3982
3983         * gtk/gtkmain.c: Removed GTK_RETLOC_*() (which do a cast) from lvalues.
3984
3985         * gtk/gtkaccelerator.c (gtk_accelerator_table_remove): Added
3986         "const" to the accelerator_key param to be consistent with the
3987         declaration in gtkaccelerator.h.  The const is not useful in this
3988         case, anyway.
3989
3990 Tue Sep 16 13:11:06 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
3991
3992         * gtkpreview.c: Andrew Logan Kieschnick's change to eliminate
3993         round-off error when gamma is set to 1.0.
3994
3995         * gtkrange.c:
3996         * gtkviewport.c: Jay Painter's changes to modify the way in which
3997         viewports resize.
3998
3999         * gdkinput.c:
4000         * gdkinputgxi.h:
4001         * gdkinputxfree.h:
4002         * gtk/Makefile.am:
4003         * gtk.h:
4004         * gtkeventbox.c:
4005         * gtkeventbox.h: Owen Taylor's event box widget and fixes for X
4006         input support (that I had broken).
4007
4008         * gdk.h:
4009         * gdkwindow.c:
4010         * gtksignal.h:
4011         * gtksignal.c: Elliot Lee's changes to support Objective C. (id is
4012         apparently a reserved word in Objective C).
4013
4014 Sun Sep 14 22:33:15 1997  Peter Mattis  <pmattis@localhost>
4015
4016         * gtkwidget.c (gtk_widget_queue_resize): If the toplevel container
4017         is invisible we simply call "gtk_container_need_resize" on
4018         it. This fixes a bug with option menus not redrawing correctly.
4019
4020         * gtkmenuitem.c (gtk_menu_item_enter): (gtk_menu_item_leave):
4021         These functions now simply pass the event on to their parent. This
4022         is necessary for menus to work properly due to the change in how
4023         grabs are dealts with.
4024
4025         * gtkwindow.c (gtk_real_window_move_resize): Fixed a bug that
4026         caused the GTK_RESIZE_PENDING flag to not be unset in some cases.
4027
4028 Fri Sep  5 20:49:37 1997  Marius Vollmer  <mvo@zagadka.ping.de>
4029
4030         Bug fixes:
4031
4032         * Makefile.am: Added PATCHES to EXTRA_DIST.
4033         * gtk/gtkpixmap.c (gtk_pixmap_new): Move the "pixmap != NULL" test
4034         after the allocation of the pixmap.
4035
4036         To shut up the compiler:
4037
4038         * gtk/gtkfilesel.c (get_pwdb): Initialize home_dir.
4039         * gtk/gtkmain.c (gtk_init): Replace comments around calls to
4040         g_set_*_handler with "if (0)".
4041         * gtk/gtkrc.c (gtk_rc_get_token): Initialize hex_number and
4042         float_number.
4043         * gtk/gtkwindow.c (gtk_window_key_press_event): Initialize
4044         direction.
4045
4046         Changes to the type system in gtk/:
4047
4048         * Makefile.am: Added gtktypebuiltins.h to gtkinclude_HEADERS.
4049         Added gtk.defs, runelisp, gentypeinfo.el and gtktypebuiltins.c to
4050         EXTRA_DIST.  Added rules to generate gtktypebuiltins.* from
4051         gtk.defs.
4052
4053         * runelisp, gentypeinfo.el, gtk.defs: New files.
4054
4055         * gtkaccelerator.c, gtkaccelerator.h (gtk_accelerator_table_ref):
4056         Return the table so that this function can be used as the `copy'
4057         function for GTK_TYPE_BOXED values.
4058         * gtkstyle.c, gtkstyle.h (gtk_style_ref): Likewise.
4059
4060         * gtkenums.h: Removed GtkArgType enum.
4061
4062         * gtkmain.c (gtk_init): Call gtk_type_init to initialize the type
4063         system.
4064
4065         * gtkobject.c (gtk_object_init_type): New function to take over
4066         for gtk_object_get_type. (gtk_object_get_type): Just return the
4067         constant GTK_TYPE_OBJECT. (gtk_object_collect_args): Do the right
4068         thing for the new GTK_TYPE_* types.
4069         * gtksignal.c (gtk_params_get): Likewise.
4070
4071         * gtktypeutils.c: (gtk_type_init_builtin_types): New
4072         function. (gtk_type_init): Call it.  Also made non-static.
4073         (gtk_type_unique): The allocation scheme for numerical ids has
4074         changed: The low 8 bits hold the appropriate GtkFundamentalType of
4075         a type, the rest is a globally unique sequence number.
4076         (gtk_type_hash): Use the sequence number of a key to hash it.
4077         (gtk_type_register_builtin): New function.
4078
4079         * gtktypeutils.h: (GtkFundamentalType): New enumeration of the
4080         fundamental types. (GTK_TYPE_MAKE, GTK_FUNDAMENTAL_TYPE,
4081         GTK_TYPE_SEQNO): New macros to work with the new id scheme.
4082         (GtkArg): Added fields for new types and renamed old ones.  GtkArg
4083         should now be a mostly opaque structure, except name and type.
4084         (GTK_VALUE_*): New macros to access the values of a GtkArg.
4085         (GTK_RETLOC_*): New macros to access the location of a return
4086         value that is contained in a GtkArg.  * gtktypebuiltins.h: New
4087         file to access the typeids of the builtin types.
4088
4089         * gtkwidget.h (GTK_TYPE_WIDGET): New macro to access the type id
4090         of the widget class.
4091
4092         Thru out: Changed GTK_ARG_* to the appropriate GTK_TYPE_*.
4093         Changed access to GtkArg structure to the appropriate GTK_VALUE_*
4094         or GTK_RETLOC_* macro.  Changed GtkArgType to GtkType.  Changed
4095         some guints to GtkType.
4096
4097         General changes in gtk/ to support interpreters:
4098
4099         * gtkradiobutton.c (gtk_radio_button_new_from_widget,
4100         gtk_radio_button_new_with_label_from_widget): New functions.
4101
4102         * gtksignal.c (gtk_signal_connect_no_marshal): New function.
4103         (struct _GtkHandler): Added no_marshal and destroy_func fields.
4104         (gtk_signal_handler_new): Initialize them.
4105         (gtk_signal_connect_by_type): Added no_marshal and destroy_func
4106         arguments.  Changed all callers.
4107         (gtk_signal_destroy): Invoke destroy_func if there is one and the
4108         global destroy func does not apply.  (gtk_handlers_run): If the
4109         handler has no_marshal set, call its function directly without
4110         going thru the signal's marshaller.
4111
4112 Wed Sep  3 09:56:22 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
4113
4114         * gtkrange.c: Changed the way the range control focus was drawn so
4115         that the range control is drawn correctly when it does not have
4116         the focus.
4117
4118 Tue Sep  2 17:41:17 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
4119
4120         * gtkwidget.c: 'gtk_real_widget_queue_resize' should only remove
4121         the "resize_widgets" if another resize is not pending.
4122
4123 Mon Sep  1 18:28:08 1997  Peter Mattis  <pmattis@localhost>
4124
4125         * gtkmain.c: Changed the way GDK_DELETE events are handled. Only,
4126         if 'gtk_widget_event' returns TRUE is the widget destroyed. By
4127         default, 'gtk_widget_event' will return FALSE causing the window
4128         to not be destroyed. This prevents segfaults in the GIMP and other
4129         programs that do not correctly handle GDK_DELETE events.
4130
4131         * gtkmain.c: Added modal dialog support by allowing events
4132         destined for a child of the grab widget to go to the child instead
4133         of the grab widget. (Added 'gtk_widget_is_ancestor' to determine
4134         the relationship between the grab widget and the event widget).
4135
4136         * *.[ch]: Incorprated a whole mess of patches. (Started keeping
4137         the ChangeLog up to date again).
4138
4139 Thu Jun  5 17:22:21 1997  Peter Mattis  <pmattis@localhost>
4140
4141         * gtkmenufactory.c:
4142         * gtkmenufactory.h: Added 'gtk_menu_factory_remove_*'
4143         calls. Removing entries/paths causes the associated widgets to be
4144         destroyed.
4145
4146         * gtkwidget.c:
4147         * gtkwidget.h: Calling 'gtk_widget_set_style' is used as an
4148         indication that the programmer specifically wants that style to be
4149         used. RC-style substitution is disabled for the widget after such
4150         a call.
4151
4152         * gtkpixmap.c:
4153         * gtkpixmap.h:
4154         * gtkimage.c:
4155         * gtkimage.h: Changed to use clip mask and a single pixmap (or
4156         image) to deal with transparent areas.
4157
4158         * gdkpixmap.c: Modified xpm loading routines to optionally return
4159         a clip mask.
4160
4161         * gdkgc.c:
4162         * gdkdraw.c:
4163         * gdktypes.h: Modifications to allow clip masks to be used with
4164         gc's. Clip masks are bitmaps that specify drawable regions.
4165
4166 Thu May  1 03:11:51 1997  Peter Mattis  <pmattis@localhost>
4167
4168         * gtkscrolledwindow.c: Scrolled windows need to have the
4169         GTK_NO_WINDOW flag set. Not having it set caused an obscure
4170         redrawing bug.
4171
4172 Wed Apr 30 12:38:03 1997  Peter Mattis  <pmattis@localhost>
4173
4174         * gtkhruler.c:
4175         * gtkvruler.c: Fixed a small bug that caused the indicator to be
4176         positioned slightly off.
4177
4178 Sun Apr 27 14:28:21 1997  Peter Mattis  <pmattis@localhost>
4179
4180         * gtkmenushell.c:
4181         * gtkmenushell.h:
4182         * gtkmenu.c:
4183         * gtkmenu.h: Changes so that if a menu is popped up there is a
4184         timeout period during which a menu item will not be activated and
4185         if the mouse button is released in that period the menu will stay
4186         popped up.
4187
4188         * gtkcurve.c:
4189         * gtkcurve.h: Included curve widget courtesy of David
4190         Mosberger-Tang (davidm@azstarnet.com).
4191
4192         * gtkentry.c:
4193         * gtkentry.h: Changed "insert" and "delete" signals to
4194         "insert_text" and "delete_text" respectively. (The symbol "delete"
4195         cannot be used since it is a C++ reserved word).
4196
4197 Sat Apr 19 01:43:49 1997  Peter Mattis  <pmattis@localhost>
4198
4199         * gtkmenufactory.c: A path which ends in "<nothing>" will cause an
4200         invisible (hidden) menu entry to be created. This is useful for
4201         setting an accelerator key for which a corresponding menu entry is
4202         not desired.
4203
4204         * gtktooltips.c: Fixed some problems with destruction of the
4205         active tip widget not properly updating the tooltips data
4206         structures.
4207
4208 Fri Apr 18 15:09:45 1997  Peter Mattis  <pmattis@localhost>
4209
4210         * gtkcontainer.c:
4211         * gtklist.c:
4212         * gtkwidget.c:
4213         * gtkwidget.h: Patch from Owen Taylor (owt1@cornell.edu) which
4214         fixes problems with destruction of objects and with destruction of
4215         objects which hold the focus.
4216
4217 Thu Apr 17 11:29:15 1997  Peter Mattis  <pmattis@localhost>
4218
4219         * gtkmenushell.c: Incorrect logic in
4220         'gtk_menu_shell_button_release' for deciding when a menu should
4221         stay popped up when the mouse button is released.
4222
4223         * *.c: Miscellaneous fixes from folks on the net.
4224
4225 Tue Apr 15 02:43:17 1997  Peter Mattis  <pmattis@localhost>
4226
4227         * *.c:
4228         * gtkwidget.h: Added GTK_BASIC widget flag which when set
4229         specifies a widget as "basic". A "basic" widget is one which
4230         doesn't take input events. For example, labels, pixmaps, boxes,
4231         tables, alignments, etc.
4232
4233 Sat Apr 12 15:23:08 1997  Peter Mattis  <pmattis@localhost>
4234
4235         * gtkcolorsel.c: Add "#include <math.h>" to define M_PI.
4236
4237         * gtksignal.c: Fixed a bug in 'gtk_signal_emit' which showed up
4238         because of the new cast checking macros. The 'object' was being
4239         accessed after it had been destroyed.
4240
4241         * gtkoptionmenu.c: Fixed bug with using 'GTK_BIN' instead of
4242         'GTK_BUTTON' which showed up because of the new cast checking
4243         macros.
4244
4245         * *.h: 'GTK_CHECK_CAST', 'GTK_CHECK_CLASS_CAST' and
4246         'GTK_CHECK_TYPE' used by standard widget macros everywhere.
4247
4248 Wed Apr  9 00:54:17 1997  Peter Mattis  <pmattis@localhost>
4249
4250         * docs/gtk.texi: Started further work on documentation. Major
4251         changes and additions are being made.
4252
4253         * gtkarrow.c:
4254         * gtkarrow.h: Removed function 'gtk_arrow_get'.
4255
4256         * gtkcontainer.c: 'gtk_container_check_resize' no performs
4257         additional checking to account for the case where the containers
4258         allocation is no longer sufficient because its parent (or its
4259         parents parent, etc.) needs to resize its children.
4260
4261 Tue Apr  8 21:15:50 1997  Peter Mattis  <pmattis@localhost>
4262
4263         * gtkstyle.c: Fixed a bug in 'gtk_style_init' in which the font
4264         was not ref'd (via 'gdk_font_ref'), but was free'd (via in
4265         'gdk_font_free') in 'gtk_style_destroy'. (David
4266         Mosberger-Tang). Also cleaned up 'gtk_style_destroy' while I was
4267         at it.
4268
4269         * gtkmain.c: Fixed a bug in 'gtk_propogate_event' which caused
4270         entry widgets (and probably other widgets) not to be destroyed in
4271         some instances.
4272
4273 Mon Apr  7 01:20:38 1997  Peter Mattis  <pmattis@localhost>
4274
4275         * gtkentry.c:
4276         * gtkentry.h: Changed the "insert_text", "delete_text" and
4277         "changed_text" signals to "insert", "delete", and "changed"
4278         respectively. They really should have been named this way
4279         originally except the previous signal mechanism prevented
4280         duplicate signal names. ("changed" is also used by adjustments).
4281
4282         * gtkradiomenuitem.c:
4283         * gtkradiomenuitem.h: New widget.
4284
4285         * gtkcheckmenuitem.c:
4286         * gtkcheckmenuitem.h: New widget.
4287
4288         * gtksignal.c: Modified 'gtk_signal_lookup' to require an object
4289         type to be passed as a parameter. In addition, signals are now
4290         only needed to be uniquely defined in their branch of the class
4291         hierarchy. This allows the same signal name to be used in two
4292         different branches of the class hierarchy. For instance, the
4293         "changed" signal is used both by adjustments and entries...in
4294         different ways!
4295
4296         * gtktypeutils.c: Added 'gtk_type_parent' which returns the parent
4297         type for a given type.
4298
4299 Sun Apr  6 22:08:35 1997  Peter Mattis  <pmattis@localhost>
4300
4301         * gtkwidget.c: If a widget is set insensitive it loses the focus
4302         if it had it.
4303
4304         * gtkcontainer.c: Insensitive widgets no longer participate in tab
4305         traversal.
4306
4307         * gtkscrolledwindow.c: The "viewport" child is now destroyed and a
4308         container class "foreach" function was written (which fixes the
4309         sensitivity bug).
4310
4311 Sat Apr  5 14:25:38 1997  Peter Mattis  <pmattis@localhost>
4312
4313         * gtkhscrollbar.c:
4314         * gtkvscrollbar.c: Fixed trough size allocation bug.
4315
4316         * gtkhscale.c:
4317         * gtkvscale.c: Fixed trough size allocation and position bug that
4318         showed up when scales were placed in notebooks.
4319
4320 Thu Mar 27 17:45:54 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4321
4322         * gtk/gtkmain.c (gtk_handle_idle): Fix appending pending_idles to
4323         idle_functions so it works even when idle_functions is empty.
4324
4325 Sat Mar 15 14:15:59 1997  Peter Mattis  <pmattis@localhost>
4326
4327         * *.[ch]: Moved '*_class_init' and '*_init' function declarations
4328         for widgets into the source file as those functions no longer had
4329         to be public.
4330
4331         * gtkcheckbutton.c: Fixed redrawing of check button.
4332
4333         * gtkframe.c: Fixed redrawing of frame when the shadow type is
4334         changed.
4335
4336 Sat Mar  8 15:19:23 1997  Peter Mattis  <pmattis@localhost>
4337
4338         * gdkimage.c: Fixed a stupid bug with 'gdk_image_new' which
4339         potentially added a NULL image to "image_list" and caused problems
4340         when 'gdk_image_exit' was called.
4341
4342 Wed Mar  5 00:40:08 1997  Peter Mattis  <pmattis@localhost>
4343
4344         * gtkpreview.c: Massively changed the colormap handling used by
4345         the preview widget. Gray previews are now dithered. A single
4346         visual and colormap is shared by the color and gray previews. A
4347         GTK_PREVIEW_INFO property is installed on the root window in
4348         certain cases to allow multiple GTK programs to share the system
4349         colormap.
4350
4351 Sun Mar  2 05:43:06 1997  Peter Mattis  <pmattis@localhost>
4352
4353         * gtkcheckbutton.c: 'gtk_checkbutton_size_allocate' was allocating
4354         too much space to its children and not leaving the check button
4355         room for the focus border.
4356
4357         * gtknotebook.c: 'gtk_notebook_size_request' wasn't requesting
4358         enough space when the notebook tabs are visible.
4359
4360 Sat Mar  1 01:59:35 1997  Peter Mattis  <pmattis@localhost>
4361
4362         * gtkpreview.c: Fixed a problem with 'gtk_preview_put' when the
4363         image byte order is GDK_MSB_FIRST.
4364
4365         * gtksignal.c:
4366         * gtksignal.h: Added 'gtk_signal_connect_after' and
4367         'gtk_signal_connect_object_after' functions. These connect signal
4368         handlers which will run after the class function associated with
4369         the signal.
4370
4371         * gtkstyle.c: Fixed a stupid bug in 'gtk_style_new_from_key' that
4372         was causing twice as many styles to be created as necesary.
4373
4374         * gtkwidget.c: 'gtk_real_widget_size_allocate' erases the widgets
4375         old allocation if it has the GTK_NO_WINDOW flag set.
4376
4377         * gtkwidget.c: 'gtk_real_widget_unmap' now erases the widget if it
4378         has the GTK_NO_WINDOW flag set.
4379
4380         * gtklabel.c: Removed 'gtk_label_unmap' as similar functionality
4381         was added to gtk_real_widget_unmap.
4382
4383         * gtkbin.c: Modified 'gtk_bin_map' and 'gtk_bin_unmap' so that it
4384         erases and draws the widget if it has the GTK_NO_WINDOW flag set.
4385
4386         * gtkframe.c: Modified 'gtk_frame_size_allocate' so that it erases
4387         the old allocation.
4388
4389 Fri Feb 28 03:27:05 1997  Peter Mattis  <pmattis@localhost>
4390
4391         * gtkwindow.c: 'gtk_window_set_title' now changes the window title
4392         if the window is already realized.
4393
4394         * gtkentry.c: 'gtk_entry_set_text' was emitting both a
4395         "delete_text" and a "changed_text" signal. Modified so that it
4396         only emits a "changed_text" signal.
4397
4398         * gtkpreview.c: Modified to work correctly on systems with MSB
4399         byte order. The colormap for TRUE and DIRECT color displays is now
4400         created if the default visual is not equal to the visual we are
4401         using.
4402
4403         * gtkstyle.c: 'gtk_style_attach' and 'gtk_style_find' weren't
4404         working properly in the presence of multiple colormaps are
4405         different depth visuals.
4406
4407         * gtkcontainer.c: Massively improved focus traversal using tab and
4408         arrow keys. It now uses the layout of the widgets to determine
4409         where to move the focus to.
4410
4411 Mon Feb 24 03:24:02 1997  Peter Mattis  <pmattis@localhost>
4412
4413         * gtkmenufactory.c: Set the accelerator table field for menus when
4414         they are created.
4415
4416         * gtkmenu.c:
4417         * gtkmenu.h: Added a default accelerator table field to menus so
4418         that runtime modification of accelerator keys in menus can work
4419         better.
4420
4421         * gtkrange.c: 'gtk_range_default_{h,v}motion' had faulty logic for
4422         deciding what to do when the slider was at the edge of the
4423         trough. They previously didn't update the adjustment value event
4424         if the value wasn't what it should be when the slider was at the
4425         edge of the trough.
4426
4427         * gtkviewport.c: 'gtk_viewport_size_allocate' and
4428         'gtk_viewport_adjustment_value_changed' both had the potential for
4429         performing a divide by 0. Checks are now in place to prevent this.
4430
4431         * gtkmenu.c: 'gtk_menu_map' now makes sure the menu lies on screen
4432         if the position function is NULL.
4433
4434         * gtkentry.c: Modified selection handling. 'gtk_delete_selection'
4435         actually removes the X selection now. 'gtk_entry_destroy' removes
4436         the selection as well and relies on the change in "gdk.c" to make
4437         sure the selection event will not be sent to a non-existant
4438         window.
4439
4440         * gdk.c: Selection events are only passed on if the selection
4441         owner is not NULL.
4442
4443         * gtkstyle.c: 'gtk_style_detach' and 'gtk_style_destroy' were not
4444         destroying the black and white gc's.
4445
4446 Sun Feb 23 19:17:56 1997  Peter Mattis  <pmattis@localhost>
4447
4448         * gtkwindow.c: 'gtk_window_size_request' was setting the window
4449         hints. This was also being done in 'gtk_window_map', so the
4450         instance being done in 'gtk_window_size_request' was removed.
4451
4452 Fri Feb 21 01:04:01 1997  Peter Mattis  <pmattis@localhost>
4453
4454         * gtkwidget.c: 'gtk_widget_draw' has to use the widgets allocated
4455         position for the drawing rectangle when the widget has the
4456         GTK_NO_WINDOW flag set.
4457
4458         * gtkwidget.c: In 'gtk_widget_init' the visual and colormap were
4459         being directly compared against 'default_visual' and
4460         'default_colormap' instead of calling
4461         'gtk_widget_get_default_{visual,colormap}'.
4462
4463         * gdkrectangle.c: Amazing! There was a bug in the
4464         'gtk_rectangle_intersect' logic. Its been there for near eternity
4465         and I never noticed.
4466
4467         * gtkpreview.c:
4468         * gtkpreview.h: Created preview widget which allows drawing to an
4469         rgb or grayscale buffer which is automatically displayed on the
4470         screen. Performs dithering as necessary.
4471
4472 Thu Feb 20 20:33:21 1997  Peter Mattis  <pmattis@localhost>
4473
4474         * gdkwindow.c: Modified the logic in 'gdk_window_new' which
4475         determined when to add a window to the WM_COLORMAP_WINDOWS
4476         property.
4477
4478 Wed Feb 19 19:55:29 1997  Peter Mattis  <pmattis@localhost>
4479
4480         * gtkruler.c: 'gtk_ruler_make_pixmap' was always destroying the
4481         old backing store and creating a new one even when it would create
4482         a new one of exactly the same size as the old one.
4483
4484 Tue Feb 18 18:32:10 1997  Peter Mattis  <pmattis@localhost>
4485
4486         * gmem.c: 'g_mem_chunk_alloc' was incorrectly modifying the mem
4487         areas free mem field when reallocating a previously freed
4488         atom. This caused a fairly severe memory leak.
4489
4490         * gtkmenushell.c: 'gtk_menu_shell_button_release' had a bug in the
4491         logic for deciding whether to initiate an X pointer grab or not
4492         when the mouse button was released. It now only initiates a grab
4493         if the mouse is released within an active menu item.
4494
4495 Fri Feb 14 00:57:40 1997  Peter Mattis  <pmattis@localhost>
4496
4497         * gtknotebook.c: Changed the look of notebook tabs slightly.
4498
4499         * gtkentry.c:
4500         * gtkentry.h: Deleting an entry widget which is holding the X
4501         selection presents some difficulties. The X selection must be
4502         released, but the widget can't be destroyed until the
4503         SELECTION_CLEAR event is received that the X server will send in
4504         response to clearing the X selection. There are probably still
4505         bugs in the current method of entry widget deletion when the X
4506         selection is held.
4507
4508         * gtkmain.c: 'gtk_propagate_event' was not properly destroying the
4509         toplevel window when receiving a key press event.
4510
4511         * gtkwidget.c: Setting a widget insensitive did not cause it to
4512         redraw. It now does.
4513
4514 Thu Feb 13 16:59:07 1997  Peter Mattis  <pmattis@localhost>
4515
4516         * gtkviewport.c: 'gtk_viewport_size_allocate' was allocating its
4517         child widget an adjusted allocation. Since the actual scrolling
4518         has handled by a subwindow this caused the child to be double
4519         scrolled. Modified to always set the child allocations origin to
4520         (0, 0).
4521
4522 Wed Feb 12 01:06:48 1997  Peter Mattis  <pmattis@localhost>
4523
4524         * gtkentry.c: Text is now centered vertically. Previously it was
4525         pushed up against the top. This problem was only evident when the
4526         widget was allocated more vertical space than it requested.
4527
4528         * gtkfilesel.c: 'gtk_file_selection_key_press' was previously only
4529         a stub for tab completion. The actual tab completion call had been
4530         left out. (Oops!)
4531
4532 Tue Feb 11 01:43:08 1997  Peter Mattis  <pmattis@localhost>
4533
4534         * gtksignal.c: 'gtk_signal_disconnect_by_data' was going into a
4535         loop and crashing. Bad logic. Fixed.
4536
4537         * gtkmain.c: An idle function which returns FALSE will be removed
4538         from the list of idle functions. This makes the functioning of
4539         idle functions and timeouts more similar.
4540
4541         * gtkentry.c: 'gtk_entry_get_text' now returns an empty string
4542         when the actual text is NULL. This allows "stupid" programs to use
4543         the value returned by 'gtk_entry_get_text' blindly (without
4544         checking to see if its NULL).
4545
4546         * gtkradiobutton.c: Modified 'gtk_radio_button_clicked' so that
4547         'gtk_toggle_button_toggled' is called _after_ the widget state is
4548         changed.
4549
4550         * gtksignal.c:
4551         * gtksignal.h: Added 'gtk_signal_name' which returns the character
4552         string name for a given signal number.
4553
4554         * gtkwidget.c: 'gtk_widget_set_parent' checks to see if the widget
4555         is now "anchored" through the parent chain to a widget which is
4556         GTK_ANCHORED. If it is, then it changes the widgets style using
4557         'gtk_rc_get_style' and recursively performs the same operation on
4558         the widgets children. This is necessary is 'gtk_rc_get_style' only
4559         works properly on "anchored" widgets.
4560
4561         * gtkwindow.c: Modified GTK_WIN_POS logic so that it is only used
4562         immediately after the window has been shown.
4563
4564         * gtkmenu.c: 'gtk_menu_key_press'. Can now change menu item
4565         accelerator keys on the fly. Why? Why not. Cool/useless feature of
4566         the day.
4567
4568         * gtkmenuitem.c: Accelerator key drawing. Somehow that never got
4569         finished. (Oops!)
4570
4571         * gtkdrawingarea.c: 'gtk_drawing_area_size_allocate' was not
4572         actually installed during 'gtk_drawing_area_class_init'. (Oops!)
4573
4574         * gtkframe.c: 'gtk_frame_size_request' fixed size requisition
4575         problem caused by unsigned arithmetic.
4576
4577         * gtkwindow.c: Modified window widget so that it only uses the
4578         widget uposition auxiliary information immediately after it has
4579         been shown. This prevents the annoying bug which can cause a
4580         uposition'ed window to jump back to its original position after
4581         the user moves it.
4582
4583         * gtkwidget.c: Need to ref and unref style in
4584         'gtk_widget_{push,pop}_style' to make sure that a style on the
4585         style stack is not destroyed.
4586
4587         * gtktogglebutton.c: 'gtk_toggle_button_set_state' now calls
4588         gtk_button_clicked to actually change the state of the
4589         button. In this way, radio buttons can now perform the appropriate
4590         actions when the toggle button state is set.
4591
4592 Mon Feb 10 00:27:39 1997  Peter Mattis  <pmattis@localhost>
4593
4594         * gtklist.c: 'gtk_list_select_item' and 'gtk_list_unselect_item'
4595         were casting a GList* variable to a a GtkWidget* variable. Bad bad
4596         bad. (Tim Janik).
4597
4598         * gtksignal.c: Modified 'gtk_signal_connect' and
4599         'gtk_signal_connect_object' to warn when a signal type cannot be
4600         found.
4601
4602 Sun Feb  9 00:15:30 1997  Peter Mattis  <pmattis@localhost>
4603
4604         * gtkoptionmenu.c:
4605         * gtkoptionmenu.h: Changed option menus back to being derived from
4606         buttons. This fixes up some screwiness with their user
4607         interaction.
4608
4609         * gtkwindow.c: Modified key press handler to support focus
4610         traversal.
4611
4612         * gtkcontainer.c:
4613         * gtkcontainer.h: Added default focus traversal back in.
4614
4615 Sat Feb  8 10:44:38 1997  Peter Mattis  <pmattis@localhost>
4616
4617         * gtkviewport.h:
4618         * gtkviewport.c: Massively sped up viewport scrolling. Used to be
4619         reallocating child's size (offset) each time a scrollbar
4620         moved. Now a subwindow is moved. All the children are moved
4621         automatically by moving the subwindow. Much much much faster.
4622
4623 Tue Feb  4 00:20:44 1997  Peter Mattis  <pmattis@localhost>
4624
4625         * gtree.c: Changed 'g_tree_node_search' to use a loop instead of
4626         recursion.
4627
4628 Mon Feb  3 11:30:03 1997  Peter Mattis  <pmattis@localhost>
4629
4630         * gtkbutton.c: Removed 'parent_destroy' global and replaced it
4631         with 'parent_class' global to reflect style used in other
4632         widgets.
4633
4634         * gtknotebook.c: Tab labels were being allocated less than their
4635         requested size.
4636
4637         * gtkrange.c:
4638         * gtkrange.h: Moved the "digits" field of scales into the range
4639         type. The adjustment value for scales is truncated to the number
4640         of visible digits instead of being left untouched.
4641
4642         * gtree.c: Fixed a bug in the AVL tree implementation. Single
4643         rotations were always being performed during insertion. It is
4644         sometimes necessary to perform a double rotation.
4645
4646         * gtklabel.c: Modified 'gtk_label_expose' to only draw the label
4647         when the allocated space is greater than or equal to the requested
4648         space.
4649
4650         * gtklabel.c: Added call to 'gtk_widget_unmap' to
4651         'gtk_label_destroy' in order for the label to redraw correctly
4652         (erase itself) when destroyed.
4653
4654         * gtklabel.c: Added 'gtk_label_unmap' call which erases the labels
4655         allocation when it gets unmapped.
4656
4657         * *.h: Removed a few remaining instances of using "class" as a
4658         parameter name. (Causes problems for C++).
4659
4660 Fri Jan 31 12:26:50 1997  Peter Mattis  <pmattis@localhost>
4661
4662         * gtkcontainer.c: 'gtk_container_enable_resize' needs to call
4663         'gtk_container_check_resize' instead of
4664         'gtk_container_need_resize'.
4665
4666         * gtkwidget.c: 'gtk_real_widget_show' now maps the widget if its
4667         parent is mapped.
4668
4669         * gtkscrolledwindow.c: Fixed size allocation when the scrollbar
4670         policy's are GTK_POLICY_AUTOMATIC. Doing it correctly is harder
4671         than I originally thought.
4672
4673         * gtklist.c: Added 'gtk_list_child_position' to determine the
4674         integer position in a list of a child. Filled in the
4675         'gtk_list_item_select' and 'gtk_list_item_unselect' stubs.
4676
4677 Thu Jan 30 16:08:06 1997  Peter Mattis  <pmattis@localhost>
4678
4679         * gmem.c: Changed the implementation of G_ALLOC_AND_FREE mem
4680         chunks. They used to allocate SIZEOF_VOID_P extra bytes per atom
4681         in order to keep track of which mem area they were allocated
4682         from. Now the mem area is determined by searching through an AVL
4683         tree of the mem areas for a mem chunk and comparing memory
4684         locations. A little slower, but makes G_ALLOC_AND_FREE mem chunks
4685         much more attractive.
4686
4687         * gtree.c: Added an AVL tree implementation to glib.
4688
4689         * gtksignal.c:
4690         * gstring.c: va_arg (arg_list, {char, short}) is
4691         invalid. Arguments passed in a variable argument list are
4692         promoted. ({char, short}->int). Seemed to work ok before under
4693         Linux. Crashed under FreeBSD.
4694
4695 Tue Jan 28 02:27:51 1997  Peter Mattis  <pmattis@localhost>
4696
4697         * gdkwindow.c: Fixed a major slowdown apparent in the file
4698         selection dialog which was caused by calling
4699         'gtk_window_add_colormap_windows' way way way too often.
4700
4701         * *.c: Many widgets called 'gtk_container_need_resize' when
4702         something internal changed which would cause the widget to grow or
4703         shrink. The assumption was made that the widget would change size
4704         and an expose event would be generated. This happens "most" of the
4705         time. But its possible for certain widgets to change size without
4706         generating expose events, or for its internal geometry to change
4707         without a change of size which would mean no expose event was
4708         generated. So a wrapper function called
4709         'gtk_container_check_resize' was created and
4710         'gtk_container_need_resize' was modified so that it returns FALSE
4711         if a resize was actually generated and TRUE if nothing
4712         changed. This allows 'gtk_container_check_resize' to initiate a
4713         'gtk_widget_size_allocate' and 'gtk_widget_draw' to emulate the
4714         expose event.
4715
4716 Sat Jan 25 14:17:44 1997  Peter Mattis  <pmattis@localhost>
4717
4718         * gtkmain.c: Fixed a bug with propogating key press events. The
4719         events were sent 2 times to the toplevel windows which caused the
4720         focus widget to be activated twice when the space bar was pressed.
4721
4722         * */configure.in:
4723         * */Makefile.am: Added support for libtool and removed the old
4724         shared library configuration craziness.
4725
4726 Fri Jan 24 12:59:22 1997  Peter Mattis  <pmattis@localhost>
4727
4728         * gtktext.c:
4729         * gtktext.h: Josh's fixes and additions to the text widget.
4730
4731         * gtkfill.c:
4732         * gtkfill.h: Filler widget useful for filling space in a
4733         table. Can specify a minimum size. Used by the canvas widget.
4734
4735         * gtknotebook.c:
4736         * gtknotebook.h: Made outline of notebook widget.
4737
4738         * gtkcanvas.c:
4739         * gtkcanvas.h: Started canvas widget. A composite of 2 rulers (w/
4740         an origin), 2 scrolllbars. Guides, grids, snap to.
4741
4742 Sun Jan 19 18:26:45 1997  Peter Mattis  <pmattis@localhost>
4743
4744         * gtkdialog.c:
4745         * gtkdialog.h: Created dialog widget which creates a standard
4746         looking dialog with buttons along the button and a separator.
4747
4748         * gtkxid.c: Generalized the window table code for looking up a gdk
4749         window based on an XID to work for any XID and a piece of
4750         data. Can now look up gdk fonts based on their XID.
4751
4752         * gtkruler.c:
4753         * gtkruler.h:
4754         * gtkhruler.c:
4755         * gtkhruler.h:
4756         * gtkvruler.c:
4757         * gtkvruler.h: Started conversion of the ruler widget.
4758
4759         * gtktext.c:
4760         * gtktext.h: Started conversion of the text widget. Scrolling
4761         doesn't work.
4762
4763         * gtkmain.c: Fixed a fairly major bug. The event widget needs to
4764         be in a call for the entire duration of handling an event. Not
4765         just for when the event widget itself is handling the event.
4766
4767         * gtkfilesel.c: Fixed up some bugs with resizing.
4768
4769 Fri Jan 10 14:18:03 1997  Peter Mattis  <pmattis@localhost>
4770
4771         * gtkwidget.c:
4772         * gtkwidget.h:
4773         * gtkentry.c:
4774         * gtkentry.h: Support for selections.
4775
4776         * gdkselection.c:
4777         * gdk.c:
4778         * gdktypes.h:
4779         * gdk.h: Gdk support for X selections. Currently only text
4780         selections are supported.
4781
4782         * gtksignal.c: Fixed a major bug which occurred when destroying an
4783         object. Memory was being written to after it was freed.
4784
4785         * gtkfilesel.c:
4786         * gtkfilesel.h: Hooked up more functionality to the file selection
4787         dialog.
4788
4789 Wed Jan  8 18:13:53 1997  Peter Mattis  <pmattis@localhost>
4790
4791         * gtkfilesel.c:
4792         * gtkfilesel.h: Mostly converted old file selection dialog
4793         widget. The widget is derived from the GtkWindow class and is
4794         quite a bit simpler in the widget code.
4795
4796         * gtkwidget.c: Fixed 'gtk_widget_grab_focus' and
4797         'gtk_widget_grab_default' to check that the toplevel widget is a
4798         type of window (which includes classes derived from windows).
4799
4800 Tue Jan  7 01:12:32 1997  Peter Mattis  <pmattis@localhost>
4801
4802         * gtkwindow.c: Was calling 'gtk_window_resize' twice in a
4803         row...why?
4804
4805         * gtksignal.c:
4806         * gtksignal.h:
4807         * *.c: Changed 'gtk_signal_new' so that the class function that is
4808         called when the signal is emitted can be called either before,
4809         after or both before and after the calling of any signal
4810         handlers.
4811
4812         * gtkobject.c:
4813         * gtkobject.h: Added 'object_data' mechanism for storing data
4814         associated with a character string key in objects. Removed
4815         'user_data' field of objects and changed
4816         'gtk_object_{get,set}_user_data' to use the object data
4817         mechanism. Removed 'handlers' field of objects.
4818
4819         * gtkwidget.c:
4820         * gtkwidget.h:
4821         * gtkwindow.c: Modified aux info mechanism to use object data
4822         mechanism.
4823
4824         * gtksignal.c: Modified signal mechanism to use object data
4825         mechanism instead of 'handlers' field.
4826
4827
4828 Mon Jan  6 15:10:16 1997  Peter Mattis  <pmattis@localhost>
4829
4830         * gtkmenushell.c: Fixed up button press handling so as to conform
4831         more closely to that used by Motif.
4832
4833 Wed Jan  1 21:27:17 1997  Peter Mattis  <pmattis@localhost>
4834
4835         * gtkmenu.c:
4836         * gtkmenu.h:
4837         * gtkmenubar.c:
4838         * gtkmenubar.h:
4839         * gtkmenushell.c:
4840         * gtkmenushell.h: Reorganization of menu-ing code so that code
4841         duplication is reduced. The menu shell now contains most of the
4842         code for menu-ing interaction while menus and menubars simply layout
4843         their child menu items in the appropriate place.
4844
4845 Sun Dec 29 17:48:18 1996  Peter Mattis  <pmattis@localhost>
4846
4847         * gtkmenu.c:
4848         * gtkmenubar.c:
4849         * gtkmenuitem.h:
4850         * gtkmenuitem.c: Modifications so that menu item accelerators and
4851         the submenu indicator are drawn correctly and the correct amount
4852         of space is allocated.
4853
4854 Sat Dec 28 00:32:13 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4855
4856         * gtkmenufactory.h:
4857         * gtkmenufactory.c: Started menu factories as an easy method to
4858         create and manipulate menus.
4859
4860 Fri Dec 27 13:17:34 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4861
4862         * gtkmenu.c:
4863         * gtkmenu.h:
4864         * gtkmenubar.c:
4865         * gtkmenubar.h:
4866         * gtkmenuitem.c:
4867         * gtkmenuitem.h:
4868         * gtkmenushell.c:
4869         * gtkmenushell.h: Implemented basic menu functionality. Menubars
4870         and popup menus work. Submenus work. (Much left to be done).
4871
4872 Wed Dec 18 15:27:05 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4873
4874         * gtktypeutils.h:
4875         * gtktypeutils.c: Added 'gtk_type_from_name' which returns a type
4876         identifier given a type name. Implemented using a second hash
4877         table keyed by type names.
4878
4879         * gtkbutton.c:
4880         * gtktogglebutton.c: Fixed very small messed-up drawing bug when a
4881         button loses its focus.
4882
4883         * gtkwidget.h:
4884         * gtkwidget.c:
4885         * gtkbutton.c:
4886         * gtkwindow.c: Added default button handling. Default buttons now
4887         draw correctly and pressing return or enter causes the default
4888         button (if one exists) to be activated.
4889
4890 Tue Dec 17 19:32:21 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4891
4892         * gtkhscale.c:
4893         * gtkvscale.c: Overrode 'draw_slider' method of ranges in order to
4894         draw the slider of scales with a line in them so as to be closer
4895         to the Motif look-and-feel.
4896
4897         * gtkwindow.c: Modified 'gtk_window_focus_in_event' so that focus
4898         in events are only handled when the window is visible. Fixes a bug
4899         where spurious focus in events get sent when a window is being
4900         hidden.
4901
4902         * gtkwidget.h: Added 'activate_signal' field to the GtkWidgetClass
4903         structure. Added 'gtk_widget_activate' call to emit the activate
4904         signal for a widget if it is non-zero.
4905
4906 Tue Dec 10 15:59:45 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4907
4908         * gtkwidget.c: 'gtk_widget_set_name' oops in strdup'ing the old
4909         "widget->name" instead of the new one we are setting.
4910
4911         * gtkrc.c: 'gtk_rc_widget_path' changed to use
4912         'gtk_widget_get_name' instead of accessing the "widget->name"
4913         field directly.
4914
4915         * gtkwidget.c: Added 'gtk_widget_get_name' function which returns
4916         the widgets name if it exists and the widgets type name if it does
4917         not.
4918
4919         * gtkcheckbutton.c: Added 'gtk_check_button_draw'
4920         function. Modified 'gtk_check_button_expose' to pass an expose
4921         event to child instead of callings its draw function.
4922
4923         * gtkentry.c: 'gtk_entry_draw_text' why was "+1" being added to
4924         the font->ascent to calculate the font position? This was wrong
4925         and caused some characters in fonts to be clipped. (Notably "g").
4926
4927         * gtkentry.c: 'gtk_entry_realize' specify GTK_BUTTON1_MOTION_MASK
4928         and GTK_POINTER_MOTION_HINT_MASK for _both_ windows.
4929
4930         * gtkmain.c: 'gtk_propagate_event' needs to set the GTK_IN_CALL
4931         flag for the object before calling 'gtk_widget_event' and needs to
4932         destroy the object if necessary after 'gtk_widget_event' returns.
4933
4934         * gtkradiobutton.c: 'gtk_radio_button_clicked' needs to call
4935         'gtk_toggle_button_toggled' when the currently active button is
4936         toggled.
4937
4938         * gtkwidget.c: 'gtk_real_widget_hide' needs to call
4939         'gtk_widget_unmap' if the widget is currently mapped.
4940
4941         * gtkwindow.c: Prevent automatic resizing after the user has
4942         specified a new window size. Add 'handling_resize' flag to
4943         windows.
4944
4945         * gtkscrolledwindow.c: Implement the GTK_POLICY_AUTOMATIC
4946         scrollbar policy. Need to connect to the adjustments 'changed'
4947         signal and notice when the scrollbars aren't in use.
4948
4949         * gtkcontainer.c: 'gtk_container_init' must set 'auto_resize' and
4950         'need_resize' fields to TRUE and FALSE respectively.
4951
4952         * gtkwidget.c: 'gtk_widget_set_parent' must all set a widgets state
4953         to its parents state.
4954
4955 Sun Dec  1 01:31:01 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
4956
4957         * Started ChangeLog