1998-06-09 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkhandlebox.h (struct _GtkHandleBox): Removed the
fleur_cursor field. Now the cursor is created/destroyed on demand
by the routines that need it.
* gtk/gtkhandlebox.c (gtk_handle_box_button_changed):
(gtk_handle_box_motion): The fleur cursor is created and destroyed
only when needed.
Tue Jun 9 09:57:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.h:
* gtk/gtktypeutils.c: renamed the newly created gtk_enum_get_values and
gtk_enum_set_values to gtk_type_enum_get_values and
gtk_type_enum_set_values respectively, since they are actually type
system features.
* gtk/gtktypebuiltins_evals.c: oops, screwed the NULL termination with
my last commit. ;)
Tue Jun 9 01:57:23 1998 Tim Janik <timj@gtk.org>
* gtk/gtkselection.h:
* gtk/gtkselection.c: new functions gtk_selection_data_copy and
gtk_selection_data_free.
* gtk/gtkwidget.c (gtk_widget_class_init): fixed gtk_signal_new() call
for "selection_received", which was completely bogus.
* other fixups to gtk_signal_new() calls all over the place.
* gtk/gtktypebuiltins.h: types as variables (formerly macros).
* gtk/gtktypebuiltins_vars.c: type variable implementations.
* gtk/gtktypebuiltins_ids.c: array entries for builtin type
declarations.
* gtk/gtktypebuiltins_evals.c: enum value arrays.
* gtk/gtk-boxed.defs: gtk and gdk structure definitions, used to build
gtk.defs.
* gtk/gtk.defs: generated file with scheme syntax for type definitions
of gtk and gdk structures and enums.
* gtk/gtktypeutils.h:
* gtk/gtktypeutils.c: reworked type ids, so they are variables not
macros anymore (this fixes binary incompatibility with new enum
definitions).
* gtk/gtkwidget.c (gtk_widget_real_key_press_event): proccess possible
key bindings for this widget.
* gtk/gtkwindow.c (gtk_window_key_press_event): chain parent class'
handler.
* gtk/gtkobject.h:
* gtk/gtkobject.c: removed gtk_object_class_new_user_signal_no_recurse()
again. new functions gtk_object_class_user_signal_new () and
gtk_object_class_user_signal_newv (), to feature the GtkSignalRunType
flag on the signal creation.
Mon Jun 8 20:52:21 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.h: new signal GtkContainer::set_focus_child.
Sun Jun 7 14:34:31 1998 Tim Janik <timj@gtk.org>
* gtk/gtkitemfactory.c (gtk_item_factory_create_menu_entries): feature
check menu items in the compatibility code (this required me to remove
the "<check>" part from the menu item name, grrr).
Sun Jun 7 10:53:02 1998 Tim Janik <timj@gtk.org>
* gtk/gtkitemfactory.h:
* gtk/gtkitemfactory.c: further additions to fit the gimp's code.
additions to the dumping code to feature GtkPatternSpec.
even found a bug to fix in the original code ;)
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
* gtk/gtkitemfactory.h:
* gtk/gtkitemfactory.c: support different types of callbacks, to
maintain existing code.
... changes to the item factory to ease support of the gimp's code...
Sat Jun 6 06:01:24 1998 Tim Janik <timj@gtk.org>
* gtk/gtksignal.c (gtk_signal_emitv): fixed an assertment.
* gtk/makeenums.awk: a script to generate the GtkEnumValue arrays from,
this should eventually be done by gentypeinfo.el somewhen.
* gtk/gtkenumvalues.c: new generated file to hold GtkEnumValue arrays.
* gtk/gtktypeutils.h: new function gtk_enum_values() to retrive all the
enum values of an enum type.
* gtk/gtk.defs:
* gtk/gtkcurve.h:
* gtk/gtkobject.h:
* gtk/gtkprivate.h:
* gtk/gtkwidget.h:
* gtk/gtkenums.h:
brought enum/flags definitions in sync, added a few more enum
definitions for bindings and pattern matching.
* some more macro and GtkType fixups in various places.
* gdk/gdktypes.h (enum): added a new value GDK_AFTER_MASK, which is used
as a key-release modifier for the binding system.
Fri Jun 5 06:06:06 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenu.h (struct _GtkMenu): removed GList*children, since it
was a stale list pointer that is already present in GtkMenuShell.
* gtk/gtkmenushell.h (struct _GtkMenuShellClass): added a signal
GtkMenuShell::selection_done which is emitted after the menu shell
poped down again and all possible menu items have been activated.
Thu Jun 4 02:20:42 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): flush the x-queue
before activation of the menuitem, so the menu is actually taken off the
screen prior to any menu item activation.
* gtk/gtkctree.c (gtk_ctree_get_row_data): allow function invokation
for NULL nodes.
* gtk/gtkwidget.h:
* gtk/gtkwidget.c: new function gtk_widget_stop_accelerator to stop
the emission of the "add-accelerator" signal on a widget. this is
usefull to prevent accelerator installation on certain widgets.
* gtk/gtknotebook.c (gtk_notebook_menu_item_create): keep the menu
labels left justified, by setting their alignment. stop accelerator
installation for the menu items, since we use dynamic menus.
Wed Jun 3 06:41:22 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenufactory.c: adaptions to use the new accel groups. people
should *really* use GtkItemFactory. this is only for preserving source
compatibility where possible, use of GtkMenuFactory is deprecated as of
now.
* gtk/gtkobject.h (gtk_object_class_add_user_signal): new function
to create user signals of type GTK_RUN_NO_RECURSE. don't know why i
missed this possibility when i added gtk_object_class_add_user_signal
in late january.
* gtk/gtkmain.c (gtk_init): ignore subsequent function calls.
Sun May 31 07:31:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelgroup.h:
* gtk/gtkaccelgroup.c: new implementation of the accelerator concept.
* gtk/gtkaccellabel.h:
* gtk/gtkaccellabel.c: new widget derived from GtkLabel whitch features
display of the accelerators associated with a certain widget.
* gtk/gtkitemfactory.h:
* gtk/gtkitemfactory.c: new widget, item factory with automatic rc
parsing and accelerator handling.
* gtk/gtkmenu.c (gtk_menu_reposition): new function to care for
positioning a menu.
(gtk_menu_map): removed the allocation code.
(gtk_menu_size_allocate): care for redrawing of children and resize
our widget->window correctly.
(gtk_menu_key_press): feature the new accelerator groups.
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): reposition the
submenu if neccessary.
* gtk/gtkmenuitem.c:
* gtk/gtkcheckmenuitem.c:
* gtk/gtkradiomenuitem.c: use GtkAccelLabel in the *_new_with_label()
function variants.
* gdk/gdk.c:
(gdk_keyval_from_name):
(gdk_keyval_name): new functions for keyval<->key-name associations.
(gdk_keyval_to_upper):
(gdk_keyval_to_lower):
(gdk_keyval_is_upper):
(gdk_keyval_is_lower): new functions to check/translate keyvalues with
regards to their cases.
Wed May 27 00:48:10 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_class_path): new function to calculate a
widget's class path.
(gtk_widget_path): new function to calculate a widget's name path.
* gtk/gtkrc.c: newly introduced GtkPatternSpec structures to speed up
pattern matching, features reversed pattern matches.
Thu Jun 4 12:12:11 BST 1998 Tony Gale <gale@gtk.org>
* examples/extract.sh, examples/extract.awk:
New files to automagically extract code examples from the
tutorial.
Mon Jun 1 12:47:56 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut_it.sgml: Update of Italian Tutorial
to Tutorial of 24th May, from Daniele Canazza <dcanazz@tin.it>
Fri May 29 13:53:57 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml:
- new section on Events
- change all delete_event callbacks to include
a GdkEvent parameter
- clean up the formatting
* examples - helloworld.c, helloworld2.c, notebook.c,
packbox.c, pixmap.c, progressbar.c, radiobuttons.c,
rulers.c, table.c, wheelbarrow.c: change all delete_event
callbacks to include a GdkEvent parameter.
1998-05-26 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gdk/gdktypes.h (GdkCrossingMode): New enumeration for the "mode"
field of crossing events.
(struct _GdkEventCrossing): Added the following fields: time, x,
y, x_root, y_root, mode, focus, state.
* gdk/gdk.c (gdk_event_translate): Fill in the new fields of the
crossing event structure.
* gtk/gtkfeatures.h (GDK_HAVE_FULL_CROSSING_EVENT): Annotate
changes to the crossing event structure.
Sun May 24 12:11:38 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml:
- GtkTooltips, update to current API
- change all 'gpointer *data' to 'gpointer data'
- other minor changes
Sat May 23 21:54:05 1998 Owen Taylor <otaylor@gtk.org>
* configure.in (LDFLAGS): Bombo out with a moderately
helpful message if detection of X libraries fails.
Sat May 23 17:48:58 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkeventbox.c (gtk_event_box_size_allocate):
Locate child at (border_width,border_width), not
(2*border_width,2*border_width). [ The border is _outside_
widget->window ]
* gdk/gdk.[ch]: added gdk_screen_width_mm/gdk_screen_height_mm
functions. [From: Alexander Larsson <alla@lysator.liu.se> ]
Tue May 19 23:41:04 1998 Owen Taylor <otaylor@gtk.org>
* configure.in: Use pthread_attr_init() as a test function,
since most of the rest of -lpthread is macros on DU4.
Mon May 18 22:14:39 1998 Owen Taylor <otaylor@gtk.org>
(Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp> : gtk-joke-980517-0.patch)
* gutils.c: Restored a missing prototype for g_vsprintf.
Mon May 18 04:01:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_class_init): changed "proximity-in-event",
"drop-data-available-event", "drop-enter-event" and "drop-leave-event"
to be of runtype GTK_RUN_LAST.
* gtk/gtkcontainer.c (gtk_container_class_init): likewise for
"need-resize".
* gtk/gtktipsquery.c (gtk_tips_query_class_init): likewise for
"widget-selected".
Sat May 16 09:04:32 1998 Tim Janik <timj@gtk.org>
* gtk/gtkfilesel.c (gtk_file_selection_key_press): g_strdup() the
text retrived from GtkEntry. only intercept the Tab key if there
was some text to complete.
Fri May 15 21:16:54 1998 Owen Taylor <otaylor@gtk.org>
Basic thread-awareness:
* acconfig.h configure.in: New option --with-threads=[yes/posix/no]
* gdk/Makefile.am gdk/gdkthreads.c: Added new functions
gdk_threads_[init/enter/leave] for applications, plus
gdk_threads_wake to wake the mainloop thread out of
the select().
* gtk/Makefile.am: gtk/testthreads.c: Test program for threads
Fri May 15 12:08:48 1998 Owen Taylor <otaylor@gtk.org>
* gtk/testgtk.c (list_clear): Account for the fact
that gtk_list_clear_items is not inclusive. (Clears
[start, end))
[binray incompatibility]
Fri May 15 00:56:59 1998 Tim Janik <timj@gtk.org>
* glib.h: further support for gcc function attributes: G_GNUC_FORMAT,
G_GNUC_NORETURN and G_GNUC_CONST.
* gscanner.c (g_scanner_stat_mode): changed stat() to lstat().
(g_scanner_msg_handler): "\n" at end of line!
(g_scanner_foreach_symbol): new function to iterate over the symbol
table (GScanner does value-wrapping).
Fri May 15 09:44:10 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.h (struct _GtkWidgetClass): corrected returntype of
the visibility_notify_event method and changed method order.
Thu May 14 04:14:12 1998 Tim Janik <timj@gtk.org>
* glib.h: typedef gint gboolean;
this is needed to provide portability with big-endian platforms (e.g.
try sizeof(bool) for c++ on big-endians - it's 4).
this is also needed to maintain some_union.d_gint==some_union.d_gboolean.
plus, gint to gboolean casts and vice versa need to be possible without
loss.
Thu May 14 03:04:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_free): new function to take care about
freeing types.
(gtk_type_set_chunk_alloc): new function to allow allocation of new
types from a mem_chunk of certain size (n_chunks==0 indicates allocation
thorugh g_malloc).
* gtk/gtkobject.c (gtk_object_finalize): free an object through
gtk_type_free().
* gtk/gtkbutton.c (gtk_button_get_type): set chunk preallocation for
GtkButtons to 16.
* gtk/gtkmenuitem.c (gtk_menu_item_get_type): likewise (16).
* gtk/gtklabel.c (gtk_label_get_type): likewise (32).
Wed May 13 00:53:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktypeutils.c gtk/gtksignal.c: A few more
GPOINTER_TO_UINT fixes.
* gtk/gtksignal.c: Include <string.h> for memset.
Tue May 12 23:10:53 1998 Owen Taylor <otaylor@gtk.org>
(Maximilian Bisani <bisani@kawo2.rwth-aachen.de>: gtk-bisani-980320-0)
* gtk/gtkvruler.c gtk/gtkhruler.c gtk/gtkruler.h:
Cleanups, comments and the ability to have rulers with
a reversed direction.
Tue May 12 19:37:55 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_file): Fixed up a stat()
that Sopwith missed when changing stat => lstat.
Tue May 12 19:19:29 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkinputdialog.c gtk/gtkgamma.c gtk/gtkrc.c
gtk/gtkcolorsel.c gtk/gtkclist.c gtk/testgtk.c: Use
GPOINTER_TO_INT/GINT_TO_POINTER macros where appropriate.
* gdk/gdk.c: Print sizeof() results
as g_print("%ld", (glong)sizeof(foo)), to deal with
sizeof() being long on Alpha's.
* gtk/testgtk.c: include <string.h> for strlen
Tue May 12 19:22:58 1998 Owen Taylor <otaylor@gtk.org>
* glib/glib.h: Added macros G[U]INT_TO_POINTER() and
GPOINTER_TO_[U]INT for storing small integers integers
inside pointers.
* glib/testglib.c: Print sizeof() results
as g_print("%ld", (glong)sizeof(foo)), to deal with
size_t being long on Alpha's.
Tue May 12 16:54:15 1998 Owen Taylor <otaylor@gtk.org>
(James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)
* glib.h gstring.c gmessages.c: Added some missing
const to arguments.
* gutils.c (g_strsignal.c): Added missing return statements.
Tue May 12 16:56:35 1998 Owen Taylor <otaylor@gtk.org>
(James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)
* gtk/gtkbbox.h gtk/gtkcolorsel.h gtk/gtkvbbox.h:
Changed #include "gtkfoo.h" to #include <gtk/gtkfoo.h>
* gtk/gtkwindow.[ch]: Added const to gtk_window_set_wmclass
Tue May 12 15:16:10 1998 Owen Taylor <otaylor@gtk.org>
(From: Christopher James Lahey <clahey@umich.edu>)
* gtk/gtkbutton.[ch] gtk/gtkenums.h gtk/gtktoolbar.[ch]
gtk/testgtk.c:
Added 'relief' for buttons - they can be either GTK_RELIEF_NORMAL
(old style), or GTK_RELIEF_NONE - no relief in the NORMAL
state. Added gtk_toolbar_{set,get}_button_relief, which set/get
the default relief for the toolbars buttons. Added an
toggle for the toolbar test in testgtk.c.
Tue May 12 00:24:59 1998 Owen Taylor <otaylor@gtk.org>
* docs/gtk-config.1: Rewritten and hopefully improved.
Mon May 11 20:26:39 PDT 1998 Manish Singh <yosh@gimp.org>
* docs/Makefile.am
* docs/gtk-config.1: added man page for gtk-config by Ben Gertzfield
1998-05-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkpreview.c (gtk_preview_realize): Create the window using
GtkPreview's visual and colormap, otherwise things can BadMatch.
* gtk/testgtk.c (create_color_preview):
(create_gray_preview): Removed pushing/popping of visual/colormap
now that GtkPreview does things correctly.
* gtk/gtkcolorsel.c (gtk_color_selection_draw_wheel_frame):
(gtk_color_selection_draw_wheel): Pick the style from the correct
place (the colorsel->wheel_area widget) so that the GCs will match
with where we are going to paint to.
* gtk/testgtk.c (create_color_selection): Removed pushing/popping
of visual/colormap now that GtkColorSelection does things the
right way.
Tue May 12 02:31:57 1998 Tim Janik <timj@gtk.org>
[security audit by Alan Cox]
* gtk/gtkobject.c (gtk_object_get_arg_type): check for arg_name to not
exceed maximum assumed size.
* gtk/gtkmenufactory.c (gtk_menu_factory_create): check that `path' does
not exceed maximum assumed size.
(gtk_menu_factory_remove): likewise.
(gtk_menu_factory_find_recurse): likewise.
Tue May 12 00:21:33 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_queue_resize): queue the idle_sizer with
GTK_PRIORITY_INTERNAL - 1, so widgets get first resized and then
redrawn if that is still neccessary. don't allow queueing of already
destructed objects.
(gtk_widget_idle_sizer): proccess the resize queue in a save manner, so
widgets which are in the queue can be destroyed savely, handle
requeueing properly.
(gtk_widget_idle_draw): proccess the redraw queue in a save manner, so
widgets which are in the queue can be destroyed/unrealized savely.
Mon May 11 09:56:45 1998 Tim Janik <timj@gtk.org>
* configure.in (cflags_set): preserve automake CFLAGS.
* Makefile.am: fully rename the created libraries to libgtk-1.1.la
and libgdk-1.1.la. this means we need to change certain portions of
the Makefile.am on major/minor version bumps.
* ltmain.sh: the -release option is not required anymore.
* gtk/gtkobject.h (gtk_trace_referencing): compile time check the type
of the first argument to be of type GtkObject. unconditionally compile
this function. removed __GNUC__ dependancy of the gtk_object_ref and
gtk_object_unref macro wrappers for this function.
Mon May 11 09:53:43 1998 Tim Janik <timj@gtk.org>
* configure.in: preserve automake CFLAGS.
* Makefile.am: fully rename the created library to libglib-1.1.la.
this means we need to change certain portions of the Makefile.am on
major/minor version bumps.
* ltmain.sh: the -release option is not required anymore.
* glib.h: provide G_GNUC_FUNCTION and G_GNUC_PRETTY_FUNCTION to
avoid conditionals. unconditionally define NULL, TRUE, FALSE, MAX,
MIN, ABS and CLAMP, these macros might be screwed from other headers.
Mon May 11 01:44:10 1998 Tim Janik <timj@gtk.org>
* gdataset.c: new file, gdatasets implement the object data
mechanism from GtkObject. a generic data pointer is associated with
a certain location and a key id.
Mon May 11 02:31:19 1998 Tim Janik <timj@gtk.org>
* gtk/gtkobject.h:
* gtk/gtkobject.c:
(gtk_object_data_try_key):
(gtk_object_data_force_id): these are now macros substituting the old
functions. we just use the corresponding g_dataset_* functions for
key->id associations. (this is to assure unique key<->id associations).
Sat May 9 20:11:20 1998 Owen Taylor <otaylor@gtk.org>
* configure.in (LIBS): Try to figure out if this
is Digital Unix and we need -std1 to get the
right prototypes.
Sat May 9 20:08:12 1998 Owen Taylor <otaylor@gtk.org>
* glib/gmem.c: Experimentally restore GMemChunk
to its primeval state - where mem areas are
freed incrementally instead of searching the tree
every time a mem area is completely empty. Also,
always keep one mem chunk around. (Reduced calls
to malloc() a lot, but doesn't really improve
performance significiantly)
Fri May 8 21:31:50 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkwidget.c (gtk_widget_queue_draw): Free the
draw-queue when we are done.
(gtk_widget_queue_draw/_queu_resize): Always return
FALSE and avoid having two idles at the same time.
Fri May 8 21:04:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktext.c: Various fixes to make sure cache
lines are freed if line_start_cache doesn't point to the
beginning of the cache.
Thu May 7 09:44:22 1998 Owen Taylor <otaylor@gtk.org>
* style_set improvements for GtkText and GtkEntry
Tue May 5 19:49:27 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkpixmap.c: Patches from Gordon Matzigkeit
to speed things up and remove code duplication.
Reintegrated buffer overflow patches, and added
some extra paranoia.
Tue May 5 17:04:14 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdk.c (gdk_event_translate): A guint * was
being passed where X expected a Keysym *, and
keysyms are long's on Alpha Linux. This was causing
segfaults in Xlib, apparently because of alignment.
(Bug located by Juergen Haas <haas@forwiss.uni-passau.de>)
Tue May 5 19:11:27 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkdrawingarea.c (gtk_drawing_area_realize): Always
set GDK_EXPOSURE_MASK for DrawingAreas
Tue May 5 14:32:37 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkwidget.[ch]: removed gtk_widge_propagate_default_style
(superceded by RC file reparsing capabilities)
* gtk/gtkwindow.c: Add handling for _GDK_READ_RFCILES client
events. (Shouldn't be sent to the InputOnly leader, which
it is now by gdk_event_send_clientmessage_toall
* gtk/testgtk.c: Added extra button to rcfiles test
to send out _GDK_READ_RCFILES events.
Tue May 5 11:03:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Fixed
reversed conditionals that caused segfault on some
platforms.
Tue May 5 00:44:47 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcontainer.c (gtk_container_set_focus_[hv]adjustment):
cast to GTK_OBJECT for gtk_object_ref.
Sat May 9 16:30:33 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut_it.sgml: update of Italian tutorial
translation from Daniele Canazza <dcanazz@tin.it>
Sat May 9 02:34:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkfeatures.h.in: new file used as template for
* gtk/gtkfeatures.h: new file to define macros indicating newly
introduced features, such as GTK_HAVE_SIGNAL_INIT.
* gtk/gtksignal.c:
(gtk_signal_emitv_by_name):
(gtk_signal_emitv):
new functions to emit signals with an already provided parameter set.
(provided by Kenneth Albanowski <kjahds@kjahds.com>).
(gtk_signal_real_emit): prototype changes, so this functions always
gets its parameters and signal structure as arguments.
(gtk_signal_emit): provide the signal structure and parameter list for
gtk_signal_real_emit.
(gtk_signal_emit_by_name): likewise.
Sat May 9 00:03:12 1998 Tim Janik <timj@gtk.org>
* gtk/gtksignal.c (gtk_signal_handler_unref): reflect the presence of
signal connections through unsetting GTK_CONNECTED.
(gtk_signal_handler_insert): reflect the presence of signal connections
through setting GTK_CONNECTED.
(gtk_signal_real_emit): only check for handler emissions if the object
has the GTK_CONNECTED flag set.
(gtk_signal_handler_pending): don't check for pending handlers if the
GTK_CONNECTED flag is not set for this object.
* gtk/gtkobject.h (enum): new flag GTK_CONNECTED to indicate whether
a GtkObject has signal handler connections.
* gtk/gtkobject.c (gtk_object_real_destroy): only if GTK_CONNECTED is
set for this object call gtk_signal_handlers_destroy().
* gtk/gtktypeutils.h (GTK_TYPE_IS_A): deprecated macro, since it caused
multiple processing of macro args.
* gtk/gtktypeutils.c:
* gtk/gtkobject.c:
* gtk/gtkwidget.c:
* gtk/gtksignal.c: reverted GTK_TYPE_IS_A back to gtk_type_is_a.
Thu May 7 12:52:45 1998 Tim Janik <timj@gtk.org>
* gtk/gtkobject.c (gtk_object_set_data_by_id_full): allocate object
data chunks through a global object data structure list. unlink
object data before invoking its destroy function.
(gtk_object_finalize): slight modification to allow usage of object
data during object finalization.
this one is actually noticable on widget destruction.
Thu May 7 10:29:24 1998 Tim Janik <timj@gtk.org>
* gtk/gtksignal.c (gtk_signal_newv): suport middle dashes ('-') in
signal names, e.g. "signal-name" is now an alias for "signal_name".
(gtk_signal_handler_new): allocate handlers through a global handler
structure list, that's faster than memchunks.
(gtk_emission_new): allocate emissions through a global emission
structure list, that's faster than memchunks.
Thu May 7 05:14:19 1998 Tim Janik <timj@gtk.org>
* gtk-config.in (--libs): postfix -lg* libraries with LT_RELEASE.
* ltmain.sh: added a new commandline flag -postfix similar to -release,
but will immediately change the library name.
* gdk/Makefile.am:
* gtk/Makefile.am: specify -postfix and -version-info
* configure.in: version bump to 1.1.0. added GTK_INTERFACE_AGE and
GTK_BINARY_AGE. calculate LT_* variables for libtool.
Wed May 6 02:16:34 1998 Tim Janik <timj@gtk.org>
* gtk/gtksignal.c: reimplemented the signal storage system to use a
linear array rather than a hash table.
be carefull *not* to keep any GtkSignal pointers across invokations
of gtk_signal_next_and_invalidate() and therefore gtk_signal_new[v]().
general code cleanups, made all allocations through memchunks.
(gtk_signal_lookup): we now do the lookup of signals through a key_id
for the signal names to avoid multiple hashing of the signal name on
lookups for the several hirarchy levels of an object.
Tue May 5 15:33:27 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_init): added gtk_signal_init() to avoid repeatedly
checking for signal initialization in gtksignal.c.
* gtk/gtktypeutils.c (TYPE_NODES_BLOCK_SIZE): reseted this to 200 after
a long debugging period ;)
Mon May 4 00:30:11 1998 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.h (GTK_TYPE_IS_A): new macro to speedup
gtk_type_is_a().
* gtk/gtktypeutils.c: reimplemented the type storage system to use a
linear array rather than a hash table. it actually speeded up testgtk
for a *considerable* amount. be carefull *not* to keep any GtkTypeNode
pointers across invokations of gtk_type_node_next_and_invalidate() and
therefore gtk_type_unique()!
* gtk/gtkobject.h (GTK_IS_OBJECT_CLASS): new macro to test for the
inheritance of a class pointer.
(GTK_OBJECT): modifications for speedups.
(GTK_IS_OBJECT): likewise.
(GTK_OBJECT_CLASS): likewise.
(suggested by owen).
* gtk/gtkcontainer.h (GTK_IS_CONTAINER_CLASS): new macro.
* gtk/gtkwidget.h (GTK_IS_WIDGET_CLASS): new macro.
* gtk/gtk.defs (GtkTooltips): define GtkTooltips as object not as boxed,
since its derivation changed 4 month ago ;(. showed up with the unique
type name checking code in gtk_type_unique().
* random guint->GtkType and macro fixups.
1998-05-04 Federico Mena Quintero <federico@nuclecu.unam.mx>
* configure.in: Added $x_libs in the other_libraries field in the
check for XShapeCombineMask.
Sun May 3 14:55:34 1998 Owen Taylor <otaylor@gtk.org>
* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
"glibconfig.h" and another about writing another IRC
client.
Sat May 2 00:14:05 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
parameters to log are doubles. Digital Unix apparently
is missing the argument in its prototype.
Sun May 3 19:04:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtklabel.c (gtk_label_state_changed): Don't
force a clear until the widget is actually on
screen.
Hopefully nothing else though CVS think there are a whole
bunch more changed files.
Sun May 3 13:38:22 1998 Owen Taylor <otaylor@gtk.org>
* configure.in acheader.h gdk/gdkwindow.c
Check for Shape extension both on the client and server
side. (And, more importantly, check for the shape extension
so we may include -lXext even when compiling with --disable-xshm)
Don't set override_redirect on all shaped windows. It isn't
necessary.
* gdk/gdkwindow.c: Set ->colormap to NULL for root
and foreign windows. Use this to check if we
need to get the colormap from X.
Fri May 1 22:32:47 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
between the default and the button always in GTK_STATE_NORMAL.
* gtk/gtkrange.c (gtk_range_style_set): Added a style_set
callback.
Fri May 1 16:40:57 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
Fix a buffer overflow on pixmaps that claim to have
more than 31 characters per pixel.
(gdk_pixmap_read_string): Don't wrap around strings longer
than half of address space ;-)
* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
that were used for printing integers.
* */* (almost):
Style: All
int foo () { ... }
changed to
int foo (void) { ... }
^^^^^^^ This is why some many files changed
Even where there were proper prototypes elsewhere.
* gdk/gxid.c (handle_claim_device): Some extra checks.
It isn't safe against being fed bad X id's, but at
least it should be safe against deleting all your
files.
Sun May 3 19:45:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtkadjustment.c (gtk_adjustment_assimilate_value): new function
to set the adjustments value without causing a current emission of
"value_changed" to be restarted.
* gtk/gtksignal.c: added new functions to retrive the number of
existing emissions for a certain signal.
(gtk_signal_n_emissions): new function.
(gtk_signal_n_emissions_by_name): new function.
Sun May 3 16:55:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
set the current focus_child of a container, does proper referencing and
adjusts the vadjustment/hadjustment associated with the focus widget.
* gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
containers via gtk_container_set_focus_child.
* gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
where appropriate.
* gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
child since not every child removal goes through this function (this
showed up after gtk_container_set_focus_child() started to reference the
focus_child of a container).
* gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
of a container from gtk_container_remove into this place.
Sat May 2 22:33:45 1998 Tim Janik <timj@gtk.org>
* gtk/gtksignal.c: added new functions to operate on intermediate
function pointers. implemented incremental blocking.
(gtk_signal_disconnect_by_func): new function.
(gtk_signal_handler_block_by_func): new function.
(gtk_signal_handler_unblock_by_func): new function
Fri May 1 22:45:55 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Always show the scrollbars when the policy is
GTK_POLICY_ALWAYS...
Sat May 2 20:19:03 1998 Tim Janik <timj@gtk.org>
* gtk/gtkadjustment.c (gtk_adjustment_set_value): only emit
"value_changed" if we really passed a new value.
(gtk_adjustment_changed): new function to emit the "changed" signal.
(gtk_adjustment_set_value): new function to emit the "value_changed"
signal.
Fri May 1 20:25:29 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcombo.c (gtk_combo_popup_list): do not just return if
the combo-list is empty since that will cause the combo to operate
on a non existing GtkList window.
(gtk_combo_get_pos): provide the combo list with a usfull default
height if empty.
(gtk_combo_popup_button_press): grab the focus.
(gtk_combo_activate): grab the focus.
Fri May 1 12:28:35 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcombo.c: Further changes to the way the window
is popped up so that it will be compatible with
auto-scrolling in the future.
Fri May 1 12:06:43 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkwindow.[ch] (gtk_widget_reset_rc_styles): New
function to reset the RC styles for a heirarchy
Clear the window background if necessary in
gtk_window_style_set.
* gtk/gtkrc.[ch]: New function gtk_rc_reparse_all() which
rereads all previously read RC files.
* gdk/gdkwindow.c gdk/gdk.h: New function gdk_window_get_toplevels().
(Should it just be called gdk_get_toplevels?)
* gtk/testgtk.c: New test to reload RC files.
Fri May 1 13:57:36 1998 Tim Janik <timj@gtk.org>
* gtk/gtkclist.h:
* gtk/gtkclist.c: prefixed all clist flags with GTK_ to avoid name
clashes. redefined GTK_CLIST_SET_FLAGS and GTK_CLIST_UNSET_FLAGS as
GTK_CLIST_SET_FLAG and GTK_CLIST_UNSET_FLAG to automatically add
the GTK_ prefix (this solution involved less changes in the
gtkclist.c code). added a GTK_CLIST_CONSTRUCTED flag to substitute
the mem_chunk==NULL test in gtk_clist_construct. merged in changes
from lars & stefan to support the derivation of GtkCtree.
* gtkctree.h:
* gtkctree.c:
initial import of a tree widget derived from gtkclist, courtesy
of Lars Hamann <lars@gtk.org> and Stefan Jeske <jeske@gtk.org>,
it just damn rocks!
Fri May 1 10:05:44 1998 Tim Janik <timj@gtk.org>
* gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
for us.
(gtk_list_insert_items):
(gtk_list_remove_items_internal):
(gtk_list_clear_items):
remove a possible pointer grab, we might get thrown into a loop
otherwise.
(gtk_list_button_press): grab the pointer *before* selecting the child,
because selection of items may cause the lists children to change,
resulting in a grab release.
(gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
children.
(gtk_list_shutdown): remove all children from the list.
(gtk_real_list_unselect_child):
(gtk_real_list_select_child): *always* put our internal structures into
sane state *before* signal emisions (i.e. list->selection updates prior
to gtk_list_item_[de]select() calls).
* gtk/gtkcombo.c (gtk_combo_init): adjust the scrollbar if the lists
focused child walks out of the window.
removed CAN_FOCUS for the combo arrow's button since it doesn't react
to keyboard events ("clicked" connection is missing).
Thu Apr 30 11:18:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcombo.[ch]: Allow the user to use the popup list
like a menu.
* gtk/gtkmenuitem.c gtk/gtkitem.c: Moved enter/leave handlers
to gtkitem.c so dragging can also work in lists.
* gtk/gtklist.[ch]: Track child enter events and use
those to allow dragging the selection.
Thu Apr 30 11:16:06 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktext.c: Try enabling background pixmaps for editable text
widgets. There is a bit of flashing, but not too bad. If you
don't want the flashing, you can always not set a background
pixmap.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
1998-04-28 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdk/gdk.c (gdk_event_translate): Random debugging fixed this
bug: There is no need to set the ExposureMask in the XGrabPointer
(this caused DnD programs to crash).
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
that when we are running with a non-installed colormap,
in 8-bit pseudo-color, we actually are using the system
visual. (Fixes *Bad Match* errors on Digital Unix machines
with multiple 8-bit pseudo-color visuals)
-r HEAD and -r gtk-1-0 are in sync now!
Fri Apr 24 01:29:04 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelerator.h (struct _GtkAcceleratorTable): changed ref_count
field to be of type guint.
* gtk/gtkaccelerator.c (gtk_accelerator_table_unref): added check for
ref_count>0;
(gtk_accelerator_table_install): keep a per object list of accelerator
tables that refer to this object.
(gtk_accelerator_table_remove): remove the accelerator table from the
per object list.
(gtk_accelerator_table_clean): warn if there are any object references
left in an accelerator table upon destruction.
(gtk_accelerator_tables_delete): new function to delete object
references from the accelerator tables associated with this object.
* gtk/gtkwidget.c (gtk_widget_class_init): changed emission of
GtkWidget::install_accelerator to GTK_RUN_LAST so the installation
of an accelerator can be prevented by gtk_signal_emit_stop().
(gtk_widget_real_destroy): call gtk_accelerator_tables_delete (),
so there are no stale pointers in accelerator tables left.
this change is binary compatible, so just touch gtkaccelerator.h -r gtkwidget.h
1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkbin.c (gtk_bin_remove): Remember whether the widget was
visible before we unparent it.
Wed Apr 22 04:15:26 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
running_timeouts list with the tmp_list link itself, not with a new
GList structure pointing to our link. that would fill up memory and
causes the GList.data fields of the running_timeouts list to point to
GList structures and not GtkTimeoutFunction structures which is a
*really* bad thing.
(gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
the above entry ;).
Sat Apr 18 22:18:12 1998 Tim Janik <timj@gtk.org>
* gtk/gtkradiomenuitem.h:
* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_set_group): new function
ala gtk_radio_button_set_group.
(gtk_radio_menu_item_init): assure that we always have at least a group
that points to self.
* gtk/gtkradiobutton.c (gtk_radio_button_set_group): few cleanups and
added g_return_if_fail() statements.
(gtk_radio_button_init): assure that we always have at least a group
that points to self.
Wed Apr 15 05:13:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
(Damon Chaplin), which i got wrong when applying Damon's patch the last
time.
1998-04-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
by whoever thought that randomly changing ints to unsigned int
without reviewing the code was a good idea. It is, btw not
mentioned in the ChangeLog as usual, but I know it was not Elliot
the culprit this time.
Mon Apr 13 21:40:14 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtktext.c (find_char_width): Don't read the
character past the end of the text.
* gtk/gtkrange.c (gtk_real_range_timer): If the mouse
button has been released before the timer is activated,
don't keep on scrolling.
* gdk/gdk.c (gdk_event_translate): Filter subsequent configure
events after we discard the first. Removed obsolete and
sometimes very slow GdkOtherEvent. (Left in gdktypes.h
with signal in GTK)
1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for
XPolygonRegion().
* gdk/gdk.h: Added prototype for gdk_region_polygon().
* gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons.
Sun Apr 12 19:35:09 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* INSTALL: typo, gtk-1.0.0 should be gtk+-1.0.0
* README: A little more intro on what gtk is...
Sun Apr 12 22:43:22 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate):
An old allocation error.
* gtk/gtkviewport.c (gtk_viewport_add): Don't map
when adding a not-VISIBLE widget to a VISIBLE
viewport.
Sun Apr 12 20:09:40 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtklabel.[ch] (gtk_label_expose): Set a flag so
instead of clearing the area in advance. That looked
_really_ bad.
* gtk/gtkcontainer.c (gtk_container_class_init): Changed
"focus" to RUN_LAST.
* gtk/gtkentry.c (gtk_entry_realize): Fixed place
where allocation was used where requisition was meant.
(Found by David J N Begley <david@avarice.nepean.uws.edu.au>)
* gtk/gtkwindow.c (gtk_window_set_default): Fixed
assertion in when setting default to NULL>
("Damon Chaplin" <DAChaplin@email.msn.com>)
* gtk/gtkwidget.c (gtk_widget_unparent): Unset the
default widget on the toplevel, if necessary.
Sun Apr 12 02:04:21 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkpreview.c: Removed unecessary and harmful
htons/ntohs when storing properties. (X does the byte
swapping itself)
Sat Apr 11 02:01:31 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtktext.c (scroll_down): Removed incorrect part of
assertion that was causing failures for scrolling a single
line very short text widget.
Sat Apr 11 01:41:55 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtktext.c (expose_text): Fixed a sign problem
(typedef gint guint!). Added some checks to make sure things
are positive.
Sat Apr 11 05:51:22 1998 Tim Janik <timj@gtk.org>
* gtk/gtktooltips.c (gtk_tooltips_event_handler): don't shut down the
tooltip on expose events.
* gtk/testgtk.c (create_progress_bar): add an example tooltip.