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