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