Tim Janik [Fri, 27 Feb 1998 16:31:06 +0000 (16:31 +0000)]
we make an active server grab now, this way we can change the cursor
Fri Feb 27 15:31:55 1998 Tim Janik <timj@gimp.org>
* gtk/gtktipsquery.c: we make an active server grab now, this way we
can change the cursor globally and don't need to tweak event masks
of other windows.
* gtk/gtkwidget.h:
* gtk/gtkwidget.c:
New signal GtkWidget::style_set to be emitted when a widget's style
changed. New flag GTK_RC_STYLE to indicate whether an rc lookup has
been perfomed for the widget.
(gtk_widget_ensure_style): New function.
(gtk_widget_set_rc_style): New function.
Tim Janik [Wed, 25 Feb 1998 22:03:10 +0000 (22:03 +0000)]
new widget from Lars Hamann <hamann@braunschweig.netsurf.de> and Stefan
Wed Feb 25 22:56:42 1998 Tim Janik <timj@gimp.org>
* gtk/gtkspinbutton.h:
* gtk/gtkspinbutton.c:
new widget from Lars Hamann <hamann@braunschweig.netsurf.de> and
Stefan Jeske <jeske@braunschweig.netsurf.de>.
Move layout constants into an enumeration, split
GTK_BUTTONBOX_DEFAULT into GTK_BUTTONBOX_DEFAULT
and GTK_BUTTONBOX_DEFAULT_STYLE (enumeration member).
Tony Gale [Wed, 25 Feb 1998 13:58:52 +0000 (13:58 +0000)]
added questions on: - Why don't the contents of a button move when the
* docs/gtkfaq.sgml: added questions on:
- Why don't the contents of a button move when
the button is pressed?
- How do I catch a double click event in
a list widget?
- When compiling GTK+ I get an error like:
make: file `Makefile' line 456: Syntax error
Removed questions on menus which are covered in the
tutorial.
Added link to HTML versions of FAQ and Tutorial on my
web site.
Owen Taylor [Wed, 25 Feb 1998 03:51:04 +0000 (03:51 +0000)]
Added some support for i18n. The support for input methods, including
Tue Feb 24 22:47:01 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtktext.c: Added some support for i18n. The support
for input methods, including preedit, is there, but input
is ignored unless it comes one byte at a time, so the
CJK locales won't really work. Fixing that would require
variable-width character support in the Text widget, which
is probably the wrong approach. Eventually we'll probably
want to go to UCS-4 internally.
Also, revised key press handling, which should improve
the forwarding of non-handled keypresses to the toplevel,
and make adding selection handling easier.
* gtk/gtkentry.c: Minor changes so that C-d, etc delete
the selection if there is one.
Owen Taylor [Mon, 23 Feb 1998 20:54:07 +0000 (20:54 +0000)]
Don't process configure events that just move the window, and don't resize
Mon Feb 23 15:41:13 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkwidget.c gtk/gtkmenu.c: Don't process configure events
that just move the window, and don't resize it. Because we need
to make sure that a widget gets redrawn after a size_allocate -
and that only happens when the configure event changes the size
of the window. Plus, it's inefficient.
Tim Janik [Mon, 23 Feb 1998 15:13:03 +0000 (15:13 +0000)]
implemented the statusbar widget. my first intend was to fix the code, but
Mon Feb 23 13:44:10 1998 Tim Janik <timj@gimp.org>
* gtk/gtkstatusbar.h:
* gtk/gtkstatusbar.c:
(re-)implemented the statusbar widget. my first intend was to fix the
code, but then there was nothing to fix - the whole thing was just a
big JOKE!
people who don't even know the semantics of the g_list_* functions
shouldn't put their hands on widget code and inheritance!
this is the first step to get bug "BUG: statusbar/hbox (redraw?) problem"
worked out, i have to leave now, but will continue work on the resizing code
this evening.
Tim Janik [Mon, 23 Feb 1998 11:14:27 +0000 (11:14 +0000)]
TODO updates (major ones ;).
have the send_event field in all GdkEvents.
gtkmenu.c, gtkacceleratortable.c, gtkwindow.c: unreference accelerator_table.
gtk_object_query_args: removed seq_ids again, must have been quite tired
when i commited that change ;)
gtkoptionmenu.c: assure GTK_BIN()->child is empty when reparenting
a menu_items child.
gtkwindow.c: fixed some memory leaks.
Tim Janik [Sun, 22 Feb 1998 02:18:29 +0000 (02:18 +0000)]
renamed signal GtkWidget::set_parent to GtkWidget::parent_set. since it's
Sat Feb 21 15:33:20 1998 Tim Janik <timj@gimp.org>
* gtk/gtkwidget.h:
* gtk/gtkwidget.c: renamed signal GtkWidget::set_parent to
GtkWidget::parent_set. since it's purpose is pure notification,
it should have been named this way in the first place.
Tim Janik [Sat, 21 Feb 1998 14:11:40 +0000 (14:11 +0000)]
gtk_object_query_args takes an additional pointer now which if supplied
Sat Feb 21 14:49:17 1998 Tim Janik <timj@gimp.org>
* gtk/gtkobject.h:
* gtk/gtkobject.c: gtk_object_query_args takes an additional pointer
now which if supplied will point to an array holding the sequential
argument ids.
* gtk/gtktree.c: fix emission of selection_changed signal, supplied
by Bolliet Jerome.
* gtk/gtktreeitem.c: inline the plus and minus pixmaps, supplied by
Bolliet Jerome.
* gtk/gtknotebook.c: do a resize when a page is removed and don't
refer to the removed page on the switch signal, supplied by Lars Hamann
and Stefan Jeske.
* gtk/gtktoolbar.h:
* gtk/gtktoolbar.c:
gtk_toolbar_append_item, gtk_toolbar_prepend_item,
gtk_toolbar_insert_item, gtk_toolbar_append_widget,
gtk_toolbar_prepend_widget, gtk_toolbar_insert_widget: take an additional
gchar *tooltip_private_text as argument to fully support the underlying
call to gtk_tooltip_set_tip.
(made the ChangeLog catch up with my last commits).
Owen Taylor [Thu, 19 Feb 1998 18:02:03 +0000 (18:02 +0000)]
the value of ---enable_debug is written into glibconfig.h so everything is
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.
Tim Janik [Thu, 19 Feb 1998 07:18:42 +0000 (07:18 +0000)]
present the argument access masks on their announcement.
Thu Feb 19 06:56:52 1998 Tim Janik <timj@gimp.org>
* gtkbox.c:
* gtkbutton.c:
* gtkcontainer.c:
* gtkframe.c:
* gtklabel.c:
* gtkobject.c:
* gtkwidget.c:
* gtkwindow.c:
present the argument access masks on their announcement.
* gtk/gtkobject.h:
* gtk/gtkobject.c:
(gtk_object_add_arg_type): take an additional argument describing
the access mask of the new arg. this can be of GTK_ARG_READABLE,
GTK_ARG_WRITABLE or GTK_ARG_READWRITE (the latter is an alias for
the two previous ones).
(gtk_object_query_args): provide an access_mask array if desired.
* gtk/gtkwidget.c (gtk_widget_real_realize):
realized the assumtion that widget is a NO_WINDOW widget
in actuall code.
* gtkwindow.c:
slight changes to gtk_window_configure_event that will make
the resizing behaviour a little less odd.
sigh, for some (buggy) reason, there are still container resizes
triggered by manual resizing to very small window sizes.
the cointainer resizes will cause gtk_real_window_move_resize to
be invoked, which makes the app look like it wants to fight the users
resizing action. ;(
* --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
Tim Janik [Thu, 19 Feb 1998 05:13:46 +0000 (05:13 +0000)]
applied gtk-hamann_jeske-980218-0.patch.gz, a patch from Lars Hamann and
Thu Feb 19 05:40:51 1998 Tim Janik <timj@gimp.org>
* gtk/gtknotebook.h:
* gtk/gtknotebook.c:
applied gtk-hamann_jeske-980218-0.patch.gz, a patch from
Lars Hamann and Stefan Jeske which introduces major
usability improvements.
fixed bugs are:
- container border_width>0 does now work correctly for show_tabs==TRUE
and for tab_pos=GTK_POS_BOTTOM/GTK_POS_RIGHT.
- toggleing visibility of the tab labels works now.
- emission of GtkNotebook:switch_page and all page changes
also the signature for the GtkNotebook:switch_page signal changed,
callbacks should now look like:
gint notebook_switch_page (GtkWidget *widget, GtkNotebookPage *page,
gint page_num, gpointer data);
Jay Painter [Wed, 18 Feb 1998 10:03:54 +0000 (10:03 +0000)]
A couple of compiler warning fixes, GtkCList signal changes, changed
fileselect to work with new CList signals, and enhanced testgtk's clist
example to show pixmaps and signal results. -Jay Painter
Tim Janik [Wed, 18 Feb 1998 04:09:13 +0000 (04:09 +0000)]
new signal GtkWidget::set_parent. this signal will be emitted once a
Wed Feb 18 04:38:24 1998 Tim Janik <timj@gimp.org>
* gtk/gtkwidget.h:
* gtk/gtkwidget.c:
new signal GtkWidget::set_parent. this signal will be emitted once a
widget gets a new/no parent assigned (i.e. from gtk_widget_unparent
and gtk_widget_set_parent).
Tim Janik [Wed, 18 Feb 1998 02:40:08 +0000 (02:40 +0000)]
new functions gtk_tooltips_data_get and gtk_tooltips_set_tip,
Wed Feb 18 02:58:50 1998 Tim Janik <timj@gimp.org>
* gtk/gtktooltips.h:
new functions gtk_tooltips_data_get and
gtk_tooltips_set_tip, gtk_tooltips_set_tips is discouraged now.
(_GtkTooltips): removed some fields that were never used.
changed boolean fields to one bit size, to pack together with
the delay field.
(_GtkTooltipsData): added tip_private, renamed tips_text to
tip_text.
* gtk/gtktooltips.c:
(gtk_tooltips_data_get): new function to retrive the
_GtkTooltipsData structure of a widget.
(gtk_tooltips_set_tip): new function for more extensible tooltips
settings than gtk_tooltips_set_tips which is discuraged now.
removed a bug that caused a stale object_data key to a
_GtkTooltipsData structure.
removed a bug that caused tips falsly to come up for a grab widget
on widgets where events were grabbed from.
Tim Janik [Tue, 17 Feb 1998 08:32:55 +0000 (08:32 +0000)]
invoke gtk_entry_grow_text already in this place, so the application will
Tue Feb 17 05:41:31 1998 Tim Janik <timj@gimp.org>
* gtk/gtkentry.c (gtk_entry_init): invoke gtk_entry_grow_text already
in this place, so the application will never see entry->text==NULL.
(see also ChangeLog entry from Tue Feb 11 1997 on this).
also i added some blurb about recent changes to the NEWS file,
and updated the TODO.
Tim Janik [Tue, 17 Feb 1998 06:03:40 +0000 (06:03 +0000)]
applied patch to fix draw_indicator behaviour from Lars Hamann and Stefan
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).
Owen Taylor [Tue, 17 Feb 1998 04:48:50 +0000 (04:48 +0000)]
From Patrice Fortier <Patrice.Fortier@aquarel.fr>
Mon Feb 16 23:47:09 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkviewport.c: (gtk-fortier-980130-0)
From Patrice Fortier <Patrice.Fortier@aquarel.fr>
Eliminate some extra expose events for viewports.
(To be conservative, I set the user's event mask for
both widget->window, and viewport->bin_window -owt)
Tim Janik [Sat, 14 Feb 1998 05:37:53 +0000 (05:37 +0000)]
gtkmain forgot a return value.
few fixes with resizing behaviour and non opaque moves
where configure events would exceed te number of calls
to gdk_window_resize.
-timj
Tim Janik [Fri, 13 Feb 1998 18:41:18 +0000 (18:41 +0000)]
check for clist !REALIZED. (draw_rows): bail out if the widget isn't
Fri Feb 13 19:08:51 1998 Tim Janik <timj@gimp.org>
* gtk/gtkclist.c (check_exposures): check for clist !REALIZED.
(draw_rows): bail out if the widget isn't drawable.
(hadjustment_value_changed):
(vadjustment_value_changed): bail out if clist isn't drawable.
* gdk/gdk.c (graphics_expose_predicate): check for private != NULL.
(gdk_event_get_graphics_expose): check for window != NULL.
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.
Tim Janik [Tue, 10 Feb 1998 23:49:15 +0000 (23:49 +0000)]
new function gtk_signal_handler_pending() returning the id of the next
Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
* gtk/gtksignal.h:
* gtk/gtksignal.c: new function gtk_signal_handler_pending() returning
the id of the next handler pending for that signal or 0.
put struct GtkHandler back into gtksignal.c along with
gtk_signal_get_handlers.
Tim Janik [Tue, 10 Feb 1998 06:53:08 +0000 (06:53 +0000)]
ok, there have been several severe bugs in the signal handler referencing
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 ;)
Owen Taylor [Tue, 10 Feb 1998 04:17:10 +0000 (04:17 +0000)]
Check for the RESIZE_NEEDED flag and remove the widget from the list.
Mon Feb 9 23:08:16 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkwidget.c (gtk_widget_unparent): Check for
the RESIZE_NEEDED flag and remove the widget from the list.
Remove the check from gtk_widget_destroy (no longer needed).
Owen Taylor [Sat, 7 Feb 1998 17:07:14 +0000 (17:07 +0000)]
use a mask of 0xffffffff instead of 0xffff, since there are 22 flags
Sat Feb 7 11:33:08 1998 Owen Taylor <owt1@cornell.edu>
* gdk/gdkgc.c (gdk_gc_copy): use a mask of 0xffffffff
instead of 0xffff, since there are 22 flags currently
defined. (From: Jon Trowbridge <trow@emccta.com>)
Changed to something better. ~((~1) << GCLastBit)
(From: from Daniel Stephens <daniel@cheeseplant.org>)
Owen Taylor [Sat, 7 Feb 1998 16:34:40 +0000 (16:34 +0000)]
use a mask of 0xffffffff instead of 0xffff, since there are 22 flags
Sat Feb 7 11:33:08 1998 Owen Taylor <owt1@cornell.edu>
* gdk/gdkgc.c (gdk_gc_copy): use a mask of 0xffffffff
instead of 0xffff, since there are 22 flags currently
defined. (From: Jon Trowbridge <trow@emccta.com>)
Tim Janik [Sat, 7 Feb 1998 02:26:09 +0000 (02:26 +0000)]
don't wipe out window_private's x and y coordinates if the configure
Sat Feb 7 02:29:01 1998 Tim Janik <timj@gimp.org>
* gdk/gdk.c (gdk_event_translate): don't wipe out window_private's x
and y coordinates if the configure notify is only about resizing,
query the correct origin instead.
Tim Janik [Thu, 5 Feb 1998 03:53:41 +0000 (03:53 +0000)]
new function to perform the same actions as gtk_list_remove_items, but
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!