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