]> Pileus Git - ~andy/gtk/blob - ChangeLog.pre-2-8
same as before -Jay
[~andy/gtk] / ChangeLog.pre-2-8
1 Sun Nov 30 1997 Jay Painter <jpaint@serv.net>
2         * gtk/gtknotebook.c: fixed a old bug where all the notebook pages
3         which were not displayed when the notebook widget was realized were
4         never size allocated when they were realized.
5
6 Thr Nov 28 1997 Jay Painter <jpaint@serv.net>
7         * gtk/gtklist.h: removed GtkSelectionMode
8         * gtk/gtkenums.h: added GtkSelectionMode
9
10 Fri Nov 28 01:26:55 1997  Tim Janik  <timj@psynet.net>
11
12         * gtk/gtkwindow.c (gtk_window_show): propagate a size_request before
13         the initial window creations (prevents windows with size of -1x-1).
14
15         * gtk/gtkmain.c (gtk_main_level): new function to determine
16         the current recursion level of gtkmain().
17         (gtk_true) (gtk_false): new functions implemented as a convenience
18         for signals that just need a handler with the appropriate return value.
19
20 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
21         gdk.c: Fix so that "other_events" are actually generated
22
23 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
24         Patches to support internationalized input by:
25           Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
26           TANAKA Shinya <shinya@race.u-tokyo.ac.jp>
27
28         From the README:
29         
30         Feature:
31           Followings are the main feature of this patch.
32             * support XIM protocol.
33             * GtkEntry widget support Over-The-Spot and Root style input.
34             * input style is configurable by command-line option.
35
36         Furthermore, this patch includes several changes which are useful 
37           without XIM too.
38         
39             * copy and paste with other clients by compound text.
40             * Window title can be specified by multi byte string.
41
42         configure.in: 
43           Added --with-locale and --enable-xim options
44         gdk/Makefile.am:
45         gdk/gdki18n.h [new file]
46           Multibyte string manipulation functions
47         gdk/gdk.c
48         gdk/gdk.h
49         gdk/gdkprivate.h
50           Input method and context handling functions
51           Command line options to control input methods
52           Changes to KeyPress handling to support input methods
53           Fixes to not return events for destroyed windows
54         gdk/gdkselection.c
55           Text property handling functions
56         gdk/gdkwindow.c
57           Set window title by multibyte string
58         gtk/gtkentry.c
59           Support for using an input context for XIM input.
60           Cut and paste using compound text.
61           Improvements to pasting (no longer replace the active selection
62             with itself OWT)
63         gtk/gtkselection.c
64           fix to send selection clear events to the right owner
65         gtk/testgtkrc
66           Added a default fontset that will allow international characters
67         INSTALL
68           Some rudimentary documentation about the new configuration options.
69         
70 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
71         gtk/gtkaspectframe.c:
72         Some minor improvements to rounding in aspectframes.
73         Make sure that child allocation is always >= 0
74         Always trigger size allocation with gtk_widget_queue_resize
75         to prevent calling size_allocate before allocation done.
76
77 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
78         gtk/gtkframe.c:
79         Changed tests for drawability to GTK_WIDGET_DRAWABLE
80         Always trigger size allocation with gtk_widget_queue_resize
81         to prevent calling size_allocate before allocation done.
82
83 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
84         gtk-dairiki-971117-2.patch
85         gtk/gtkaspectframe.c (gtk_aspect_frame_size_allocate): When
86         computing new dimensions of the subwidget, round to nearest
87         integer rather than truncating.
88
89 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
90         gtk-dairiki-971117-1.patch
91         * gtk/gtkvruler.c (gtk_vruler_draw_ticks):
92         * gtk/gtkhruler.c (gtk_hruler_draw_ticks): Ensure that subticks
93         always are drawn when they should be (sometimes they were getting
94         drawn with zero length --- invisible).  Also clear rectangle
95         behind text labels to ensure they don't touch or overlap ticks. 
96
97 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
98         * gtk/gtkaspectframe.c (gtk_aspect_frame_set): 
99         gtk-dairiki-971117-0.patch
100         Clear window when aspect ratio or alignment is changed.
101
102 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
103         * gtk/gtkobject.h: fixed GTK_OBJECT_NSIGNALS macro
104
105 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
106         * gtk/gtklabel.h: modified gtklabel to clip its drawing to
107         its given area, now it will always draw in the area it's 
108         been given and clip accordingly.  Note: this may cause
109         the a label to disappear on widgets which don't give their
110         child labels proper area!
111
112 Mon, 17 Nov 1997 Michael K. Johnson <johnsonm@redhat.com>
113         * gtkwidget.c: gtk_set_style_recurse was not allowing updated
114         widget names to cause new styles to be applied.
115         * gtkentry.c gtkentry.h: The entry widget now has invisible
116         attribute.  The cursor does not move to show you typing; this
117         is an intentional design decision but I'm not so attached to it
118         that I'll reverse any patches that change it...  :-)
119
120         This patch is a modified version of a patch to which I have
121         lost the attribution.  I modified it by packing the "visible"
122         flag into the structure more tightly (without damaging backwards
123         compatibility on sane systems) and by allowing entry timers
124         to run.
125
126 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
127         * gtkviewport.c: Raph's Mon, 10 Nov 1997 patch to gtk-list 
128         to fix some viewport bugs
129
130 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
131         * gtk/gtkwidget.c: gtk-ajaborsk-971016-2
132         A little patch again to prevent user to use gtk_widget_set_events()
133         when a widget is already realized.
134         In this case, the gtk_widget_set_events() doesn't work.
135
136 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
137         * gtk/gtkwindow.c: gtk-ajaborsk-971016-1
138         This small patch correct position for GTK_WIN_POS_CENTER and
139         GTK_WIN_POS_MOUSE GtkWindow positions.
140
141 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
142         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
143         * gdk/gdk.h: header for above
144
145 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
146         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
147         * gdk/gdk.h: header for above
148
149 Wed Nov 12 1997 Jay Painter <jpaint@serv.net>
150         * gdk/gdkpixmap.c: Patrice Fortier's patch for transparent pixmaps.
151         * gdk/gdk.h:
152           gdk/gdkdraw.c: Patrice Fortier's patch to add pixel draw function.
153
154 Sun Nov  9 1997 Jay Painter <jpaint@serv.net>
155         * Fixed problems with makefiles relating to the bug
156         which required glib to be installed.
157         * Fixed makefiles to incluce the xpm's in gtk+/gtk needed
158         for testgtk.
159         * Updated gtk+ and gtk+/glib to libtool-1.0f
160
161 Fri Nov  7 1997 Jay Painter <jpaint@serv.net>
162         * gtk/gtktext.c: return char_widths[ch & 0xff]; in line 2152
163
164 Thr Nov  5 1997 Jay Painter <jpaint@serv.net>
165         * gtk/testgtk.c: added drag and drop test, removed the test hack
166         from the button test
167
168 Tue Nov  4 08:28:57 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
169
170         * gtk/gtkmain.c (gtk_handle_idle): Patch from David Mosberger to
171         avoid crashes when handling idle function (this manifested itself
172         in the Umax and Microtek backends in SANE.
173
174 Sun Nov  2 07:34:56 1997  Tim Janik  <timj@psynet.net>
175
176         * gtk/gtkfilesel.c: Small fixes about a segmentation viaolation
177         cause by a double click in the directoy list (introduced by my
178         previous changes).
179         
180         * gtk/gtklist.c: Small fixes to gtk_list_add() and gtk_list_remove().
181         
182         * gtk/testgtk.c (list_add): Applied Stefan Wille's patch to make this
183         function do something ;).
184
185 Fri Oct 31 Jay Painter <jpaint@serv.net>
186         *gdk/gdk.c: reformatted DND code for GTK coding standards
187         *gdk/gdkwindow.c: changed memory allocation for DND to q_mem stuff
188
189 Thu Oct 30 Jay Painter <jpaint@serv.net>
190         * gdk/gdkwindow.c: 
191         * gdk/gdk/gdk.h:
192         * gtk/gtkwidget.h:
193         * gtk/gtkwidget.c: Applied Stephan Willie's shaped window patch
194
195         * gdk/gdkwindow: 
196         * gdk/gdk.h:
197         * gtk/gtkwidget.h:
198         * gtk/gtkwidget.c: reformatted the DND code to conform to GTK
199                 coding standards
200
201         * gtk/testgtk: massive fixes, SW's shaped window example
202
203 Thu Oct 30 07:33:27 1997  Tim Janik  <timj@psynet.net>
204
205         * gtk/gtklistitem.c (gtk_real_list_item_toggle): applied Johannes
206         Keukelaar's <johannes@nada.kth.se> patch for keyboard support in
207         GtkList widgets.
208
209         * gtk/gtkfilesel.c: adapted dir and file list selection
210         behaviour to deal with keyboard selections. this is a little
211         bit tricky: in the dir list it just changes the entrys value on a one
212         button press. but on a keyboard selection via gtk_widget_activate() it
213         does a new population (likewise on a double click) as this seems more
214         obvious.
215
216 1997-10-25  Marius Vollmer  <mvo@zagadka.ping.de>
217
218         * gdk/gdkcolor.c (gdk_colormap_get_system): Initialize
219         private->ref_count.
220
221 Wed Oct 22 09:47:43 1997  Tim Janik  <timj@psynet.net>
222
223         * gtk/gtkwindow.c (gtk_window_key_release_event): Fixed a stupid
224         bug that caused the key_release_event to be propagated twice.
225
226 Sun Oct 12 11:01:43 1997  Tim Janik  <timj@psynet.net>
227
228         * acconfig.h:
229         * configure.in:
230         * gdk/gdkimage.c: Added configure check for IPC_RMID_DEFERRED_RELEASE,
231         because shmat() fails after a shmctl(..., IPC_RMID,...) for OSF1 V3.2,
232         SunOS 4.1.1, 5.5, 5.5.1, 5.6, IRIX 5.2 and 6.2.
233
234 Mon Oct  6 11:59:07 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
235
236         * gdk/gdk.c (gdk_event_translate): In line 1693, fixed typo that
237         would cause motion notify events not to be delivered.
238
239 Sun Oct  5 18:15:06 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
240
241         * gtk/gtkrc.c (gtk_rc_parse_bg_pixmap): Changed strdup() for
242         g_strdup().
243
244 Wed Sep 24 17:16:34 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
245
246         * configure.in: Fixed a stupid error in the test for libXext that
247         would cause it to fail if X_EXTRA_LIBS was not empty.
248
249         * gtk/gtkmain.h (gtk-timj-970919.patch):
250         * gtk/gtkmain.c (gtk-timj-970919.patch): new function
251         `gtk_idle_remove_by_data' to remove all idle callbacks that take a
252         specific piece of data as argument.  (gtk_get_current_event):
253         remove idles through gtk_idle_remove_by_data.
254         
255         * gtk/gtkwidget.c (gtk-timj-970919.patch):
256         (gtk_widget_destroy): remove pending idles for
257         widgets that have GTK_REDRAW_PENDING or GTK_RESIZE_PENDING and
258         GTK_ANCHORED set (only anchored widgets can have a resize queue
259         handler pending). widgets that have GTK_RESIZE_NEEDED will be removed
260         from their anchored toplevels `resize_widgets' list.
261         
262         (gtk_widget_queue_draw): let the widget remember the queue handler
263         tag (through `redraw_handler_key') for later call to `gtk_idle_remove'.
264         
265         (gtk_widget_queue_resize): let the widget remember the queue handler
266         tag (through `resize_handler_key') for later call to `gtk_idle_remove'.
267         corrected referencing the toplevel widget for which the handler is
268         pending. if a widget is added to the `resize_widgets' list of a
269         toplevel widget, GTK_RESIZE_NEEDED is set and it's referenced.
270         
271         (gtk_real_widget_queue_resize): on the deletion of the `resize_widgets'
272         list, unset GTK_RESIZE_NEEDED and unreference the removed widgets.
273         
274         * gtk/gtkwindow.c (gtk-timj-970919.patch):
275         (gtk_real_window_move_resize): move `resize_containers = NULL'
276         initialization out of if-statement.
277         while stepping through the `resize_widgets' list, unreference the
278         widgets and clear GTK_RESIZE_NEEDED. if a widget realy needs are
279         resize, they are flagged through GTK_RESIZE_NEEDED now (instead of
280         GTK_RESIZE_PENDING, as this is indicative for a pending handler).
281         added checks to provide segfaulting if a widgets parent pointer
282         is NULL (e.g. on toplevel widgets that have GTK_RESIZE_NEEDED set).
283
284 Tue Sep 23 13:23:27 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
285
286         * gdk/gdkimage.c: Applied Tim Janik's patch to mark shm segments
287         as IPC_RMID so that they are automatically removed always.
288
289         * gdk/gdkfont.c: Removed casts from lvalues.
290
291         * gtk/gtkmain.c: Removed GTK_RETLOC_*() (which do a cast) from lvalues.
292
293         * gtk/gtkaccelerator.c (gtk_accelerator_table_remove): Added
294         "const" to the accelerator_key param to be consistent with the
295         declaration in gtkaccelerator.h.  The const is not useful in this
296         case, anyway.
297
298 Tue Sep 16 13:11:06 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
299
300         * gtkpreview.c: Andrew Logan Kieschnick's change to eliminate
301         round-off error when gamma is set to 1.0.
302
303         * gtkrange.c:
304         * gtkviewport.c: Jay Painter's changes to modify the way in which
305         viewports resize.
306
307         * gdkinput.c:
308         * gdkinputgxi.h:
309         * gdkinputxfree.h:
310         * gtk/Makefile.am:
311         * gtk.h:
312         * gtkeventbox.c:
313         * gtkeventbox.h: Owen Taylor's event box widget and fixes for X
314         input support (that I had broken).
315
316         * gdk.h:
317         * gdkwindow.c:
318         * gtksignal.h:
319         * gtksignal.c: Elliot Lee's changes to support Objective C. (id is
320         apparently a reserved word in Objective C).
321
322 Sun Sep 14 22:33:15 1997  Peter Mattis  <pmattis@localhost>
323
324         * gtkwidget.c (gtk_widget_queue_resize): If the toplevel container
325         is invisible we simply call "gtk_container_need_resize" on
326         it. This fixes a bug with option menus not redrawing correctly.
327
328         * gtkmenuitem.c (gtk_menu_item_enter): (gtk_menu_item_leave):
329         These functions now simply pass the event on to their parent. This
330         is necessary for menus to work properly due to the change in how
331         grabs are dealts with.
332
333         * gtkwindow.c (gtk_real_window_move_resize): Fixed a bug that
334         caused the GTK_RESIZE_PENDING flag to not be unset in some cases.
335
336 Fri Sep  5 20:49:37 1997  Marius Vollmer  <mvo@zagadka.ping.de>
337
338         Bug fixes:
339
340         * Makefile.am: Added PATCHES to EXTRA_DIST.
341         * gtk/gtkpixmap.c (gtk_pixmap_new): Move the "pixmap != NULL" test
342         after the allocation of the pixmap.
343
344         To shut up the compiler:
345
346         * gtk/gtkfilesel.c (get_pwdb): Initialize home_dir.
347         * gtk/gtkmain.c (gtk_init): Replace comments around calls to
348         g_set_*_handler with "if (0)".
349         * gtk/gtkrc.c (gtk_rc_get_token): Initialize hex_number and
350         float_number.
351         * gtk/gtkwindow.c (gtk_window_key_press_event): Initialize
352         direction.
353
354         Changes to the type system in gtk/:
355
356         * Makefile.am: Added gtktypebuiltins.h to gtkinclude_HEADERS.
357         Added gtk.defs, runelisp, gentypeinfo.el and gtktypebuiltins.c to
358         EXTRA_DIST.  Added rules to generate gtktypebuiltins.* from
359         gtk.defs.
360
361         * runelisp, gentypeinfo.el, gtk.defs: New files.
362
363         * gtkaccelerator.c, gtkaccelerator.h (gtk_accelerator_table_ref):
364         Return the table so that this function can be used as the `copy'
365         function for GTK_TYPE_BOXED values.
366         * gtkstyle.c, gtkstyle.h (gtk_style_ref): Likewise.
367
368         * gtkenums.h: Removed GtkArgType enum.
369
370         * gtkmain.c (gtk_init): Call gtk_type_init to initialize the type
371         system.
372
373         * gtkobject.c (gtk_object_init_type): New function to take over
374         for gtk_object_get_type. (gtk_object_get_type): Just return the
375         constant GTK_TYPE_OBJECT. (gtk_object_collect_args): Do the right
376         thing for the new GTK_TYPE_* types.
377         * gtksignal.c (gtk_params_get): Likewise.
378
379         * gtktypeutils.c: (gtk_type_init_builtin_types): New
380         function. (gtk_type_init): Call it.  Also made non-static.
381         (gtk_type_unique): The allocation scheme for numerical ids has
382         changed: The low 8 bits hold the appropriate GtkFundamentalType of
383         a type, the rest is a globally unique sequence number.
384         (gtk_type_hash): Use the sequence number of a key to hash it.
385         (gtk_type_register_builtin): New function.
386
387         * gtktypeutils.h: (GtkFundamentalType): New enumeration of the
388         fundamental types. (GTK_TYPE_MAKE, GTK_FUNDAMENTAL_TYPE,
389         GTK_TYPE_SEQNO): New macros to work with the new id scheme.
390         (GtkArg): Added fields for new types and renamed old ones.  GtkArg
391         should now be a mostly opaque structure, except name and type.
392         (GTK_VALUE_*): New macros to access the values of a GtkArg.
393         (GTK_RETLOC_*): New macros to access the location of a return
394         value that is contained in a GtkArg.  * gtktypebuiltins.h: New
395         file to access the typeids of the builtin types.
396
397         * gtkwidget.h (GTK_TYPE_WIDGET): New macro to access the type id
398         of the widget class.
399
400         Thru out: Changed GTK_ARG_* to the appropriate GTK_TYPE_*.
401         Changed access to GtkArg structure to the appropriate GTK_VALUE_*
402         or GTK_RETLOC_* macro.  Changed GtkArgType to GtkType.  Changed
403         some guints to GtkType.
404
405         General changes in gtk/ to support interpreters:
406
407         * gtkradiobutton.c (gtk_radio_button_new_from_widget,
408         gtk_radio_button_new_with_label_from_widget): New functions.
409
410         * gtksignal.c (gtk_signal_connect_no_marshal): New function.
411         (struct _GtkHandler): Added no_marshal and destroy_func fields.
412         (gtk_signal_handler_new): Initialize them.
413         (gtk_signal_connect_by_type): Added no_marshal and destroy_func
414         arguments.  Changed all callers.
415         (gtk_signal_destroy): Invoke destroy_func if there is one and the
416         global destroy func does not apply.  (gtk_handlers_run): If the
417         handler has no_marshal set, call its function directly without
418         going thru the signal's marshaller.
419
420 Wed Sep  3 09:56:22 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
421
422         * gtkrange.c: Changed the way the range control focus was drawn so
423         that the range control is drawn correctly when it does not have
424         the focus.
425
426 Tue Sep  2 17:41:17 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
427
428         * gtkwidget.c: 'gtk_real_widget_queue_resize' should only remove
429         the "resize_widgets" if another resize is not pending.
430
431 Mon Sep  1 18:28:08 1997  Peter Mattis  <pmattis@localhost>
432
433         * gtkmain.c: Changed the way GDK_DELETE events are handled. Only,
434         if 'gtk_widget_event' returns TRUE is the widget destroyed. By
435         default, 'gtk_widget_event' will return FALSE causing the window
436         to not be destroyed. This prevents segfaults in the GIMP and other
437         programs that do not correctly handle GDK_DELETE events.
438
439         * gtkmain.c: Added modal dialog support by allowing events
440         destined for a child of the grab widget to go to the child instead
441         of the grab widget. (Added 'gtk_widget_is_ancestor' to determine
442         the relationship between the grab widget and the event widget).
443
444         * *.[ch]: Incorprated a whole mess of patches. (Started keeping
445         the ChangeLog up to date again).
446
447 Thu Jun  5 17:22:21 1997  Peter Mattis  <pmattis@localhost>
448
449         * gtkmenufactory.c:
450         * gtkmenufactory.h: Added 'gtk_menu_factory_remove_*'
451         calls. Removing entries/paths causes the associated widgets to be
452         destroyed.
453
454         * gtkwidget.c:
455         * gtkwidget.h: Calling 'gtk_widget_set_style' is used as an
456         indication that the programmer specifically wants that style to be
457         used. RC-style substitution is disabled for the widget after such
458         a call.
459
460         * gtkpixmap.c:
461         * gtkpixmap.h:
462         * gtkimage.c:
463         * gtkimage.h: Changed to use clip mask and a single pixmap (or
464         image) to deal with transparent areas.
465
466         * gdkpixmap.c: Modified xpm loading routines to optionally return
467         a clip mask.
468
469         * gdkgc.c:
470         * gdkdraw.c:
471         * gdktypes.h: Modifications to allow clip masks to be used with
472         gc's. Clip masks are bitmaps that specify drawable regions.
473
474 Thu May  1 03:11:51 1997  Peter Mattis  <pmattis@localhost>
475
476         * gtkscrolledwindow.c: Scrolled windows need to have the
477         GTK_NO_WINDOW flag set. Not having it set caused an obscure
478         redrawing bug.
479
480 Wed Apr 30 12:38:03 1997  Peter Mattis  <pmattis@localhost>
481
482         * gtkhruler.c:
483         * gtkvruler.c: Fixed a small bug that caused the indicator to be
484         positioned slightly off.
485
486 Sun Apr 27 14:28:21 1997  Peter Mattis  <pmattis@localhost>
487
488         * gtkmenushell.c:
489         * gtkmenushell.h:
490         * gtkmenu.c:
491         * gtkmenu.h: Changes so that if a menu is popped up there is a
492         timeout period during which a menu item will not be activated and
493         if the mouse button is released in that period the menu will stay
494         popped up.
495
496         * gtkcurve.c:
497         * gtkcurve.h: Included curve widget courtesy of David
498         Mosberger-Tang (davidm@azstarnet.com).
499
500         * gtkentry.c:
501         * gtkentry.h: Changed "insert" and "delete" signals to
502         "insert_text" and "delete_text" respectively. (The symbol "delete"
503         cannot be used since it is a C++ reserved word).
504
505 Sat Apr 19 01:43:49 1997  Peter Mattis  <pmattis@localhost>
506
507         * gtkmenufactory.c: A path which ends in "<nothing>" will cause an
508         invisible (hidden) menu entry to be created. This is useful for
509         setting an accelerator key for which a corresponding menu entry is
510         not desired.
511
512         * gtktooltips.c: Fixed some problems with destruction of the
513         active tip widget not properly updating the tooltips data
514         structures.
515
516 Fri Apr 18 15:09:45 1997  Peter Mattis  <pmattis@localhost>
517
518         * gtkcontainer.c:
519         * gtklist.c:
520         * gtkwidget.c:
521         * gtkwidget.h: Patch from Owen Taylor (owt1@cornell.edu) which
522         fixes problems with destruction of objects and with destruction of
523         objects which hold the focus.
524
525 Thu Apr 17 11:29:15 1997  Peter Mattis  <pmattis@localhost>
526
527         * gtkmenushell.c: Incorrect logic in
528         'gtk_menu_shell_button_release' for deciding when a menu should
529         stay popped up when the mouse button is released.
530
531         * *.c: Miscellaneous fixes from folks on the net.
532
533 Tue Apr 15 02:43:17 1997  Peter Mattis  <pmattis@localhost>
534
535         * *.c:
536         * gtkwidget.h: Added GTK_BASIC widget flag which when set
537         specifies a widget as "basic". A "basic" widget is one which
538         doesn't take input events. For example, labels, pixmaps, boxes,
539         tables, alignments, etc.
540
541 Sat Apr 12 15:23:08 1997  Peter Mattis  <pmattis@localhost>
542
543         * gtkcolorsel.c: Add "#include <math.h>" to define M_PI.
544
545         * gtksignal.c: Fixed a bug in 'gtk_signal_emit' which showed up
546         because of the new cast checking macros. The 'object' was being
547         accessed after it had been destroyed.
548
549         * gtkoptionmenu.c: Fixed bug with using 'GTK_BIN' instead of
550         'GTK_BUTTON' which showed up because of the new cast checking
551         macros.
552
553         * *.h: 'GTK_CHECK_CAST', 'GTK_CHECK_CLASS_CAST' and
554         'GTK_CHECK_TYPE' used by standard widget macros everywhere.
555
556 Wed Apr  9 00:54:17 1997  Peter Mattis  <pmattis@localhost>
557
558         * docs/gtk.texi: Started further work on documentation. Major
559         changes and additions are being made.
560
561         * gtkarrow.c:
562         * gtkarrow.h: Removed function 'gtk_arrow_get'.
563
564         * gtkcontainer.c: 'gtk_container_check_resize' no performs
565         additional checking to account for the case where the containers
566         allocation is no longer sufficient because its parent (or its
567         parents parent, etc.) needs to resize its children.
568
569 Tue Apr  8 21:15:50 1997  Peter Mattis  <pmattis@localhost>
570
571         * gtkstyle.c: Fixed a bug in 'gtk_style_init' in which the font
572         was not ref'd (via 'gdk_font_ref'), but was free'd (via in
573         'gdk_font_free') in 'gtk_style_destroy'. (David
574         Mosberger-Tang). Also cleaned up 'gtk_style_destroy' while I was
575         at it.
576
577         * gtkmain.c: Fixed a bug in 'gtk_propogate_event' which caused
578         entry widgets (and probably other widgets) not to be destroyed in
579         some instances.
580
581 Mon Apr  7 01:20:38 1997  Peter Mattis  <pmattis@localhost>
582
583         * gtkentry.c:
584         * gtkentry.h: Changed the "insert_text", "delete_text" and
585         "changed_text" signals to "insert", "delete", and "changed"
586         respectively. They really should have been named this way
587         originally except the previous signal mechanism prevented
588         duplicate signal names. ("changed" is also used by adjustments).
589
590         * gtkradiomenuitem.c:
591         * gtkradiomenuitem.h: New widget.
592
593         * gtkcheckmenuitem.c:
594         * gtkcheckmenuitem.h: New widget.
595
596         * gtksignal.c: Modified 'gtk_signal_lookup' to require an object
597         type to be passed as a parameter. In addition, signals are now
598         only needed to be uniquely defined in their branch of the class
599         hierarchy. This allows the same signal name to be used in two
600         different branches of the class hierarchy. For instance, the
601         "changed" signal is used both by adjustments and entries...in
602         different ways!
603
604         * gtktypeutils.c: Added 'gtk_type_parent' which returns the parent
605         type for a given type.
606
607 Sun Apr  6 22:08:35 1997  Peter Mattis  <pmattis@localhost>
608
609         * gtkwidget.c: If a widget is set insensitive it loses the focus
610         if it had it.
611
612         * gtkcontainer.c: Insensitive widgets no longer participate in tab
613         traversal.
614
615         * gtkscrolledwindow.c: The "viewport" child is now destroyed and a
616         container class "foreach" function was written (which fixes the
617         sensitivity bug).
618
619 Sat Apr  5 14:25:38 1997  Peter Mattis  <pmattis@localhost>
620
621         * gtkhscrollbar.c:
622         * gtkvscrollbar.c: Fixed trough size allocation bug.
623
624         * gtkhscale.c:
625         * gtkvscale.c: Fixed trough size allocation and position bug that
626         showed up when scales were placed in notebooks.
627
628 Thu Mar 27 17:45:54 1997  David Mosberger-Tang  <davidm@azstarnet.com>
629
630         * gtk/gtkmain.c (gtk_handle_idle): Fix appending pending_idles to
631         idle_functions so it works even when idle_functions is empty.
632
633 Sat Mar 15 14:15:59 1997  Peter Mattis  <pmattis@localhost>
634
635         * *.[ch]: Moved '*_class_init' and '*_init' function declarations
636         for widgets into the source file as those functions no longer had
637         to be public.
638
639         * gtkcheckbutton.c: Fixed redrawing of check button.
640
641         * gtkframe.c: Fixed redrawing of frame when the shadow type is
642         changed.
643
644 Sat Mar  8 15:19:23 1997  Peter Mattis  <pmattis@localhost>
645
646         * gdkimage.c: Fixed a stupid bug with 'gdk_image_new' which
647         potentially added a NULL image to "image_list" and caused problems
648         when 'gdk_image_exit' was called.
649
650 Wed Mar  5 00:40:08 1997  Peter Mattis  <pmattis@localhost>
651
652         * gtkpreview.c: Massively changed the colormap handling used by
653         the preview widget. Gray previews are now dithered. A single
654         visual and colormap is shared by the color and gray previews. A
655         GTK_PREVIEW_INFO property is installed on the root window in
656         certain cases to allow multiple GTK programs to share the system
657         colormap.
658
659 Sun Mar  2 05:43:06 1997  Peter Mattis  <pmattis@localhost>
660
661         * gtkcheckbutton.c: 'gtk_checkbutton_size_allocate' was allocating
662         too much space to its children and not leaving the check button
663         room for the focus border.
664
665         * gtknotebook.c: 'gtk_notebook_size_request' wasn't requesting
666         enough space when the notebook tabs are visible.
667
668 Sat Mar  1 01:59:35 1997  Peter Mattis  <pmattis@localhost>
669
670         * gtkpreview.c: Fixed a problem with 'gtk_preview_put' when the
671         image byte order is GDK_MSB_FIRST.
672
673         * gtksignal.c:
674         * gtksignal.h: Added 'gtk_signal_connect_after' and
675         'gtk_signal_connect_object_after' functions. These connect signal
676         handlers which will run after the class function associated with
677         the signal.
678
679         * gtkstyle.c: Fixed a stupid bug in 'gtk_style_new_from_key' that
680         was causing twice as many styles to be created as necesary.
681
682         * gtkwidget.c: 'gtk_real_widget_size_allocate' erases the widgets
683         old allocation if it has the GTK_NO_WINDOW flag set.
684
685         * gtkwidget.c: 'gtk_real_widget_unmap' now erases the widget if it
686         has the GTK_NO_WINDOW flag set.
687
688         * gtklabel.c: Removed 'gtk_label_unmap' as similar functionality
689         was added to gtk_real_widget_unmap.
690
691         * gtkbin.c: Modified 'gtk_bin_map' and 'gtk_bin_unmap' so that it
692         erases and draws the widget if it has the GTK_NO_WINDOW flag set.
693
694         * gtkframe.c: Modified 'gtk_frame_size_allocate' so that it erases
695         the old allocation.
696
697 Fri Feb 28 03:27:05 1997  Peter Mattis  <pmattis@localhost>
698
699         * gtkwindow.c: 'gtk_window_set_title' now changes the window title
700         if the window is already realized.
701
702         * gtkentry.c: 'gtk_entry_set_text' was emitting both a
703         "delete_text" and a "changed_text" signal. Modified so that it
704         only emits a "changed_text" signal.
705
706         * gtkpreview.c: Modified to work correctly on systems with MSB
707         byte order. The colormap for TRUE and DIRECT color displays is now
708         created if the default visual is not equal to the visual we are
709         using.
710
711         * gtkstyle.c: 'gtk_style_attach' and 'gtk_style_find' weren't
712         working properly in the presence of multiple colormaps are
713         different depth visuals.
714
715         * gtkcontainer.c: Massively improved focus traversal using tab and
716         arrow keys. It now uses the layout of the widgets to determine
717         where to move the focus to.
718
719 Mon Feb 24 03:24:02 1997  Peter Mattis  <pmattis@localhost>
720
721         * gtkmenufactory.c: Set the accelerator table field for menus when
722         they are created.
723
724         * gtkmenu.c:
725         * gtkmenu.h: Added a default accelerator table field to menus so
726         that runtime modification of accelerator keys in menus can work
727         better.
728
729         * gtkrange.c: 'gtk_range_default_{h,v}motion' had faulty logic for
730         deciding what to do when the slider was at the edge of the
731         trough. They previously didn't update the adjustment value event
732         if the value wasn't what it should be when the slider was at the
733         edge of the trough.
734
735         * gtkviewport.c: 'gtk_viewport_size_allocate' and
736         'gtk_viewport_adjustment_value_changed' both had the potential for
737         performing a divide by 0. Checks are now in place to prevent this.
738
739         * gtkmenu.c: 'gtk_menu_map' now makes sure the menu lies on screen
740         if the position function is NULL.
741
742         * gtkentry.c: Modified selection handling. 'gtk_delete_selection'
743         actually removes the X selection now. 'gtk_entry_destroy' removes
744         the selection as well and relies on the change in "gdk.c" to make
745         sure the selection event will not be sent to a non-existant
746         window.
747
748         * gdk.c: Selection events are only passed on if the selection
749         owner is not NULL.
750
751         * gtkstyle.c: 'gtk_style_detach' and 'gtk_style_destroy' were not
752         destroying the black and white gc's.
753
754 Sun Feb 23 19:17:56 1997  Peter Mattis  <pmattis@localhost>
755
756         * gtkwindow.c: 'gtk_window_size_request' was setting the window
757         hints. This was also being done in 'gtk_window_map', so the
758         instance being done in 'gtk_window_size_request' was removed.
759
760 Fri Feb 21 01:04:01 1997  Peter Mattis  <pmattis@localhost>
761
762         * gtkwidget.c: 'gtk_widget_draw' has to use the widgets allocated
763         position for the drawing rectangle when the widget has the
764         GTK_NO_WINDOW flag set.
765
766         * gtkwidget.c: In 'gtk_widget_init' the visual and colormap were
767         being directly compared against 'default_visual' and
768         'default_colormap' instead of calling
769         'gtk_widget_get_default_{visual,colormap}'.
770
771         * gdkrectangle.c: Amazing! There was a bug in the
772         'gtk_rectangle_intersect' logic. Its been there for near eternity
773         and I never noticed.
774
775         * gtkpreview.c:
776         * gtkpreview.h: Created preview widget which allows drawing to an
777         rgb or grayscale buffer which is automatically displayed on the
778         screen. Performs dithering as necessary.
779
780 Thu Feb 20 20:33:21 1997  Peter Mattis  <pmattis@localhost>
781
782         * gdkwindow.c: Modified the logic in 'gdk_window_new' which
783         determined when to add a window to the WM_COLORMAP_WINDOWS
784         property.
785
786 Wed Feb 19 19:55:29 1997  Peter Mattis  <pmattis@localhost>
787
788         * gtkruler.c: 'gtk_ruler_make_pixmap' was always destroying the
789         old backing store and creating a new one even when it would create
790         a new one of exactly the same size as the old one.
791
792 Tue Feb 18 18:32:10 1997  Peter Mattis  <pmattis@localhost>
793
794         * gmem.c: 'g_mem_chunk_alloc' was incorrectly modifying the mem
795         areas free mem field when reallocating a previously freed
796         atom. This caused a fairly severe memory leak.
797
798         * gtkmenushell.c: 'gtk_menu_shell_button_release' had a bug in the
799         logic for deciding whether to initiate an X pointer grab or not
800         when the mouse button was released. It now only initiates a grab
801         if the mouse is released within an active menu item.
802
803 Fri Feb 14 00:57:40 1997  Peter Mattis  <pmattis@localhost>
804
805         * gtknotebook.c: Changed the look of notebook tabs slightly.
806
807         * gtkentry.c:
808         * gtkentry.h: Deleting an entry widget which is holding the X
809         selection presents some difficulties. The X selection must be
810         released, but the widget can't be destroyed until the
811         SELECTION_CLEAR event is received that the X server will send in
812         response to clearing the X selection. There are probably still
813         bugs in the current method of entry widget deletion when the X
814         selection is held.
815
816         * gtkmain.c: 'gtk_propagate_event' was not properly destroying the
817         toplevel window when receiving a key press event.
818
819         * gtkwidget.c: Setting a widget insensitive did not cause it to
820         redraw. It now does.
821
822 Thu Feb 13 16:59:07 1997  Peter Mattis  <pmattis@localhost>
823
824         * gtkviewport.c: 'gtk_viewport_size_allocate' was allocating its
825         child widget an adjusted allocation. Since the actual scrolling
826         has handled by a subwindow this caused the child to be double
827         scrolled. Modified to always set the child allocations origin to
828         (0, 0).
829
830 Wed Feb 12 01:06:48 1997  Peter Mattis  <pmattis@localhost>
831
832         * gtkentry.c: Text is now centered vertically. Previously it was
833         pushed up against the top. This problem was only evident when the
834         widget was allocated more vertical space than it requested.
835
836         * gtkfilesel.c: 'gtk_file_selection_key_press' was previously only
837         a stub for tab completion. The actual tab completion call had been
838         left out. (Oops!)
839
840 Tue Feb 11 01:43:08 1997  Peter Mattis  <pmattis@localhost>
841
842         * gtksignal.c: 'gtk_signal_disconnect_by_data' was going into a
843         loop and crashing. Bad logic. Fixed.
844
845         * gtkmain.c: An idle function which returns FALSE will be removed
846         from the list of idle functions. This makes the functioning of
847         idle functions and timeouts more similar.
848
849         * gtkentry.c: 'gtk_entry_get_text' now returns an empty string
850         when the actual text is NULL. This allows "stupid" programs to use
851         the value returned by 'gtk_entry_get_text' blindly (without
852         checking to see if its NULL).
853
854         * gtkradiobutton.c: Modified 'gtk_radio_button_clicked' so that
855         'gtk_toggle_button_toggled' is called _after_ the widget state is
856         changed.
857
858         * gtksignal.c:
859         * gtksignal.h: Added 'gtk_signal_name' which returns the character
860         string name for a given signal number.
861
862         * gtkwidget.c: 'gtk_widget_set_parent' checks to see if the widget
863         is now "anchored" through the parent chain to a widget which is
864         GTK_ANCHORED. If it is, then it changes the widgets style using
865         'gtk_rc_get_style' and recursively performs the same operation on
866         the widgets children. This is necessary is 'gtk_rc_get_style' only
867         works properly on "anchored" widgets.
868
869         * gtkwindow.c: Modified GTK_WIN_POS logic so that it is only used
870         immediately after the window has been shown.
871
872         * gtkmenu.c: 'gtk_menu_key_press'. Can now change menu item
873         accelerator keys on the fly. Why? Why not. Cool/useless feature of
874         the day.
875
876         * gtkmenuitem.c: Accelerator key drawing. Somehow that never got
877         finished. (Oops!)
878
879         * gtkdrawingarea.c: 'gtk_drawing_area_size_allocate' was not
880         actually installed during 'gtk_drawing_area_class_init'. (Oops!)
881
882         * gtkframe.c: 'gtk_frame_size_request' fixed size requisition
883         problem caused by unsigned arithmetic.
884
885         * gtkwindow.c: Modified window widget so that it only uses the
886         widget uposition auxiliary information immediately after it has
887         been shown. This prevents the annoying bug which can cause a
888         uposition'ed window to jump back to its original position after
889         the user moves it.
890
891         * gtkwidget.c: Need to ref and unref style in
892         'gtk_widget_{push,pop}_style' to make sure that a style on the
893         style stack is not destroyed.
894
895         * gtktogglebutton.c: 'gtk_toggle_button_set_state' now calls
896         gtk_button_clicked to actually change the state of the
897         button. In this way, radio buttons can now perform the appropriate
898         actions when the toggle button state is set.
899
900 Mon Feb 10 00:27:39 1997  Peter Mattis  <pmattis@localhost>
901
902         * gtklist.c: 'gtk_list_select_item' and 'gtk_list_unselect_item'
903         were casting a GList* variable to a a GtkWidget* variable. Bad bad
904         bad. (Tim Janik).
905
906         * gtksignal.c: Modified 'gtk_signal_connect' and
907         'gtk_signal_connect_object' to warn when a signal type cannot be
908         found.
909
910 Sun Feb  9 00:15:30 1997  Peter Mattis  <pmattis@localhost>
911
912         * gtkoptionmenu.c:
913         * gtkoptionmenu.h: Changed option menus back to being derived from
914         buttons. This fixes up some screwiness with their user
915         interaction.
916
917         * gtkwindow.c: Modified key press handler to support focus
918         traversal.
919
920         * gtkcontainer.c:
921         * gtkcontainer.h: Added default focus traversal back in.
922
923 Sat Feb  8 10:44:38 1997  Peter Mattis  <pmattis@localhost>
924
925         * gtkviewport.h:
926         * gtkviewport.c: Massively sped up viewport scrolling. Used to be
927         reallocating child's size (offset) each time a scrollbar
928         moved. Now a subwindow is moved. All the children are moved
929         automatically by moving the subwindow. Much much much faster.
930
931 Tue Feb  4 00:20:44 1997  Peter Mattis  <pmattis@localhost>
932
933         * gtree.c: Changed 'g_tree_node_search' to use a loop instead of
934         recursion.
935
936 Mon Feb  3 11:30:03 1997  Peter Mattis  <pmattis@localhost>
937
938         * gtkbutton.c: Removed 'parent_destroy' global and replaced it
939         with 'parent_class' global to reflect style used in other
940         widgets.
941
942         * gtknotebook.c: Tab labels were being allocated less than their
943         requested size.
944
945         * gtkrange.c:
946         * gtkrange.h: Moved the "digits" field of scales into the range
947         type. The adjustment value for scales is truncated to the number
948         of visible digits instead of being left untouched.
949
950         * gtree.c: Fixed a bug in the AVL tree implementation. Single
951         rotations were always being performed during insertion. It is
952         sometimes necessary to perform a double rotation.
953
954         * gtklabel.c: Modified 'gtk_label_expose' to only draw the label
955         when the allocated space is greater than or equal to the requested
956         space.
957
958         * gtklabel.c: Added call to 'gtk_widget_unmap' to
959         'gtk_label_destroy' in order for the label to redraw correctly
960         (erase itself) when destroyed.
961
962         * gtklabel.c: Added 'gtk_label_unmap' call which erases the labels
963         allocation when it gets unmapped.
964
965         * *.h: Removed a few remaining instances of using "class" as a
966         parameter name. (Causes problems for C++).
967
968 Fri Jan 31 12:26:50 1997  Peter Mattis  <pmattis@localhost>
969
970         * gtkcontainer.c: 'gtk_container_enable_resize' needs to call
971         'gtk_container_check_resize' instead of
972         'gtk_container_need_resize'.
973
974         * gtkwidget.c: 'gtk_real_widget_show' now maps the widget if its
975         parent is mapped.
976
977         * gtkscrolledwindow.c: Fixed size allocation when the scrollbar
978         policy's are GTK_POLICY_AUTOMATIC. Doing it correctly is harder
979         than I originally thought.
980
981         * gtklist.c: Added 'gtk_list_child_position' to determine the
982         integer position in a list of a child. Filled in the
983         'gtk_list_item_select' and 'gtk_list_item_unselect' stubs.
984
985 Thu Jan 30 16:08:06 1997  Peter Mattis  <pmattis@localhost>
986
987         * gmem.c: Changed the implementation of G_ALLOC_AND_FREE mem
988         chunks. They used to allocate SIZEOF_VOID_P extra bytes per atom
989         in order to keep track of which mem area they were allocated
990         from. Now the mem area is determined by searching through an AVL
991         tree of the mem areas for a mem chunk and comparing memory
992         locations. A little slower, but makes G_ALLOC_AND_FREE mem chunks
993         much more attractive.
994
995         * gtree.c: Added an AVL tree implementation to glib.
996
997         * gtksignal.c:
998         * gstring.c: va_arg (arg_list, {char, short}) is
999         invalid. Arguments passed in a variable argument list are
1000         promoted. ({char, short}->int). Seemed to work ok before under
1001         Linux. Crashed under FreeBSD.
1002
1003 Tue Jan 28 02:27:51 1997  Peter Mattis  <pmattis@localhost>
1004
1005         * gdkwindow.c: Fixed a major slowdown apparent in the file
1006         selection dialog which was caused by calling
1007         'gtk_window_add_colormap_windows' way way way too often.
1008
1009         * *.c: Many widgets called 'gtk_container_need_resize' when
1010         something internal changed which would cause the widget to grow or
1011         shrink. The assumption was made that the widget would change size
1012         and an expose event would be generated. This happens "most" of the
1013         time. But its possible for certain widgets to change size without
1014         generating expose events, or for its internal geometry to change
1015         without a change of size which would mean no expose event was
1016         generated. So a wrapper function called
1017         'gtk_container_check_resize' was created and
1018         'gtk_container_need_resize' was modified so that it returns FALSE
1019         if a resize was actually generated and TRUE if nothing
1020         changed. This allows 'gtk_container_check_resize' to initiate a
1021         'gtk_widget_size_allocate' and 'gtk_widget_draw' to emulate the
1022         expose event.
1023
1024 Sat Jan 25 14:17:44 1997  Peter Mattis  <pmattis@localhost>
1025
1026         * gtkmain.c: Fixed a bug with propogating key press events. The
1027         events were sent 2 times to the toplevel windows which caused the
1028         focus widget to be activated twice when the space bar was pressed.
1029
1030         * */configure.in:
1031         * */Makefile.am: Added support for libtool and removed the old
1032         shared library configuration craziness.
1033
1034 Fri Jan 24 12:59:22 1997  Peter Mattis  <pmattis@localhost>
1035
1036         * gtktext.c:
1037         * gtktext.h: Josh's fixes and additions to the text widget.
1038
1039         * gtkfill.c:
1040         * gtkfill.h: Filler widget useful for filling space in a
1041         table. Can specify a minimum size. Used by the canvas widget.
1042
1043         * gtknotebook.c:
1044         * gtknotebook.h: Made outline of notebook widget.
1045
1046         * gtkcanvas.c:
1047         * gtkcanvas.h: Started canvas widget. A composite of 2 rulers (w/
1048         an origin), 2 scrolllbars. Guides, grids, snap to.
1049
1050 Sun Jan 19 18:26:45 1997  Peter Mattis  <pmattis@localhost>
1051
1052         * gtkdialog.c:
1053         * gtkdialog.h: Created dialog widget which creates a standard
1054         looking dialog with buttons along the button and a separator.
1055
1056         * gtkxid.c: Generalized the window table code for looking up a gdk
1057         window based on an XID to work for any XID and a piece of
1058         data. Can now look up gdk fonts based on their XID.
1059
1060         * gtkruler.c:
1061         * gtkruler.h:
1062         * gtkhruler.c:
1063         * gtkhruler.h:
1064         * gtkvruler.c:
1065         * gtkvruler.h: Started conversion of the ruler widget.
1066
1067         * gtktext.c:
1068         * gtktext.h: Started conversion of the text widget. Scrolling
1069         doesn't work.
1070
1071         * gtkmain.c: Fixed a fairly major bug. The event widget needs to
1072         be in a call for the entire duration of handling an event. Not
1073         just for when the event widget itself is handling the event.
1074
1075         * gtkfilesel.c: Fixed up some bugs with resizing.
1076
1077 Fri Jan 10 14:18:03 1997  Peter Mattis  <pmattis@localhost>
1078
1079         * gtkwidget.c:
1080         * gtkwidget.h:
1081         * gtkentry.c:
1082         * gtkentry.h: Support for selections.
1083
1084         * gdkselection.c:
1085         * gdk.c:
1086         * gdktypes.h:
1087         * gdk.h: Gdk support for X selections. Currently only text
1088         selections are supported.
1089
1090         * gtksignal.c: Fixed a major bug which occurred when destroying an
1091         object. Memory was being written to after it was freed.
1092
1093         * gtkfilesel.c:
1094         * gtkfilesel.h: Hooked up more functionality to the file selection
1095         dialog.
1096
1097 Wed Jan  8 18:13:53 1997  Peter Mattis  <pmattis@localhost>
1098
1099         * gtkfilesel.c:
1100         * gtkfilesel.h: Mostly converted old file selection dialog
1101         widget. The widget is derived from the GtkWindow class and is
1102         quite a bit simpler in the widget code.
1103
1104         * gtkwidget.c: Fixed 'gtk_widget_grab_focus' and
1105         'gtk_widget_grab_default' to check that the toplevel widget is a
1106         type of window (which includes classes derived from windows).
1107
1108 Tue Jan  7 01:12:32 1997  Peter Mattis  <pmattis@localhost>
1109
1110         * gtkwindow.c: Was calling 'gtk_window_resize' twice in a
1111         row...why?
1112
1113         * gtksignal.c:
1114         * gtksignal.h:
1115         * *.c: Changed 'gtk_signal_new' so that the class function that is
1116         called when the signal is emitted can be called either before,
1117         after or both before and after the calling of any signal
1118         handlers.
1119
1120         * gtkobject.c:
1121         * gtkobject.h: Added 'object_data' mechanism for storing data
1122         associated with a character string key in objects. Removed
1123         'user_data' field of objects and changed
1124         'gtk_object_{get,set}_user_data' to use the object data
1125         mechanism. Removed 'handlers' field of objects.
1126
1127         * gtkwidget.c:
1128         * gtkwidget.h:
1129         * gtkwindow.c: Modified aux info mechanism to use object data
1130         mechanism.
1131
1132         * gtksignal.c: Modified signal mechanism to use object data
1133         mechanism instead of 'handlers' field.
1134
1135
1136 Mon Jan  6 15:10:16 1997  Peter Mattis  <pmattis@localhost>
1137
1138         * gtkmenushell.c: Fixed up button press handling so as to conform
1139         more closely to that used by Motif.
1140
1141 Wed Jan  1 21:27:17 1997  Peter Mattis  <pmattis@localhost>
1142
1143         * gtkmenu.c:
1144         * gtkmenu.h:
1145         * gtkmenubar.c:
1146         * gtkmenubar.h:
1147         * gtkmenushell.c:
1148         * gtkmenushell.h: Reorganization of menu-ing code so that code
1149         duplication is reduced. The menu shell now contains most of the
1150         code for menu-ing interaction while menus and menubars simply layout
1151         their child menu items in the appropriate place.
1152
1153 Sun Dec 29 17:48:18 1996  Peter Mattis  <pmattis@localhost>
1154
1155         * gtkmenu.c:
1156         * gtkmenubar.c:
1157         * gtkmenuitem.h:
1158         * gtkmenuitem.c: Modifications so that menu item accelerators and
1159         the submenu indicator are drawn correctly and the correct amount
1160         of space is allocated.
1161
1162 Sat Dec 28 00:32:13 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1163
1164         * gtkmenufactory.h:
1165         * gtkmenufactory.c: Started menu factories as an easy method to
1166         create and manipulate menus.
1167
1168 Fri Dec 27 13:17:34 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1169
1170         * gtkmenu.c:
1171         * gtkmenu.h:
1172         * gtkmenubar.c:
1173         * gtkmenubar.h:
1174         * gtkmenuitem.c:
1175         * gtkmenuitem.h:
1176         * gtkmenushell.c:
1177         * gtkmenushell.h: Implemented basic menu functionality. Menubars
1178         and popup menus work. Submenus work. (Much left to be done).
1179
1180 Wed Dec 18 15:27:05 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1181
1182         * gtktypeutils.h:
1183         * gtktypeutils.c: Added 'gtk_type_from_name' which returns a type
1184         identifier given a type name. Implemented using a second hash
1185         table keyed by type names.
1186
1187         * gtkbutton.c:
1188         * gtktogglebutton.c: Fixed very small messed-up drawing bug when a
1189         button loses its focus.
1190
1191         * gtkwidget.h:
1192         * gtkwidget.c:
1193         * gtkbutton.c:
1194         * gtkwindow.c: Added default button handling. Default buttons now
1195         draw correctly and pressing return or enter causes the default
1196         button (if one exists) to be activated.
1197
1198 Tue Dec 17 19:32:21 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1199
1200         * gtkhscale.c:
1201         * gtkvscale.c: Overrode 'draw_slider' method of ranges in order to
1202         draw the slider of scales with a line in them so as to be closer
1203         to the Motif look-and-feel.
1204
1205         * gtkwindow.c: Modified 'gtk_window_focus_in_event' so that focus
1206         in events are only handled when the window is visible. Fixes a bug
1207         where spurious focus in events get sent when a window is being
1208         hidden.
1209
1210         * gtkwidget.h: Added 'activate_signal' field to the GtkWidgetClass
1211         structure. Added 'gtk_widget_activate' call to emit the activate
1212         signal for a widget if it is non-zero.
1213
1214 Tue Dec 10 15:59:45 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1215
1216         * gtkwidget.c: 'gtk_widget_set_name' oops in strdup'ing the old
1217         "widget->name" instead of the new one we are setting.
1218
1219         * gtkrc.c: 'gtk_rc_widget_path' changed to use
1220         'gtk_widget_get_name' instead of accessing the "widget->name"
1221         field directly.
1222
1223         * gtkwidget.c: Added 'gtk_widget_get_name' function which returns
1224         the widgets name if it exists and the widgets type name if it does
1225         not.
1226
1227         * gtkcheckbutton.c: Added 'gtk_check_button_draw'
1228         function. Modified 'gtk_check_button_expose' to pass an expose
1229         event to child instead of callings its draw function.
1230
1231         * gtkentry.c: 'gtk_entry_draw_text' why was "+1" being added to
1232         the font->ascent to calculate the font position? This was wrong
1233         and caused some characters in fonts to be clipped. (Notably "g").
1234
1235         * gtkentry.c: 'gtk_entry_realize' specify GTK_BUTTON1_MOTION_MASK
1236         and GTK_POINTER_MOTION_HINT_MASK for _both_ windows.
1237
1238         * gtkmain.c: 'gtk_propagate_event' needs to set the GTK_IN_CALL
1239         flag for the object before calling 'gtk_widget_event' and needs to
1240         destroy the object if necessary after 'gtk_widget_event' returns.
1241
1242         * gtkradiobutton.c: 'gtk_radio_button_clicked' needs to call
1243         'gtk_toggle_button_toggled' when the currently active button is
1244         toggled.
1245
1246         * gtkwidget.c: 'gtk_real_widget_hide' needs to call
1247         'gtk_widget_unmap' if the widget is currently mapped.
1248
1249         * gtkwindow.c: Prevent automatic resizing after the user has
1250         specified a new window size. Add 'handling_resize' flag to
1251         windows.
1252
1253         * gtkscrolledwindow.c: Implement the GTK_POLICY_AUTOMATIC
1254         scrollbar policy. Need to connect to the adjustments 'changed'
1255         signal and notice when the scrollbars aren't in use.
1256
1257         * gtkcontainer.c: 'gtk_container_init' must set 'auto_resize' and
1258         'need_resize' fields to TRUE and FALSE respectively.
1259
1260         * gtkwidget.c: 'gtk_widget_set_parent' must all set a widgets state
1261         to its parents state.
1262
1263 Sun Dec  1 01:31:01 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1264
1265         * Started ChangeLog