Tue Dec 4 12:16:31 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtksettings.c (gtk_settings_set_property_value):
Simplify, make more efficient and fix memory leak
when turning quark into a string. (#66103, HideToshi
Tajima)
Tue Dec 4 12:06:13 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c: Ref and sink priv->tooltips in
init() and unref priv->tooltips in destroy rather
than calling gtk_object_destroy() which has no
effect on memory management. (#66104, HideToshi
Tajima)
* gtk/gtkcolorsel.c (palette_set_color): Use g_object_set_data_full()
so we free the when the object is freed. (Fixes memory
leak, #66096, HideToshi Tajima)
* gdk/gdkevents.c (gdk_synthesize_window_state): Use
a full GdkEvent structure to avoid reads of uninitialized/
invalid memory in gdk_event_put() (#65877, patch
from Hidetoshi Tajima)
Tue Dec 4 11:06:54 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenuitem.c: Revert my last mistaken change -
toggle-size-request doesn't take a requisition.
* gtk/gtkmenuitem.c (gtk_menu_item_class_init): Fix
reference to marshaler that no longer exists.
Mon Dec 3 16:39:17 2001 Owen Taylor <otaylor@redhat.com>
Patch from Bill Haneman (with many modifications) to make
the focus color work on dark themes and to make the
focus line width configurable. (#61079, #63074)
* gtk/gtkwidget.c: Add style properties,
::focus-widget, ::focus-line-width, and ::focus-padding.
* gtk/gtkstyle.[ch]: Make gtk_paint_focus() take a
state argument as well so we can use fg[STATE] to
draw instead of always drawing with black.
Cange paint_focus() to respect GtkWidget::focus-width
and GtkWidget::focus-line-pattern. Fix continuity
problem where the default 1-1 stipple had a blob
in one corner and a gap in the other. Change the
interpretation of x/y/width/height to be the bounding
box of the focus rect instead of the rectangle
passed to gdk_draw_rectangle.
* gtk/gtkcheckbutton.c gtk/gtklistitem.c gtk/gtknotebook.c
gtk/gtkoptionmenu.c gtk/gtkradiobutton.c gtk/gtkspinbutton.c
gtk/gtktextview.c gtk/gtktreeview.c: Handle ::focus-width
and ::focus-line-padding.
* gtk/gtkentry.c: Handle :;focus-width property; cleanup
and remove duplicated code; fix drawing of focus rectangle
when interior-focus = FALSE. (#63072, #63073)
* gtk/gtkrange.c gtk/gtktext.c gtk/gtktreeitem.c
gtk/gtktreeviewcolumn.c: Basic fixups to make compile;
Range and TreeViewColumn will need more extensive fixing.
* gtk/gtkcolorsel.c: Honor focus line attributes when
drawing the focus on the color swatches. (#63071)
* gtk/gtkhsv.c: Honor focus line attributes when
drawing the focus for the ring and triangle.
* docs/widget_geometry.txt: Start at documenting how
various widgets are drawn.
* gtk/gtkbutton.c (_gtk_button_paint): Export
_gtk_button_paint() librarywide, so we don't have
duplicate a bunch of code in gtktogglebutton.c.
* gtk/gtktogglebutton.c: Use _gtk_button_paint().
Mon Dec 3 21:04:13 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkmarshalers.list: remove VOID:BOXED,POINTER and
NONE:POINTER.
and now everyone else has to recompile their GTK too.... (-:
Mon Dec 3 21:15:59 2001 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreedatalist.c (_gtk_tree_data_list_value_to_node): if
we use pointers, we should free the previous pointer first (if
it exists), before we set a new pointer. (#64726)
* gtk/gtktreeprivate.h: get rid of cursor_drag
* gtk/gtktreeview.c (gtk_tree_view_unrealize): remove check
for cursor_drag
(gtk_tree_view_bin_expose): don't directly return in the while
loop
(gtk_tree_view_class_init): indentend expanders by default
(gtk_tree_view_header_focus): only give the button focus
if it's clickable, visible and the column is reorderable
(#65539)
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_realize_button):
create and free cursor
Mon Dec 3 10:23:07 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcalendar.c (gtk_calendar_size_request): Fix
some bugs with size requisition. (From Bill Haneman)
* gtk/gtkcalendar.c: Draw headers and selection in
base/text[SELECTED] instead of fg/bg[SELECTED].
* gtk/gtkcalendar.c: Miscellaneous cleanups to drawing
code and formatting.
2001-12-03 Havoc Pennington <hp@pobox.com>
* gtk/gtktextview.c (set_window_height):
(set_window_width): Hmm, setter functions normally assign the new
value to the object field. Reported by Chris Phelps.
Thu Nov 29 21:35:56 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtkmenu.c (gtk_menu_motion_notify): add checks for
empty menu items to behave like insensitive items (#59456)
* gtk/gtkmenuitem.c (gtk_real_menu_item_activate_item): select
next item if the first item in the menu is a tear off item
(#59456-2, suggestion by Matthias Clasen)
* gtk/gtkmenushell.c (gtk_menu_shell_button_press),
(gtk_menu_shell_button_release), (gtk_menu_shell_entry_notify),
(gtk_menu_shell_leave_notify), (gtk_real_menu_shell_move_current),
(gtk_real_menu_shell_activate_current): add check, so empty
menu items behave like insensitive items (#59456)
* gtk/gtkmenuitem.[ch]: add _gtk_menu_item_is_selectable to make
the checks more readable ...
* gtk/gtkmenushell.c (gtk_menu_shell_button_press),
(gtk_menu_shell_button_release): causes the menu to dropdown if the
caption is clicked again (#64977)
2001-11-29 Havoc Pennington <hp@redhat.com>
* gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
assertion here that we were at the end iterator was not correct;
change code to move us to the end iterator. bug #65731
Wed Nov 28 20:05:44 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkaccellabel.c (gtk_accel_label_refetch): Remove
improper use of g_locale_to_utf8() to convert from
latin-1, and do it the easy way by building the string
correctly in the first place.
Wed Nov 28 18:37:04 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtksocket.[ch] (gtk_socket_add_id): Rename 'id' parameter
to avoid problems with Objective C.
Wed Nov 28 18:19:12 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenu.c (gtk_menu_set_tearoff_hints): Move
accounting of menu->tearoff_scrollbar width to here
and make sure we have the correct requisition.
* gtk/gtkmenu.c (gtk_menu_position): Fix fixme
by using gtk_window_move().
* gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Force
the requisition to be updated by calling
gtk_widget_size_request() (#65440)
* gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_activate):
queue resize before calling gtk_menu_set_tearoff_state().
2001-11-28 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_paint): put the warning
explaining the validation error in front of the G_BREAKPOINT
* gtk/gtkrange.c (gtk_range_adjustment_value_changed): call
process updates with include_children = FALSE instead of TRUE, so
we redraw the range only, not the whole darn window. Making
GtkRange a NO_WINDOW widget had weirdly caused the text widget
Trace/breakpoint trap bug to become much easier to trigger.
Tue Nov 27 20:17:55 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcheckmenuitem.c (gtk_check_menu_item_activate):
Notify on the ::active property _here_, not in
gtk_check_menu_item_set_active.
Sun Nov 25 18:59:19 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_calc_size):
Calculate size based on the _child_ of the menu item,
not the menuitem. (#65005, Damon Chaplin)
* gtk/gtklistitem.c (gtk_list_item_new_with_label): Add
some extra vertical padding to the label widget ... restores
GTK+-1.2 spacing. (#65085, Damon Chaplin.)
Sun Nov 25 23:18:39 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktexttag.c (gtk_text_tag_set_property): free font_desc
when finished (#65266)
Sun Nov 25 23:16:29 2001 Kristian Rietveld <kristian@planet.nl>
* gdk/x11/gdkwindow-x11.c (gdk_window_set_icon_list): free
data after we set the property. (#65264)
Sun Nov 25 23:14:06 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtkbutton.c: add destroy method so label_text gets freed
if it has been allocated (#65268)
Sat Nov 24 22:05:27 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): don't
deactivate menu when menu_item isn't sensitive (#61389)
Sat Nov 24 15:35:26 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktreemodel.c (gtk_tree_model_foreach): free path before
we return (in case of a failure here)
Fri Nov 23 19:22:50 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c: Handle events in windows other
than widget->event_window properly. (#65079, reported
by Damon Chaplin)
* gdk/gdkevents.c (gdk_event_get_coords): Fix x/y bug.
Fri Nov 23 18:57:46 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmessagedialog.c (gtk_message_dialog_init): Align
the image at the top, #65020, request from Seth Nickell)
Fri Nov 23 18:49:53 2001 Owen Taylor <otaylor@redhat.com>
* gtk/{gtkclist,gtkctree.c} (draw_row): Remove some strange
arithmetic that was resulting in rows being drawn too low.
(#65001, reported by Damon Chaplin)
Fri Nov 23 18:36:42 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrange.c (gtk_range_button_press): Offset
invalidated range correctly.
* gtk/gtkclist.c (hadjustment_value_changed): Fix scrolling
of title window. (#65001, reported by Damon Chaplin)
* gtk/gtkcombo.c (gtk_combo_button_event_after): Replace
horrible hack with use of ::event_after.
Thu Nov 22 15:01:03 2001 Owen Taylor <otaylor@redhat.com>
* Version 1.3.11
* configure.in (ATK_REQUIRED_VERSION): Require
GLib-1.3.11, Pango-0.22, ATK-0.7.
* tests/prop-editor.c (property_widget): Restore
to working as well as it did before.
* gtk/gtklistitem.h: Mark deprecated since it is
an integral part of GtkList.
* demos/gtk-demo/demo-common.h: New header file,
for a common functions not important to the meat
of the demos.
* demos/gtk-demo/main.c (demo_ifind_file): Add a utility
function to search for a file used by the demo.
* demos/*.c: Use demo_find_file.
2001-11-23 Hans Breuer <hans@breuer.org>
* gdk/win32/gdkfont-win32.c (gdk_font_from_description) :
reflect Pango API change
* gtk/gtk.def : updated externals
* gtk/gtkfixed.c (gtk_fixed_get_has_window) : use
g_return_val_if_fail() to avoid 'function must return a value'
* gtk/gtkrc.c : added spaces to fix small coding style issues
* gtk/gtkwidget.c : ... and linebreaks. Also a static for
'static correctness'
* gtk/makefile.msc.in : temporary(?) disable gtk<plug|socket>
because they only can be build on win32 after applying my patch
Wed Nov 21 22:55:37 2001 Tim Janik <timj@gtk.org>
* gtk/gtkbutton.c (gtk_button_map): raise event window afte
children, in order for the input pnly window to stay *above*
children.
Wed Nov 21 22:44:27 2001 Tim Janik <timj@gtk.org>
* tests/testtreeview.c: make hackery worse ;) by checking fundamental
type walks againts G_TYPE_FUNDAMENTAL_MAX.
* tests/prop-editor.c: disable type hackery.
Wed Nov 21 11:41:29 2001 Owen Taylor <otaylor@redhat.com>
* tests/testgtk.c (create_tooltips): Ref-sink the tooltips object.
* gtk/gtktoolbar.c (gtk_toolbar_init): Ref-sink the tooltips object.
* gtk/gtkfilesel.c (open_new_dir): Fix some constness warnings.
* gtk/gtkaccelgroup.c: Rename gtk_accel_groups_from_acceleratable()
back to gtk_accel_groups_from_object(), change @acceleratable
parameter to gtk_accel_groups_activate() accordingly.
* gtk/gtkaccelmap.c (gtk_accel_map_lookup_entry): Remove
left-over comment about quark return.
* gtk/gtkaccelmap.h: Fix spelling of gtk_accel_map_foreach_unfiltered().
* gtk/gtk-boxed.defs (GtkIconSource): added as a boxed type.
(Patch from Matt Wilson)
* gtk/gtkobject.c (gtk_object_finalize): Warn if a floating
object is finalized.
Tue Nov 20 21:25:08 2001 Tim Janik <timj@gtk.org>
* applied patch from owen to get rid of accel map notifiers.
changed things to fix reentrancy and API as discussed on gtk-devel.
* gtk/gtkaccelgroup.[hc]:
(gtk_accel_group_finalize): unregister this accel group from all
accel map paths.
(accel_closure_invalidate): handle invalidation of closures by
disconnecting their accelerators.
(quick_accel_add): move closure connection and changed notification
into this function to reduce code duplication. don't emit change
notification on closurers without accelerators.
(quick_accel_remove): rewrite, do the exact opposite of quick_accel_add
for a GtkAccelGroupEntry.
(gtk_accel_group_connect): get rid of the accel_path_quark argument.
(gtk_accel_group_connect_by_path): new function to add accelerators
with an accel path.
(gtk_accel_group_disconnect_closure): new function, disconnect a
closure from of an accel group.
(gtk_accel_group_disconnect): loop over all closure for a accel_ley,
accel_mods pair and remove them.
(_gtk_accel_group_reconnect): new function that basically does
gtk_accel_group_disconnect_closure() and
gtk_accel_group_connect_by_path() once an accel path changed.
(gtk_accel_groups_disconnect_closure): remove this, there's
gtk_accel_group_disconnect_closure().
* gtk/gtkaccelmap.[hc]: keep list of accel groups per entry now,
nuke notifiers.
(_gtk_accel_path_is_valid): make this non-static for
gtkwidget.c and gtkaccelgroup.c assertions.
(gtk_accel_map_add_notifer): removed this function.
(gtk_accel_map_remove_notifer): same.
(_gtk_accel_map_add_group):
(_gtk_accel_map_remove_group): (un-)register accel groups, with
accel paths for correct propagation.
(gtk_accel_map_add_entry): return void.
(gtk_accel_map_lookup): return gboolean instead of GQuark.
* gtk/gtkitemfactory.c (gtk_item_factory_add_foreign): always
set accel_path on widgets.
* gtk/gtkwidget.[hc]:
(accel_path_changed): got rid of this, changes are handled by
accel maps internally now.
(_gtk_widget_set_accel_path): get things to work without notifiers.
(gtk_widget_list_accel_closures): list accel closures of a widget.
* gtk/gtkwindow.[hc]: rename ::accels_changed, to ::keys_changed.
Tue Nov 20 23:01:01 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktreemodel.c (gtk_tree_row_reference_unref_path):
replace gboolean free_last in the function parameters with
gint depth. Changes to reflect new situation.
* gtk/gtktreemodel.c (gtk_tree_row_reference_unref_path_helper):
replace gboolean free_last, with gint depth, add gint current_depth.
Changes to reflect new situation.
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): changes
to reflect new situation
* gtk/gtktreemodel.c (gtk_tree_row_reference_free): ditto
Tue Nov 20 12:37:10 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_paint): Fix problem
where notebook gap was double shifted by allocation.x/y
* gtk/gtknotebook.c (gtk_notebook_unmap): Chain up
to unmap children.
Tue Nov 20 14:49:59 2001 Tim Janik <timj@gtk.org>
* gtk/gtkvpaned.c (gtk_vpaned_size_allocate): fix
allocation to be relative to paned->allocation, now
that this is a NO_WINDOW widget.
* gtk/gtkhpaned.c (gtk_hpaned_size_allocate): same here.
* gtk/gtkaccellabel.c (gtk_accel_label_class_init): ::closure
needs to be a boxed property.
Mon Nov 19 17:34:40 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkradiobutton.c (gtk_radio_button_draw_indicator):
Use the widget's state when drawing the indicator, as
in GtkCheckButton. This gives us color changes for
un-prelighted checkbuttons. (#63308, Matt Wilson)
Mon Nov 19 17:11:23 2001 Owen Taylor <otaylor@redhat.com>
(Fixes related to #64428, Michael Meeks)
* gtk/gtkplug.c (gtk_plug_set_is_child): Unmap the
widget, so it gets mapped again properly when we
add to a parent.
* gtk/gtkplug.c (_gtk_plug_add_to_socket): Set
plug->socket_window.
* gtk/gtkplug.c (_gtk_plug_remove_from_socket): Set
socket_window to NULL, not FALSE.
2001-11-19 Michael Natterer <mitch@gimp.org>
* gtk/gtknotebook.c: show notebook->event_window with
gdk_window_show_unraised(), so it doesn't catch the events which
should go to the tab widgets first.
Mon Nov 19 15:30:51 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_class_init): Add a
"resizable" property, to get rid of the
GTK_TREE_VIEW_COLUMN_RESIZABLE sizing flag.
(gtk_tree_view_column_set_resizable): New function to set resizable.
(gtk_tree_view_column_set_resizable): getter.
* tests/testtreecolumns.c (add_clicked): modify for above change.
* Makefile.am (install-data-hook): remove old .pc files before
installing the new one. We used to symlink this, and it will
break old installs.
Mon Nov 19 14:08:18 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_init): Change default for
justify to GTK_JUSTIFY_LEFT. Assuming that multiline
labels are most often wrapped labels, this gives better
compatibility with GTK+-1.2, where justification was
ignored for wrapped labesl and is a more sensible
default in any case. (#64489)
* gtk/gtklabel.c (gtk_label_class_init): Fix default
for wrap property to FALSE.