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