Sun Nov 18 19:47:29 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkobject.h docs/Changes-2.0.txt: Rename the
GTK_DESTROYED flag to GTK_IN_DESTRUCTION, remove the
GTK_OBJECT_DESTROYED() check macro.
* gtk/gtkbindings.c (gtk_bindings_activate): Remove
instances of GTK_OBJECT_DESTROYED() that weren't
needed any more.
* gtk/gtkdialog.c: Exchange use of GTK_OBJECT_DESTROYED
for a connection to ::destroy.
Sun Nov 18 18:18:11 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfixed.c: Make a NO_WINDOW widget, as it should
have been since the beginning, but as special hack,
allow clearing the NO_WINDOW flag to get a window widget.
2001-11-18 Hans Breuer <hans@breuer.org>
* gtk/gdkaccelmap.c : make it compile with msvc: !HAVE_UNISTD_H;
no label without op, even if it's a no-op.
* gtk/gtk.def :
* gtk/makefile.msc.in : reflect marshaler split, some clean-up
* config.h.win32.in : remove definition of HAVE_DIRENT_H
* gtk/gtkfilesel.c : due to GDir (new in glib) DIR isn't
required anymore, replace it.
* gtk/queryimmodules.c : DIR -> GDir replacement, also
getcwd() -> g_get_current_dir()
* gdk/win32/gdkgeometry-win32.c : adapt to refactored gdkgeometry-x11.c
Even 'noisy laugh' scolling appears to work, though I still can't
claim to have fully understood what it is supposed to do ...
Sat Nov 17 19:26:20 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_key_press_event): Reprioritize
key bindings in order of visibility - mnemonics, then
accelerators, then send key to the focus widget, then
bindings on the GtkWindow.
* gtk/gtklayout.h docs/Changes-2.0.txt tests/testgtk.c:
Removed the xoffset, yoffset fields of GtkLayout which were
identically zero for compat with 1.2, but were no longer
compatible with all uses of these fields in 1.2.
* gtk/gtkwindow.c (gtk_window_set_default): Remove
unused variable.
Sat Nov 17 19:08:13 2001 Owen Taylor <otaylor@redhat.com>
* tests/testtreeview.c (gtk_tree_model_types_get_type):
We no longer need to create the signals here ... they
come from the interface.
* gtk/maketypes.awk: Use GType, not GtkType in output.
* gtk/gtktypeutils.h: Mark virtually all of this
file deprecated.
* gtk/gtkcontainer.h: Deprecate gtk_container_foreach_full;
the only use of this function is the GtkArg using
GtkCallbackMarshal, since destroy notification is
silly here.
Sat Nov 17 18:26:45 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am gtk/gtkmarshal.list gtk/gtkmarshalers.list
gtk/*.c gtk/gtksignal.h: Make gtkmarshal.list/gtkmarshal.h
only for compatibility with GTK+-1.2; and deprecate it;
put all marshalers we actually use into gtkmarshalers.list
and use the _gtk_marshal_ prefix for these marshalers.
Fri Nov 16 19:44:35 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_set_default): Move
notification of "has_default" to here, so it
is safe to call gtk_window_set_default() instead
of gtk_widget_grab_default().
* gtk/gtkwindow.c (gtk_window_set_focus): Make it call
gtk_widget_grab_focus(), which then calls
_gtk_widget_internal_set_focus(). This makes
gtk_window_set_focus() a safe way of both setting
and unsetting the focus widget.
* gtk/gtkwidget.c (gtk_widget_propagate_state): Use
gtk_widget_get_toplevel(), instead of gtk_widget_ancestor
to find the toplevel.
* gtk/gtkwindow.h: Move gtk_window_set_focus/default
from the "internal functions" section.
2001-11-16 jacob berkman <jacob@ximian.com>
* tests/testgtk.c (create_radio_buttons): add some no-indicator
radio buttons
* gtk/gtkradiobutton.c (gtk_radio_button_init): since we are
initially active, also initially be depressed
(gtk_radio_button_clicked): also update our depressed state
Thu Nov 15 12:54:36 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_key_press_event): Propagate
key press events not just to focus/window but also to
intermediate widgets.
* gtk/gtknotebook.c: Handle Ctrl-PageUp/Ctrl-PageDown
to switch pages. (Needs some work on handling focus
when switching pages.)
Fri Nov 16 14:06:31 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c: Fix child allocations to be relative to
widget position and some drawing bugs.
* gtk/gtkmenuitem.c (gtk_menu_item_paint): Fix problem
with reading uninitialized variable.
Fri Nov 16 00:16:40 2001 Owen Taylor <otaylor@redhat.com>
* gtk/{gtkmenuitem.[ch],gtkcheckmenuitem.c,gtkimagemenuitem.c,
gtkradiomenuitem.c,gtktearoffmenuitem.c}: Make Menu items
NO_WINDOW widgets.
* gtk/gtk{h,v,}paned.[ch]: Make NO_WINDOW widgets, some
cleanup.
* gtk/gtkstyle.c (gtk_default_draw_handle): Don't assume
we are drawing in a window when drawing the paned handle.
Thu Nov 15 18:44:33 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreedatalist.c (_gtk_tree_data_list_free): maybe fix#64160
Also, forgot to save gtktreeview.h
Thu Nov 15 16:24:55 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_get_bin_window): New function
to get a GdkWindow to compare event->window to.
* gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): emit
the signal for lateral motion too, #64361
* gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): remove window
arg as it is useless, #64137
Thu Nov 15 14:19:34 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdkwindow.c (gdk_window_invalidate_maybe_recurse): Cal
gdk_window_invalidate_maybe_recurse() for recursion.
(Soeren Sandmann)
* gtk/gtkviewport.c: Make !redraw_on_allocate. (Soeren Sandmann)
* gtk/gtkcontainer.c (gtk_container_expose): Call
gtk_container_forall() not _foreach() to propagate,
since we need to propagate exposes to internal children
as well.
* gtk/gtkwidget.c (gtk_widget_set_events, gtk_widget_add_events):
Remove the restriction of only being able to call these
on window widgets, since we have lots of NO_WINDOW widgets
with windows now; for add events, recurse over the children
of widget->window to find one owned by the widget.
* gtk/gtkbutton.[ch]: Make a NO_WINDOW widget, using an input-only
window to catch events.
* gtk/gtktogglebutton.[ch]: Remove the code for switching
between NO_WINDOW and WINDOW widgets based on the mode.
* gtk/gtkcheckbutton.c gtk/gtkoptionmenu.c gtk/gtkclist.c
gtk/gtktreeview.c: Adopt to NO_WINDOW change for GtkButton.
* gtk/gtkrange.[ch]: Make into a NO_WINDOW widget.
* gtk/gtkhscale.c, gtk/gtkvscale.c: Adopt to NO_WINDOW
change for range.
* gtk/gtknotebook.[ch]: Make into a NO_WINDOW widget.
* docs/Changes-2.0.txt: Add a note about the NO_WINDOW changes.
Thu Nov 15 11:59:35 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmessagedialog.c: Patch from Murray Cumming to add
"message_type" and "buttons" CONSTRUCT properties. (#64069)
* tests/testsocket.c: Expand tests to add a "local passive
child" (Test case for #64428)
Wed Nov 14 17:40:23 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_get_expander_column): Return
the currently selected column when we get the column, #64380
* gtk/gtkentry.c (gtk_cell_editable_key_press_event): Handle Esc
to cancel CellRendererText editting, #63613
* gtk/gtkcellrenderertext.c: ditto
* gtk/gtkcellrenderertext.h: formatting changes
Wed Nov 14 15:14:48 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcontainer.c (gtk_container_idle_sizer): Back
out accidental commit of debugging timing code
2001-11-14 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_move_cursor): fix Control-E so
it doesn't move to a new line each time you press it
* gtk/gtktextiter.c (gtk_text_iter_forward_to_line_end): fix
return value, #62987
2001-11-14 Havoc Pennington <hp@redhat.com>
* tests/testtextbuffer.c (main): bulk of the tests were commented
out, oops.
* gtk/gtktextiter.c (find_paragraph_delimiter_for_line): make this
function work, should resolve#63426
(gtk_text_iter_ends_line): return TRUE for the end iterator
* gtk/gtktextiter.h: put padding back in GtkTextIter, I thought of
a couple things that might get cached in here.
Tue Nov 13 21:00:59 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_class_init): new
"model" construct property for language bindings.
* gtk/gtktreestore.c (gtk_tree_store_set_column_types): New
function to let you set the column types of a GtkTreeStore for
language bindings.
* gtk/gtkliststore.c (gtk_list_store_set_column_types): ditto.
2001-11-13 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_add_child_in_window): docs
including reference to bugzilla bug about how we should have
a better way of positioning children
* gtk/gtktextview.h (struct _GtkTextViewClass): add some padding
* gtk/gtktextview.c (gtk_text_view_size_allocate): assign zero
size to side rects if they don't exist, #63438
2001-11-13 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_key_press_event): fix to
properly replace selection with Return or Tab
* gtk/gtktextdisplay.c (gtk_text_layout_draw): fix broken code
that didn't locate the end of the line correctly, should fix#63800
2001-11-13 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_size_request): add border width
to requisition, request non-anchored children
(gtk_text_view_size_allocate): handle border width, allocate
non-anchored children
(text_view_child_new_window): set the child as object data
(gtk_text_view_move_child): allow children at negative
coordinates, no reason why not
(gtk_text_view_forall): make it copy the list of children before
walking it, to avoid reentrancy issues
(gtk_text_view_move_child): short-circuit if position is unchanged
(changed_handler): only queue_resize if requisition has changed
(gtk_text_view_init): don't redraw_on_allocate, since we can do
a better job of invalidation ourselves
* tests/testtext.c: add tests for the fixed-position children
Mon Nov 12 23:06:38 2001 Tim Janik <timj@gtk.org>
* added gtkaccelmap.sgml. other updates.
Mon Nov 12 23:08:37 2001 Tim Janik <timj@gtk.org>
* gtk/maketypes.awk: fix type utils generation on unix.
* gtk/gtkaccelmap.[hc]: new files, implementing a global accelerator
registry.
* gtk/gtkaccelgroup.[hc]: major API/implementation revamp:
removed GTK_ACCEL_SIGNAL_VISIBLE, gtk_accel_group_get_default,
gtk_accel_group_get_entry, gtk_accel_group_(un)lock_entry,
gtk_accel_group_add/remove, gtk_accel_group_handle_add/remove,
gtk_accel_group_create_add/remove, gtk_accel_group_entries_from_object.
introduced ::accel_changed signal for change notification, and
gtk_accel_group_connect/disconnect to connect closures to accel groups.
made gtk_accel_group_attach/detach and gtk_accel_group_activate private
functions.
deprecated gtk_accel_group_ref/unref.
* gtk/gtkaccellabel.[hc]: changes to make accellabels pay attention
to accel group changed notification and basically operate on closures.
removed gtk_accel_label_get_accel_object and
gtk_accel_label_set_accel_object.
introduced gtk_accel_label_set_accel_closure, and for convenience,
gtk_accel_label_set_accel_widget.
* gtk/gtkitemfactory.[hc]: removed accelerator propagation code
which mostly moved into gtkaccelmap.[hc].
removed gtk_item_factory_parse_rc*, gtk_item_factory_dump_*
and gtk_item_factory_print_func.
* gtk/gtkmain.c: call _gtk_accel_map_init().
* gtk/gtkmenuitem.[hc]: introduced gtk_menu_item_set_accel_path(),
that associates an accelerator path with menu items, through which
persistent accelerator settings on menu items are enabled.
* gtk/gtkmenu.[hc]: added gtk_menu_set_accel_path() so accelerator
paths of menu item can be default constructed to allow installation
of accelerators on menu items that don't come with an accelerator
binding by default.
* gtk/gtksettings.c: fix STRING type rc settings by special casing
them appropriately in the parser.
* gtk/gtksignal.[hc]: allow a class function offset of 0 for
gtk_signal_newv().
* gtk/gtkwidget.[hc]: accelerator API revamp.
removed ::accelerator_add/remove signals, gtk_widget_accelerator_signal,
gtk_widget_accelerators_locked, gtk_widget_remove_accelerators and
gtk_widget_(un)lock_accelerators.
accelerators maintained through gtk_widget_add/remove_accelerator()
are not runtime changable now, the correct sequence to setup a
widget for runtime changable accelerators is now:
gtk_accel_map_add_entry(accel_path, key, mods);
_gtk_widget_set_accel_path(widget, accel_path, accel_group);
* gtk/gtkwindow.[hc]: accelerator changes, proxy and coalesce accel
group changes (as well as mnemonic changes) through the new signal
::accels_changed.
Sat Nov 10 12:08:56 2001 Tim Janik <timj@gtk.org>
* gtk/gtksettings.c (_gtk_settings_parse_convert): properly handle
GString->string conversions.
2001-10-28 Hans Breuer <hans@breuer.org>
* gtk/gtkfontsel.c : use g_strcasecmp(), some poor platforms
don't have strcasecmp()
* gtk/gtktextview.c : to fix crashing on e.g. TextView::find need
to remove the idle funcs in gtk_text_view_destroy (). To reduce
code duplication wrap it in its own function and use it in
gtk_text_view_unrealize () and gtk_text_view_destroy_layout ()
* gdk/win32/gdkdrawable-win32.c : implement the finalize
method like the X11 version does, allow to set_colormap NULL
* gdk/win32/gdkwindow-win32.c : adapt GdkWindowImplWin32::
set_colormap, also some adaption to X11 version :
(gdk_window_hide) call _gdk_window_clear_update_area
(gdk_window_reparent) call _gdk_window_init_position
* gdk/win32/gdkwindow-win32.c (gdk_window_set_geometry_hints) :
call gdk_window_resize() after all hints are set, because the
window resizing process (WM_GETMINMAXINFO) takes all of them into
account
* gdk/win32/gdkfont-win32.c : make gdk_font_equal return a gboolean
* gdk/win32/gdkvisual-win32.c : register GdkVisual with
sizeof (GdkVisualPrivate)
* gdk/gdk.def gtk/gtk.def : upated externals
* gdk/makefile.msc gdk/win32/makefile.msc gdk-pixbuf/makefile.msc
gdk-pixbuf/pixops/makefile.msc gtk/makefile.msc.in tests/makefile.msc :
from now on use make.msc from $(TOP)/glib/build/win32
* gtk/stock-icons/makefile.msc : add stock_missing_image
Mon Nov 5 22:34:29 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtktreednd.[ch] (struct _GtkTreeDragSourceIface):
Add row_draggable() vfunc, and wrapper function.
* gtk/gtktreednd.[ch] (struct _GtkTreeDragDestIface): Make
row_drop_possible take a GtkSelectionData, rather than
model/row pair.
* gtk/gtktreestore.c gtk/gtkliststore.c: Update for
new DND interfaces.
* gtk/gtktreeview.[ch]: Remove the row_draggable_func
location_dropable_func from gtk_tree_view_set_rows_drag_source/dest.
and rename them to enable_model_drag_source/dest.
* gtk/treeviewcolumn.c: Add DND of columns between rows.
Still can't drop _to_ the left tree, but other places
work.
* gtk/gtktreeview.c (unset_reorderable): Unset the
reorderable property if unset/enable_model_drag_source/dest
are called manually.
* gtk/gtktreestore.c (gtk_tree_store_row_drop_possible):
Correct for change in depth count handling.
* gtk/gtktreeview.c (gtk_tree_view_create_row_drag_icon):
Pass in a expose area to gtk_tree_view_column_cell_render()
2001-11-05 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_paint): expose the child
widgets in here
(gtk_text_view_realize): set parent window of child widgets
(gtk_text_view_size_request): use child req to decide whether
to invalidate layout, not widget->requisition
* gtk/gtktextdisplay.c (render_layout_line): set
shaped_width_pixels for NULL shape objects, so that we properly
draw the "missing pixbuf/widget" thing
(render_layout_line): don't draw the widget here
(gtk_text_layout_draw): pass out a list of widgets that need exposing
* demos/gtk-demo/textview.c (insert_text): add demo of child
widgets
* gtk/gtktextlayout.c (add_child_attrs): remove debug spew
* gtk/gtktextdisplay.c (render_layout_line): remove debug spew
* gtk/gtktextview.c (gtk_text_view_update_child_allocation): add
scroll offsets
(gtk_text_view_value_changed): poke new X and Y into child allocations
Sun Nov 4 18:39:43 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtksizegroup.c (gtk_size_group_set_mode):
queue_resize_on_group with both the old and new mode, not
just the new mode. (#60171, Nicolas Setton). Also, notify
the "mode" property.
Sun Nov 4 16:02:08 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdkwindow.[ch]: Add a function gdk_window_invalidate_maybe_recurse()
for use in "shallow invalidation" of a widget. (Windows belonging
to the widget, but not to the widget's children)
* gtk/gtkprivate.h gtk/gtkwidget.c gtk/gtksizegroup.c: Add private
flags GTK_ALLOC_NEEDED, GTK_REQUEST_NEEDED. These flags are set
up on ancestors up to the resize container on queue_resize. Size
requests only actually take place if GTK_REQUEST_NEEDED, size
allocations only take place if GTK_ALLOC_NEEDED or the size
changed.
* gtk/gtkcontainer.c gtk/gtkwidget.c: Remove
container->resize_widgets and the RESIZE_NEEDED flag since the
above flags are sufficient to figure out what needs to be
resized/reallocated. Remove code manipulating
container->resize_widget.
* gtk/gtkwidget.[ch]: Add gtk_widget_set_redraw_on_alloc(); this
allows widgets to turn off being automatically invalidated is when
they are resized.
* gtk/gtkwidget.[ch] (gtk_widget_size_allocate): Invalidation when
a widget is resized or moved is "shallow" as described above -
only the windows that need to be invalidated are invalidated.
* gtk/gtkbox.c gtk/gtktable.c gtk/gtkalignment.c docs/Changes-2.0.txt:
Make these widget's init functions call
gtk_widget_set_redraw_on_allocate(widget,FALSE).
* gtk/gtkwindow.c (gtk_window_configure_event): Call
_gtk_container_queue_resize(), since we don't want
redrawing. (Probably could be done for other
calls to gtk_widget_queue_resize() in gtkwindow.c,
but this is the most important one.)
* gtk/gtkwindow.c (gtk_window_move_resize): Don't call
gtk_widget_queue_draw() - size_allocate() handles
that as appropriate.
* gtk/gtkframe.c (gtk_frame_size_allocate): Invalidate instead
of queue_clear() to avoid invalidating children.
Sat Nov 3 13:57:21 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c: Convert GTK_TYPE_CTREE_NODE to pointer
derivation instead of boxed derivation.
* gtk/gtkmarshal.list: Remove some now unused marshallers.
2001-11-04 Tor Lillqvist <tml@iki.fi>
* gtk/gtkimmodule.c: Can't include gtkprivate.h (I added the
include yesterday, without really thinking), as that defeats the
working of correct_libdir_prefix() (it becomes a no-op.). Add
comment mentioning that. Thanks to Hans Breuer for noticing.