]> Pileus Git - ~andy/gtk/blob - ChangeLog
Removed the GTK_PIXMAP casts to match Eckehard's new prototypes.
[~andy/gtk] / ChangeLog
1 Mon Jan 19 16:21:00 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
2
3         * gtk/testgtk.c (create_toolbar): Removed the GTK_PIXMAP casts to
4         match Eckehard's new prototypes.
5
6         * gtk/gtktoolbar.h: Switched the order of the tooltip_text and
7         widget parameters to the gtk_toolbar_*_widget() functions, to be
8         friendlier to the C++ bindings.  This is per request of Guillaume
9         Laurent.
10
11 Mon Jan 19 09:16:38 1998  Tim Janik  <timj@psynet.net>
12
13         * gtk/gtkmain.c (gtk_grab_add) (gtk_grab_remove): this is a stack
14           of grabbing widgets now, having unique entries. the GTK_HAS_GRAB
15           flag of a widget is set while it is on the stack (wasn't
16           implemented before).
17
18 Mon Jan 19 00:46:18 1998 MET  Eckehard Berns  <eb@berns.prima.de>
19
20         * gtk/gtktoolbar.[ch]: changed
21           gtk_toolbar_{append,prepend,inser]_item to accept any GtkWidget
22           as icon to allow more flexibility
23
24 Sun Jan 18 16:54:55 CST 1998 Shawn T. Amundson <amundson@gimp.org>
25         * gtk/gtkstatusbar.[ch] added new widget, the statusbar
26
27 Sun Jan 18 09:57:00 1998  Owen Taylor  <owt1@cornell.edu>
28
29         * gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkdrawingarea.c
30           gtk/gtkentry.c gtk/gtkeventbox.c gtk/gtkfixed.c
31           gtk/gtkhandlebox.c gtk/gtkhscale.c gtk/gtkhscrollbar.c
32           gtk/gtkitem.c gtk/gtklist.c gtk/gtkmenushell.c gtk/gtkmisc.c
33           gtk/gtknotebook.c gtk/gtkpaned.c gtk/gtkpreview.c
34           gtk/gtkprogressbar.c gtk/gtkruler.c gtk/gtktext.c gtk/gtktree.c
35           gtk/gtkviewport.c gtk/gtkvscale.c gtk/gtkvscrollbar.c
36           gtk/gtkwidget.{c,h}
37
38         Added gtk_widget_set_parent_window() and 
39         gtk_widget_get_parent_window(). All widgets should use:
40         
41            gtk_widget_get_parent_window() instead of widget->parent->window.
42         
43         Any widget that wants to have children not in the parent window,
44         should use gtk_widget_set_parent() in their realize() and
45         add() routines. 
46
47         CList and Viewport widgets changed to do this. (Viewport
48         widget using code from gtk-fortier-980117-0.patch.)
49
50 Sat Jan 17 23:56:02 1998  Owen Taylor  <owt1@cornell.edu>
51
52         * gtk/gtkobject.c:
53            renamed g_string_equal => g_str_equal
54            renamed g_string_hash => g_str_hash
55
56 Sun Jan 18 03:57:52 1998  Tim Janik  <timj@psynet.net>
57
58         * gtk/gtkframe.c: gtk_*_get_arg() and gtk_*_set_arg() implementations.
59         * gtk/gtkobject.c: new arg `GtkObject::object_signal' similar to
60           `GtkObject::signal'. check for class type in gtk_object_{setv|getv}.
61
62         * gtk/gtkobject.c:
63         * gtk/gtksignal.c:
64         * gtk/gtktypeutils.h:
65         * gtk/gtktypeutils.c: added GTK_TYPE_DOUBLE.
66
67         * gtk/gtkwidget.c: new args `has_focus' and `has_default'.
68         * gtk/gtkwindow.c: new arg `window_position'.
69
70         * gtk/gtkbox.h:
71         * gtk/gtkbox.c: new functions gtk_box_reorder_child,
72         gtk_box_query_child_packing and gtk_box_set_child_packing to
73         allow modification of the child linkage after the widget tree
74         is setup.
75
76         * gtk/gtkbox.c:
77         * gtk/gtklabel.c:
78         * gtk/gtkwindow.c:
79         * gtk/gtkwidget.c:
80         * gtk/gtkobject.c: gtk_*_get_arg() and gtk_*_set_arg() fixes
81           and implementations.
82         
83 Sat Jan 17 18:06:35 1998  Owen Taylor  <owt1@cornell.edu>
84         * gdk/gdk.c (gdk_events_pending): Take putback events into
85           account
86
87         * gdk/gdk.c (gdk_event_free): Handle dropdataavaible memory
88           allocation correctly. (Incompatible change: client must
89           _not_ fre event->data and event->data_type.)
90
91         * gdk/gdk.c (gdk_event_translate): Changed DND dragging
92           so that we don't ungrab pointer when we reenter window
93           to prevent extra Enter/Leave effects which had bad
94           effects.
95           Changed drag zone handling to not send uncessary
96           DragEnter events.
97           Fixed EnterNotify/LeaveNotify handling. (Only pay
98           attention to events on window, don't specify these
99           events to XGrabPointer - that isn't valid, and handle
100           reverse the sense of the handling of LeaveNotify.)
101
102         * gdk/gdkwindow.c (gdk_window_remove_filter): Free removed
103           filter.
104
105         * gtk/gtk.defs (GdkFont): gdk_font_free => gdk_font_unref
106
107         * gtk/gtkmain.{c,h} (gtk_events_pending): new function - apps
108           should use this instead of gdk_events_pending.
109
110         * gtk/gtkvbbox.h: Fixed a duplication in the headers.
111
112         * gtk/testgtk.c (dnd_drop): Don't free the drop data,
113           it belongs to the event.
114
115 Sat Jan 17 13:26:15 CST 1998 Shawn T. Amundson <amundson@gimp.org>
116
117         * gtk/gtkentry.[ch]:  Applied patch from <lupus@lettere.unipd.it> 
118           which adds gtk_entry_set_max_length function.  This was 
119           part of gtk-lupus-970112-0.
120
121         * gtk/testgtk.c: Applied gtk-wille-980113-0 which fixes 
122           a problem with a shaped widget keeping grab forever
123           when double clicked.
124      
125         * docs/gtk.texi: patch from Gregory McLean <gregm@randomc.com>
126           to add some on aspect_frame, button_box, and color_selection
127           widgets
128
129 Sat Jan 17 06:24:05 1998  Tim Janik  <timj@psynet.net>
130
131         * gtk/gtktypeutils.h (gtk_type_get_arg): new function.
132         * gtk/gtkobject.h (gtk_object_query_args): new function.
133         * gtk/gtkobject.h (gtk_object_getv): new function.
134         * gtk/gtkwidget.h (gtk_widget_get): new function.
135
136 Fri Jan 16 00:36:31 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
137
138         * gtk/gtkhandlebox.c: Now we use a GtkWindow of type
139         GTK_WINDOW_DIALOG as a destination for reparenting the child of
140         the handle box.  This solves the problem of having X calls in
141         Gtk.  It also makes the handle box work with KWM, OLVWM, 4Dwm (so
142         I expect mwm to work as well).  I hadn't noticed that previously
143         it only worked with fvwm and twm.
144
145         * gtk/gtkhandlebox.h (struct _GtkHandleBox): Removed the
146         real_parent field, as it is never used.
147         (struct _GtkHandleBox): Added a float_window field.  This is a
148         GtkWindow to where the child is now reparented.
149
150         * gtk/gtkhandlebox.c: Lots of changes all over the place.  Now the
151         widget has two windows.  The steady_window stays put in the parent
152         container, and the widget->window is the one that gets
153         reparented.  Now that window is transient, in compliance with the
154         ICCCM, instead of an OverrideRedirect window.
155
156         We have two windows so that we can properly receive Expose events
157         for the thin 3D line that marks the place where the handlebox is
158         docked.
159
160         * gtk/gtkhandlebox.h (struct _GtkHandleBox): Added fields for
161         dragging (mouse position information).  Added fleur_cursor so that
162         we look pretty.  Added steady_window field; it is the window that
163         actually stays on the parent (widget->window is the one that gets
164         reparented).
165
166 Thu Jan 15 19:03:19 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>
167
168         * gtk/gtkclist.c (gtk_clist_set_column_width): Call
169         gtk_clist_size_allocate_columns every time the column
170         configuration changes. 
171
172 Fri Jan 16 01:55:17 1998  Tim Janik  <timj@psynet.net>
173
174         * improved the gtk_widget_set handling. removed GtkArgFunc and added
175           GtkArgSetFunc and GtkArgGetFunc in _GtkTypeInfo.
176           performance consuming strcmp() calls are avoided in gtk_*_set_arg()
177           now, it is passed an arg_id on which it can switch() now.
178
179         * gtk/gtkobject.h:
180         * gtk/gtkobject.c (gtk_object_add_arg_type): added parameter arg_id.
181
182         * gtk/gtktypeutils.h:
183         * gtk/gtktypeutils.c (gtk_type_set_arg): added parameter arg_id.
184
185         * gtk/gtkobject.c: bug fixes and changes in the assertion system for
186           arg handling. changed g_print() warning calls to real g_warning()s.
187           
188         * changed all *_get_type() functions to initialize GtkTypeInfo
189           correctly with GtkArgSetFunc and GtkArgGetFunc fields.
190
191 Thu Jan 15 00:44:27 PST 1998 Jay Painter <jpaint@serv.net>
192         * gtk/gtkentry.[ch]: Change window cursor to "I"
193         * gtk/gtkpane.[ch]: Cleared up a tiny memory leak from not destroying the
194         cursor
195
196 Tue Jan 13 07:30:02 PST 1998 Jay Painter <jpaint@serv.net>
197         * gtk/gtkclist.c: minor updates
198         * gtk/gtktext.c: you can type in it!  It should also seg-fault *MUCH* less now,
199         because editing was never really turned off.  
200         * gtk/testgtk.c: changed the gtktext test a little
201         * gtk/testgtkrc: removed pixmap background for now, since I intend to break
202         that for a while
203
204 1998-01-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
205
206         * gtk/gtktoolbar.c: (gtk_real_toolbar_style_changed): Fixed
207         child->icon and child->label == NULL bugs.
208
209         * gtk/gtktoolbar.h: Added some new functions:
210                 gtk_toolbar_append_widget()
211                 gtk_toolbar_prepend_widget()
212                 gtk_toolbar_insert_widget()
213         These let the user insert any kind of widget in the toolbar.  Also
214         changed the gtk_toolbar_*_item() functions to return a
215         GtkWidget * so that the user can do things with the toolbar buttons.
216
217         * gtk/gtktoolbar.c: Now the toolbar supports its own buttons and
218         arbitrary widgets as well.  Geometry management has been changed
219         accordingly.  Added gtk_toolbar_remove() function, so container
220         functionality should be complete now.
221
222         * gtk/testgtk.c (create_toolbar): Added an entry widget to test
223         the new toolbar.
224
225         * Most of these changes are adapted from the
226         gtk-lupus-970112-0-patch (should be 970112... :-)
227
228 Sat Jan  9 20:52:00 PST 1998 Ian Main <imain@gimp.org>
229         * gtk/gtkfilesel.c:  Changed a few tests in the path correcting
230                 function.  Hopefully this helps the filesel stability.
231
232 Fri Jan  8 00:55:00 PST 1998 Jay Painter <jpaint@serv.net>
233         * gtk/gtkclist.c:
234         * gtk/gtkclist.h: modifications to GtkCList so it's look and 
235         feel is the same as scrolled windows.
236
237 Thu Jan  8 17:56:09 PST 1998 Manish Singh <yosh@gimp.org>
238
239         * glib/gscanner.c
240         * gtk/gtclist.c
241         * config.h.in
242         * configure.in: added test for inline and put the inline keywords
243         back in
244
245         * gtk/gtklabel.c: made the prototypes match the definitions
246
247         * gtk/fnmatch.c: minor change to make sure the right config.h
248         gets included
249         
250 1998-01-07  Elliot Lee  <sopwith@localhost.cs.cuc.edu>
251
252         * gtk/gtkcombobox.c gtk/gtkcombobox.h: New widget, GtkComboBox
253         * gdk/gdkwindow.c: Make gdk_window_init set the width &
254                 height of gdk_root_parent
255
256 Wed Jan  7 18:06:17 PST 1998 Manish Singh <yosh@gimp.org>
257
258         * gtk/gtkentry.c:
259         * gtk/gtkentry.h: applied patch to use a backing pixmap for
260         drawing, which removes the bad flickering. (gtk-wille-980106-0)
261
262 Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
263
264         * glib/glib.h
265         * glib/glist.c
266         * glib/gslist.c
267         * glib/testglib.c: Added g_[s]list_insert_sorted function
268         and appropriate tests in testglib
269
270 Tue Jan  6 17:09:46 1998  Owen Taylor  <owt1@cornell.edu>
271         * gtk/gtknotebook.h gtk/gtknotebook.c
272            Added "switch_page" signal. (gtk-hamann_jeske-971212-0.patch)
273
274 Tue Jan  6 17:07:29 1998  Owen Taylor  <owt1@cornell.edu>
275         * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c : 
276            Fixed problem with deleting while text is selected.
277            Changed behavior so that motion keys remove selection.
278            Added new gtk_entry_select_region () call.
279
280 Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
281         * glib/glib.h: Changed guint32 -> guint for bitfields. 
282           (Bitfields must be int or unsigned int?)
283
284 Sat Jan  3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
285         * gtk/testgtk.c: better CList test
286
287 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
288         * GTK+ 0.99.2 Released
289
290 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
291
292         * gtk/gtkscrolledwindow.c: initialize scrollbar_spacing
293           (gtk-fortier-980103-0)
294
295 Sat Jan  3 10:15:08 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
296
297         * configure.in: fixed a typo (no_xext_lib, not no_ext_lib).
298
299 Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
300
301         * gtk/gtkentry.c:
302         * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
303         fixed-length entry fields (gtk_entry_new_with_max_length)
304         
305 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
306         * reverted glibconfig.h and glib.h files back to the
307         way they were before my ugly hack
308         * gtk/gtkclist.c:
309         * glib/gscanner.c: removed inlines from clist and gscanner
310
311 Fri Jan  2 23:55:24 CST 1998 Shawn T. Amundson <amundson@gimp.org>
312
313         * Several portability fixes from Michael Callahan 
314           <callahan@xmission.com> including adding in missing
315           #includes and adding void in function prototypes.
316
317 Fri Jan  2 19:28:52 1988 Jay Painter <jpaint@serv.net>
318         * gtk/gtkclist.h:
319         * gtk/gtkclist.c:
320         * gtk/gtk.h:
321         * gtk/testgtk.c:
322         * gtk/testgtkrc: added GtkCList, column list widget, and a small test
323         to testgtk
324
325 Fri Jan  2 15:42:51 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
326
327         * gtk/gtkmain.c (gtk_main_iteration): Make the big switch handle
328         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.
329
330 Fri Jan  2 12:07:33 CST 1998 Shawn T. Amundson <amundson@gimp.org>
331
332         * gtk/gtkviewport.c: corrects a small resize bug in the 
333           viewport widget.  The viewport widget provides a _set_shadow 
334           function to draw its shadows. But if GTK_SHADOW_NONE is sent 
335           to this function, the viewport isn't resized correctly (it's 
336           still considered as a shadowed widget).  (gtk-fortier-971213-0)
337
338         * gtk/gtknotebook.c: this patch fixes the redraw problems of 
339           notebook tabs, without using gdk_gc_set_clip_rectangle.
340           (gtk-hamann_jeske-971218-0)
341  
342         * add gtk_widget_(show/hide)_all (Stefan Wille)
343           (gtk-wille-301297-0)  Patch for testgtk not included
344           because it did not patch clean.  
345
346 Thu Jan  1 21:21:56 PST 1998 Manish Singh <yosh@gimp.org>
347
348         * configure.in: fixed up the xinput test
349         * Miscellaneous portability fixes.
350
351 Mon Dec 29 22:05:45 1997  Miguel de Icaza  <miguel@nuclecu.unam.mx>
352
353         * gdk/gdkgc.c (gdk_gc_copy): New function, used to copy the values
354         from one gc to another gc.
355
356 Sat Dec 27 20:39:99 1997  Elliot Lee <sopwith@redhat.com>
357         * gtk/gtkhandlebox.c: It mostly works now, please test it and make
358         fixes as needed.
359
360 Fri Dec 26 11:20:03 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
361
362         * gtk/Makefile.am (gtkinclude_HEADERS): added gtkhandlebox.c
363
364         * gtk/gtkhandlebox.c (gtk_handle_box_reparent): eliminated a
365         compiler warning caused by not casting an argument in a debugging
366         message. :)
367
368 Fri Dec 26 02:59:39 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
369
370         * gdk/gdktypes.h gdk/gdk.c gdk/gdkwindow.c: Added new
371         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.  They are needed
372         for Alan Cox's TV widget and for GtkXmHTML.  Only missing with
373         respect to their Xlib counterparts are the major_code and
374         minor_code fields from the GdkEventNoExpose structure.  Does
375         anyone need them?
376
377 Tue Dec 23 03:03:17 1997  Tim Janik  <timj@psynet.net>
378
379         * gtk/gtkscrolledwindow.c (SCROLLBAR_SPACING): this macro computes
380         the spacing from klass->scrollbar_spacing now. adapted all functions
381         that used this macro (based on a patch from Patrice Fortier).
382         * gtk/gtkscrolledwindow.h (struct _GtkScrolledWindowClass): added
383         scrollbar_spacing to substitute a define (patch from Patrice Fortier).
384
385         * gtk/gtkrc.h (gtk_rc_parse_string): new function.
386         * gtk/gtkrc.c: many functions adapted to use GScanner for scanning.
387         (gtk_rc_parse): use gtk_rc_parse_any for parsing.
388         (gtk_rc_parse_string): new function to support parsing from
389         strings, just calls gtk_rc_parse_any.
390         (gtk_rc_parse_any): new function using GScanner as lexer.
391
392 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
393
394         * GDK support for 1 bpp depth screens.
395
396 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
397
398         * Changes from Bolliet Jerome <bolliet@in2p3.fr> to gtktree.
399           Corrects a bug in gtk_tree_remove_items and gtk_tree_item_destroy.
400           Adds the possibility to connect all items by lines. This is the 
401           default now.  You can overide this with the function 
402           gtk_tree_set_view_line which take a tree and a boolean.
403
404 Thu Dec 18 23:26:49 CST 1997 Shawn T. Amundson <amundson@gimp.org>
405
406         * removed configure, Makefile.in, and aclocal.m4 files
407
408 Wed Dec 17 23:36:57 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
409
410         * gdk/gdkcc.c (gdk_color_context_free): Caught a stray
411         gdk_colormap_destroy that Owen missed (and Shawn found).
412
413 Wed Dec 17 20:59:52 1997  Owen Taylor  <owt1@cornell.edu>
414         * gdk/gdkinput.c gdk/gdkinput.h gdk/gdkinputcommon.h
415           gdk/gdkinputxfree.h gdk/gdkinputgxi.h gdk/gdkinputnone.h.
416           gtk/gtkinputdialog.h gtk/testinput.c
417         Added support for device keys mapping to key events.
418         Fixed various bugs.
419
420 Wed Dec 17 20:53:00 1997  Owen Taylor  <owt1@cornell.edu>
421         * gdk/gdk.c gdk/gdk.h: Changed gdk_get_event to remove
422         predicate filtering, and to allocate the events.
423         Added gdk_event_get_graphics_expose for scroll handling.
424         * gtk/gtkmain.c gtk/gtktext.c:
425         Use above changes. Interface change for gtk_get_current_event.
426         * testgtk.c
427         Added another test to test new scrolling mechanism.s
428         * gdk/gdk.c gdk/gdk.h gdk/gdkwindow.c gdk/gdkprivate.h: 
429         Added beginnings of event filtering. Removed obsolte
430         OtherEvent mechanism.
431         * gdk/gdk.c: Combined FocusIn/FocusOut events. Now ignore
432         focus events which aren't for window itself. (Only pay
433         attention to NotifyAncestor/Inferior/Nonlinear)
434         * gtk/gtkwindow.c gtk/gtkwindow.h: Virtualize set_focus 
435         function so it can be overridden.
436         * gtk/gtkwidget.c: Reparenting should now work for
437         containers. (Guillaume Laurent <glaurent@worldnet.fr>)
438         * gdk/gdkgc.c: By default, GraphicsExpose events are now
439         _not_ generated.
440         * gtk/testselection.c: Suppress a warning, fix a bug?
441
442 Wed Dec 17 20:47:42 1997  Owen Taylor  <owt1@cornell.edu>
443         * configure.in, glib/configure.in: 
444         Remember if user set CFLAGS, so we can set it for --enable-debug
445           only if they didn't. 
446         Added missing quotes. )Raphael.Quinet@eed.ericsson.se)
447         Only use -DX_LOCALE if setlocale doesn't work.
448         * gdk/gdki18n.h: Simplified system for trying to get iswalnum() -
449         include <wctype.h> if present, otherwise <wchar.h> if present.
450         
451 Wed Dec 17 21:09:12 1997  Owen Taylor  <owt1@cornell.edu>
452   1997-10-13  Marius Vollmer  <mvo@zagadka.ping.de>
453
454     Bug fixes:
455         
456         * gtksignal.c (gtk_params_get): Initialize the GtkArg even when
457         the return type is GTK_TYPE_NONE.
458
459     Revamped reference counting, see the file REFCOUNTING.
460
461         * Makefile.am (EXTRA_DIST): Added REFCOUNTING.
462         * REFCOUNTING: New file.
463
464         * gdk/gdk.c (received_destroy_notify, window_to_destroy): Removed.
465         (gdk_event_get): Code that deals with the above removed.
466         (gdk_event_translate): Abort when the GdkWindow for the XEvent
467         cannot be found.  For DestroyNotify: Do not use
468         receive_destroy_notify and window_to_destroy but call
469         gdk_window_destroy_notify.
470
471         * gdk/gdk.h: (gdk_pixmap_destroy, gdk_colormap_destroy,
472         gdk_fontset_free): Removed.
473         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
474         gdk_bitmap_unref): New prototypes.
475         (gdk_font_free, gdk_font_unref): Renamed gdk_font_free to
476         gdk_font_unref.
477
478         * gdk/gdkcolor.c (gdk_colormap_real_destroy): Made static.
479         (gdk_colormap_destroy): Removed.
480
481         * gdk/gdkfont.c (gdk_font_free): Renamed to gdk_font_unref.
482         Handle fontsets as well.
483         (gdk_fontset_free): Removed.
484
485         * gdk/gdkpixmap.c (gdk_pixmap_destroy): Removed.
486         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
487         gdk_bitmap_ref): New functions.
488
489         * gdk/gdkwindow.c: (gdk_window_new, gdk_window_foreign_new): Call
490         gdk_window_ref for the pointer in the xid table.
491         (gdk_window_internal_destroy): Renamed from gdk_window_destroy.
492         New parameter XDESTROY that takes the role of `destroyed==2';
493         removed special casing of `destroyed==2'.  Free dnd_data only when
494         really destroying.  Do not touch the ref_count.  Calling
495         gdk_window_destroy on a Pixmap is now a real error, not just a
496         warning.
497         (gdk_window_destroy): Just call gdk_window_internal_destroy and
498         gdk_window_unref, as advertised in REFCOUNTING.
499         (gdk_window_destroy_notify): New function.
500         (gdk_window_unref): Print a warning when the ref_count is zero and
501         the window has not been destroyed.  Should never happen.  Do not
502         destroy the window, just free the memory.
503         
504         * gdk/gdkprivate.h (gdk_window_real_destroy): Removed.
505
506         * gtk/gtkaccelerator.c (gtk_accelerator_table_destroy): Removed.
507         (gtk_accelerator_table_unref): Do the job of
508         gtk_accelerator_table_destroy directly.
509         (gtk_accelerator_table_init): Init ref_count with 1.
510
511         * gtk/gtkaccelerator.h (gtk_accelerator_table_destroy): Removed.
512
513         * gtk/gtkcurve.c, gtk/gtkgamma.c: Replaced gdk_pixmap_destroy with
514         gdk_pixmap_unref.
515
516         * gtk/gtkhscrollbar.c (gtk_hscrollbar_realize): Reflect the fact
517         that the widget->window is used as the range->trough in the
518         ref_count.
519         * gtk/gtkvscrollbar.c (gtk_vscrollbar_realize): Likewise.
520
521         * gtk/gtkmain.c (gtk_main_iteration): Protect event_widget with
522         ref/unref while handling the GDK_DELETE and GDK_DESTROY events.
523
524         * gtk/gtkmenu.c (gtk_menu_set_accelerator_table): Don't do
525         anything when the new accel_table is the old one.
526
527         * gtk/gtkmenufactory.c (gtk_menu_factory_destroy): Unref
528         factory->table if there is one.
529         (gtk_menu_factory_create, gtk_menu_factory_create_widget): Don't
530         ref newly created accel_table, it is now created with a ref_count
531         of 1.
532
533         * gtk/gtkmenuitem.c (gtk_menu_item_set_submenu):  Don't do
534         anything when the new submenu is the old one.
535
536         * gtk/gtkpixmap.c (gtk_pixmap_destroy): New static function.
537         (parent_class): New global variable.
538         (gtk_pixmap_init): Set object_class->destroy.
539         (gtk_pixmap_set): Don't do anything about the pixmap when the new
540         pixmap is the old one.  Likewise for the mask.
541
542         * gtk/gtkprogressbar.c, gtk/gtkruler.c: Replaced
543         gdk_pixmap_destroy with gdk_pixmap_unref.
544
545         * gtk/gtkrange.c (gtk_range_set_adjustment):  Don't do
546         anything when the new adjustment is the old one.
547
548         * gtk/gtkrc.c: Replaced gdk_fontset_free/gdk_font_free with
549         gdk_font_unref.
550
551         * gtk/gtkstyle.c (gtk_style_new): Initialize ref_count with 1.
552         (gtk_styles_init): Replace gtk_style_destroy with gtk_style_unref
553         for the cache.
554         (gtk_style_new_from_key): Ref style before returning it when it
555         has not been newly created.
556         (gtk_style_destroy): Don't look at the ref_count, destroy always.
557         Free style-font with gdk_font_unref, regardless of font->type.
558
559         * gtk/gtktooltips.c (gtk_tooltips_real_destroy): Renamed from
560         gtk_tooltips_destroy and made static.  Don't look at ref_count,
561         destroy always.
562         (gtk_tooltips_new): Initialize ref_count with 1.
563         (gtk_tooltips_unref): Don't look at pending_destroy, destroy
564         always when ref_count is 0.
565         (gtk_tooltios_widget_remove): Use gtk_tooltips_destroy_data
566         instead of hand-coded destruction.
567
568         * gtk/gtktooltips.h (GtkTooltips::pending_destroy): Removed.
569         (gtk_tooltips_destroy): Removed.
570
571         * gtk/gtkviewport.c (gtk_viewport_set_hadjustment,
572         gtk_viewport_set_vadjustment): Don't do anything when the new
573         adjustment is the old one.
574
575         * gtk/gtkwidget.c (gtk_widget_reparent): Protect the reparented
576         widget with ref/unref while moving it.
577         (gtk_widget_set_default_colormap): Replace gdk_colormap_destroy
578         with the proper ref/unref spell.
579         (gtk_widget_set_default_style): Don't do anything when the new
580         style is the old one.
581
582         * gtk/testinput.c (configure_event): Replaced gdk_pixmap_destroy
583         with gdk_pixmap_unref.
584         
585     More Interpreter support:
586
587         * gdk/gdktypes.h (GdkDestroyNotify): New type.
588         
589         * gdk/gdk.c (struct _GdkInput::destroy): New field.
590         (gdk_input_add_interp): New version of gdk_input_add that follows
591         the interp conventions for callbacks.
592         (gdk_input_add): Implement in terms of gdk_input_add_interp.
593         (gdk_input_remove): Call destroy notify when appropriate.
594
595         * gdk/gdk.h (gdk_input_add_interp): New prototype.
596
597         * gtk.defs: Updated from guile-gtk.
598         * gtk/gtktypebuiltins.c, gtk/gtktypebuiltins.h: Regenerated.
599         
600         * gtk/gtkmain.c (GtkInputFunction, struct _GtkInputFunction): New
601         types.
602         (gtk_invoke_input_function, gtk_destroy_input_function,
603         gtk_input_add_interp, gtk_input_remove): New functions.
604
605 Wed Dec 17 12:00:48 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
606
607         * gdk/gdkcc.c: New GdkColorContext functionality!  This should
608         eventually solve all of our color management problems.  Gdk still
609         needs to be modified to support visuals with less than 8 bpp.  Gtk
610         needs to be modified just a bit.
611
612 Wed Dec 17 13:56:17 PST 1997 Manish Singh <yosh@gimp.org>
613
614         * a small patch by Lauri Alanko that allows Gimp to pass
615         on --display to it's plugins.
616
617 Sun Dec 14 00:08:00 PST 1997 Raph Levien <raph@acm.org>
618         * a minor patch to make the file selection dialog not always
619         select the first file in a directory
620
621 Sat Dec 13 Jay Painter <jpaint@serv.net>
622         * gtk/gtkvscrollbar.c: added focus flag so vertical scrollbars
623         can get keyboard focus
624
625 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
626         * Removed warning when XGetWindowProperty fails - this can
627           be the desired behavior.
628         
629 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
630         * gdk/makecursor* gdk/makekeysym* gdk/Makefile.am
631           Removed old sed/awk code and replaced it with a 
632           spiffier awk-only code from Art_Haas@dril-quip.com
633         
634 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
635         * gdk/gdkgc.c: If gdk_gc_set_clip_rectangle is called with
636           rectangle = NULL, remove clip mask, instead of segfaulting.
637         * gtk/gtknotebook.c: Set clip mask before redrawing, so that
638           we don't overwrite things outside of exposed areas when
639           drawing them shadows. (Based on a patch from 
640           Lars Hamann <hamann@braunschweig.netsurf.de>, and Stefan Jeske)
641         
642 Thu Dec 11 10:57:29 CST 1997 Shawn T. Amundson <amundson@gimp.org>
643         * Change to ltconfig to remove -z text for Solaris x86  
644         * Change to configure stuff so compile works on Solaris x86
645         * Added gdk/gdkkeysyms.h and gdk/gdkcursors.h back into the tree
646
647 Thu Dec 11 09:44:03 1997  Tim Janik  <timj@psynet.net>
648
649         * gdk.c: added gdk_progclass==NULL patch by Oliver Graf <ograf@fga.de>.
650
651 Wed Dec 10 23:40:03 1997  Tim Janik  <timj@psynet.net>
652
653         * fixed some compiler errors, because g_return_if_fail() wasn't used
654         with a trailing semicolon in some places. fixed few other warnings also.
655
656 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
657         * configure changes: (configure.in, glib/configure.in)
658         Change test ! `...` to test -z `...`
659           (Harald Meland <Harald.Meland@usit.uio.no>)
660         Change $gtk_cv_x_locale to $need_x_locale so it isn't cached.
661         With --enable_debug, don't touch CFLAGS if they're already set.
662
663 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
664         * gdk/gdkpixmap.c: don't use gdk_black/white for pixmap mask.
665          From Patrice Fortier <Patrice.Fortier@aquarel.fr>
666
667 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
668         * gtk/testselection.c (selection_received): foreward -> forward.
669         * gtk/gtktext.c (gtk_text_forward_delete): Renamed; changed all
670         callers.
671         * gtk/gtktext.h: foreward -> forward.
672           From Tom Tromey  <tromey@cygnus.com>
673
674 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
675         * gtk/gtkimage.c: Fixes to expose() handler
676           From Rob Browning <rlb@cs.utexas.edu>
677         
678 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
679         * gtk/gtklabel.h:
680         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
681         is used by the new gtktooltips.c.
682         * gtk/testgtk.c (create_labels, create_main_window): A new test
683         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
684
685 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
686         * gtk/gtklabel.h:
687         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
688         is used by the new gtktooltips.c.
689         * gtk/testgtk.c (create_labels, create_main_window): A new test
690         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
691
692 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
693         * gdk/gdk.c, gdk/gdk.h, gdk/gdktypes.h: 
694           Remove dependencies of interfaces on USE_XIM
695         * gdki18n.h: Attempt to make wchar handling more portable
696         * gdkwindow.c: Include config.h. (For gdkinput.h)
697         
698 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
699         * gtk/gtkentry.c, gtk/gtkentry.h: 
700            Fixed word motion
701            Added cut/copy/paste via X clipboard
702            Generalized extending selection using <Shift> to work with all types
703              of motion, not just arrow keys.
704            Don't change length of GtkEntry structure because of USE_XIM
705
706 Sun Dec  7 03:19:02 1997  Tim Janik  <timj@psynet.net>
707
708         * gtkfilesel.c: applied jamesa-971010-0 for stability.
709         * gtkrc.c: applied jamesa-971010-2 for a small optimization.
710         * gtkcheckmenuitem.h:
711         * gtkcheckmenuitem.c:
712         * gtkradiomenuitem.c:
713         * testgtk.c: applied johannes-971113-0 which adds
714         gtk_check_menu_item_set_show_toggle() to change the way check
715         menu items and radio menu items look.
716
717 Fri Dec 5 1997 Elliot Lee <sopwith@cuc.edu>
718         * gdk/gdk.c: clean up warnings, remove some un-ifdef'd debugging
719         printing, DnD is Bug Free now, etc.
720         * gtk/gtkcolorsel.c: fix DnD support.
721         * gtk/gtkmain.c: DnD events go to the original window even if
722         there is a grab - if I drop on a window the data had better go
723         to it and not some other window :)
724         * gtk/testgtk.c: Replace (GtkSignalFunc) with GTK_SIGNAL_FUNC(),
725         and do a nicer DnD demo.
726         * My very first ChangeLog entry, seeing as people have
727         a fixation on them (what's wrong with "rcs2log" output?)
728
729 Thu Dec 4 1997 Owen Taylor <owt1@cornell.edu>
730         * gdk/gdkgc.c: Ignore gdk_gc_set_font if font is a fontset.
731
732 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
733         * gtk/gtkstyle.c: fixed a problem introduced recently in 
734         gtk_style_detach witch crashed script_fu.
735
736 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
737         * gdk/Makefile.am: add a dependence for $(DEP_FILES) on
738         $(BUILT_SOURCES) to work around automake problem
739         
740 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
741         * configure.in glib/configure.in glib/glibconfig.h.in gdk/gdk.h
742         gdk/gdk18n.h gdk.c gtk/gtkentry.c: Try to handle variations in 
743         <wchar.h> headers gracefully. Do not automatically include 
744         gdk/gdki18n.h.
745         
746 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
747         * gtk/gtkoptionmenu.c: fixed a old bug where if you set a new 
748         menu for a optionmenu the widget would not get positioned correctly
749         inside of the optionmenu.
750
751 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
752         * gdk/gdkpixmap.c: Include unistd.h to get SEEK_END
753         for SunOS (john_johns@credence.com)
754         
755 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
756         * gtk+/fnmatch.c: Define _GNU_SOURCE before including
757         fnmatch.h to make sure all constants are defined.
758         (Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp>)
759         
760 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
761         * configure.in, glib/configure.in: Make the logic to add -Wall,
762         -ansi, -pedantic for GCC operational.
763
764 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
765         * glib/glib.h, glib/configure.in. Disabled gldouble, since
766         it wasn't used anywhere and caused portability problems
767
768 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
769         * glib/glib.h, glib/configure.in, glib/glibconfig.h.in: Added a
770         g_memmove function which is simply memmove if it exists, otherwise
771         bcopy.(Should really check if bcopy has the correct semantics, and
772         create our own memmove is necessary) 
773         * glib/gstring.c, glib/garray.c, gtk/gtktext.c:
774         memmove => g_memmove
775         
776 Sun Nov 30 1997 Jay Painter <jpaint@serv.net>
777         * gtk/gtknotebook.c: fixed a old bug where all the notebook pages
778         which were not displayed when the notebook widget was realized were
779         never size allocated when they were realized.
780
781 Thr Nov 28 1997 Jay Painter <jpaint@serv.net>
782         * gtk/gtklist.h: removed GtkSelectionMode
783         * gtk/gtkenums.h: added GtkSelectionMode
784
785 Fri Nov 28 01:26:55 1997  Tim Janik  <timj@psynet.net>
786
787         * gtk/gtkwindow.c (gtk_window_show): propagate a size_request before
788         the initial window creations (prevents windows with size of -1x-1).
789
790         * gtk/gtkmain.c (gtk_main_level): new function to determine
791         the current recursion level of gtkmain().
792         (gtk_true) (gtk_false): new functions implemented as a convenience
793         for signals that just need a handler with the appropriate return value.
794
795 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
796         gdk.c: Fix so that "other_events" are actually generated
797
798 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
799         Patches to support internationalized input by:
800           Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
801           TANAKA Shinya <shinya@race.u-tokyo.ac.jp>
802
803         From the README:
804         
805         Feature:
806           Followings are the main feature of this patch.
807             * support XIM protocol.
808             * GtkEntry widget support Over-The-Spot and Root style input.
809             * input style is configurable by command-line option.
810
811         Furthermore, this patch includes several changes which are useful 
812           without XIM too.
813         
814             * copy and paste with other clients by compound text.
815             * Window title can be specified by multi byte string.
816
817         configure.in: 
818           Added --with-locale and --enable-xim options
819         gdk/Makefile.am:
820         gdk/gdki18n.h [new file]
821           Multibyte string manipulation functions
822         gdk/gdk.c
823         gdk/gdk.h
824         gdk/gdkprivate.h
825           Input method and context handling functions
826           Command line options to control input methods
827           Changes to KeyPress handling to support input methods
828           Fixes to not return events for destroyed windows
829         gdk/gdkselection.c
830           Text property handling functions
831         gdk/gdkwindow.c
832           Set window title by multibyte string
833         gtk/gtkentry.c
834           Support for using an input context for XIM input.
835           Cut and paste using compound text.
836           Improvements to pasting (no longer replace the active selection
837             with itself OWT)
838         gtk/gtkselection.c
839           fix to send selection clear events to the right owner
840         gtk/testgtkrc
841           Added a default fontset that will allow international characters
842         INSTALL
843           Some rudimentary documentation about the new configuration options.
844         
845 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
846         gtk/gtkaspectframe.c:
847         Some minor improvements to rounding in aspectframes.
848         Make sure that child allocation is always >= 0
849         Always trigger size allocation with gtk_widget_queue_resize
850         to prevent calling size_allocate before allocation done.
851
852 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
853         gtk/gtkframe.c:
854         Changed tests for drawability to GTK_WIDGET_DRAWABLE
855         Always trigger size allocation with gtk_widget_queue_resize
856         to prevent calling size_allocate before allocation done.
857
858 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
859         gtk-dairiki-971117-2.patch
860         gtk/gtkaspectframe.c (gtk_aspect_frame_size_allocate): When
861         computing new dimensions of the subwidget, round to nearest
862         integer rather than truncating.
863
864 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
865         gtk-dairiki-971117-1.patch
866         * gtk/gtkvruler.c (gtk_vruler_draw_ticks):
867         * gtk/gtkhruler.c (gtk_hruler_draw_ticks): Ensure that subticks
868         always are drawn when they should be (sometimes they were getting
869         drawn with zero length --- invisible).  Also clear rectangle
870         behind text labels to ensure they don't touch or overlap ticks. 
871
872 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
873         * gtk/gtkaspectframe.c (gtk_aspect_frame_set): 
874         gtk-dairiki-971117-0.patch
875         Clear window when aspect ratio or alignment is changed.
876
877 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
878         * gtk/gtkobject.h: fixed GTK_OBJECT_NSIGNALS macro
879
880 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
881         * gtk/gtklabel.h: modified gtklabel to clip its drawing to
882         its given area, now it will always draw in the area it's 
883         been given and clip accordingly.  Note: this may cause
884         the a label to disappear on widgets which don't give their
885         child labels proper area!
886
887 Mon, 17 Nov 1997 Michael K. Johnson <johnsonm@redhat.com>
888         * gtkwidget.c: gtk_set_style_recurse was not allowing updated
889         widget names to cause new styles to be applied.
890         * gtkentry.c gtkentry.h: The entry widget now has invisible
891         attribute.  The cursor does not move to show you typing; this
892         is an intentional design decision but I'm not so attached to it
893         that I'll reverse any patches that change it...  :-)
894
895         This patch is a modified version of a patch to which I have
896         lost the attribution.  I modified it by packing the "visible"
897         flag into the structure more tightly (without damaging backwards
898         compatibility on sane systems) and by allowing entry timers
899         to run.
900
901 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
902         * gtkviewport.c: Raph's Mon, 10 Nov 1997 patch to gtk-list 
903         to fix some viewport bugs
904
905 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
906         * gtk/gtkwidget.c: gtk-ajaborsk-971016-2
907         A little patch again to prevent user to use gtk_widget_set_events()
908         when a widget is already realized.
909         In this case, the gtk_widget_set_events() doesn't work.
910
911 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
912         * gtk/gtkwindow.c: gtk-ajaborsk-971016-1
913         This small patch correct position for GTK_WIN_POS_CENTER and
914         GTK_WIN_POS_MOUSE GtkWindow positions.
915
916 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
917         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
918         * gdk/gdk.h: header for above
919
920 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
921         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
922         * gdk/gdk.h: header for above
923
924 Wed Nov 12 1997 Jay Painter <jpaint@serv.net>
925         * gdk/gdkpixmap.c: Patrice Fortier's patch for transparent pixmaps.
926         * gdk/gdk.h:
927           gdk/gdkdraw.c: Patrice Fortier's patch to add pixel draw function.
928
929 Sun Nov  9 1997 Jay Painter <jpaint@serv.net>
930         * Fixed problems with makefiles relating to the bug
931         which required glib to be installed.
932         * Fixed makefiles to incluce the xpm's in gtk+/gtk needed
933         for testgtk.
934         * Updated gtk+ and gtk+/glib to libtool-1.0f
935
936 Fri Nov  7 1997 Jay Painter <jpaint@serv.net>
937         * gtk/gtktext.c: return char_widths[ch & 0xff]; in line 2152
938
939 Thr Nov  5 1997 Jay Painter <jpaint@serv.net>
940         * gtk/testgtk.c: added drag and drop test, removed the test hack
941         from the button test
942
943 Tue Nov  4 08:28:57 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
944
945         * gtk/gtkmain.c (gtk_handle_idle): Patch from David Mosberger to
946         avoid crashes when handling idle function (this manifested itself
947         in the Umax and Microtek backends in SANE.
948
949 Sun Nov  2 07:34:56 1997  Tim Janik  <timj@psynet.net>
950
951         * gtk/gtkfilesel.c: Small fixes about a segmentation viaolation
952         cause by a double click in the directoy list (introduced by my
953         previous changes).
954         
955         * gtk/gtklist.c: Small fixes to gtk_list_add() and gtk_list_remove().
956         
957         * gtk/testgtk.c (list_add): Applied Stefan Wille's patch to make this
958         function do something ;).
959
960 Fri Oct 31 Jay Painter <jpaint@serv.net>
961         *gdk/gdk.c: reformatted DND code for GTK coding standards
962         *gdk/gdkwindow.c: changed memory allocation for DND to q_mem stuff
963
964 Thu Oct 30 Jay Painter <jpaint@serv.net>
965         * gdk/gdkwindow.c: 
966         * gdk/gdk/gdk.h:
967         * gtk/gtkwidget.h:
968         * gtk/gtkwidget.c: Applied Stephan Willie's shaped window patch
969
970         * gdk/gdkwindow: 
971         * gdk/gdk.h:
972         * gtk/gtkwidget.h:
973         * gtk/gtkwidget.c: reformatted the DND code to conform to GTK
974                 coding standards
975
976         * gtk/testgtk: massive fixes, SW's shaped window example
977
978 Thu Oct 30 07:33:27 1997  Tim Janik  <timj@psynet.net>
979
980         * gtk/gtklistitem.c (gtk_real_list_item_toggle): applied Johannes
981         Keukelaar's <johannes@nada.kth.se> patch for keyboard support in
982         GtkList widgets.
983
984         * gtk/gtkfilesel.c: adapted dir and file list selection
985         behaviour to deal with keyboard selections. this is a little
986         bit tricky: in the dir list it just changes the entrys value on a one
987         button press. but on a keyboard selection via gtk_widget_activate() it
988         does a new population (likewise on a double click) as this seems more
989         obvious.
990
991 1997-10-25  Marius Vollmer  <mvo@zagadka.ping.de>
992
993         * gdk/gdkcolor.c (gdk_colormap_get_system): Initialize
994         private->ref_count.
995
996 Wed Oct 22 09:47:43 1997  Tim Janik  <timj@psynet.net>
997
998         * gtk/gtkwindow.c (gtk_window_key_release_event): Fixed a stupid
999         bug that caused the key_release_event to be propagated twice.
1000
1001 Sun Oct 12 11:01:43 1997  Tim Janik  <timj@psynet.net>
1002
1003         * acconfig.h:
1004         * configure.in:
1005         * gdk/gdkimage.c: Added configure check for IPC_RMID_DEFERRED_RELEASE,
1006         because shmat() fails after a shmctl(..., IPC_RMID,...) for OSF1 V3.2,
1007         SunOS 4.1.1, 5.5, 5.5.1, 5.6, IRIX 5.2 and 6.2.
1008
1009 Mon Oct  6 11:59:07 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
1010
1011         * gdk/gdk.c (gdk_event_translate): In line 1693, fixed typo that
1012         would cause motion notify events not to be delivered.
1013
1014 Sun Oct  5 18:15:06 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
1015
1016         * gtk/gtkrc.c (gtk_rc_parse_bg_pixmap): Changed strdup() for
1017         g_strdup().
1018
1019 Wed Sep 24 17:16:34 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
1020
1021         * configure.in: Fixed a stupid error in the test for libXext that
1022         would cause it to fail if X_EXTRA_LIBS was not empty.
1023
1024         * gtk/gtkmain.h (gtk-timj-970919.patch):
1025         * gtk/gtkmain.c (gtk-timj-970919.patch): new function
1026         `gtk_idle_remove_by_data' to remove all idle callbacks that take a
1027         specific piece of data as argument.  (gtk_get_current_event):
1028         remove idles through gtk_idle_remove_by_data.
1029         
1030         * gtk/gtkwidget.c (gtk-timj-970919.patch):
1031         (gtk_widget_destroy): remove pending idles for
1032         widgets that have GTK_REDRAW_PENDING or GTK_RESIZE_PENDING and
1033         GTK_ANCHORED set (only anchored widgets can have a resize queue
1034         handler pending). widgets that have GTK_RESIZE_NEEDED will be removed
1035         from their anchored toplevels `resize_widgets' list.
1036         
1037         (gtk_widget_queue_draw): let the widget remember the queue handler
1038         tag (through `redraw_handler_key') for later call to `gtk_idle_remove'.
1039         
1040         (gtk_widget_queue_resize): let the widget remember the queue handler
1041         tag (through `resize_handler_key') for later call to `gtk_idle_remove'.
1042         corrected referencing the toplevel widget for which the handler is
1043         pending. if a widget is added to the `resize_widgets' list of a
1044         toplevel widget, GTK_RESIZE_NEEDED is set and it's referenced.
1045         
1046         (gtk_real_widget_queue_resize): on the deletion of the `resize_widgets'
1047         list, unset GTK_RESIZE_NEEDED and unreference the removed widgets.
1048         
1049         * gtk/gtkwindow.c (gtk-timj-970919.patch):
1050         (gtk_real_window_move_resize): move `resize_containers = NULL'
1051         initialization out of if-statement.
1052         while stepping through the `resize_widgets' list, unreference the
1053         widgets and clear GTK_RESIZE_NEEDED. if a widget realy needs are
1054         resize, they are flagged through GTK_RESIZE_NEEDED now (instead of
1055         GTK_RESIZE_PENDING, as this is indicative for a pending handler).
1056         added checks to provide segfaulting if a widgets parent pointer
1057         is NULL (e.g. on toplevel widgets that have GTK_RESIZE_NEEDED set).
1058
1059 Tue Sep 23 13:23:27 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
1060
1061         * gdk/gdkimage.c: Applied Tim Janik's patch to mark shm segments
1062         as IPC_RMID so that they are automatically removed always.
1063
1064         * gdk/gdkfont.c: Removed casts from lvalues.
1065
1066         * gtk/gtkmain.c: Removed GTK_RETLOC_*() (which do a cast) from lvalues.
1067
1068         * gtk/gtkaccelerator.c (gtk_accelerator_table_remove): Added
1069         "const" to the accelerator_key param to be consistent with the
1070         declaration in gtkaccelerator.h.  The const is not useful in this
1071         case, anyway.
1072
1073 Tue Sep 16 13:11:06 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
1074
1075         * gtkpreview.c: Andrew Logan Kieschnick's change to eliminate
1076         round-off error when gamma is set to 1.0.
1077
1078         * gtkrange.c:
1079         * gtkviewport.c: Jay Painter's changes to modify the way in which
1080         viewports resize.
1081
1082         * gdkinput.c:
1083         * gdkinputgxi.h:
1084         * gdkinputxfree.h:
1085         * gtk/Makefile.am:
1086         * gtk.h:
1087         * gtkeventbox.c:
1088         * gtkeventbox.h: Owen Taylor's event box widget and fixes for X
1089         input support (that I had broken).
1090
1091         * gdk.h:
1092         * gdkwindow.c:
1093         * gtksignal.h:
1094         * gtksignal.c: Elliot Lee's changes to support Objective C. (id is
1095         apparently a reserved word in Objective C).
1096
1097 Sun Sep 14 22:33:15 1997  Peter Mattis  <pmattis@localhost>
1098
1099         * gtkwidget.c (gtk_widget_queue_resize): If the toplevel container
1100         is invisible we simply call "gtk_container_need_resize" on
1101         it. This fixes a bug with option menus not redrawing correctly.
1102
1103         * gtkmenuitem.c (gtk_menu_item_enter): (gtk_menu_item_leave):
1104         These functions now simply pass the event on to their parent. This
1105         is necessary for menus to work properly due to the change in how
1106         grabs are dealts with.
1107
1108         * gtkwindow.c (gtk_real_window_move_resize): Fixed a bug that
1109         caused the GTK_RESIZE_PENDING flag to not be unset in some cases.
1110
1111 Fri Sep  5 20:49:37 1997  Marius Vollmer  <mvo@zagadka.ping.de>
1112
1113         Bug fixes:
1114
1115         * Makefile.am: Added PATCHES to EXTRA_DIST.
1116         * gtk/gtkpixmap.c (gtk_pixmap_new): Move the "pixmap != NULL" test
1117         after the allocation of the pixmap.
1118
1119         To shut up the compiler:
1120
1121         * gtk/gtkfilesel.c (get_pwdb): Initialize home_dir.
1122         * gtk/gtkmain.c (gtk_init): Replace comments around calls to
1123         g_set_*_handler with "if (0)".
1124         * gtk/gtkrc.c (gtk_rc_get_token): Initialize hex_number and
1125         float_number.
1126         * gtk/gtkwindow.c (gtk_window_key_press_event): Initialize
1127         direction.
1128
1129         Changes to the type system in gtk/:
1130
1131         * Makefile.am: Added gtktypebuiltins.h to gtkinclude_HEADERS.
1132         Added gtk.defs, runelisp, gentypeinfo.el and gtktypebuiltins.c to
1133         EXTRA_DIST.  Added rules to generate gtktypebuiltins.* from
1134         gtk.defs.
1135
1136         * runelisp, gentypeinfo.el, gtk.defs: New files.
1137
1138         * gtkaccelerator.c, gtkaccelerator.h (gtk_accelerator_table_ref):
1139         Return the table so that this function can be used as the `copy'
1140         function for GTK_TYPE_BOXED values.
1141         * gtkstyle.c, gtkstyle.h (gtk_style_ref): Likewise.
1142
1143         * gtkenums.h: Removed GtkArgType enum.
1144
1145         * gtkmain.c (gtk_init): Call gtk_type_init to initialize the type
1146         system.
1147
1148         * gtkobject.c (gtk_object_init_type): New function to take over
1149         for gtk_object_get_type. (gtk_object_get_type): Just return the
1150         constant GTK_TYPE_OBJECT. (gtk_object_collect_args): Do the right
1151         thing for the new GTK_TYPE_* types.
1152         * gtksignal.c (gtk_params_get): Likewise.
1153
1154         * gtktypeutils.c: (gtk_type_init_builtin_types): New
1155         function. (gtk_type_init): Call it.  Also made non-static.
1156         (gtk_type_unique): The allocation scheme for numerical ids has
1157         changed: The low 8 bits hold the appropriate GtkFundamentalType of
1158         a type, the rest is a globally unique sequence number.
1159         (gtk_type_hash): Use the sequence number of a key to hash it.
1160         (gtk_type_register_builtin): New function.
1161
1162         * gtktypeutils.h: (GtkFundamentalType): New enumeration of the
1163         fundamental types. (GTK_TYPE_MAKE, GTK_FUNDAMENTAL_TYPE,
1164         GTK_TYPE_SEQNO): New macros to work with the new id scheme.
1165         (GtkArg): Added fields for new types and renamed old ones.  GtkArg
1166         should now be a mostly opaque structure, except name and type.
1167         (GTK_VALUE_*): New macros to access the values of a GtkArg.
1168         (GTK_RETLOC_*): New macros to access the location of a return
1169         value that is contained in a GtkArg.  * gtktypebuiltins.h: New
1170         file to access the typeids of the builtin types.
1171
1172         * gtkwidget.h (GTK_TYPE_WIDGET): New macro to access the type id
1173         of the widget class.
1174
1175         Thru out: Changed GTK_ARG_* to the appropriate GTK_TYPE_*.
1176         Changed access to GtkArg structure to the appropriate GTK_VALUE_*
1177         or GTK_RETLOC_* macro.  Changed GtkArgType to GtkType.  Changed
1178         some guints to GtkType.
1179
1180         General changes in gtk/ to support interpreters:
1181
1182         * gtkradiobutton.c (gtk_radio_button_new_from_widget,
1183         gtk_radio_button_new_with_label_from_widget): New functions.
1184
1185         * gtksignal.c (gtk_signal_connect_no_marshal): New function.
1186         (struct _GtkHandler): Added no_marshal and destroy_func fields.
1187         (gtk_signal_handler_new): Initialize them.
1188         (gtk_signal_connect_by_type): Added no_marshal and destroy_func
1189         arguments.  Changed all callers.
1190         (gtk_signal_destroy): Invoke destroy_func if there is one and the
1191         global destroy func does not apply.  (gtk_handlers_run): If the
1192         handler has no_marshal set, call its function directly without
1193         going thru the signal's marshaller.
1194
1195 Wed Sep  3 09:56:22 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
1196
1197         * gtkrange.c: Changed the way the range control focus was drawn so
1198         that the range control is drawn correctly when it does not have
1199         the focus.
1200
1201 Tue Sep  2 17:41:17 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
1202
1203         * gtkwidget.c: 'gtk_real_widget_queue_resize' should only remove
1204         the "resize_widgets" if another resize is not pending.
1205
1206 Mon Sep  1 18:28:08 1997  Peter Mattis  <pmattis@localhost>
1207
1208         * gtkmain.c: Changed the way GDK_DELETE events are handled. Only,
1209         if 'gtk_widget_event' returns TRUE is the widget destroyed. By
1210         default, 'gtk_widget_event' will return FALSE causing the window
1211         to not be destroyed. This prevents segfaults in the GIMP and other
1212         programs that do not correctly handle GDK_DELETE events.
1213
1214         * gtkmain.c: Added modal dialog support by allowing events
1215         destined for a child of the grab widget to go to the child instead
1216         of the grab widget. (Added 'gtk_widget_is_ancestor' to determine
1217         the relationship between the grab widget and the event widget).
1218
1219         * *.[ch]: Incorprated a whole mess of patches. (Started keeping
1220         the ChangeLog up to date again).
1221
1222 Thu Jun  5 17:22:21 1997  Peter Mattis  <pmattis@localhost>
1223
1224         * gtkmenufactory.c:
1225         * gtkmenufactory.h: Added 'gtk_menu_factory_remove_*'
1226         calls. Removing entries/paths causes the associated widgets to be
1227         destroyed.
1228
1229         * gtkwidget.c:
1230         * gtkwidget.h: Calling 'gtk_widget_set_style' is used as an
1231         indication that the programmer specifically wants that style to be
1232         used. RC-style substitution is disabled for the widget after such
1233         a call.
1234
1235         * gtkpixmap.c:
1236         * gtkpixmap.h:
1237         * gtkimage.c:
1238         * gtkimage.h: Changed to use clip mask and a single pixmap (or
1239         image) to deal with transparent areas.
1240
1241         * gdkpixmap.c: Modified xpm loading routines to optionally return
1242         a clip mask.
1243
1244         * gdkgc.c:
1245         * gdkdraw.c:
1246         * gdktypes.h: Modifications to allow clip masks to be used with
1247         gc's. Clip masks are bitmaps that specify drawable regions.
1248
1249 Thu May  1 03:11:51 1997  Peter Mattis  <pmattis@localhost>
1250
1251         * gtkscrolledwindow.c: Scrolled windows need to have the
1252         GTK_NO_WINDOW flag set. Not having it set caused an obscure
1253         redrawing bug.
1254
1255 Wed Apr 30 12:38:03 1997  Peter Mattis  <pmattis@localhost>
1256
1257         * gtkhruler.c:
1258         * gtkvruler.c: Fixed a small bug that caused the indicator to be
1259         positioned slightly off.
1260
1261 Sun Apr 27 14:28:21 1997  Peter Mattis  <pmattis@localhost>
1262
1263         * gtkmenushell.c:
1264         * gtkmenushell.h:
1265         * gtkmenu.c:
1266         * gtkmenu.h: Changes so that if a menu is popped up there is a
1267         timeout period during which a menu item will not be activated and
1268         if the mouse button is released in that period the menu will stay
1269         popped up.
1270
1271         * gtkcurve.c:
1272         * gtkcurve.h: Included curve widget courtesy of David
1273         Mosberger-Tang (davidm@azstarnet.com).
1274
1275         * gtkentry.c:
1276         * gtkentry.h: Changed "insert" and "delete" signals to
1277         "insert_text" and "delete_text" respectively. (The symbol "delete"
1278         cannot be used since it is a C++ reserved word).
1279
1280 Sat Apr 19 01:43:49 1997  Peter Mattis  <pmattis@localhost>
1281
1282         * gtkmenufactory.c: A path which ends in "<nothing>" will cause an
1283         invisible (hidden) menu entry to be created. This is useful for
1284         setting an accelerator key for which a corresponding menu entry is
1285         not desired.
1286
1287         * gtktooltips.c: Fixed some problems with destruction of the
1288         active tip widget not properly updating the tooltips data
1289         structures.
1290
1291 Fri Apr 18 15:09:45 1997  Peter Mattis  <pmattis@localhost>
1292
1293         * gtkcontainer.c:
1294         * gtklist.c:
1295         * gtkwidget.c:
1296         * gtkwidget.h: Patch from Owen Taylor (owt1@cornell.edu) which
1297         fixes problems with destruction of objects and with destruction of
1298         objects which hold the focus.
1299
1300 Thu Apr 17 11:29:15 1997  Peter Mattis  <pmattis@localhost>
1301
1302         * gtkmenushell.c: Incorrect logic in
1303         'gtk_menu_shell_button_release' for deciding when a menu should
1304         stay popped up when the mouse button is released.
1305
1306         * *.c: Miscellaneous fixes from folks on the net.
1307
1308 Tue Apr 15 02:43:17 1997  Peter Mattis  <pmattis@localhost>
1309
1310         * *.c:
1311         * gtkwidget.h: Added GTK_BASIC widget flag which when set
1312         specifies a widget as "basic". A "basic" widget is one which
1313         doesn't take input events. For example, labels, pixmaps, boxes,
1314         tables, alignments, etc.
1315
1316 Sat Apr 12 15:23:08 1997  Peter Mattis  <pmattis@localhost>
1317
1318         * gtkcolorsel.c: Add "#include <math.h>" to define M_PI.
1319
1320         * gtksignal.c: Fixed a bug in 'gtk_signal_emit' which showed up
1321         because of the new cast checking macros. The 'object' was being
1322         accessed after it had been destroyed.
1323
1324         * gtkoptionmenu.c: Fixed bug with using 'GTK_BIN' instead of
1325         'GTK_BUTTON' which showed up because of the new cast checking
1326         macros.
1327
1328         * *.h: 'GTK_CHECK_CAST', 'GTK_CHECK_CLASS_CAST' and
1329         'GTK_CHECK_TYPE' used by standard widget macros everywhere.
1330
1331 Wed Apr  9 00:54:17 1997  Peter Mattis  <pmattis@localhost>
1332
1333         * docs/gtk.texi: Started further work on documentation. Major
1334         changes and additions are being made.
1335
1336         * gtkarrow.c:
1337         * gtkarrow.h: Removed function 'gtk_arrow_get'.
1338
1339         * gtkcontainer.c: 'gtk_container_check_resize' no performs
1340         additional checking to account for the case where the containers
1341         allocation is no longer sufficient because its parent (or its
1342         parents parent, etc.) needs to resize its children.
1343
1344 Tue Apr  8 21:15:50 1997  Peter Mattis  <pmattis@localhost>
1345
1346         * gtkstyle.c: Fixed a bug in 'gtk_style_init' in which the font
1347         was not ref'd (via 'gdk_font_ref'), but was free'd (via in
1348         'gdk_font_free') in 'gtk_style_destroy'. (David
1349         Mosberger-Tang). Also cleaned up 'gtk_style_destroy' while I was
1350         at it.
1351
1352         * gtkmain.c: Fixed a bug in 'gtk_propogate_event' which caused
1353         entry widgets (and probably other widgets) not to be destroyed in
1354         some instances.
1355
1356 Mon Apr  7 01:20:38 1997  Peter Mattis  <pmattis@localhost>
1357
1358         * gtkentry.c:
1359         * gtkentry.h: Changed the "insert_text", "delete_text" and
1360         "changed_text" signals to "insert", "delete", and "changed"
1361         respectively. They really should have been named this way
1362         originally except the previous signal mechanism prevented
1363         duplicate signal names. ("changed" is also used by adjustments).
1364
1365         * gtkradiomenuitem.c:
1366         * gtkradiomenuitem.h: New widget.
1367
1368         * gtkcheckmenuitem.c:
1369         * gtkcheckmenuitem.h: New widget.
1370
1371         * gtksignal.c: Modified 'gtk_signal_lookup' to require an object
1372         type to be passed as a parameter. In addition, signals are now
1373         only needed to be uniquely defined in their branch of the class
1374         hierarchy. This allows the same signal name to be used in two
1375         different branches of the class hierarchy. For instance, the
1376         "changed" signal is used both by adjustments and entries...in
1377         different ways!
1378
1379         * gtktypeutils.c: Added 'gtk_type_parent' which returns the parent
1380         type for a given type.
1381
1382 Sun Apr  6 22:08:35 1997  Peter Mattis  <pmattis@localhost>
1383
1384         * gtkwidget.c: If a widget is set insensitive it loses the focus
1385         if it had it.
1386
1387         * gtkcontainer.c: Insensitive widgets no longer participate in tab
1388         traversal.
1389
1390         * gtkscrolledwindow.c: The "viewport" child is now destroyed and a
1391         container class "foreach" function was written (which fixes the
1392         sensitivity bug).
1393
1394 Sat Apr  5 14:25:38 1997  Peter Mattis  <pmattis@localhost>
1395
1396         * gtkhscrollbar.c:
1397         * gtkvscrollbar.c: Fixed trough size allocation bug.
1398
1399         * gtkhscale.c:
1400         * gtkvscale.c: Fixed trough size allocation and position bug that
1401         showed up when scales were placed in notebooks.
1402
1403 Thu Mar 27 17:45:54 1997  David Mosberger-Tang  <davidm@azstarnet.com>
1404
1405         * gtk/gtkmain.c (gtk_handle_idle): Fix appending pending_idles to
1406         idle_functions so it works even when idle_functions is empty.
1407
1408 Sat Mar 15 14:15:59 1997  Peter Mattis  <pmattis@localhost>
1409
1410         * *.[ch]: Moved '*_class_init' and '*_init' function declarations
1411         for widgets into the source file as those functions no longer had
1412         to be public.
1413
1414         * gtkcheckbutton.c: Fixed redrawing of check button.
1415
1416         * gtkframe.c: Fixed redrawing of frame when the shadow type is
1417         changed.
1418
1419 Sat Mar  8 15:19:23 1997  Peter Mattis  <pmattis@localhost>
1420
1421         * gdkimage.c: Fixed a stupid bug with 'gdk_image_new' which
1422         potentially added a NULL image to "image_list" and caused problems
1423         when 'gdk_image_exit' was called.
1424
1425 Wed Mar  5 00:40:08 1997  Peter Mattis  <pmattis@localhost>
1426
1427         * gtkpreview.c: Massively changed the colormap handling used by
1428         the preview widget. Gray previews are now dithered. A single
1429         visual and colormap is shared by the color and gray previews. A
1430         GTK_PREVIEW_INFO property is installed on the root window in
1431         certain cases to allow multiple GTK programs to share the system
1432         colormap.
1433
1434 Sun Mar  2 05:43:06 1997  Peter Mattis  <pmattis@localhost>
1435
1436         * gtkcheckbutton.c: 'gtk_checkbutton_size_allocate' was allocating
1437         too much space to its children and not leaving the check button
1438         room for the focus border.
1439
1440         * gtknotebook.c: 'gtk_notebook_size_request' wasn't requesting
1441         enough space when the notebook tabs are visible.
1442
1443 Sat Mar  1 01:59:35 1997  Peter Mattis  <pmattis@localhost>
1444
1445         * gtkpreview.c: Fixed a problem with 'gtk_preview_put' when the
1446         image byte order is GDK_MSB_FIRST.
1447
1448         * gtksignal.c:
1449         * gtksignal.h: Added 'gtk_signal_connect_after' and
1450         'gtk_signal_connect_object_after' functions. These connect signal
1451         handlers which will run after the class function associated with
1452         the signal.
1453
1454         * gtkstyle.c: Fixed a stupid bug in 'gtk_style_new_from_key' that
1455         was causing twice as many styles to be created as necesary.
1456
1457         * gtkwidget.c: 'gtk_real_widget_size_allocate' erases the widgets
1458         old allocation if it has the GTK_NO_WINDOW flag set.
1459
1460         * gtkwidget.c: 'gtk_real_widget_unmap' now erases the widget if it
1461         has the GTK_NO_WINDOW flag set.
1462
1463         * gtklabel.c: Removed 'gtk_label_unmap' as similar functionality
1464         was added to gtk_real_widget_unmap.
1465
1466         * gtkbin.c: Modified 'gtk_bin_map' and 'gtk_bin_unmap' so that it
1467         erases and draws the widget if it has the GTK_NO_WINDOW flag set.
1468
1469         * gtkframe.c: Modified 'gtk_frame_size_allocate' so that it erases
1470         the old allocation.
1471
1472 Fri Feb 28 03:27:05 1997  Peter Mattis  <pmattis@localhost>
1473
1474         * gtkwindow.c: 'gtk_window_set_title' now changes the window title
1475         if the window is already realized.
1476
1477         * gtkentry.c: 'gtk_entry_set_text' was emitting both a
1478         "delete_text" and a "changed_text" signal. Modified so that it
1479         only emits a "changed_text" signal.
1480
1481         * gtkpreview.c: Modified to work correctly on systems with MSB
1482         byte order. The colormap for TRUE and DIRECT color displays is now
1483         created if the default visual is not equal to the visual we are
1484         using.
1485
1486         * gtkstyle.c: 'gtk_style_attach' and 'gtk_style_find' weren't
1487         working properly in the presence of multiple colormaps are
1488         different depth visuals.
1489
1490         * gtkcontainer.c: Massively improved focus traversal using tab and
1491         arrow keys. It now uses the layout of the widgets to determine
1492         where to move the focus to.
1493
1494 Mon Feb 24 03:24:02 1997  Peter Mattis  <pmattis@localhost>
1495
1496         * gtkmenufactory.c: Set the accelerator table field for menus when
1497         they are created.
1498
1499         * gtkmenu.c:
1500         * gtkmenu.h: Added a default accelerator table field to menus so
1501         that runtime modification of accelerator keys in menus can work
1502         better.
1503
1504         * gtkrange.c: 'gtk_range_default_{h,v}motion' had faulty logic for
1505         deciding what to do when the slider was at the edge of the
1506         trough. They previously didn't update the adjustment value event
1507         if the value wasn't what it should be when the slider was at the
1508         edge of the trough.
1509
1510         * gtkviewport.c: 'gtk_viewport_size_allocate' and
1511         'gtk_viewport_adjustment_value_changed' both had the potential for
1512         performing a divide by 0. Checks are now in place to prevent this.
1513
1514         * gtkmenu.c: 'gtk_menu_map' now makes sure the menu lies on screen
1515         if the position function is NULL.
1516
1517         * gtkentry.c: Modified selection handling. 'gtk_delete_selection'
1518         actually removes the X selection now. 'gtk_entry_destroy' removes
1519         the selection as well and relies on the change in "gdk.c" to make
1520         sure the selection event will not be sent to a non-existant
1521         window.
1522
1523         * gdk.c: Selection events are only passed on if the selection
1524         owner is not NULL.
1525
1526         * gtkstyle.c: 'gtk_style_detach' and 'gtk_style_destroy' were not
1527         destroying the black and white gc's.
1528
1529 Sun Feb 23 19:17:56 1997  Peter Mattis  <pmattis@localhost>
1530
1531         * gtkwindow.c: 'gtk_window_size_request' was setting the window
1532         hints. This was also being done in 'gtk_window_map', so the
1533         instance being done in 'gtk_window_size_request' was removed.
1534
1535 Fri Feb 21 01:04:01 1997  Peter Mattis  <pmattis@localhost>
1536
1537         * gtkwidget.c: 'gtk_widget_draw' has to use the widgets allocated
1538         position for the drawing rectangle when the widget has the
1539         GTK_NO_WINDOW flag set.
1540
1541         * gtkwidget.c: In 'gtk_widget_init' the visual and colormap were
1542         being directly compared against 'default_visual' and
1543         'default_colormap' instead of calling
1544         'gtk_widget_get_default_{visual,colormap}'.
1545
1546         * gdkrectangle.c: Amazing! There was a bug in the
1547         'gtk_rectangle_intersect' logic. Its been there for near eternity
1548         and I never noticed.
1549
1550         * gtkpreview.c:
1551         * gtkpreview.h: Created preview widget which allows drawing to an
1552         rgb or grayscale buffer which is automatically displayed on the
1553         screen. Performs dithering as necessary.
1554
1555 Thu Feb 20 20:33:21 1997  Peter Mattis  <pmattis@localhost>
1556
1557         * gdkwindow.c: Modified the logic in 'gdk_window_new' which
1558         determined when to add a window to the WM_COLORMAP_WINDOWS
1559         property.
1560
1561 Wed Feb 19 19:55:29 1997  Peter Mattis  <pmattis@localhost>
1562
1563         * gtkruler.c: 'gtk_ruler_make_pixmap' was always destroying the
1564         old backing store and creating a new one even when it would create
1565         a new one of exactly the same size as the old one.
1566
1567 Tue Feb 18 18:32:10 1997  Peter Mattis  <pmattis@localhost>
1568
1569         * gmem.c: 'g_mem_chunk_alloc' was incorrectly modifying the mem
1570         areas free mem field when reallocating a previously freed
1571         atom. This caused a fairly severe memory leak.
1572
1573         * gtkmenushell.c: 'gtk_menu_shell_button_release' had a bug in the
1574         logic for deciding whether to initiate an X pointer grab or not
1575         when the mouse button was released. It now only initiates a grab
1576         if the mouse is released within an active menu item.
1577
1578 Fri Feb 14 00:57:40 1997  Peter Mattis  <pmattis@localhost>
1579
1580         * gtknotebook.c: Changed the look of notebook tabs slightly.
1581
1582         * gtkentry.c:
1583         * gtkentry.h: Deleting an entry widget which is holding the X
1584         selection presents some difficulties. The X selection must be
1585         released, but the widget can't be destroyed until the
1586         SELECTION_CLEAR event is received that the X server will send in
1587         response to clearing the X selection. There are probably still
1588         bugs in the current method of entry widget deletion when the X
1589         selection is held.
1590
1591         * gtkmain.c: 'gtk_propagate_event' was not properly destroying the
1592         toplevel window when receiving a key press event.
1593
1594         * gtkwidget.c: Setting a widget insensitive did not cause it to
1595         redraw. It now does.
1596
1597 Thu Feb 13 16:59:07 1997  Peter Mattis  <pmattis@localhost>
1598
1599         * gtkviewport.c: 'gtk_viewport_size_allocate' was allocating its
1600         child widget an adjusted allocation. Since the actual scrolling
1601         has handled by a subwindow this caused the child to be double
1602         scrolled. Modified to always set the child allocations origin to
1603         (0, 0).
1604
1605 Wed Feb 12 01:06:48 1997  Peter Mattis  <pmattis@localhost>
1606
1607         * gtkentry.c: Text is now centered vertically. Previously it was
1608         pushed up against the top. This problem was only evident when the
1609         widget was allocated more vertical space than it requested.
1610
1611         * gtkfilesel.c: 'gtk_file_selection_key_press' was previously only
1612         a stub for tab completion. The actual tab completion call had been
1613         left out. (Oops!)
1614
1615 Tue Feb 11 01:43:08 1997  Peter Mattis  <pmattis@localhost>
1616
1617         * gtksignal.c: 'gtk_signal_disconnect_by_data' was going into a
1618         loop and crashing. Bad logic. Fixed.
1619
1620         * gtkmain.c: An idle function which returns FALSE will be removed
1621         from the list of idle functions. This makes the functioning of
1622         idle functions and timeouts more similar.
1623
1624         * gtkentry.c: 'gtk_entry_get_text' now returns an empty string
1625         when the actual text is NULL. This allows "stupid" programs to use
1626         the value returned by 'gtk_entry_get_text' blindly (without
1627         checking to see if its NULL).
1628
1629         * gtkradiobutton.c: Modified 'gtk_radio_button_clicked' so that
1630         'gtk_toggle_button_toggled' is called _after_ the widget state is
1631         changed.
1632
1633         * gtksignal.c:
1634         * gtksignal.h: Added 'gtk_signal_name' which returns the character
1635         string name for a given signal number.
1636
1637         * gtkwidget.c: 'gtk_widget_set_parent' checks to see if the widget
1638         is now "anchored" through the parent chain to a widget which is
1639         GTK_ANCHORED. If it is, then it changes the widgets style using
1640         'gtk_rc_get_style' and recursively performs the same operation on
1641         the widgets children. This is necessary is 'gtk_rc_get_style' only
1642         works properly on "anchored" widgets.
1643
1644         * gtkwindow.c: Modified GTK_WIN_POS logic so that it is only used
1645         immediately after the window has been shown.
1646
1647         * gtkmenu.c: 'gtk_menu_key_press'. Can now change menu item
1648         accelerator keys on the fly. Why? Why not. Cool/useless feature of
1649         the day.
1650
1651         * gtkmenuitem.c: Accelerator key drawing. Somehow that never got
1652         finished. (Oops!)
1653
1654         * gtkdrawingarea.c: 'gtk_drawing_area_size_allocate' was not
1655         actually installed during 'gtk_drawing_area_class_init'. (Oops!)
1656
1657         * gtkframe.c: 'gtk_frame_size_request' fixed size requisition
1658         problem caused by unsigned arithmetic.
1659
1660         * gtkwindow.c: Modified window widget so that it only uses the
1661         widget uposition auxiliary information immediately after it has
1662         been shown. This prevents the annoying bug which can cause a
1663         uposition'ed window to jump back to its original position after
1664         the user moves it.
1665
1666         * gtkwidget.c: Need to ref and unref style in
1667         'gtk_widget_{push,pop}_style' to make sure that a style on the
1668         style stack is not destroyed.
1669
1670         * gtktogglebutton.c: 'gtk_toggle_button_set_state' now calls
1671         gtk_button_clicked to actually change the state of the
1672         button. In this way, radio buttons can now perform the appropriate
1673         actions when the toggle button state is set.
1674
1675 Mon Feb 10 00:27:39 1997  Peter Mattis  <pmattis@localhost>
1676
1677         * gtklist.c: 'gtk_list_select_item' and 'gtk_list_unselect_item'
1678         were casting a GList* variable to a a GtkWidget* variable. Bad bad
1679         bad. (Tim Janik).
1680
1681         * gtksignal.c: Modified 'gtk_signal_connect' and
1682         'gtk_signal_connect_object' to warn when a signal type cannot be
1683         found.
1684
1685 Sun Feb  9 00:15:30 1997  Peter Mattis  <pmattis@localhost>
1686
1687         * gtkoptionmenu.c:
1688         * gtkoptionmenu.h: Changed option menus back to being derived from
1689         buttons. This fixes up some screwiness with their user
1690         interaction.
1691
1692         * gtkwindow.c: Modified key press handler to support focus
1693         traversal.
1694
1695         * gtkcontainer.c:
1696         * gtkcontainer.h: Added default focus traversal back in.
1697
1698 Sat Feb  8 10:44:38 1997  Peter Mattis  <pmattis@localhost>
1699
1700         * gtkviewport.h:
1701         * gtkviewport.c: Massively sped up viewport scrolling. Used to be
1702         reallocating child's size (offset) each time a scrollbar
1703         moved. Now a subwindow is moved. All the children are moved
1704         automatically by moving the subwindow. Much much much faster.
1705
1706 Tue Feb  4 00:20:44 1997  Peter Mattis  <pmattis@localhost>
1707
1708         * gtree.c: Changed 'g_tree_node_search' to use a loop instead of
1709         recursion.
1710
1711 Mon Feb  3 11:30:03 1997  Peter Mattis  <pmattis@localhost>
1712
1713         * gtkbutton.c: Removed 'parent_destroy' global and replaced it
1714         with 'parent_class' global to reflect style used in other
1715         widgets.
1716
1717         * gtknotebook.c: Tab labels were being allocated less than their
1718         requested size.
1719
1720         * gtkrange.c:
1721         * gtkrange.h: Moved the "digits" field of scales into the range
1722         type. The adjustment value for scales is truncated to the number
1723         of visible digits instead of being left untouched.
1724
1725         * gtree.c: Fixed a bug in the AVL tree implementation. Single
1726         rotations were always being performed during insertion. It is
1727         sometimes necessary to perform a double rotation.
1728
1729         * gtklabel.c: Modified 'gtk_label_expose' to only draw the label
1730         when the allocated space is greater than or equal to the requested
1731         space.
1732
1733         * gtklabel.c: Added call to 'gtk_widget_unmap' to
1734         'gtk_label_destroy' in order for the label to redraw correctly
1735         (erase itself) when destroyed.
1736
1737         * gtklabel.c: Added 'gtk_label_unmap' call which erases the labels
1738         allocation when it gets unmapped.
1739
1740         * *.h: Removed a few remaining instances of using "class" as a
1741         parameter name. (Causes problems for C++).
1742
1743 Fri Jan 31 12:26:50 1997  Peter Mattis  <pmattis@localhost>
1744
1745         * gtkcontainer.c: 'gtk_container_enable_resize' needs to call
1746         'gtk_container_check_resize' instead of
1747         'gtk_container_need_resize'.
1748
1749         * gtkwidget.c: 'gtk_real_widget_show' now maps the widget if its
1750         parent is mapped.
1751
1752         * gtkscrolledwindow.c: Fixed size allocation when the scrollbar
1753         policy's are GTK_POLICY_AUTOMATIC. Doing it correctly is harder
1754         than I originally thought.
1755
1756         * gtklist.c: Added 'gtk_list_child_position' to determine the
1757         integer position in a list of a child. Filled in the
1758         'gtk_list_item_select' and 'gtk_list_item_unselect' stubs.
1759
1760 Thu Jan 30 16:08:06 1997  Peter Mattis  <pmattis@localhost>
1761
1762         * gmem.c: Changed the implementation of G_ALLOC_AND_FREE mem
1763         chunks. They used to allocate SIZEOF_VOID_P extra bytes per atom
1764         in order to keep track of which mem area they were allocated
1765         from. Now the mem area is determined by searching through an AVL
1766         tree of the mem areas for a mem chunk and comparing memory
1767         locations. A little slower, but makes G_ALLOC_AND_FREE mem chunks
1768         much more attractive.
1769
1770         * gtree.c: Added an AVL tree implementation to glib.
1771
1772         * gtksignal.c:
1773         * gstring.c: va_arg (arg_list, {char, short}) is
1774         invalid. Arguments passed in a variable argument list are
1775         promoted. ({char, short}->int). Seemed to work ok before under
1776         Linux. Crashed under FreeBSD.
1777
1778 Tue Jan 28 02:27:51 1997  Peter Mattis  <pmattis@localhost>
1779
1780         * gdkwindow.c: Fixed a major slowdown apparent in the file
1781         selection dialog which was caused by calling
1782         'gtk_window_add_colormap_windows' way way way too often.
1783
1784         * *.c: Many widgets called 'gtk_container_need_resize' when
1785         something internal changed which would cause the widget to grow or
1786         shrink. The assumption was made that the widget would change size
1787         and an expose event would be generated. This happens "most" of the
1788         time. But its possible for certain widgets to change size without
1789         generating expose events, or for its internal geometry to change
1790         without a change of size which would mean no expose event was
1791         generated. So a wrapper function called
1792         'gtk_container_check_resize' was created and
1793         'gtk_container_need_resize' was modified so that it returns FALSE
1794         if a resize was actually generated and TRUE if nothing
1795         changed. This allows 'gtk_container_check_resize' to initiate a
1796         'gtk_widget_size_allocate' and 'gtk_widget_draw' to emulate the
1797         expose event.
1798
1799 Sat Jan 25 14:17:44 1997  Peter Mattis  <pmattis@localhost>
1800
1801         * gtkmain.c: Fixed a bug with propogating key press events. The
1802         events were sent 2 times to the toplevel windows which caused the
1803         focus widget to be activated twice when the space bar was pressed.
1804
1805         * */configure.in:
1806         * */Makefile.am: Added support for libtool and removed the old
1807         shared library configuration craziness.
1808
1809 Fri Jan 24 12:59:22 1997  Peter Mattis  <pmattis@localhost>
1810
1811         * gtktext.c:
1812         * gtktext.h: Josh's fixes and additions to the text widget.
1813
1814         * gtkfill.c:
1815         * gtkfill.h: Filler widget useful for filling space in a
1816         table. Can specify a minimum size. Used by the canvas widget.
1817
1818         * gtknotebook.c:
1819         * gtknotebook.h: Made outline of notebook widget.
1820
1821         * gtkcanvas.c:
1822         * gtkcanvas.h: Started canvas widget. A composite of 2 rulers (w/
1823         an origin), 2 scrolllbars. Guides, grids, snap to.
1824
1825 Sun Jan 19 18:26:45 1997  Peter Mattis  <pmattis@localhost>
1826
1827         * gtkdialog.c:
1828         * gtkdialog.h: Created dialog widget which creates a standard
1829         looking dialog with buttons along the button and a separator.
1830
1831         * gtkxid.c: Generalized the window table code for looking up a gdk
1832         window based on an XID to work for any XID and a piece of
1833         data. Can now look up gdk fonts based on their XID.
1834
1835         * gtkruler.c:
1836         * gtkruler.h:
1837         * gtkhruler.c:
1838         * gtkhruler.h:
1839         * gtkvruler.c:
1840         * gtkvruler.h: Started conversion of the ruler widget.
1841
1842         * gtktext.c:
1843         * gtktext.h: Started conversion of the text widget. Scrolling
1844         doesn't work.
1845
1846         * gtkmain.c: Fixed a fairly major bug. The event widget needs to
1847         be in a call for the entire duration of handling an event. Not
1848         just for when the event widget itself is handling the event.
1849
1850         * gtkfilesel.c: Fixed up some bugs with resizing.
1851
1852 Fri Jan 10 14:18:03 1997  Peter Mattis  <pmattis@localhost>
1853
1854         * gtkwidget.c:
1855         * gtkwidget.h:
1856         * gtkentry.c:
1857         * gtkentry.h: Support for selections.
1858
1859         * gdkselection.c:
1860         * gdk.c:
1861         * gdktypes.h:
1862         * gdk.h: Gdk support for X selections. Currently only text
1863         selections are supported.
1864
1865         * gtksignal.c: Fixed a major bug which occurred when destroying an
1866         object. Memory was being written to after it was freed.
1867
1868         * gtkfilesel.c:
1869         * gtkfilesel.h: Hooked up more functionality to the file selection
1870         dialog.
1871
1872 Wed Jan  8 18:13:53 1997  Peter Mattis  <pmattis@localhost>
1873
1874         * gtkfilesel.c:
1875         * gtkfilesel.h: Mostly converted old file selection dialog
1876         widget. The widget is derived from the GtkWindow class and is
1877         quite a bit simpler in the widget code.
1878
1879         * gtkwidget.c: Fixed 'gtk_widget_grab_focus' and
1880         'gtk_widget_grab_default' to check that the toplevel widget is a
1881         type of window (which includes classes derived from windows).
1882
1883 Tue Jan  7 01:12:32 1997  Peter Mattis  <pmattis@localhost>
1884
1885         * gtkwindow.c: Was calling 'gtk_window_resize' twice in a
1886         row...why?
1887
1888         * gtksignal.c:
1889         * gtksignal.h:
1890         * *.c: Changed 'gtk_signal_new' so that the class function that is
1891         called when the signal is emitted can be called either before,
1892         after or both before and after the calling of any signal
1893         handlers.
1894
1895         * gtkobject.c:
1896         * gtkobject.h: Added 'object_data' mechanism for storing data
1897         associated with a character string key in objects. Removed
1898         'user_data' field of objects and changed
1899         'gtk_object_{get,set}_user_data' to use the object data
1900         mechanism. Removed 'handlers' field of objects.
1901
1902         * gtkwidget.c:
1903         * gtkwidget.h:
1904         * gtkwindow.c: Modified aux info mechanism to use object data
1905         mechanism.
1906
1907         * gtksignal.c: Modified signal mechanism to use object data
1908         mechanism instead of 'handlers' field.
1909
1910
1911 Mon Jan  6 15:10:16 1997  Peter Mattis  <pmattis@localhost>
1912
1913         * gtkmenushell.c: Fixed up button press handling so as to conform
1914         more closely to that used by Motif.
1915
1916 Wed Jan  1 21:27:17 1997  Peter Mattis  <pmattis@localhost>
1917
1918         * gtkmenu.c:
1919         * gtkmenu.h:
1920         * gtkmenubar.c:
1921         * gtkmenubar.h:
1922         * gtkmenushell.c:
1923         * gtkmenushell.h: Reorganization of menu-ing code so that code
1924         duplication is reduced. The menu shell now contains most of the
1925         code for menu-ing interaction while menus and menubars simply layout
1926         their child menu items in the appropriate place.
1927
1928 Sun Dec 29 17:48:18 1996  Peter Mattis  <pmattis@localhost>
1929
1930         * gtkmenu.c:
1931         * gtkmenubar.c:
1932         * gtkmenuitem.h:
1933         * gtkmenuitem.c: Modifications so that menu item accelerators and
1934         the submenu indicator are drawn correctly and the correct amount
1935         of space is allocated.
1936
1937 Sat Dec 28 00:32:13 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1938
1939         * gtkmenufactory.h:
1940         * gtkmenufactory.c: Started menu factories as an easy method to
1941         create and manipulate menus.
1942
1943 Fri Dec 27 13:17:34 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1944
1945         * gtkmenu.c:
1946         * gtkmenu.h:
1947         * gtkmenubar.c:
1948         * gtkmenubar.h:
1949         * gtkmenuitem.c:
1950         * gtkmenuitem.h:
1951         * gtkmenushell.c:
1952         * gtkmenushell.h: Implemented basic menu functionality. Menubars
1953         and popup menus work. Submenus work. (Much left to be done).
1954
1955 Wed Dec 18 15:27:05 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1956
1957         * gtktypeutils.h:
1958         * gtktypeutils.c: Added 'gtk_type_from_name' which returns a type
1959         identifier given a type name. Implemented using a second hash
1960         table keyed by type names.
1961
1962         * gtkbutton.c:
1963         * gtktogglebutton.c: Fixed very small messed-up drawing bug when a
1964         button loses its focus.
1965
1966         * gtkwidget.h:
1967         * gtkwidget.c:
1968         * gtkbutton.c:
1969         * gtkwindow.c: Added default button handling. Default buttons now
1970         draw correctly and pressing return or enter causes the default
1971         button (if one exists) to be activated.
1972
1973 Tue Dec 17 19:32:21 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1974
1975         * gtkhscale.c:
1976         * gtkvscale.c: Overrode 'draw_slider' method of ranges in order to
1977         draw the slider of scales with a line in them so as to be closer
1978         to the Motif look-and-feel.
1979
1980         * gtkwindow.c: Modified 'gtk_window_focus_in_event' so that focus
1981         in events are only handled when the window is visible. Fixes a bug
1982         where spurious focus in events get sent when a window is being
1983         hidden.
1984
1985         * gtkwidget.h: Added 'activate_signal' field to the GtkWidgetClass
1986         structure. Added 'gtk_widget_activate' call to emit the activate
1987         signal for a widget if it is non-zero.
1988
1989 Tue Dec 10 15:59:45 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1990
1991         * gtkwidget.c: 'gtk_widget_set_name' oops in strdup'ing the old
1992         "widget->name" instead of the new one we are setting.
1993
1994         * gtkrc.c: 'gtk_rc_widget_path' changed to use
1995         'gtk_widget_get_name' instead of accessing the "widget->name"
1996         field directly.
1997
1998         * gtkwidget.c: Added 'gtk_widget_get_name' function which returns
1999         the widgets name if it exists and the widgets type name if it does
2000         not.
2001
2002         * gtkcheckbutton.c: Added 'gtk_check_button_draw'
2003         function. Modified 'gtk_check_button_expose' to pass an expose
2004         event to child instead of callings its draw function.
2005
2006         * gtkentry.c: 'gtk_entry_draw_text' why was "+1" being added to
2007         the font->ascent to calculate the font position? This was wrong
2008         and caused some characters in fonts to be clipped. (Notably "g").
2009
2010         * gtkentry.c: 'gtk_entry_realize' specify GTK_BUTTON1_MOTION_MASK
2011         and GTK_POINTER_MOTION_HINT_MASK for _both_ windows.
2012
2013         * gtkmain.c: 'gtk_propagate_event' needs to set the GTK_IN_CALL
2014         flag for the object before calling 'gtk_widget_event' and needs to
2015         destroy the object if necessary after 'gtk_widget_event' returns.
2016
2017         * gtkradiobutton.c: 'gtk_radio_button_clicked' needs to call
2018         'gtk_toggle_button_toggled' when the currently active button is
2019         toggled.
2020
2021         * gtkwidget.c: 'gtk_real_widget_hide' needs to call
2022         'gtk_widget_unmap' if the widget is currently mapped.
2023
2024         * gtkwindow.c: Prevent automatic resizing after the user has
2025         specified a new window size. Add 'handling_resize' flag to
2026         windows.
2027
2028         * gtkscrolledwindow.c: Implement the GTK_POLICY_AUTOMATIC
2029         scrollbar policy. Need to connect to the adjustments 'changed'
2030         signal and notice when the scrollbars aren't in use.
2031
2032         * gtkcontainer.c: 'gtk_container_init' must set 'auto_resize' and
2033         'need_resize' fields to TRUE and FALSE respectively.
2034
2035         * gtkwidget.c: 'gtk_widget_set_parent' must all set a widgets state
2036         to its parents state.
2037
2038 Sun Dec  1 01:31:01 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
2039
2040         * Started ChangeLog