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