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