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