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