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