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