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