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