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