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.
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.
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 ;).
Wed Apr 8 00:00:48 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_expose): don't take '\n' into account for
size computation (Damon Chaplin).
* gtk/gtkvscale.c (gtk_vscale_draw_value): adjusted static snprintf()
buffer size to 32 characters (Damon Chaplin).
* gtk/gtkhscale.c (gtk_hscale_draw_value): likewise.
* gtk/gtkmain.c (gtk_main_iteration_do): gdk_flush() the X-queue if
iteration_done==TRUE since we will most likely not get invoked again
(Marius Vollmer).
Sun Apr 5 15:08:25 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkmain.c: Reverted broken implementation of removing
the current timeout/idle. Substituted a (hopefully) functional one.
Sun Apr 5 09:35:55 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_events_pending): take expired timeouts into
account, otherwise things like e.g. spin-buttons don't work.
also, count gtk_main_quit() as an event.
Fri Apr 3 20:36:35 1998 Owen Taylor <owt1@cornell.edu>
* gutils.c (g_parse_debug_string): Make debug string
parsine case-insensitive
Fri Apr 3 20:36:52 1998 Owen Taylor <owt1@cornell.edu>
* gdk/gdk.c gtk/gtkmain.c: Accept debug options
in the form --g[td]k[-no]-debug=xxx as well
Fri Apr 3 17:14:55 1998 Owen Taylor <owt1@cornell.edu>
* gdk/gdk.c: More extensive debugging output
* gtk/gtkalignment.c gtk/gtkbutton.c gtk/gtkcheckbutton.c
gtk/gtkclist.c gtk/gtkeventbox.c gtk/gtkhandlebox.c
gtk/gtk[hv]box.c gtk/gtk[hv]paned.c gtk/gtklist.c
gtk/gtkmenu.c gtk/gtkmenubar.c gtk/gtkmenuitem.c
gtk/gtknotebook.c gtk/gtktable.c gtk/gtktree.c
gtk/gtktreeitem.c gtk/gtkviewport.c
Avoid assigning negative values to unsigned allocation.width and
height
* gtk/gtkwindow.c:
Instead of realizing the widget, then size allocating, (resulting
in XMoveResizeWindows for all children, do the size allocation
first, then realize.
In gtk_real_window_move_resize, combine move and resize
into a single GDK/X call when possible.
* gtk/gtkclist.c gtk/gtkdrawingarea.c:
Remove assumption that the widget will be size allocated _after_
it is realized.
* gtk/gtklist.c (gtk_list_motion_notify): Removed useless
debugging message.
Mon Mar 30 16:35:57 1998 Owen Taylor <owt1@cornell.edu>
* gtk/testgtk.c: Improved main loop test. (Quits main
loop properly, makes it more obvious to the user
what is going on)
* gtk/gtkwidget.c (gtk_widget_unparent): Reset the
allocation _after_ clearing the window.
* configure.in: If can't find XShmAttach in Xext, check
in XextSam (for AIX).
* gtk/gtkmain.c (gtk_events_pending): Remember, small
numbers are _high_ priority for idle queues.
* gtk/gtkmain.c (gtk_handle_current_timeouts): Allow
removing the currently running timeout.
* gtk/testgtk.c (timeout_test): Use the right prototype
for callback.
Fri Mar 27 00:13:18 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkmain.c (gtk_propagate_event): If the widget is _not_
a descendant of a Window widget, propagate key presses like
other events.
* gtk/gtkentry.c gtk/gtktext.c: Ignore multiple simultaneous
button presses instead of treating subsequent presses as
release/press pairs for tablet compatibility.
* configure.in config.h.in: Removed inline checks, because they
are duplicated in glib.
* gtk/gtkwidget.c (gtk_widget_draw): When gtk_widget_draw ()
occurs with queued draw already in place, redraw _entire_
widget. (Pointed out by Tim Janik)
Thu Mar 26 23:12:54 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_propagate_event): make a clear distinction between
key press/release events, which will be sent to a widgets toplevel
ancestor and be forwarded from there, and all other events that need to
get propagated up the widget tree (pointed out by Owen Taylor).
Thu Mar 26 08:31:58 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_propagate_event): do not propagate unhandled key
events on widgets with parent==NULL twice.
Sun Mar 22 16:25:46 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkmain.c (gtk_init): fixes to locale checks
* gtk/testgtk.c (create_dnd): Create the dnd icons separately
to avoid strange interactions with shapes demo.
* gtk/gtkentry.[ch]:
- Limit the length of the text to 2048 to prevent long delays
- Fix problems with buffer overruns
- Draw only the onscreen portion of the text to prevent wrapping
of shorts in the X drawing code.
- Keep track of character positions and x-offsets to speed
up algorithms.
Sat Mar 21 19:07:01 1998 Owen Taylor <owt1@cornell.edu>
* gtk/testgtk.c (dnd_drop): Don't respond to drops when
grab is in effect. (workaround)
* gdk/gdkfont.c (gdk_fontset_load): More details on
error messages.
* gdk/gdk.c: Translate va_list to XVaNestedList instead
of just casting it.
* gtk/gtkmain.c: Make temporary copy of string returned by
setlocale, since it may be changed by subsequent calls.
Tue Mar 17 01:55:00 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkmain.c gtk/gtkentry.c: Try to guess if we can
use the mb* functions safely. (For glibc, they do
UTF-8). Heuristic is (X_LOCALE && locale != C/POSIX)
|| (mblen("\xc0", MB_CUR_MAX) == 1).
(From: "Richard Lloyd" <rkl@csc.liv.ac.uk>)
* gdk/gdk.c (gdk_ic_get_attr): Use an intermediate
variable to avoid taking the address of the result
of va_arg.
* gtk/gtkentry.c gtk/gtkeditable.c gtkobject.c
gtk/testselection.c: signedness fixups
* gtk/gtkcontainer.c: Fixed implicit cast between
gpointer and func pointer by changing.
* gtk/gtkcombo.c, gtk/gtkentry.c, gtk/gtktext.c:
static void forward declaration vs. void actual fixed
* gtk/testgtk.c: Limit total number of tree items to 10,000
Sun Mar 15 20:13:42 1998 Tim Janik <timj@gimp.org>
* gtk/gtkmain.c (gtk_quit_destructor): removed the ugly check whether
we need gtk_widget_destroy or gtk_object_destroy. these functions are
by no means allowed to act differently!
* gtk/gtkmisc.c (gtk_misc_set_alignment): check for _DRAWABLE instead
of _VISIBLE to operate on widget->window.
(gtk_misc_set_padding): likewise.
* gtk/gtkwidget.c: slightly reordered object arguments.
* gtk/gtkobject.c (gtk_object_setv):
* gtk/gtkobject.c (gtk_object_getv):
operator `!' has precedence over `&'.
Sun Mar 15 13:25:28 1998 Tim Janik <timj@gimp.org>
* gtk/gtkwidget.h: added new flag GTK_EXCLUSIVE_GRAB.
* gtk/gtkmain.c: allow exclusive grabs.
* gtk/gtkmenu.c: grab exclusively.
* gtk/gtkmenushell.c: grab exclusively.
* gtk/gtkmenushell.c: don't activate insensitive menu items when
in click-selects mode.
* gtk/gtkmenushell.c (gtk_menu_shell_enter_notify): activate submenus
on popup.
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): don't take
*additional* button presses into account.
* gtk/gtkmenushell.c (gtk_menu_shell_button_press): don't take
foreign button releases into account.
oh boy, please check this out people, hope i covered all cases.
Sat Mar 14 10:10:46 1998 Tim Janik <timj@gimp.org>
* gtk/gtkmain.c (gtk_main): fixed a bug with invoking the quit handlers
that could cause them to be removed wihout being invoked.
Fri Mar 13 18:25:07 1998 Tim Janik <timj@gimp.org>
* gtk/gtkcombo.c: fix popup calculations (removal
of FIXMEs), changes from Lars Hamann.
Fri Mar 13 10:25:16 1998 Tim Janik <timj@gimp.org>
* gtk/gtkwidget.h:
* gtk/gtkwidget.c: renamed gtk_widget_delete_hides to
gtk_widget_hide_on_delete at owens request, and because the
new name is much more descriptive.
Thu Mar 12 20:17:47 1998 Tim Janik <timj@gimp.org>
* gtk/gtkhandlebox.c (gtk_handle_box_delete_float): return TRUE for
GtkWidget::delete_event to avoid destruction of our float window.
* gtk/gtkmain.c (gtk_main_iteration_do): GDK_DELETE will destroy a
widget if the last handler returned FALSE or there was none connected.
* gtk/testgtk.c: adapted all delete_event/destroy case that were affected.
* gtk/gtkwidget.c (gtk_widget_delete_hides): new function that will hide
a widget and return TRUE to avoid window deletion if
connected to GtkWIdget::delete_event.
Thu Mar 12 10:49:38 1998 Tim Janik <timj@gimp.org>
* gtk/gtkmain.h:
* gtk/gtkmain.c: changed handler tags to be of type guint, reflecting
the internal tag handling.
* gtk/gtkcurve.h: macro fixups.
Mon Mar 9 15:48:10 1998 Tim Janik <timj@gimp.org>
* Signal signedness and naming corrections, plus GtkType fixes:
* gtk/gtkadjustment.c:
* gtk/gtkbutton.c:
* gtk/gtkcheckmenuitem.c:
* gtk/gtkclist.c:
* gtk/gtkcolorsel.c:
* gtk/gtkcontainer.c:
* gtk/gtkcurve.c:
* gtk/gtkdata.c:
* gtk/gtkeditable.c:
* gtk/gtkentry.c:
* gtk/gtkhandlebox.c:
* gtk/gtkinputdialog.c:
* gtk/gtkitem.c:
* gtk/gtklist.c:
* gtk/gtkmenuitem.c:
* gtk/gtkmenushell.c:
* gtk/gtknotebook.c:
* gtk/gtkstatusbar.c:
* gtk/gtktoolbar.c:
* gtk/gtktree.c:
* gtk/gtktreeitem.c:
* gtk/gtkwidget.c:
* gtk/gtktogglebutton.c:
* gtk/gtkwindow.c:
made the <widget>_signals[] arrays of type guint rather than gint.
* gtk/gtkwidget.c (gtk_widget_get_ancestor): made widget_type a GtkType.
* gtk/gtkcombo.h:
handler ids need to be of type guint (entry_change_id, list_change_id).
* gtk/gtkaccelerator.c:
changed signal_num to signal_id and typed it guint.
* gtk/gtkmain.c: made gtk_ndebug_keys a guint.
* gtk/gtkmenu.h:
* gtk/gtkmenu.c:
(gtk_menu_popup): made button a guint.
(gtk_menu_set_active): made index a guint.
* gtk/gtkmenuitem.h:
* gtk/gtkmenuitem.c:
made accelerator_signal a guint.
* gtk/gtkoptionmenu.h:
* gtk/gtkoptionmenu.c:
(gtk_option_menu_set_history): made index a guint.
* gtk/gtksignal.h:
* gtk/gtksignal.c:
* gtk/gtkobject.h:
* gtk/gtkobject.c: changed a bunch of prototypes to take guints rather
than gints. also made some conversions from guint to GtkType, left over
from when the fundamental-types system was introduced.
* gtk/gtkobject.h:
* gtk/gtkobject.c: made object_data_id_index and obj_count guints.
made *signals and nsignals guints in GtkObjectClass.
Sun Mar 8 03:00:17 1998 Tim Janik <timj@gimp.org>
* configure.in: define the version variables in config.h.
* gtk/gtkmain.h:
* gtk/gtkmain.c: added static version variables.
* gdk/gdkpixmap.c: fixed memory leaks (gtk-gronlund-980307-1.patch.gz)
Mon Mar 2 17:48:38 1998 Owen Taylor <owt1@cornell.edu>
Miscellaneous minor fixes to remove ANSI C incompatibilities
* gdk/gdkregion.c gtk/gtkclist.c: fix // comments
* gdk/gdkdnd.c gdk/gdkinputcommon.h: change types of
some arguments to ANSI functions
* gtk/gtkcombo.c gtk/gtktree.c: fix casts of function pointers
to void *
* gtk/gtkmain.c: An actual bug! (in deprecated gtk_input_add_interp)
* gtk/gtknotebook.h: Bitfields must be gint or guint. (and should
be guint)
* gtk/gtkstatusbar.c: trailing ';'
* gtk/testgtk.c: GList where there should have been GSList
* glib.h gutils.c : changed g_strcasecmp
to take gchar* not guchar*
* testglib.c: Remove trailing ; after functions
Sun Feb 22 14:28:43 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkmain.c (gtk_events_pending): Count idle handlers
at internal priority as pending events.
Thu Feb 19 12:18:24 1998 Owen Taylor <owt1@cornell.edu>
* glib/configure.in glib/glibconfig.h.in: the value of
---enable_debug is written into glibconfig.h so everything
is recompiled when it changes. (HACK)
* gtk/gtkmain.c gdk/gdk.c docs/debugging.txt:
Added --gdk-no-debug and --gtk-no-debug switches. Effect
of switches is no cumulative.
Thu Feb 19 01:11:48 1998 Owen Taylor <owt1@cornell.edu>
* configure.in gdk/gdk.[ch] gdk/gdkcc.c
gdk/gdkglobals.c gdk/gdkinputcommon.h gdk/gdkprivate.h
gdk/gdkvisual.c glib/configure.in glib/glib.h
glib/gutils.c gtk/Makefile.am gtk/gtkmain.c
gtk/gtkobject.[ch] gtk/gtkdebug.h docs/debugging.txt
New system for controlling debugging:
* --enable-debug=[no/yes/minimum]
* G_DISABLE_ASSERT and G_DISABLE_CHECKS for glib
* G_NO_CHECK_CASTS to control cast checking
* G_ENABLE_DEBUG enables run time checking which controls:
Object tracing
Showing events
Miscellaneous g_print's in GDK
And is controlled by --gdk-debug/GDK_DEBUG, --gtk-debug/GTK_DEBUG
* debug_level and show_events are gone from GTK
See docs/debugging.txt for details.
And some fixups to the configure.in's so '-g' can be
overriden on the command line for --enable-debug
Tue Feb 17 05:41:31 1998 Tim Janik <timj@gimp.org>
* gtk/gtkcheckbutton.c:
* gtk/gtkradiobutton.c:
* gtk/gtktogglebutton.c:
applied patch to fix draw_indicator behaviour from Lars Hamann
and Stefan Jeske.
* gtk/gtkmain.h:
* gtk/gtkmain.c (gtk_grab_get_current): new function
that returns the current grab widget or NULL.
* gdk/gdkwindow.c (gdk_window_shape_combine_mask): remove
shape mask if mask==NULL (provided by Stefan Wille).
Thu Feb 12 23:59:49 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtksignal.[ch] gtk/gtkmain.[ch] gtk/gtkcontainer.[ch]
gtk/gtkselection.[ch] gdk/gdk.[ch] gtktypeutils.h
Replaced all _interp functions with _full functions.
(_interp functions left in for compatibility until 0.99.5).
Difference: _full functions take _both_ a C-language callback and a
marshaller, and simply ignore the C-language callback
if the marshaller is present. This allows the destroy notification
to be used without marshalling.
gtk_selection_add_handler[_full]() regularized to agree
with other callbacks.
Also, added gtk_input_add_full() to the header file.
(gtk_input_add_interp() was never there)
* gtk/gtkmain.[ch] gtk/gtkwidget.c: Idle functions are now prioritized.
Added new function gtk_idle_add_priority to create
an idle with a specified priority (default is zero)
constants #defined - GTK_PRIORITY_[HIGH/INTERNAL/DEFAULT/LOW]
(redraws, resizes run at GTK_PRIORITY_INTERNAL)
* gtk/gtkentry.c gtk/testselection.c: changes to keep up with change
to gtkselection.c.
Tue Feb 10 07:12:07 1998 Tim Janik <timj@gimp.org>
* gtk/gtksignal.h:
* gtk/gtksignal.c:
ok, there have been several severe bugs in the signal handler
referencing and ->next connection stuff. these bugs caused
invokations of handlers that are disconnected and - worse -
destroyed already. invokation of *destroyd* handlers mean:
anything can be executed , because the handler structure can just
as well be realocated.
at the cost of an extra ->prev field per handler we should have a
reasonable stable system now, because of the various places that
can cause a handler to be disconnected (*any* handler invokation can
cause *any* or *all* handlers to be disconnected, there is no way
around a doubly linked list, actually handler disconnection has never
worked correctly because of this.
handlers are connected together via a *doubly* linked list now, and it
is *not* valid to remove a handler out of this list untill all its
references have been droped, i.e. handler->ref_count==0.
to prevent emissions of disconnected but still referenced handlers,
disconnected handlers are simply marked as blocked and get an id of 0
which is an invalid signal handler id.
the handler->id has been changed to have 28 significant bits (using
alignment gaps), since 65536 (old range: guint16) signal connections
(as a total) can easily be reached by complex applications.
this whole handler thingy is at least as tedious as writing doubly
linked list implementations ;)
Thu Feb 5 02:13:08 1998 Tim Janik <timj@gimp.org>
* gtk/gtklist.h:
* gtk/gtklist.c (gtk_list_remove_items_no_unref): new function
to perform the same actions as gtk_list_remove_items, but
supply the removed widgets with an additional reference count.
* gtk/gtkmain.c (gtk_main_iteration_do): ignore events
with event_widget == NULL, since they are bogus events
from destroyed GdkWindows, exept for the case where
event->type==GDK_PROPERTY_NOTIFY. Always handle expired
timeout functions when returning from this function.
* gtk/gtkwidget.c (gtk_widget_event): ignore GDK_EXPOSE events
if event->window == NULL. Also, if this function couldn't handle
the event for any reason (including failing assumptions), make
the return value to look as if the event had been handled to
avoid further processing (and warnings).
* gtk/gtkwidget.h:
* gtk/gtkwidget.c: remove gtk_widget_sink, because there is
no point in providing such a function.
* gdk/gdk.c (gdk_init): changed options `-name' and `-class'
to `--name' and `--class', because the old names would
confuse getopt(). these arguments have been introduced in the
changes from gtk+970916 to gtk+970925 without a ChangeLog entry,
changing argument names is painful, it would be nice if people
would care about compatibility and consistency in the first place!
Tue Feb 3 15:09:55 1998 Tim Janik <timj@gimp.org>
* gtk/gtkoptionmenu.h:
* gtk/gtkoptionmenu.c: attach/detach to menu widget via
* gtk/gtkmenu.h:
* gtk/gtkmenu.c: new functions gtk_menu_attach_to_widget
and gtk_menu_detach that correspond to the action of
gtk_widget_set_parent and gtk_widget_unparent.
* gtk/widget.c: few fixups.
Mon Feb 2 04:15:08 1998 Tim Janik <timj@gimp.org>
* gtk/gtkmain.c (gtk_propagate_event): fixed a bad, bad referencing
bug that could caused unreferencing of finalized objects.
* gtk/testgtk.c: destroy fileselection on "OK" (this triggered the
above mentioned bug).
* gtk/gtkwidget.h:
* gtk/gtkwidget.c:
* gtk/gtkobject.h:
* gtk/gtkobject.c:
implemented and object reference tracer (gtk_trace_referencing) which
is activated if GTK_TRACE_OBJECTS is defined (currently per default).
in gdb: set the static variable `gtk_trace_object' to point to the
object that you want to have reference traced.
* gtk/gtkfileselection.c: few cleanups.
Mon Feb 2 04:15:08 1998 Tim Janik <timj@gimp.org>
* gtk/gtkcontainer.h:
* gtk/gtkcontainer.c: GTK_RESIZE_NEEDED is a private flag now.
(gtk_container_register_toplevel): new function.
(gtk_container_unregister_toplevel): new function.
* gtk/gtkmain.c: GTK_LEAVE_PENDING is a private flag now.
* gtk/gtkmenu.c: call gtk_container_register_toplevel in
gtk_menu_class_init instead of this dirty gtk_widget_set_parent(,NULL)
hack. new default handler gtk_menu_destroy for calling
gtk_container_unregister_toplevel. removed GTK_ANCHORED, GTK_UNMAPPED.
* gtk/gtkobject.h: macro cleanups, added GTK_DESTROYED flag.
* gtk/gtkobject.c: only emit DESTROY signal if !GTK_OBJECT_DESTROYED
(object).
* gtk/gtkprivate.h: new file that will not be automatically included.
it holds the private flags for GtkWidget along with it's SET/UNSET
and examination macros.
* gtk/gtkwidget.c: private flags: GTK_RESIZE_NEEDED, GTK_REDRAW_PENDING,
GTK_RESIZE_PENDING, GTK_IN_REPARENT, GTK_USER_STYLE. GTK_ANCHORED is
replaced by GTK_TOPLEVEL. added missing UNSET for GTK_IN_REPARENT.
removed the gtk_widget_set_parent(, NULL) hack for toplevels.
upon destroy free memory for widgets with GTK_WIDGET_HAS_SHAPE_MASK.
* gtk/gtkwidget.h: split up the widget flags into a public and a private
portion. added an extra field private_flags to GtkWidget without making
it bigger by using an alignment gap of 16 bit. macro cleanups.
* gtk/gtkwindow.c: removed GTK_ANCHORED. new function gtk_window_destroy
for calling gtk_container_unregister_toplevel. removed the
gtk_widget_set_parent(,NULL), call gtk_container_register_toplevel
instead. remove GTK_UNMAPPED. GTK_RESIZE_NEEDED is private now.
* gtk/gtksignal.c (gtk_signal_disconnect): removed a bug on
removal that cut off the handler list -> living_objects == 0
with testgtk. made some warnings more descriptive.
new function gtk_signal_connect_object_while_alive, which
will automatically destroy the connection once one of the objects
is destroyed. didn't include this before removal of the above
mentioned bug.
* reflected refcounting revolution in ChangeLog
Sun Jan 25 19:15:32 1998 Tim Janik <timj@gimp.org>
* gtk/gtkwidget.h (enum): added new widget flag GTK_LEAVE_PENDING.
* gtk/gtkmain.c (gtk_main_iteration_do): if a widget has
GTK_LEAVE_PENDING set, send it its LEAVE_NOTIFY event, regardless
of a grab or sensitivity.
changed the compression code for enter/leave notify events to
free *both* compressed event, and removed an unneccessary call
to g_list_remove.
* ChangeLog: finally catched up with the recent changes on my part.
Mon Jan 19 09:16:38 1998 Tim Janik <timj@psynet.net>
* gtk/gtkmain.c (gtk_grab_add) (gtk_grab_remove): this is a stack
of grabbing widgets now, having unique entries. the GTK_HAS_GRAB
flag of a widget is set while it is on the stack (wasn't
implemented before).