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