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