Merges from gtk-1-2

This commit is contained in:
Owen Taylor 2000-03-14 19:57:25 +00:00
parent 3f98a849c7
commit 10ba4fd066
98 changed files with 3772 additions and 1749 deletions

386
ChangeLog
View File

@ -1,3 +1,389 @@
Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty()
is called without trapping X errors.
Fri Feb 25 10:48:53 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.*: Fix problem where stray '"' characters found their
way into the fontset lists.
Tue Feb 22 08:52:52 2000 Tim Janik <timj@gtk.org>
* gtk/gtkthemes.h: add extern "C" scope.
Mon Feb 21 20:16:42 2000 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.c: applied patch from Guy Harris <guy@netapp.com>
to make appends to the list constant. (gtk-guy-990901-0.patch)
Mon Feb 14 22:50:10 2000 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_init): use g_str_hash() and g_str_equal()
for the typename hash table.
Mon Feb 14 15:01:23 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkpaned.c (gtk_paned_compute_position): Add some sanity checks
to make sure we never divide by zero.
(Problem pointed out by Michal Jaegermann <michal@ellpspace.math.ualberta.ca>)
Mon Feb 14 12:29:38 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Apply patch from
SHIRASAKI Yasuhiro <yasuhiro@awa.tohoku.ac.jp> to make font selector work a little
better with 2-byte fonts. (Load a fontset instead of a font for two byte fonts.)
Also, some cleanups in atom handling.
Sun Feb 13 08:02:21 2000 Tim Janik <timj@gtk.org>
* gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer,
not GtkWidget.
Fri Feb 11 02:19:32 2000 Tim Janik <timj@gtk.org>
* gtk/gtkhpaned.c (gtk_hpaned_size_allocate):
* gtk/gtkvpaned.c (gtk_vpaned_size_allocate):
* gtk/gtkpaned.c (gtk_paned_compute_position): had to squeeze some
more guint wrap-around bugs before going to bed.
Thu Feb 10 16:16:35 2000 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.c (gtk_spin_button_size_allocate): guard against
guint wrap arounds in allocation.width.
* gtk/gtktable.c (gtk_table_size_allocate_pass1): repeat shrinking
process untill we fit the allocation given.
Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c:
(gtk_widget_unrealize): guard widget access with ref/unref
around signal emission.
(gtk_widget_hide): same here, but also check its destroyed
state before queueing a resize.
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
of gtk_default_insensitive_bg as insensitive base color.
* gtk/gtktext.c (gtk_text_style_set): set the background color according
to the widget's state.
(gtk_text_realize): same here.
(gtk_text_state_changed): same here.
(draw_bg_rect): compare background color against base[] from
GTK_WIDGET_STATE (text) not GTK_STATE_NORMAL.
Mon Feb 7 04:01:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_main_do_event): ignore delete events when
grabs are active, unless a delete event is send to the toplevel
of the currently grab holding widget.
Sun Feb 6 10:13:15 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (gtk_ctree_drag_data_received): Remove
debugging g_print's.
Fri Feb 4 15:54:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): Don't
ever make the scrolled-window requisition ever depend on the
visibility state of the scrollbars for the AUTOMATIC policy.
This breaks the GTK+ requisition model, and causes loops.
Fri Feb 4 15:09:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Set the charset explicitely for
the default font to avoid problems with XFree86-4.0 where the
default charset is iso10646-1, not iso8859-1.
Thu Feb 3 14:58:48 PST 2000 Manish Singh <yosh@gimp.org>
* acinclude.m4
* config.guess
* config.sub
* ltconfig
* ltmain.sh: upgrade to libtool 1.3.4 (bugfix only release)
* gtk/Makefile.am: minor cosmetic consistency tweak
Thu Feb 3 14:46:01 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Set
the activate_time to 0, so that we handle a quick
press/release press/release properly and don't suppress
the second release. (Red Hat bug #7545)
Wed Feb 2 22:25:17 2000 Tim Janik <timj@gtk.org>
* gtk/gtkctree.c (row_delete):
(gtk_ctree_node_set_row_data_full): fixed very evil reentrancy
bugs with destruction notifier, *always* update internal
structures *before* calling user code.
Sun Jan 30 20:10:52 2000 Lars Hamann <lars@gtk.org>
A few more fixes for bug #5487, #2051, #2677.
* gtk/gtkclist.c :
(gtk_clist_button_press): Reset clist->anchor to -1 if event->type is
not GDK_BUTTON_PRESS.
(resync_selection): resync only if selection_mode is
GTK_SELECTION_EXTENDED
* gtk/gtkctree.c (resync_selection): same here
Sun Jan 30 12:29:20 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gtk/gtkmenu.h: Removed duplicate prototypes for
gdk_drag_get_selection() and gtk_menu_detach().
[ From Jeroen Ruigrok/Asmodai ]
Sat Jan 29 10:11:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_request):
page->tab_label can be NULL.
2000-01-25 Havoc Pennington <hp@pobox.com>
* gdk/gdkwindow.c (gdk_window_set_back_pixmap): parent_relative
arg is boolean
* gdk/gdkselection.c (gdk_selection_owner_set): return boolean
* gdk/gdkrectangle.c (gdk_rectangle_intersect): return boolean
* gdk/gdkproperty.c (gdk_property_get): return boolean
* gdk/gdkinput.c (gdk_input_set_mode): return boolean
* gdk/gdkim.c (gdk_im_ready): return boolean
* gdk/gdkgc.c (gdk_gc_set_exposures): gboolean arg
* gdk/gdkfont.c (gdk_font_equal): return gboolean (mild
glib clash, should fix glib)
* gdk/gdkevents.c (gdk_set_show_events): take gboolean arg
(gdk_get_show_events): return gboolean, and canonicalize
to TRUE/FALSE
* gdk/gdkcolor.c (gdk_colormap_new): gboolean flag whether the
colormap is private
(gdk_colors_alloc): gboolean whether to be contiguous
(gdk_color_equal): return gboolean since we are a predicate
and not a qsort() (this looks semi-wrong due to glib breakage,
IMO glib should be fixed)
* gdk/gdk.c (gdk_set_use_xshm): take gboolean arg
(gdk_get_use_xshm): return gboolean
(gdk_pointer_is_grabbed): return gboolean
* gdk/gdk.h: Change prototypes to match all the above changes,
and re-run egtk-format-protos as required.
Fri Jan 28 12:28:17 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (resync_selection):
* gtk/gtkclist.c (resync_selection):
Return immediately if clist->drag_pos < 0. This is a workaround
for the corrupt state that the clist gets into when a
GDK_2BUTTON_PRESS occurs. See note in gtk_clist_button_press().
Bug #5487, #2051, #2677; fix suggested by David Helder and T. Alexander Popiel.
* gtk/gtknotebook.c (gtk_notebook_size_request): Fix uninitialized
variable from recent commit.
Thu Jan 27 15:22:09 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin): Fix stupid typo in last commit.
Thu Jan 27 18:00:55 2000 Tim Janik <timj@gtk.org>
* gtk/Makefile.am: prefix all autogenerated source that get build in
$(srcdir) with $(srcdir)/, so make doesn't assume they got generted
in builddir. since we subsequently cd into srcdir for autogeneration,
the paths have to be stripped from the target file names, thusly we
use $(@F) as target names now.
put a comment about configure.in's --disable-rebuilds option,
which can be used for non-writable source directories, for development
setups though, srcdir has to be *writable*.
hu Jan 27 00:15:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin gtk_drag_get_event_actions):
Finish the job of allowing event to be NULL.
(Fixes bug #4283, reported by Chris Blizzard)
* gtk/gtkentry.c (entry_adjust_scroll): When calculating
things so that the cursor appears on screen, properly
take into account INNER_BORDER.
(Fixes bug #4754, reported by Antonio Campos)
Wed Jan 26 23:12:28 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_map): Don't
show the tab_label unless it itself is visible.
gtk/gtknotebook.c (gtk_notebook_size_request):
Do a better job of making sure that the visibility
of the tab label corresponds to whether it should
be mapped or not.
Wed Jan 26 21:17:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_position):
Use the requisition, not the allocation, since the
allocation has not necessarily been computed yet.
(Pointed out by Eugene Osintsev)
Wed Jan 26 19:44:25 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Dont' set
style/base[GTK_STATE_INSENSITIVE] both to
gtk_default_insensitive_bg!
(Bug #2187, reported by Jonathan Blandford)
* gtk/gtkaccelgroup.c (gtk_accelerator_valid):
Add Alt_L, Alt_R to list of invalid accelerators.
(Bug #3736, reported by Vlad Harchev)
Wed Jan 26 19:01:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (open_ref_dir): Fix several
bugs which occured after an attempt to open
invalid home directory left cmpl_state->reference_dir == NULL.
- completion on files in home directory didn't work
- completion on an empty string caused segfault
(Bug #3768, reported by Steve Ratcliffe)
* gtk/gtkscale.c (gtk_scale_get_value_width): Fix
cut and paste error that was causing scales to
be incorrectly positioned.
(Bug #2956,
patch from Steve Ratcliffe <steve@parabola.demon.co.uk>)
2000-01-27 Shirasaki Yasuhiro <yasuhiro@gnome.gr.jp>
* acinclude.m4 (AM_GTK_WITH_NLS): Add -lintl to libs
when checking for dcgettext, if we've found we needed
it for dgettext.
+
Wed Jan 26 18:06:07 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore
queue_clear on NO_WINDOW widgets during a reparent,
since at that point the window and widget heirarchies
are out of sync. This stops crashing in some cases
(the scrolled window reparent test, for instance), and
_probably_ won't cause drawing errors.
* gtk/testgtk.c: Make the reparenting-a-scrolled-window
test do what it was supposed to do and be robust against
window closings, etc. (Bug #2443)
Wed Jan 26 16:56:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c: Fix return values on mouse events.
(Bug #2686, Sky <seb_sky@yahoo.com>)
* gtk/genmarshal.pl: Fix up handling of FOREIGN.
(pointed out by George Lebl)
* gdk/gdkcolor.c (gdk_color_copy): Made const-safe.
(From Ettore Perazzoli <ettore@helixcode.com>)
Mon Jan 24 10:44:48 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcalendar.c (gtk_calendar_main_button): Handle
clicks between rows or outside calender area correctly.
(Patch from Damon Chaplin)
* gtk/gtkclist.c (gtk_clist_set_row_data_full):
* gtk/gtkctree.c (gtk_ctree_node_set_row_data_full):
Call destroy function when overwriting existing data.
(Pointed out by Damon Chaplin)
Tue Jan 25 09:55:41 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.c: Remove useless #include of <X11/Xmu/WinUtil.h>,
which was causing problems on various systems with Xmu.
This hasn't been needed for a very long time.
(Fixes #1185 3167)
Sun Jan 23 22:27:36 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdki18n.h: Include <ctype.h> when defining
gdk_isw* in terms of is* as a fallback.
(Bug #4106 - Dan Winship <danw@MIT.EDU>)
Sun Jan 23 22:12:36 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkviewport.c (gtk_viewport_size_allocate): Don't
realize the widget when it is size allocated!
(old, old bug)
* gtk/gtkviewport.c (gtk_viewport_adjustment_value_changed):
Removed unused call to gdk_window_get_size() that
showed up when the above was fixed.
Sat Jan 22 15:44:30 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_reparent): Correctly
fix up widget->window when the widget is a
NO_WINDOW container widget.
Sat Jan 22 12:40:48 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpixmap.c (gdk_pixmap_seek_string): Rewrite
to account for the fact that feof() does _not_
return TRUE on errors, and thus avoid infinite loops
when trying to use gdk_pixmap_create_from_xpm()
on unreadable values.
Fri Jan 21 18:32:43 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkaspectframe.h (struct _GtkAspectFrame): s/gint/gboolean/.
Fri Jan 21 16:24:08 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkgc.c (gdk_gc_set_dashes): Change from
gdk_gc_set_dashes to take gint8 instead of gchar to
make it clearer that it is _not_ a NULL terminated string.
* gdk/gdk.h gdk/gdkfont.c gdk/gdkgc.c gdk/gdkselection.c
gdk/gdkwindow.c gtk/gtkprogress.[ch] gtk/gtkthemes.[ch]
gtk/gtktreeitem.[ch] gtk/gtkwidget.[ch]: Constify string
arguments.
Thu Dec 30 04:51:05 1999 Tim Janik <timj@gtk.org>
* gtk/gtkvscale.c (gtk_vscale_pos_background):
* gtk/gtkhscale.c (gtk_hscale_pos_background): when calculating the
background size relative to our allocation, guard against small
allocations, we may have not yet been size allocated.
Thu Dec 2 10:59:14 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c (xdnd_check_dest): Allow version >= 3,
not just version == 3. We implement all 3 + most of 4 -
(we don't support matching text/plain;charset=iso-8859-1
to a dest that expects text/plain). We'll still advertise
3 to be safe, but any client implementing version >= 3
must interoperate with 3.
Tue Mar 14 11:53:31 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.[ch] (struct _GtkTooltips): Remove foreground,
background and gc members, add a warning in gtk_tooltips_set_color()
indicating that this function is deprecated.
Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: FAQ Update:

View File

@ -1,3 +1,389 @@
Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty()
is called without trapping X errors.
Fri Feb 25 10:48:53 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.*: Fix problem where stray '"' characters found their
way into the fontset lists.
Tue Feb 22 08:52:52 2000 Tim Janik <timj@gtk.org>
* gtk/gtkthemes.h: add extern "C" scope.
Mon Feb 21 20:16:42 2000 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.c: applied patch from Guy Harris <guy@netapp.com>
to make appends to the list constant. (gtk-guy-990901-0.patch)
Mon Feb 14 22:50:10 2000 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_init): use g_str_hash() and g_str_equal()
for the typename hash table.
Mon Feb 14 15:01:23 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkpaned.c (gtk_paned_compute_position): Add some sanity checks
to make sure we never divide by zero.
(Problem pointed out by Michal Jaegermann <michal@ellpspace.math.ualberta.ca>)
Mon Feb 14 12:29:38 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Apply patch from
SHIRASAKI Yasuhiro <yasuhiro@awa.tohoku.ac.jp> to make font selector work a little
better with 2-byte fonts. (Load a fontset instead of a font for two byte fonts.)
Also, some cleanups in atom handling.
Sun Feb 13 08:02:21 2000 Tim Janik <timj@gtk.org>
* gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer,
not GtkWidget.
Fri Feb 11 02:19:32 2000 Tim Janik <timj@gtk.org>
* gtk/gtkhpaned.c (gtk_hpaned_size_allocate):
* gtk/gtkvpaned.c (gtk_vpaned_size_allocate):
* gtk/gtkpaned.c (gtk_paned_compute_position): had to squeeze some
more guint wrap-around bugs before going to bed.
Thu Feb 10 16:16:35 2000 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.c (gtk_spin_button_size_allocate): guard against
guint wrap arounds in allocation.width.
* gtk/gtktable.c (gtk_table_size_allocate_pass1): repeat shrinking
process untill we fit the allocation given.
Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c:
(gtk_widget_unrealize): guard widget access with ref/unref
around signal emission.
(gtk_widget_hide): same here, but also check its destroyed
state before queueing a resize.
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
of gtk_default_insensitive_bg as insensitive base color.
* gtk/gtktext.c (gtk_text_style_set): set the background color according
to the widget's state.
(gtk_text_realize): same here.
(gtk_text_state_changed): same here.
(draw_bg_rect): compare background color against base[] from
GTK_WIDGET_STATE (text) not GTK_STATE_NORMAL.
Mon Feb 7 04:01:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_main_do_event): ignore delete events when
grabs are active, unless a delete event is send to the toplevel
of the currently grab holding widget.
Sun Feb 6 10:13:15 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (gtk_ctree_drag_data_received): Remove
debugging g_print's.
Fri Feb 4 15:54:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): Don't
ever make the scrolled-window requisition ever depend on the
visibility state of the scrollbars for the AUTOMATIC policy.
This breaks the GTK+ requisition model, and causes loops.
Fri Feb 4 15:09:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Set the charset explicitely for
the default font to avoid problems with XFree86-4.0 where the
default charset is iso10646-1, not iso8859-1.
Thu Feb 3 14:58:48 PST 2000 Manish Singh <yosh@gimp.org>
* acinclude.m4
* config.guess
* config.sub
* ltconfig
* ltmain.sh: upgrade to libtool 1.3.4 (bugfix only release)
* gtk/Makefile.am: minor cosmetic consistency tweak
Thu Feb 3 14:46:01 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Set
the activate_time to 0, so that we handle a quick
press/release press/release properly and don't suppress
the second release. (Red Hat bug #7545)
Wed Feb 2 22:25:17 2000 Tim Janik <timj@gtk.org>
* gtk/gtkctree.c (row_delete):
(gtk_ctree_node_set_row_data_full): fixed very evil reentrancy
bugs with destruction notifier, *always* update internal
structures *before* calling user code.
Sun Jan 30 20:10:52 2000 Lars Hamann <lars@gtk.org>
A few more fixes for bug #5487, #2051, #2677.
* gtk/gtkclist.c :
(gtk_clist_button_press): Reset clist->anchor to -1 if event->type is
not GDK_BUTTON_PRESS.
(resync_selection): resync only if selection_mode is
GTK_SELECTION_EXTENDED
* gtk/gtkctree.c (resync_selection): same here
Sun Jan 30 12:29:20 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gtk/gtkmenu.h: Removed duplicate prototypes for
gdk_drag_get_selection() and gtk_menu_detach().
[ From Jeroen Ruigrok/Asmodai ]
Sat Jan 29 10:11:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_request):
page->tab_label can be NULL.
2000-01-25 Havoc Pennington <hp@pobox.com>
* gdk/gdkwindow.c (gdk_window_set_back_pixmap): parent_relative
arg is boolean
* gdk/gdkselection.c (gdk_selection_owner_set): return boolean
* gdk/gdkrectangle.c (gdk_rectangle_intersect): return boolean
* gdk/gdkproperty.c (gdk_property_get): return boolean
* gdk/gdkinput.c (gdk_input_set_mode): return boolean
* gdk/gdkim.c (gdk_im_ready): return boolean
* gdk/gdkgc.c (gdk_gc_set_exposures): gboolean arg
* gdk/gdkfont.c (gdk_font_equal): return gboolean (mild
glib clash, should fix glib)
* gdk/gdkevents.c (gdk_set_show_events): take gboolean arg
(gdk_get_show_events): return gboolean, and canonicalize
to TRUE/FALSE
* gdk/gdkcolor.c (gdk_colormap_new): gboolean flag whether the
colormap is private
(gdk_colors_alloc): gboolean whether to be contiguous
(gdk_color_equal): return gboolean since we are a predicate
and not a qsort() (this looks semi-wrong due to glib breakage,
IMO glib should be fixed)
* gdk/gdk.c (gdk_set_use_xshm): take gboolean arg
(gdk_get_use_xshm): return gboolean
(gdk_pointer_is_grabbed): return gboolean
* gdk/gdk.h: Change prototypes to match all the above changes,
and re-run egtk-format-protos as required.
Fri Jan 28 12:28:17 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (resync_selection):
* gtk/gtkclist.c (resync_selection):
Return immediately if clist->drag_pos < 0. This is a workaround
for the corrupt state that the clist gets into when a
GDK_2BUTTON_PRESS occurs. See note in gtk_clist_button_press().
Bug #5487, #2051, #2677; fix suggested by David Helder and T. Alexander Popiel.
* gtk/gtknotebook.c (gtk_notebook_size_request): Fix uninitialized
variable from recent commit.
Thu Jan 27 15:22:09 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin): Fix stupid typo in last commit.
Thu Jan 27 18:00:55 2000 Tim Janik <timj@gtk.org>
* gtk/Makefile.am: prefix all autogenerated source that get build in
$(srcdir) with $(srcdir)/, so make doesn't assume they got generted
in builddir. since we subsequently cd into srcdir for autogeneration,
the paths have to be stripped from the target file names, thusly we
use $(@F) as target names now.
put a comment about configure.in's --disable-rebuilds option,
which can be used for non-writable source directories, for development
setups though, srcdir has to be *writable*.
hu Jan 27 00:15:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin gtk_drag_get_event_actions):
Finish the job of allowing event to be NULL.
(Fixes bug #4283, reported by Chris Blizzard)
* gtk/gtkentry.c (entry_adjust_scroll): When calculating
things so that the cursor appears on screen, properly
take into account INNER_BORDER.
(Fixes bug #4754, reported by Antonio Campos)
Wed Jan 26 23:12:28 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_map): Don't
show the tab_label unless it itself is visible.
gtk/gtknotebook.c (gtk_notebook_size_request):
Do a better job of making sure that the visibility
of the tab label corresponds to whether it should
be mapped or not.
Wed Jan 26 21:17:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_position):
Use the requisition, not the allocation, since the
allocation has not necessarily been computed yet.
(Pointed out by Eugene Osintsev)
Wed Jan 26 19:44:25 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Dont' set
style/base[GTK_STATE_INSENSITIVE] both to
gtk_default_insensitive_bg!
(Bug #2187, reported by Jonathan Blandford)
* gtk/gtkaccelgroup.c (gtk_accelerator_valid):
Add Alt_L, Alt_R to list of invalid accelerators.
(Bug #3736, reported by Vlad Harchev)
Wed Jan 26 19:01:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (open_ref_dir): Fix several
bugs which occured after an attempt to open
invalid home directory left cmpl_state->reference_dir == NULL.
- completion on files in home directory didn't work
- completion on an empty string caused segfault
(Bug #3768, reported by Steve Ratcliffe)
* gtk/gtkscale.c (gtk_scale_get_value_width): Fix
cut and paste error that was causing scales to
be incorrectly positioned.
(Bug #2956,
patch from Steve Ratcliffe <steve@parabola.demon.co.uk>)
2000-01-27 Shirasaki Yasuhiro <yasuhiro@gnome.gr.jp>
* acinclude.m4 (AM_GTK_WITH_NLS): Add -lintl to libs
when checking for dcgettext, if we've found we needed
it for dgettext.
+
Wed Jan 26 18:06:07 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore
queue_clear on NO_WINDOW widgets during a reparent,
since at that point the window and widget heirarchies
are out of sync. This stops crashing in some cases
(the scrolled window reparent test, for instance), and
_probably_ won't cause drawing errors.
* gtk/testgtk.c: Make the reparenting-a-scrolled-window
test do what it was supposed to do and be robust against
window closings, etc. (Bug #2443)
Wed Jan 26 16:56:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c: Fix return values on mouse events.
(Bug #2686, Sky <seb_sky@yahoo.com>)
* gtk/genmarshal.pl: Fix up handling of FOREIGN.
(pointed out by George Lebl)
* gdk/gdkcolor.c (gdk_color_copy): Made const-safe.
(From Ettore Perazzoli <ettore@helixcode.com>)
Mon Jan 24 10:44:48 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcalendar.c (gtk_calendar_main_button): Handle
clicks between rows or outside calender area correctly.
(Patch from Damon Chaplin)
* gtk/gtkclist.c (gtk_clist_set_row_data_full):
* gtk/gtkctree.c (gtk_ctree_node_set_row_data_full):
Call destroy function when overwriting existing data.
(Pointed out by Damon Chaplin)
Tue Jan 25 09:55:41 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.c: Remove useless #include of <X11/Xmu/WinUtil.h>,
which was causing problems on various systems with Xmu.
This hasn't been needed for a very long time.
(Fixes #1185 3167)
Sun Jan 23 22:27:36 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdki18n.h: Include <ctype.h> when defining
gdk_isw* in terms of is* as a fallback.
(Bug #4106 - Dan Winship <danw@MIT.EDU>)
Sun Jan 23 22:12:36 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkviewport.c (gtk_viewport_size_allocate): Don't
realize the widget when it is size allocated!
(old, old bug)
* gtk/gtkviewport.c (gtk_viewport_adjustment_value_changed):
Removed unused call to gdk_window_get_size() that
showed up when the above was fixed.
Sat Jan 22 15:44:30 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_reparent): Correctly
fix up widget->window when the widget is a
NO_WINDOW container widget.
Sat Jan 22 12:40:48 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpixmap.c (gdk_pixmap_seek_string): Rewrite
to account for the fact that feof() does _not_
return TRUE on errors, and thus avoid infinite loops
when trying to use gdk_pixmap_create_from_xpm()
on unreadable values.
Fri Jan 21 18:32:43 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkaspectframe.h (struct _GtkAspectFrame): s/gint/gboolean/.
Fri Jan 21 16:24:08 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkgc.c (gdk_gc_set_dashes): Change from
gdk_gc_set_dashes to take gint8 instead of gchar to
make it clearer that it is _not_ a NULL terminated string.
* gdk/gdk.h gdk/gdkfont.c gdk/gdkgc.c gdk/gdkselection.c
gdk/gdkwindow.c gtk/gtkprogress.[ch] gtk/gtkthemes.[ch]
gtk/gtktreeitem.[ch] gtk/gtkwidget.[ch]: Constify string
arguments.
Thu Dec 30 04:51:05 1999 Tim Janik <timj@gtk.org>
* gtk/gtkvscale.c (gtk_vscale_pos_background):
* gtk/gtkhscale.c (gtk_hscale_pos_background): when calculating the
background size relative to our allocation, guard against small
allocations, we may have not yet been size allocated.
Thu Dec 2 10:59:14 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c (xdnd_check_dest): Allow version >= 3,
not just version == 3. We implement all 3 + most of 4 -
(we don't support matching text/plain;charset=iso-8859-1
to a dest that expects text/plain). We'll still advertise
3 to be safe, but any client implementing version >= 3
must interoperate with 3.
Tue Mar 14 11:53:31 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.[ch] (struct _GtkTooltips): Remove foreground,
background and gc members, add a warning in gtk_tooltips_set_color()
indicating that this function is deprecated.
Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: FAQ Update:

View File

@ -1,3 +1,389 @@
Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty()
is called without trapping X errors.
Fri Feb 25 10:48:53 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.*: Fix problem where stray '"' characters found their
way into the fontset lists.
Tue Feb 22 08:52:52 2000 Tim Janik <timj@gtk.org>
* gtk/gtkthemes.h: add extern "C" scope.
Mon Feb 21 20:16:42 2000 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.c: applied patch from Guy Harris <guy@netapp.com>
to make appends to the list constant. (gtk-guy-990901-0.patch)
Mon Feb 14 22:50:10 2000 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_init): use g_str_hash() and g_str_equal()
for the typename hash table.
Mon Feb 14 15:01:23 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkpaned.c (gtk_paned_compute_position): Add some sanity checks
to make sure we never divide by zero.
(Problem pointed out by Michal Jaegermann <michal@ellpspace.math.ualberta.ca>)
Mon Feb 14 12:29:38 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Apply patch from
SHIRASAKI Yasuhiro <yasuhiro@awa.tohoku.ac.jp> to make font selector work a little
better with 2-byte fonts. (Load a fontset instead of a font for two byte fonts.)
Also, some cleanups in atom handling.
Sun Feb 13 08:02:21 2000 Tim Janik <timj@gtk.org>
* gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer,
not GtkWidget.
Fri Feb 11 02:19:32 2000 Tim Janik <timj@gtk.org>
* gtk/gtkhpaned.c (gtk_hpaned_size_allocate):
* gtk/gtkvpaned.c (gtk_vpaned_size_allocate):
* gtk/gtkpaned.c (gtk_paned_compute_position): had to squeeze some
more guint wrap-around bugs before going to bed.
Thu Feb 10 16:16:35 2000 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.c (gtk_spin_button_size_allocate): guard against
guint wrap arounds in allocation.width.
* gtk/gtktable.c (gtk_table_size_allocate_pass1): repeat shrinking
process untill we fit the allocation given.
Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c:
(gtk_widget_unrealize): guard widget access with ref/unref
around signal emission.
(gtk_widget_hide): same here, but also check its destroyed
state before queueing a resize.
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
of gtk_default_insensitive_bg as insensitive base color.
* gtk/gtktext.c (gtk_text_style_set): set the background color according
to the widget's state.
(gtk_text_realize): same here.
(gtk_text_state_changed): same here.
(draw_bg_rect): compare background color against base[] from
GTK_WIDGET_STATE (text) not GTK_STATE_NORMAL.
Mon Feb 7 04:01:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_main_do_event): ignore delete events when
grabs are active, unless a delete event is send to the toplevel
of the currently grab holding widget.
Sun Feb 6 10:13:15 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (gtk_ctree_drag_data_received): Remove
debugging g_print's.
Fri Feb 4 15:54:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): Don't
ever make the scrolled-window requisition ever depend on the
visibility state of the scrollbars for the AUTOMATIC policy.
This breaks the GTK+ requisition model, and causes loops.
Fri Feb 4 15:09:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Set the charset explicitely for
the default font to avoid problems with XFree86-4.0 where the
default charset is iso10646-1, not iso8859-1.
Thu Feb 3 14:58:48 PST 2000 Manish Singh <yosh@gimp.org>
* acinclude.m4
* config.guess
* config.sub
* ltconfig
* ltmain.sh: upgrade to libtool 1.3.4 (bugfix only release)
* gtk/Makefile.am: minor cosmetic consistency tweak
Thu Feb 3 14:46:01 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Set
the activate_time to 0, so that we handle a quick
press/release press/release properly and don't suppress
the second release. (Red Hat bug #7545)
Wed Feb 2 22:25:17 2000 Tim Janik <timj@gtk.org>
* gtk/gtkctree.c (row_delete):
(gtk_ctree_node_set_row_data_full): fixed very evil reentrancy
bugs with destruction notifier, *always* update internal
structures *before* calling user code.
Sun Jan 30 20:10:52 2000 Lars Hamann <lars@gtk.org>
A few more fixes for bug #5487, #2051, #2677.
* gtk/gtkclist.c :
(gtk_clist_button_press): Reset clist->anchor to -1 if event->type is
not GDK_BUTTON_PRESS.
(resync_selection): resync only if selection_mode is
GTK_SELECTION_EXTENDED
* gtk/gtkctree.c (resync_selection): same here
Sun Jan 30 12:29:20 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gtk/gtkmenu.h: Removed duplicate prototypes for
gdk_drag_get_selection() and gtk_menu_detach().
[ From Jeroen Ruigrok/Asmodai ]
Sat Jan 29 10:11:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_request):
page->tab_label can be NULL.
2000-01-25 Havoc Pennington <hp@pobox.com>
* gdk/gdkwindow.c (gdk_window_set_back_pixmap): parent_relative
arg is boolean
* gdk/gdkselection.c (gdk_selection_owner_set): return boolean
* gdk/gdkrectangle.c (gdk_rectangle_intersect): return boolean
* gdk/gdkproperty.c (gdk_property_get): return boolean
* gdk/gdkinput.c (gdk_input_set_mode): return boolean
* gdk/gdkim.c (gdk_im_ready): return boolean
* gdk/gdkgc.c (gdk_gc_set_exposures): gboolean arg
* gdk/gdkfont.c (gdk_font_equal): return gboolean (mild
glib clash, should fix glib)
* gdk/gdkevents.c (gdk_set_show_events): take gboolean arg
(gdk_get_show_events): return gboolean, and canonicalize
to TRUE/FALSE
* gdk/gdkcolor.c (gdk_colormap_new): gboolean flag whether the
colormap is private
(gdk_colors_alloc): gboolean whether to be contiguous
(gdk_color_equal): return gboolean since we are a predicate
and not a qsort() (this looks semi-wrong due to glib breakage,
IMO glib should be fixed)
* gdk/gdk.c (gdk_set_use_xshm): take gboolean arg
(gdk_get_use_xshm): return gboolean
(gdk_pointer_is_grabbed): return gboolean
* gdk/gdk.h: Change prototypes to match all the above changes,
and re-run egtk-format-protos as required.
Fri Jan 28 12:28:17 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (resync_selection):
* gtk/gtkclist.c (resync_selection):
Return immediately if clist->drag_pos < 0. This is a workaround
for the corrupt state that the clist gets into when a
GDK_2BUTTON_PRESS occurs. See note in gtk_clist_button_press().
Bug #5487, #2051, #2677; fix suggested by David Helder and T. Alexander Popiel.
* gtk/gtknotebook.c (gtk_notebook_size_request): Fix uninitialized
variable from recent commit.
Thu Jan 27 15:22:09 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin): Fix stupid typo in last commit.
Thu Jan 27 18:00:55 2000 Tim Janik <timj@gtk.org>
* gtk/Makefile.am: prefix all autogenerated source that get build in
$(srcdir) with $(srcdir)/, so make doesn't assume they got generted
in builddir. since we subsequently cd into srcdir for autogeneration,
the paths have to be stripped from the target file names, thusly we
use $(@F) as target names now.
put a comment about configure.in's --disable-rebuilds option,
which can be used for non-writable source directories, for development
setups though, srcdir has to be *writable*.
hu Jan 27 00:15:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin gtk_drag_get_event_actions):
Finish the job of allowing event to be NULL.
(Fixes bug #4283, reported by Chris Blizzard)
* gtk/gtkentry.c (entry_adjust_scroll): When calculating
things so that the cursor appears on screen, properly
take into account INNER_BORDER.
(Fixes bug #4754, reported by Antonio Campos)
Wed Jan 26 23:12:28 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_map): Don't
show the tab_label unless it itself is visible.
gtk/gtknotebook.c (gtk_notebook_size_request):
Do a better job of making sure that the visibility
of the tab label corresponds to whether it should
be mapped or not.
Wed Jan 26 21:17:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_position):
Use the requisition, not the allocation, since the
allocation has not necessarily been computed yet.
(Pointed out by Eugene Osintsev)
Wed Jan 26 19:44:25 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Dont' set
style/base[GTK_STATE_INSENSITIVE] both to
gtk_default_insensitive_bg!
(Bug #2187, reported by Jonathan Blandford)
* gtk/gtkaccelgroup.c (gtk_accelerator_valid):
Add Alt_L, Alt_R to list of invalid accelerators.
(Bug #3736, reported by Vlad Harchev)
Wed Jan 26 19:01:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (open_ref_dir): Fix several
bugs which occured after an attempt to open
invalid home directory left cmpl_state->reference_dir == NULL.
- completion on files in home directory didn't work
- completion on an empty string caused segfault
(Bug #3768, reported by Steve Ratcliffe)
* gtk/gtkscale.c (gtk_scale_get_value_width): Fix
cut and paste error that was causing scales to
be incorrectly positioned.
(Bug #2956,
patch from Steve Ratcliffe <steve@parabola.demon.co.uk>)
2000-01-27 Shirasaki Yasuhiro <yasuhiro@gnome.gr.jp>
* acinclude.m4 (AM_GTK_WITH_NLS): Add -lintl to libs
when checking for dcgettext, if we've found we needed
it for dgettext.
+
Wed Jan 26 18:06:07 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore
queue_clear on NO_WINDOW widgets during a reparent,
since at that point the window and widget heirarchies
are out of sync. This stops crashing in some cases
(the scrolled window reparent test, for instance), and
_probably_ won't cause drawing errors.
* gtk/testgtk.c: Make the reparenting-a-scrolled-window
test do what it was supposed to do and be robust against
window closings, etc. (Bug #2443)
Wed Jan 26 16:56:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c: Fix return values on mouse events.
(Bug #2686, Sky <seb_sky@yahoo.com>)
* gtk/genmarshal.pl: Fix up handling of FOREIGN.
(pointed out by George Lebl)
* gdk/gdkcolor.c (gdk_color_copy): Made const-safe.
(From Ettore Perazzoli <ettore@helixcode.com>)
Mon Jan 24 10:44:48 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcalendar.c (gtk_calendar_main_button): Handle
clicks between rows or outside calender area correctly.
(Patch from Damon Chaplin)
* gtk/gtkclist.c (gtk_clist_set_row_data_full):
* gtk/gtkctree.c (gtk_ctree_node_set_row_data_full):
Call destroy function when overwriting existing data.
(Pointed out by Damon Chaplin)
Tue Jan 25 09:55:41 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.c: Remove useless #include of <X11/Xmu/WinUtil.h>,
which was causing problems on various systems with Xmu.
This hasn't been needed for a very long time.
(Fixes #1185 3167)
Sun Jan 23 22:27:36 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdki18n.h: Include <ctype.h> when defining
gdk_isw* in terms of is* as a fallback.
(Bug #4106 - Dan Winship <danw@MIT.EDU>)
Sun Jan 23 22:12:36 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkviewport.c (gtk_viewport_size_allocate): Don't
realize the widget when it is size allocated!
(old, old bug)
* gtk/gtkviewport.c (gtk_viewport_adjustment_value_changed):
Removed unused call to gdk_window_get_size() that
showed up when the above was fixed.
Sat Jan 22 15:44:30 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_reparent): Correctly
fix up widget->window when the widget is a
NO_WINDOW container widget.
Sat Jan 22 12:40:48 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpixmap.c (gdk_pixmap_seek_string): Rewrite
to account for the fact that feof() does _not_
return TRUE on errors, and thus avoid infinite loops
when trying to use gdk_pixmap_create_from_xpm()
on unreadable values.
Fri Jan 21 18:32:43 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkaspectframe.h (struct _GtkAspectFrame): s/gint/gboolean/.
Fri Jan 21 16:24:08 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkgc.c (gdk_gc_set_dashes): Change from
gdk_gc_set_dashes to take gint8 instead of gchar to
make it clearer that it is _not_ a NULL terminated string.
* gdk/gdk.h gdk/gdkfont.c gdk/gdkgc.c gdk/gdkselection.c
gdk/gdkwindow.c gtk/gtkprogress.[ch] gtk/gtkthemes.[ch]
gtk/gtktreeitem.[ch] gtk/gtkwidget.[ch]: Constify string
arguments.
Thu Dec 30 04:51:05 1999 Tim Janik <timj@gtk.org>
* gtk/gtkvscale.c (gtk_vscale_pos_background):
* gtk/gtkhscale.c (gtk_hscale_pos_background): when calculating the
background size relative to our allocation, guard against small
allocations, we may have not yet been size allocated.
Thu Dec 2 10:59:14 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c (xdnd_check_dest): Allow version >= 3,
not just version == 3. We implement all 3 + most of 4 -
(we don't support matching text/plain;charset=iso-8859-1
to a dest that expects text/plain). We'll still advertise
3 to be safe, but any client implementing version >= 3
must interoperate with 3.
Tue Mar 14 11:53:31 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.[ch] (struct _GtkTooltips): Remove foreground,
background and gc members, add a warning in gtk_tooltips_set_color()
indicating that this function is deprecated.
Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: FAQ Update:

View File

@ -1,3 +1,389 @@
Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty()
is called without trapping X errors.
Fri Feb 25 10:48:53 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.*: Fix problem where stray '"' characters found their
way into the fontset lists.
Tue Feb 22 08:52:52 2000 Tim Janik <timj@gtk.org>
* gtk/gtkthemes.h: add extern "C" scope.
Mon Feb 21 20:16:42 2000 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.c: applied patch from Guy Harris <guy@netapp.com>
to make appends to the list constant. (gtk-guy-990901-0.patch)
Mon Feb 14 22:50:10 2000 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_init): use g_str_hash() and g_str_equal()
for the typename hash table.
Mon Feb 14 15:01:23 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkpaned.c (gtk_paned_compute_position): Add some sanity checks
to make sure we never divide by zero.
(Problem pointed out by Michal Jaegermann <michal@ellpspace.math.ualberta.ca>)
Mon Feb 14 12:29:38 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Apply patch from
SHIRASAKI Yasuhiro <yasuhiro@awa.tohoku.ac.jp> to make font selector work a little
better with 2-byte fonts. (Load a fontset instead of a font for two byte fonts.)
Also, some cleanups in atom handling.
Sun Feb 13 08:02:21 2000 Tim Janik <timj@gtk.org>
* gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer,
not GtkWidget.
Fri Feb 11 02:19:32 2000 Tim Janik <timj@gtk.org>
* gtk/gtkhpaned.c (gtk_hpaned_size_allocate):
* gtk/gtkvpaned.c (gtk_vpaned_size_allocate):
* gtk/gtkpaned.c (gtk_paned_compute_position): had to squeeze some
more guint wrap-around bugs before going to bed.
Thu Feb 10 16:16:35 2000 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.c (gtk_spin_button_size_allocate): guard against
guint wrap arounds in allocation.width.
* gtk/gtktable.c (gtk_table_size_allocate_pass1): repeat shrinking
process untill we fit the allocation given.
Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c:
(gtk_widget_unrealize): guard widget access with ref/unref
around signal emission.
(gtk_widget_hide): same here, but also check its destroyed
state before queueing a resize.
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
of gtk_default_insensitive_bg as insensitive base color.
* gtk/gtktext.c (gtk_text_style_set): set the background color according
to the widget's state.
(gtk_text_realize): same here.
(gtk_text_state_changed): same here.
(draw_bg_rect): compare background color against base[] from
GTK_WIDGET_STATE (text) not GTK_STATE_NORMAL.
Mon Feb 7 04:01:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_main_do_event): ignore delete events when
grabs are active, unless a delete event is send to the toplevel
of the currently grab holding widget.
Sun Feb 6 10:13:15 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (gtk_ctree_drag_data_received): Remove
debugging g_print's.
Fri Feb 4 15:54:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): Don't
ever make the scrolled-window requisition ever depend on the
visibility state of the scrollbars for the AUTOMATIC policy.
This breaks the GTK+ requisition model, and causes loops.
Fri Feb 4 15:09:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Set the charset explicitely for
the default font to avoid problems with XFree86-4.0 where the
default charset is iso10646-1, not iso8859-1.
Thu Feb 3 14:58:48 PST 2000 Manish Singh <yosh@gimp.org>
* acinclude.m4
* config.guess
* config.sub
* ltconfig
* ltmain.sh: upgrade to libtool 1.3.4 (bugfix only release)
* gtk/Makefile.am: minor cosmetic consistency tweak
Thu Feb 3 14:46:01 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Set
the activate_time to 0, so that we handle a quick
press/release press/release properly and don't suppress
the second release. (Red Hat bug #7545)
Wed Feb 2 22:25:17 2000 Tim Janik <timj@gtk.org>
* gtk/gtkctree.c (row_delete):
(gtk_ctree_node_set_row_data_full): fixed very evil reentrancy
bugs with destruction notifier, *always* update internal
structures *before* calling user code.
Sun Jan 30 20:10:52 2000 Lars Hamann <lars@gtk.org>
A few more fixes for bug #5487, #2051, #2677.
* gtk/gtkclist.c :
(gtk_clist_button_press): Reset clist->anchor to -1 if event->type is
not GDK_BUTTON_PRESS.
(resync_selection): resync only if selection_mode is
GTK_SELECTION_EXTENDED
* gtk/gtkctree.c (resync_selection): same here
Sun Jan 30 12:29:20 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gtk/gtkmenu.h: Removed duplicate prototypes for
gdk_drag_get_selection() and gtk_menu_detach().
[ From Jeroen Ruigrok/Asmodai ]
Sat Jan 29 10:11:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_request):
page->tab_label can be NULL.
2000-01-25 Havoc Pennington <hp@pobox.com>
* gdk/gdkwindow.c (gdk_window_set_back_pixmap): parent_relative
arg is boolean
* gdk/gdkselection.c (gdk_selection_owner_set): return boolean
* gdk/gdkrectangle.c (gdk_rectangle_intersect): return boolean
* gdk/gdkproperty.c (gdk_property_get): return boolean
* gdk/gdkinput.c (gdk_input_set_mode): return boolean
* gdk/gdkim.c (gdk_im_ready): return boolean
* gdk/gdkgc.c (gdk_gc_set_exposures): gboolean arg
* gdk/gdkfont.c (gdk_font_equal): return gboolean (mild
glib clash, should fix glib)
* gdk/gdkevents.c (gdk_set_show_events): take gboolean arg
(gdk_get_show_events): return gboolean, and canonicalize
to TRUE/FALSE
* gdk/gdkcolor.c (gdk_colormap_new): gboolean flag whether the
colormap is private
(gdk_colors_alloc): gboolean whether to be contiguous
(gdk_color_equal): return gboolean since we are a predicate
and not a qsort() (this looks semi-wrong due to glib breakage,
IMO glib should be fixed)
* gdk/gdk.c (gdk_set_use_xshm): take gboolean arg
(gdk_get_use_xshm): return gboolean
(gdk_pointer_is_grabbed): return gboolean
* gdk/gdk.h: Change prototypes to match all the above changes,
and re-run egtk-format-protos as required.
Fri Jan 28 12:28:17 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (resync_selection):
* gtk/gtkclist.c (resync_selection):
Return immediately if clist->drag_pos < 0. This is a workaround
for the corrupt state that the clist gets into when a
GDK_2BUTTON_PRESS occurs. See note in gtk_clist_button_press().
Bug #5487, #2051, #2677; fix suggested by David Helder and T. Alexander Popiel.
* gtk/gtknotebook.c (gtk_notebook_size_request): Fix uninitialized
variable from recent commit.
Thu Jan 27 15:22:09 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin): Fix stupid typo in last commit.
Thu Jan 27 18:00:55 2000 Tim Janik <timj@gtk.org>
* gtk/Makefile.am: prefix all autogenerated source that get build in
$(srcdir) with $(srcdir)/, so make doesn't assume they got generted
in builddir. since we subsequently cd into srcdir for autogeneration,
the paths have to be stripped from the target file names, thusly we
use $(@F) as target names now.
put a comment about configure.in's --disable-rebuilds option,
which can be used for non-writable source directories, for development
setups though, srcdir has to be *writable*.
hu Jan 27 00:15:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin gtk_drag_get_event_actions):
Finish the job of allowing event to be NULL.
(Fixes bug #4283, reported by Chris Blizzard)
* gtk/gtkentry.c (entry_adjust_scroll): When calculating
things so that the cursor appears on screen, properly
take into account INNER_BORDER.
(Fixes bug #4754, reported by Antonio Campos)
Wed Jan 26 23:12:28 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_map): Don't
show the tab_label unless it itself is visible.
gtk/gtknotebook.c (gtk_notebook_size_request):
Do a better job of making sure that the visibility
of the tab label corresponds to whether it should
be mapped or not.
Wed Jan 26 21:17:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_position):
Use the requisition, not the allocation, since the
allocation has not necessarily been computed yet.
(Pointed out by Eugene Osintsev)
Wed Jan 26 19:44:25 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Dont' set
style/base[GTK_STATE_INSENSITIVE] both to
gtk_default_insensitive_bg!
(Bug #2187, reported by Jonathan Blandford)
* gtk/gtkaccelgroup.c (gtk_accelerator_valid):
Add Alt_L, Alt_R to list of invalid accelerators.
(Bug #3736, reported by Vlad Harchev)
Wed Jan 26 19:01:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (open_ref_dir): Fix several
bugs which occured after an attempt to open
invalid home directory left cmpl_state->reference_dir == NULL.
- completion on files in home directory didn't work
- completion on an empty string caused segfault
(Bug #3768, reported by Steve Ratcliffe)
* gtk/gtkscale.c (gtk_scale_get_value_width): Fix
cut and paste error that was causing scales to
be incorrectly positioned.
(Bug #2956,
patch from Steve Ratcliffe <steve@parabola.demon.co.uk>)
2000-01-27 Shirasaki Yasuhiro <yasuhiro@gnome.gr.jp>
* acinclude.m4 (AM_GTK_WITH_NLS): Add -lintl to libs
when checking for dcgettext, if we've found we needed
it for dgettext.
+
Wed Jan 26 18:06:07 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore
queue_clear on NO_WINDOW widgets during a reparent,
since at that point the window and widget heirarchies
are out of sync. This stops crashing in some cases
(the scrolled window reparent test, for instance), and
_probably_ won't cause drawing errors.
* gtk/testgtk.c: Make the reparenting-a-scrolled-window
test do what it was supposed to do and be robust against
window closings, etc. (Bug #2443)
Wed Jan 26 16:56:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c: Fix return values on mouse events.
(Bug #2686, Sky <seb_sky@yahoo.com>)
* gtk/genmarshal.pl: Fix up handling of FOREIGN.
(pointed out by George Lebl)
* gdk/gdkcolor.c (gdk_color_copy): Made const-safe.
(From Ettore Perazzoli <ettore@helixcode.com>)
Mon Jan 24 10:44:48 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcalendar.c (gtk_calendar_main_button): Handle
clicks between rows or outside calender area correctly.
(Patch from Damon Chaplin)
* gtk/gtkclist.c (gtk_clist_set_row_data_full):
* gtk/gtkctree.c (gtk_ctree_node_set_row_data_full):
Call destroy function when overwriting existing data.
(Pointed out by Damon Chaplin)
Tue Jan 25 09:55:41 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.c: Remove useless #include of <X11/Xmu/WinUtil.h>,
which was causing problems on various systems with Xmu.
This hasn't been needed for a very long time.
(Fixes #1185 3167)
Sun Jan 23 22:27:36 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdki18n.h: Include <ctype.h> when defining
gdk_isw* in terms of is* as a fallback.
(Bug #4106 - Dan Winship <danw@MIT.EDU>)
Sun Jan 23 22:12:36 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkviewport.c (gtk_viewport_size_allocate): Don't
realize the widget when it is size allocated!
(old, old bug)
* gtk/gtkviewport.c (gtk_viewport_adjustment_value_changed):
Removed unused call to gdk_window_get_size() that
showed up when the above was fixed.
Sat Jan 22 15:44:30 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_reparent): Correctly
fix up widget->window when the widget is a
NO_WINDOW container widget.
Sat Jan 22 12:40:48 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpixmap.c (gdk_pixmap_seek_string): Rewrite
to account for the fact that feof() does _not_
return TRUE on errors, and thus avoid infinite loops
when trying to use gdk_pixmap_create_from_xpm()
on unreadable values.
Fri Jan 21 18:32:43 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkaspectframe.h (struct _GtkAspectFrame): s/gint/gboolean/.
Fri Jan 21 16:24:08 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkgc.c (gdk_gc_set_dashes): Change from
gdk_gc_set_dashes to take gint8 instead of gchar to
make it clearer that it is _not_ a NULL terminated string.
* gdk/gdk.h gdk/gdkfont.c gdk/gdkgc.c gdk/gdkselection.c
gdk/gdkwindow.c gtk/gtkprogress.[ch] gtk/gtkthemes.[ch]
gtk/gtktreeitem.[ch] gtk/gtkwidget.[ch]: Constify string
arguments.
Thu Dec 30 04:51:05 1999 Tim Janik <timj@gtk.org>
* gtk/gtkvscale.c (gtk_vscale_pos_background):
* gtk/gtkhscale.c (gtk_hscale_pos_background): when calculating the
background size relative to our allocation, guard against small
allocations, we may have not yet been size allocated.
Thu Dec 2 10:59:14 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c (xdnd_check_dest): Allow version >= 3,
not just version == 3. We implement all 3 + most of 4 -
(we don't support matching text/plain;charset=iso-8859-1
to a dest that expects text/plain). We'll still advertise
3 to be safe, but any client implementing version >= 3
must interoperate with 3.
Tue Mar 14 11:53:31 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.[ch] (struct _GtkTooltips): Remove foreground,
background and gc members, add a warning in gtk_tooltips_set_color()
indicating that this function is deprecated.
Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: FAQ Update:

View File

@ -1,3 +1,389 @@
Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty()
is called without trapping X errors.
Fri Feb 25 10:48:53 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.*: Fix problem where stray '"' characters found their
way into the fontset lists.
Tue Feb 22 08:52:52 2000 Tim Janik <timj@gtk.org>
* gtk/gtkthemes.h: add extern "C" scope.
Mon Feb 21 20:16:42 2000 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.c: applied patch from Guy Harris <guy@netapp.com>
to make appends to the list constant. (gtk-guy-990901-0.patch)
Mon Feb 14 22:50:10 2000 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_init): use g_str_hash() and g_str_equal()
for the typename hash table.
Mon Feb 14 15:01:23 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkpaned.c (gtk_paned_compute_position): Add some sanity checks
to make sure we never divide by zero.
(Problem pointed out by Michal Jaegermann <michal@ellpspace.math.ualberta.ca>)
Mon Feb 14 12:29:38 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Apply patch from
SHIRASAKI Yasuhiro <yasuhiro@awa.tohoku.ac.jp> to make font selector work a little
better with 2-byte fonts. (Load a fontset instead of a font for two byte fonts.)
Also, some cleanups in atom handling.
Sun Feb 13 08:02:21 2000 Tim Janik <timj@gtk.org>
* gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer,
not GtkWidget.
Fri Feb 11 02:19:32 2000 Tim Janik <timj@gtk.org>
* gtk/gtkhpaned.c (gtk_hpaned_size_allocate):
* gtk/gtkvpaned.c (gtk_vpaned_size_allocate):
* gtk/gtkpaned.c (gtk_paned_compute_position): had to squeeze some
more guint wrap-around bugs before going to bed.
Thu Feb 10 16:16:35 2000 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.c (gtk_spin_button_size_allocate): guard against
guint wrap arounds in allocation.width.
* gtk/gtktable.c (gtk_table_size_allocate_pass1): repeat shrinking
process untill we fit the allocation given.
Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c:
(gtk_widget_unrealize): guard widget access with ref/unref
around signal emission.
(gtk_widget_hide): same here, but also check its destroyed
state before queueing a resize.
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
of gtk_default_insensitive_bg as insensitive base color.
* gtk/gtktext.c (gtk_text_style_set): set the background color according
to the widget's state.
(gtk_text_realize): same here.
(gtk_text_state_changed): same here.
(draw_bg_rect): compare background color against base[] from
GTK_WIDGET_STATE (text) not GTK_STATE_NORMAL.
Mon Feb 7 04:01:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_main_do_event): ignore delete events when
grabs are active, unless a delete event is send to the toplevel
of the currently grab holding widget.
Sun Feb 6 10:13:15 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (gtk_ctree_drag_data_received): Remove
debugging g_print's.
Fri Feb 4 15:54:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): Don't
ever make the scrolled-window requisition ever depend on the
visibility state of the scrollbars for the AUTOMATIC policy.
This breaks the GTK+ requisition model, and causes loops.
Fri Feb 4 15:09:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Set the charset explicitely for
the default font to avoid problems with XFree86-4.0 where the
default charset is iso10646-1, not iso8859-1.
Thu Feb 3 14:58:48 PST 2000 Manish Singh <yosh@gimp.org>
* acinclude.m4
* config.guess
* config.sub
* ltconfig
* ltmain.sh: upgrade to libtool 1.3.4 (bugfix only release)
* gtk/Makefile.am: minor cosmetic consistency tweak
Thu Feb 3 14:46:01 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Set
the activate_time to 0, so that we handle a quick
press/release press/release properly and don't suppress
the second release. (Red Hat bug #7545)
Wed Feb 2 22:25:17 2000 Tim Janik <timj@gtk.org>
* gtk/gtkctree.c (row_delete):
(gtk_ctree_node_set_row_data_full): fixed very evil reentrancy
bugs with destruction notifier, *always* update internal
structures *before* calling user code.
Sun Jan 30 20:10:52 2000 Lars Hamann <lars@gtk.org>
A few more fixes for bug #5487, #2051, #2677.
* gtk/gtkclist.c :
(gtk_clist_button_press): Reset clist->anchor to -1 if event->type is
not GDK_BUTTON_PRESS.
(resync_selection): resync only if selection_mode is
GTK_SELECTION_EXTENDED
* gtk/gtkctree.c (resync_selection): same here
Sun Jan 30 12:29:20 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gtk/gtkmenu.h: Removed duplicate prototypes for
gdk_drag_get_selection() and gtk_menu_detach().
[ From Jeroen Ruigrok/Asmodai ]
Sat Jan 29 10:11:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_request):
page->tab_label can be NULL.
2000-01-25 Havoc Pennington <hp@pobox.com>
* gdk/gdkwindow.c (gdk_window_set_back_pixmap): parent_relative
arg is boolean
* gdk/gdkselection.c (gdk_selection_owner_set): return boolean
* gdk/gdkrectangle.c (gdk_rectangle_intersect): return boolean
* gdk/gdkproperty.c (gdk_property_get): return boolean
* gdk/gdkinput.c (gdk_input_set_mode): return boolean
* gdk/gdkim.c (gdk_im_ready): return boolean
* gdk/gdkgc.c (gdk_gc_set_exposures): gboolean arg
* gdk/gdkfont.c (gdk_font_equal): return gboolean (mild
glib clash, should fix glib)
* gdk/gdkevents.c (gdk_set_show_events): take gboolean arg
(gdk_get_show_events): return gboolean, and canonicalize
to TRUE/FALSE
* gdk/gdkcolor.c (gdk_colormap_new): gboolean flag whether the
colormap is private
(gdk_colors_alloc): gboolean whether to be contiguous
(gdk_color_equal): return gboolean since we are a predicate
and not a qsort() (this looks semi-wrong due to glib breakage,
IMO glib should be fixed)
* gdk/gdk.c (gdk_set_use_xshm): take gboolean arg
(gdk_get_use_xshm): return gboolean
(gdk_pointer_is_grabbed): return gboolean
* gdk/gdk.h: Change prototypes to match all the above changes,
and re-run egtk-format-protos as required.
Fri Jan 28 12:28:17 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (resync_selection):
* gtk/gtkclist.c (resync_selection):
Return immediately if clist->drag_pos < 0. This is a workaround
for the corrupt state that the clist gets into when a
GDK_2BUTTON_PRESS occurs. See note in gtk_clist_button_press().
Bug #5487, #2051, #2677; fix suggested by David Helder and T. Alexander Popiel.
* gtk/gtknotebook.c (gtk_notebook_size_request): Fix uninitialized
variable from recent commit.
Thu Jan 27 15:22:09 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin): Fix stupid typo in last commit.
Thu Jan 27 18:00:55 2000 Tim Janik <timj@gtk.org>
* gtk/Makefile.am: prefix all autogenerated source that get build in
$(srcdir) with $(srcdir)/, so make doesn't assume they got generted
in builddir. since we subsequently cd into srcdir for autogeneration,
the paths have to be stripped from the target file names, thusly we
use $(@F) as target names now.
put a comment about configure.in's --disable-rebuilds option,
which can be used for non-writable source directories, for development
setups though, srcdir has to be *writable*.
hu Jan 27 00:15:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin gtk_drag_get_event_actions):
Finish the job of allowing event to be NULL.
(Fixes bug #4283, reported by Chris Blizzard)
* gtk/gtkentry.c (entry_adjust_scroll): When calculating
things so that the cursor appears on screen, properly
take into account INNER_BORDER.
(Fixes bug #4754, reported by Antonio Campos)
Wed Jan 26 23:12:28 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_map): Don't
show the tab_label unless it itself is visible.
gtk/gtknotebook.c (gtk_notebook_size_request):
Do a better job of making sure that the visibility
of the tab label corresponds to whether it should
be mapped or not.
Wed Jan 26 21:17:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_position):
Use the requisition, not the allocation, since the
allocation has not necessarily been computed yet.
(Pointed out by Eugene Osintsev)
Wed Jan 26 19:44:25 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Dont' set
style/base[GTK_STATE_INSENSITIVE] both to
gtk_default_insensitive_bg!
(Bug #2187, reported by Jonathan Blandford)
* gtk/gtkaccelgroup.c (gtk_accelerator_valid):
Add Alt_L, Alt_R to list of invalid accelerators.
(Bug #3736, reported by Vlad Harchev)
Wed Jan 26 19:01:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (open_ref_dir): Fix several
bugs which occured after an attempt to open
invalid home directory left cmpl_state->reference_dir == NULL.
- completion on files in home directory didn't work
- completion on an empty string caused segfault
(Bug #3768, reported by Steve Ratcliffe)
* gtk/gtkscale.c (gtk_scale_get_value_width): Fix
cut and paste error that was causing scales to
be incorrectly positioned.
(Bug #2956,
patch from Steve Ratcliffe <steve@parabola.demon.co.uk>)
2000-01-27 Shirasaki Yasuhiro <yasuhiro@gnome.gr.jp>
* acinclude.m4 (AM_GTK_WITH_NLS): Add -lintl to libs
when checking for dcgettext, if we've found we needed
it for dgettext.
+
Wed Jan 26 18:06:07 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore
queue_clear on NO_WINDOW widgets during a reparent,
since at that point the window and widget heirarchies
are out of sync. This stops crashing in some cases
(the scrolled window reparent test, for instance), and
_probably_ won't cause drawing errors.
* gtk/testgtk.c: Make the reparenting-a-scrolled-window
test do what it was supposed to do and be robust against
window closings, etc. (Bug #2443)
Wed Jan 26 16:56:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c: Fix return values on mouse events.
(Bug #2686, Sky <seb_sky@yahoo.com>)
* gtk/genmarshal.pl: Fix up handling of FOREIGN.
(pointed out by George Lebl)
* gdk/gdkcolor.c (gdk_color_copy): Made const-safe.
(From Ettore Perazzoli <ettore@helixcode.com>)
Mon Jan 24 10:44:48 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcalendar.c (gtk_calendar_main_button): Handle
clicks between rows or outside calender area correctly.
(Patch from Damon Chaplin)
* gtk/gtkclist.c (gtk_clist_set_row_data_full):
* gtk/gtkctree.c (gtk_ctree_node_set_row_data_full):
Call destroy function when overwriting existing data.
(Pointed out by Damon Chaplin)
Tue Jan 25 09:55:41 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.c: Remove useless #include of <X11/Xmu/WinUtil.h>,
which was causing problems on various systems with Xmu.
This hasn't been needed for a very long time.
(Fixes #1185 3167)
Sun Jan 23 22:27:36 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdki18n.h: Include <ctype.h> when defining
gdk_isw* in terms of is* as a fallback.
(Bug #4106 - Dan Winship <danw@MIT.EDU>)
Sun Jan 23 22:12:36 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkviewport.c (gtk_viewport_size_allocate): Don't
realize the widget when it is size allocated!
(old, old bug)
* gtk/gtkviewport.c (gtk_viewport_adjustment_value_changed):
Removed unused call to gdk_window_get_size() that
showed up when the above was fixed.
Sat Jan 22 15:44:30 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_reparent): Correctly
fix up widget->window when the widget is a
NO_WINDOW container widget.
Sat Jan 22 12:40:48 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpixmap.c (gdk_pixmap_seek_string): Rewrite
to account for the fact that feof() does _not_
return TRUE on errors, and thus avoid infinite loops
when trying to use gdk_pixmap_create_from_xpm()
on unreadable values.
Fri Jan 21 18:32:43 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkaspectframe.h (struct _GtkAspectFrame): s/gint/gboolean/.
Fri Jan 21 16:24:08 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkgc.c (gdk_gc_set_dashes): Change from
gdk_gc_set_dashes to take gint8 instead of gchar to
make it clearer that it is _not_ a NULL terminated string.
* gdk/gdk.h gdk/gdkfont.c gdk/gdkgc.c gdk/gdkselection.c
gdk/gdkwindow.c gtk/gtkprogress.[ch] gtk/gtkthemes.[ch]
gtk/gtktreeitem.[ch] gtk/gtkwidget.[ch]: Constify string
arguments.
Thu Dec 30 04:51:05 1999 Tim Janik <timj@gtk.org>
* gtk/gtkvscale.c (gtk_vscale_pos_background):
* gtk/gtkhscale.c (gtk_hscale_pos_background): when calculating the
background size relative to our allocation, guard against small
allocations, we may have not yet been size allocated.
Thu Dec 2 10:59:14 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c (xdnd_check_dest): Allow version >= 3,
not just version == 3. We implement all 3 + most of 4 -
(we don't support matching text/plain;charset=iso-8859-1
to a dest that expects text/plain). We'll still advertise
3 to be safe, but any client implementing version >= 3
must interoperate with 3.
Tue Mar 14 11:53:31 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.[ch] (struct _GtkTooltips): Remove foreground,
background and gc members, add a warning in gtk_tooltips_set_color()
indicating that this function is deprecated.
Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: FAQ Update:

View File

@ -1,3 +1,389 @@
Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty()
is called without trapping X errors.
Fri Feb 25 10:48:53 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.*: Fix problem where stray '"' characters found their
way into the fontset lists.
Tue Feb 22 08:52:52 2000 Tim Janik <timj@gtk.org>
* gtk/gtkthemes.h: add extern "C" scope.
Mon Feb 21 20:16:42 2000 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.c: applied patch from Guy Harris <guy@netapp.com>
to make appends to the list constant. (gtk-guy-990901-0.patch)
Mon Feb 14 22:50:10 2000 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_init): use g_str_hash() and g_str_equal()
for the typename hash table.
Mon Feb 14 15:01:23 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkpaned.c (gtk_paned_compute_position): Add some sanity checks
to make sure we never divide by zero.
(Problem pointed out by Michal Jaegermann <michal@ellpspace.math.ualberta.ca>)
Mon Feb 14 12:29:38 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Apply patch from
SHIRASAKI Yasuhiro <yasuhiro@awa.tohoku.ac.jp> to make font selector work a little
better with 2-byte fonts. (Load a fontset instead of a font for two byte fonts.)
Also, some cleanups in atom handling.
Sun Feb 13 08:02:21 2000 Tim Janik <timj@gtk.org>
* gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer,
not GtkWidget.
Fri Feb 11 02:19:32 2000 Tim Janik <timj@gtk.org>
* gtk/gtkhpaned.c (gtk_hpaned_size_allocate):
* gtk/gtkvpaned.c (gtk_vpaned_size_allocate):
* gtk/gtkpaned.c (gtk_paned_compute_position): had to squeeze some
more guint wrap-around bugs before going to bed.
Thu Feb 10 16:16:35 2000 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.c (gtk_spin_button_size_allocate): guard against
guint wrap arounds in allocation.width.
* gtk/gtktable.c (gtk_table_size_allocate_pass1): repeat shrinking
process untill we fit the allocation given.
Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c:
(gtk_widget_unrealize): guard widget access with ref/unref
around signal emission.
(gtk_widget_hide): same here, but also check its destroyed
state before queueing a resize.
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
of gtk_default_insensitive_bg as insensitive base color.
* gtk/gtktext.c (gtk_text_style_set): set the background color according
to the widget's state.
(gtk_text_realize): same here.
(gtk_text_state_changed): same here.
(draw_bg_rect): compare background color against base[] from
GTK_WIDGET_STATE (text) not GTK_STATE_NORMAL.
Mon Feb 7 04:01:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_main_do_event): ignore delete events when
grabs are active, unless a delete event is send to the toplevel
of the currently grab holding widget.
Sun Feb 6 10:13:15 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (gtk_ctree_drag_data_received): Remove
debugging g_print's.
Fri Feb 4 15:54:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): Don't
ever make the scrolled-window requisition ever depend on the
visibility state of the scrollbars for the AUTOMATIC policy.
This breaks the GTK+ requisition model, and causes loops.
Fri Feb 4 15:09:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Set the charset explicitely for
the default font to avoid problems with XFree86-4.0 where the
default charset is iso10646-1, not iso8859-1.
Thu Feb 3 14:58:48 PST 2000 Manish Singh <yosh@gimp.org>
* acinclude.m4
* config.guess
* config.sub
* ltconfig
* ltmain.sh: upgrade to libtool 1.3.4 (bugfix only release)
* gtk/Makefile.am: minor cosmetic consistency tweak
Thu Feb 3 14:46:01 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Set
the activate_time to 0, so that we handle a quick
press/release press/release properly and don't suppress
the second release. (Red Hat bug #7545)
Wed Feb 2 22:25:17 2000 Tim Janik <timj@gtk.org>
* gtk/gtkctree.c (row_delete):
(gtk_ctree_node_set_row_data_full): fixed very evil reentrancy
bugs with destruction notifier, *always* update internal
structures *before* calling user code.
Sun Jan 30 20:10:52 2000 Lars Hamann <lars@gtk.org>
A few more fixes for bug #5487, #2051, #2677.
* gtk/gtkclist.c :
(gtk_clist_button_press): Reset clist->anchor to -1 if event->type is
not GDK_BUTTON_PRESS.
(resync_selection): resync only if selection_mode is
GTK_SELECTION_EXTENDED
* gtk/gtkctree.c (resync_selection): same here
Sun Jan 30 12:29:20 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gtk/gtkmenu.h: Removed duplicate prototypes for
gdk_drag_get_selection() and gtk_menu_detach().
[ From Jeroen Ruigrok/Asmodai ]
Sat Jan 29 10:11:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_request):
page->tab_label can be NULL.
2000-01-25 Havoc Pennington <hp@pobox.com>
* gdk/gdkwindow.c (gdk_window_set_back_pixmap): parent_relative
arg is boolean
* gdk/gdkselection.c (gdk_selection_owner_set): return boolean
* gdk/gdkrectangle.c (gdk_rectangle_intersect): return boolean
* gdk/gdkproperty.c (gdk_property_get): return boolean
* gdk/gdkinput.c (gdk_input_set_mode): return boolean
* gdk/gdkim.c (gdk_im_ready): return boolean
* gdk/gdkgc.c (gdk_gc_set_exposures): gboolean arg
* gdk/gdkfont.c (gdk_font_equal): return gboolean (mild
glib clash, should fix glib)
* gdk/gdkevents.c (gdk_set_show_events): take gboolean arg
(gdk_get_show_events): return gboolean, and canonicalize
to TRUE/FALSE
* gdk/gdkcolor.c (gdk_colormap_new): gboolean flag whether the
colormap is private
(gdk_colors_alloc): gboolean whether to be contiguous
(gdk_color_equal): return gboolean since we are a predicate
and not a qsort() (this looks semi-wrong due to glib breakage,
IMO glib should be fixed)
* gdk/gdk.c (gdk_set_use_xshm): take gboolean arg
(gdk_get_use_xshm): return gboolean
(gdk_pointer_is_grabbed): return gboolean
* gdk/gdk.h: Change prototypes to match all the above changes,
and re-run egtk-format-protos as required.
Fri Jan 28 12:28:17 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (resync_selection):
* gtk/gtkclist.c (resync_selection):
Return immediately if clist->drag_pos < 0. This is a workaround
for the corrupt state that the clist gets into when a
GDK_2BUTTON_PRESS occurs. See note in gtk_clist_button_press().
Bug #5487, #2051, #2677; fix suggested by David Helder and T. Alexander Popiel.
* gtk/gtknotebook.c (gtk_notebook_size_request): Fix uninitialized
variable from recent commit.
Thu Jan 27 15:22:09 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin): Fix stupid typo in last commit.
Thu Jan 27 18:00:55 2000 Tim Janik <timj@gtk.org>
* gtk/Makefile.am: prefix all autogenerated source that get build in
$(srcdir) with $(srcdir)/, so make doesn't assume they got generted
in builddir. since we subsequently cd into srcdir for autogeneration,
the paths have to be stripped from the target file names, thusly we
use $(@F) as target names now.
put a comment about configure.in's --disable-rebuilds option,
which can be used for non-writable source directories, for development
setups though, srcdir has to be *writable*.
hu Jan 27 00:15:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin gtk_drag_get_event_actions):
Finish the job of allowing event to be NULL.
(Fixes bug #4283, reported by Chris Blizzard)
* gtk/gtkentry.c (entry_adjust_scroll): When calculating
things so that the cursor appears on screen, properly
take into account INNER_BORDER.
(Fixes bug #4754, reported by Antonio Campos)
Wed Jan 26 23:12:28 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_map): Don't
show the tab_label unless it itself is visible.
gtk/gtknotebook.c (gtk_notebook_size_request):
Do a better job of making sure that the visibility
of the tab label corresponds to whether it should
be mapped or not.
Wed Jan 26 21:17:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_position):
Use the requisition, not the allocation, since the
allocation has not necessarily been computed yet.
(Pointed out by Eugene Osintsev)
Wed Jan 26 19:44:25 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Dont' set
style/base[GTK_STATE_INSENSITIVE] both to
gtk_default_insensitive_bg!
(Bug #2187, reported by Jonathan Blandford)
* gtk/gtkaccelgroup.c (gtk_accelerator_valid):
Add Alt_L, Alt_R to list of invalid accelerators.
(Bug #3736, reported by Vlad Harchev)
Wed Jan 26 19:01:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (open_ref_dir): Fix several
bugs which occured after an attempt to open
invalid home directory left cmpl_state->reference_dir == NULL.
- completion on files in home directory didn't work
- completion on an empty string caused segfault
(Bug #3768, reported by Steve Ratcliffe)
* gtk/gtkscale.c (gtk_scale_get_value_width): Fix
cut and paste error that was causing scales to
be incorrectly positioned.
(Bug #2956,
patch from Steve Ratcliffe <steve@parabola.demon.co.uk>)
2000-01-27 Shirasaki Yasuhiro <yasuhiro@gnome.gr.jp>
* acinclude.m4 (AM_GTK_WITH_NLS): Add -lintl to libs
when checking for dcgettext, if we've found we needed
it for dgettext.
+
Wed Jan 26 18:06:07 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore
queue_clear on NO_WINDOW widgets during a reparent,
since at that point the window and widget heirarchies
are out of sync. This stops crashing in some cases
(the scrolled window reparent test, for instance), and
_probably_ won't cause drawing errors.
* gtk/testgtk.c: Make the reparenting-a-scrolled-window
test do what it was supposed to do and be robust against
window closings, etc. (Bug #2443)
Wed Jan 26 16:56:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c: Fix return values on mouse events.
(Bug #2686, Sky <seb_sky@yahoo.com>)
* gtk/genmarshal.pl: Fix up handling of FOREIGN.
(pointed out by George Lebl)
* gdk/gdkcolor.c (gdk_color_copy): Made const-safe.
(From Ettore Perazzoli <ettore@helixcode.com>)
Mon Jan 24 10:44:48 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcalendar.c (gtk_calendar_main_button): Handle
clicks between rows or outside calender area correctly.
(Patch from Damon Chaplin)
* gtk/gtkclist.c (gtk_clist_set_row_data_full):
* gtk/gtkctree.c (gtk_ctree_node_set_row_data_full):
Call destroy function when overwriting existing data.
(Pointed out by Damon Chaplin)
Tue Jan 25 09:55:41 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.c: Remove useless #include of <X11/Xmu/WinUtil.h>,
which was causing problems on various systems with Xmu.
This hasn't been needed for a very long time.
(Fixes #1185 3167)
Sun Jan 23 22:27:36 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdki18n.h: Include <ctype.h> when defining
gdk_isw* in terms of is* as a fallback.
(Bug #4106 - Dan Winship <danw@MIT.EDU>)
Sun Jan 23 22:12:36 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkviewport.c (gtk_viewport_size_allocate): Don't
realize the widget when it is size allocated!
(old, old bug)
* gtk/gtkviewport.c (gtk_viewport_adjustment_value_changed):
Removed unused call to gdk_window_get_size() that
showed up when the above was fixed.
Sat Jan 22 15:44:30 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_reparent): Correctly
fix up widget->window when the widget is a
NO_WINDOW container widget.
Sat Jan 22 12:40:48 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpixmap.c (gdk_pixmap_seek_string): Rewrite
to account for the fact that feof() does _not_
return TRUE on errors, and thus avoid infinite loops
when trying to use gdk_pixmap_create_from_xpm()
on unreadable values.
Fri Jan 21 18:32:43 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkaspectframe.h (struct _GtkAspectFrame): s/gint/gboolean/.
Fri Jan 21 16:24:08 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkgc.c (gdk_gc_set_dashes): Change from
gdk_gc_set_dashes to take gint8 instead of gchar to
make it clearer that it is _not_ a NULL terminated string.
* gdk/gdk.h gdk/gdkfont.c gdk/gdkgc.c gdk/gdkselection.c
gdk/gdkwindow.c gtk/gtkprogress.[ch] gtk/gtkthemes.[ch]
gtk/gtktreeitem.[ch] gtk/gtkwidget.[ch]: Constify string
arguments.
Thu Dec 30 04:51:05 1999 Tim Janik <timj@gtk.org>
* gtk/gtkvscale.c (gtk_vscale_pos_background):
* gtk/gtkhscale.c (gtk_hscale_pos_background): when calculating the
background size relative to our allocation, guard against small
allocations, we may have not yet been size allocated.
Thu Dec 2 10:59:14 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c (xdnd_check_dest): Allow version >= 3,
not just version == 3. We implement all 3 + most of 4 -
(we don't support matching text/plain;charset=iso-8859-1
to a dest that expects text/plain). We'll still advertise
3 to be safe, but any client implementing version >= 3
must interoperate with 3.
Tue Mar 14 11:53:31 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.[ch] (struct _GtkTooltips): Remove foreground,
background and gc members, add a warning in gtk_tooltips_set_color()
indicating that this function is deprecated.
Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: FAQ Update:

View File

@ -1,3 +1,389 @@
Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty()
is called without trapping X errors.
Fri Feb 25 10:48:53 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.*: Fix problem where stray '"' characters found their
way into the fontset lists.
Tue Feb 22 08:52:52 2000 Tim Janik <timj@gtk.org>
* gtk/gtkthemes.h: add extern "C" scope.
Mon Feb 21 20:16:42 2000 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.c: applied patch from Guy Harris <guy@netapp.com>
to make appends to the list constant. (gtk-guy-990901-0.patch)
Mon Feb 14 22:50:10 2000 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_init): use g_str_hash() and g_str_equal()
for the typename hash table.
Mon Feb 14 15:01:23 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkpaned.c (gtk_paned_compute_position): Add some sanity checks
to make sure we never divide by zero.
(Problem pointed out by Michal Jaegermann <michal@ellpspace.math.ualberta.ca>)
Mon Feb 14 12:29:38 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Apply patch from
SHIRASAKI Yasuhiro <yasuhiro@awa.tohoku.ac.jp> to make font selector work a little
better with 2-byte fonts. (Load a fontset instead of a font for two byte fonts.)
Also, some cleanups in atom handling.
Sun Feb 13 08:02:21 2000 Tim Janik <timj@gtk.org>
* gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer,
not GtkWidget.
Fri Feb 11 02:19:32 2000 Tim Janik <timj@gtk.org>
* gtk/gtkhpaned.c (gtk_hpaned_size_allocate):
* gtk/gtkvpaned.c (gtk_vpaned_size_allocate):
* gtk/gtkpaned.c (gtk_paned_compute_position): had to squeeze some
more guint wrap-around bugs before going to bed.
Thu Feb 10 16:16:35 2000 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.c (gtk_spin_button_size_allocate): guard against
guint wrap arounds in allocation.width.
* gtk/gtktable.c (gtk_table_size_allocate_pass1): repeat shrinking
process untill we fit the allocation given.
Tue Feb 8 09:38:29 2000 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c:
(gtk_widget_unrealize): guard widget access with ref/unref
around signal emission.
(gtk_widget_hide): same here, but also check its destroyed
state before queueing a resize.
Tue Feb 8 03:05:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead
of gtk_default_insensitive_bg as insensitive base color.
* gtk/gtktext.c (gtk_text_style_set): set the background color according
to the widget's state.
(gtk_text_realize): same here.
(gtk_text_state_changed): same here.
(draw_bg_rect): compare background color against base[] from
GTK_WIDGET_STATE (text) not GTK_STATE_NORMAL.
Mon Feb 7 04:01:55 2000 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_main_do_event): ignore delete events when
grabs are active, unless a delete event is send to the toplevel
of the currently grab holding widget.
Sun Feb 6 10:13:15 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (gtk_ctree_drag_data_received): Remove
debugging g_print's.
Fri Feb 4 15:54:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): Don't
ever make the scrolled-window requisition ever depend on the
visibility state of the scrollbars for the AUTOMATIC policy.
This breaks the GTK+ requisition model, and causes loops.
Fri Feb 4 15:09:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Set the charset explicitely for
the default font to avoid problems with XFree86-4.0 where the
default charset is iso10646-1, not iso8859-1.
Thu Feb 3 14:58:48 PST 2000 Manish Singh <yosh@gimp.org>
* acinclude.m4
* config.guess
* config.sub
* ltconfig
* ltmain.sh: upgrade to libtool 1.3.4 (bugfix only release)
* gtk/Makefile.am: minor cosmetic consistency tweak
Thu Feb 3 14:46:01 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Set
the activate_time to 0, so that we handle a quick
press/release press/release properly and don't suppress
the second release. (Red Hat bug #7545)
Wed Feb 2 22:25:17 2000 Tim Janik <timj@gtk.org>
* gtk/gtkctree.c (row_delete):
(gtk_ctree_node_set_row_data_full): fixed very evil reentrancy
bugs with destruction notifier, *always* update internal
structures *before* calling user code.
Sun Jan 30 20:10:52 2000 Lars Hamann <lars@gtk.org>
A few more fixes for bug #5487, #2051, #2677.
* gtk/gtkclist.c :
(gtk_clist_button_press): Reset clist->anchor to -1 if event->type is
not GDK_BUTTON_PRESS.
(resync_selection): resync only if selection_mode is
GTK_SELECTION_EXTENDED
* gtk/gtkctree.c (resync_selection): same here
Sun Jan 30 12:29:20 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gtk/gtkmenu.h: Removed duplicate prototypes for
gdk_drag_get_selection() and gtk_menu_detach().
[ From Jeroen Ruigrok/Asmodai ]
Sat Jan 29 10:11:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_size_request):
page->tab_label can be NULL.
2000-01-25 Havoc Pennington <hp@pobox.com>
* gdk/gdkwindow.c (gdk_window_set_back_pixmap): parent_relative
arg is boolean
* gdk/gdkselection.c (gdk_selection_owner_set): return boolean
* gdk/gdkrectangle.c (gdk_rectangle_intersect): return boolean
* gdk/gdkproperty.c (gdk_property_get): return boolean
* gdk/gdkinput.c (gdk_input_set_mode): return boolean
* gdk/gdkim.c (gdk_im_ready): return boolean
* gdk/gdkgc.c (gdk_gc_set_exposures): gboolean arg
* gdk/gdkfont.c (gdk_font_equal): return gboolean (mild
glib clash, should fix glib)
* gdk/gdkevents.c (gdk_set_show_events): take gboolean arg
(gdk_get_show_events): return gboolean, and canonicalize
to TRUE/FALSE
* gdk/gdkcolor.c (gdk_colormap_new): gboolean flag whether the
colormap is private
(gdk_colors_alloc): gboolean whether to be contiguous
(gdk_color_equal): return gboolean since we are a predicate
and not a qsort() (this looks semi-wrong due to glib breakage,
IMO glib should be fixed)
* gdk/gdk.c (gdk_set_use_xshm): take gboolean arg
(gdk_get_use_xshm): return gboolean
(gdk_pointer_is_grabbed): return gboolean
* gdk/gdk.h: Change prototypes to match all the above changes,
and re-run egtk-format-protos as required.
Fri Jan 28 12:28:17 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c (resync_selection):
* gtk/gtkclist.c (resync_selection):
Return immediately if clist->drag_pos < 0. This is a workaround
for the corrupt state that the clist gets into when a
GDK_2BUTTON_PRESS occurs. See note in gtk_clist_button_press().
Bug #5487, #2051, #2677; fix suggested by David Helder and T. Alexander Popiel.
* gtk/gtknotebook.c (gtk_notebook_size_request): Fix uninitialized
variable from recent commit.
Thu Jan 27 15:22:09 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin): Fix stupid typo in last commit.
Thu Jan 27 18:00:55 2000 Tim Janik <timj@gtk.org>
* gtk/Makefile.am: prefix all autogenerated source that get build in
$(srcdir) with $(srcdir)/, so make doesn't assume they got generted
in builddir. since we subsequently cd into srcdir for autogeneration,
the paths have to be stripped from the target file names, thusly we
use $(@F) as target names now.
put a comment about configure.in's --disable-rebuilds option,
which can be used for non-writable source directories, for development
setups though, srcdir has to be *writable*.
hu Jan 27 00:15:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin gtk_drag_get_event_actions):
Finish the job of allowing event to be NULL.
(Fixes bug #4283, reported by Chris Blizzard)
* gtk/gtkentry.c (entry_adjust_scroll): When calculating
things so that the cursor appears on screen, properly
take into account INNER_BORDER.
(Fixes bug #4754, reported by Antonio Campos)
Wed Jan 26 23:12:28 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_map): Don't
show the tab_label unless it itself is visible.
gtk/gtknotebook.c (gtk_notebook_size_request):
Do a better job of making sure that the visibility
of the tab label corresponds to whether it should
be mapped or not.
Wed Jan 26 21:17:03 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_position):
Use the requisition, not the allocation, since the
allocation has not necessarily been computed yet.
(Pointed out by Eugene Osintsev)
Wed Jan 26 19:44:25 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.c (gtk_style_new): Dont' set
style/base[GTK_STATE_INSENSITIVE] both to
gtk_default_insensitive_bg!
(Bug #2187, reported by Jonathan Blandford)
* gtk/gtkaccelgroup.c (gtk_accelerator_valid):
Add Alt_L, Alt_R to list of invalid accelerators.
(Bug #3736, reported by Vlad Harchev)
Wed Jan 26 19:01:56 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (open_ref_dir): Fix several
bugs which occured after an attempt to open
invalid home directory left cmpl_state->reference_dir == NULL.
- completion on files in home directory didn't work
- completion on an empty string caused segfault
(Bug #3768, reported by Steve Ratcliffe)
* gtk/gtkscale.c (gtk_scale_get_value_width): Fix
cut and paste error that was causing scales to
be incorrectly positioned.
(Bug #2956,
patch from Steve Ratcliffe <steve@parabola.demon.co.uk>)
2000-01-27 Shirasaki Yasuhiro <yasuhiro@gnome.gr.jp>
* acinclude.m4 (AM_GTK_WITH_NLS): Add -lintl to libs
when checking for dcgettext, if we've found we needed
it for dgettext.
+
Wed Jan 26 18:06:07 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore
queue_clear on NO_WINDOW widgets during a reparent,
since at that point the window and widget heirarchies
are out of sync. This stops crashing in some cases
(the scrolled window reparent test, for instance), and
_probably_ won't cause drawing errors.
* gtk/testgtk.c: Make the reparenting-a-scrolled-window
test do what it was supposed to do and be robust against
window closings, etc. (Bug #2443)
Wed Jan 26 16:56:54 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c: Fix return values on mouse events.
(Bug #2686, Sky <seb_sky@yahoo.com>)
* gtk/genmarshal.pl: Fix up handling of FOREIGN.
(pointed out by George Lebl)
* gdk/gdkcolor.c (gdk_color_copy): Made const-safe.
(From Ettore Perazzoli <ettore@helixcode.com>)
Mon Jan 24 10:44:48 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcalendar.c (gtk_calendar_main_button): Handle
clicks between rows or outside calender area correctly.
(Patch from Damon Chaplin)
* gtk/gtkclist.c (gtk_clist_set_row_data_full):
* gtk/gtkctree.c (gtk_ctree_node_set_row_data_full):
Call destroy function when overwriting existing data.
(Pointed out by Damon Chaplin)
Tue Jan 25 09:55:41 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.c: Remove useless #include of <X11/Xmu/WinUtil.h>,
which was causing problems on various systems with Xmu.
This hasn't been needed for a very long time.
(Fixes #1185 3167)
Sun Jan 23 22:27:36 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdki18n.h: Include <ctype.h> when defining
gdk_isw* in terms of is* as a fallback.
(Bug #4106 - Dan Winship <danw@MIT.EDU>)
Sun Jan 23 22:12:36 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkviewport.c (gtk_viewport_size_allocate): Don't
realize the widget when it is size allocated!
(old, old bug)
* gtk/gtkviewport.c (gtk_viewport_adjustment_value_changed):
Removed unused call to gdk_window_get_size() that
showed up when the above was fixed.
Sat Jan 22 15:44:30 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_reparent): Correctly
fix up widget->window when the widget is a
NO_WINDOW container widget.
Sat Jan 22 12:40:48 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpixmap.c (gdk_pixmap_seek_string): Rewrite
to account for the fact that feof() does _not_
return TRUE on errors, and thus avoid infinite loops
when trying to use gdk_pixmap_create_from_xpm()
on unreadable values.
Fri Jan 21 18:32:43 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkaspectframe.h (struct _GtkAspectFrame): s/gint/gboolean/.
Fri Jan 21 16:24:08 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkgc.c (gdk_gc_set_dashes): Change from
gdk_gc_set_dashes to take gint8 instead of gchar to
make it clearer that it is _not_ a NULL terminated string.
* gdk/gdk.h gdk/gdkfont.c gdk/gdkgc.c gdk/gdkselection.c
gdk/gdkwindow.c gtk/gtkprogress.[ch] gtk/gtkthemes.[ch]
gtk/gtktreeitem.[ch] gtk/gtkwidget.[ch]: Constify string
arguments.
Thu Dec 30 04:51:05 1999 Tim Janik <timj@gtk.org>
* gtk/gtkvscale.c (gtk_vscale_pos_background):
* gtk/gtkhscale.c (gtk_hscale_pos_background): when calculating the
background size relative to our allocation, guard against small
allocations, we may have not yet been size allocated.
Thu Dec 2 10:59:14 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c (xdnd_check_dest): Allow version >= 3,
not just version == 3. We implement all 3 + most of 4 -
(we don't support matching text/plain;charset=iso-8859-1
to a dest that expects text/plain). We'll still advertise
3 to be safe, but any client implementing version >= 3
must interoperate with 3.
Tue Mar 14 11:53:31 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.[ch] (struct _GtkTooltips): Remove foreground,
background and gc members, add a warning in gtk_tooltips_set_color()
indicating that this function is deprecated.
Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: FAQ Update:

View File

@ -7,8 +7,8 @@ you got this package.
Simple install procedure
========================
% gzip -cd gtk+-1.2.5.tar.gz | tar xvf - # unpack the sources
% cd gtk+-1.2.5 # change to the toplevel directory
% gzip -cd gtk+-1.2.7.tar.gz | tar xvf - # unpack the sources
% cd gtk+-1.2.7 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK
[ Become root if necessary ]
@ -118,7 +118,7 @@ You can compile GTK+ against a copy of GLIB that you have not
yet installed. To do this, give the --with-glib=DIR options
to ./configure. For instance:
./configure --with-glib=../glib-1.2.5
./configure --with-glib=../glib-1.2.7
This, however, will not work if you built GLIB with different
source and build directories.

8
README
View File

@ -1,7 +1,7 @@
General Information
===================
This is GTK+ version 1.2.0. GTK+, which stands for the Gimp ToolKit,
This is GTK+ version 1.2.7. GTK+, which stands for the Gimp ToolKit,
is a library for creating graphical user interfaces for the X Window
System. It is designed to be small, efficient, and flexible. GTK+ is
written in C with a very object-oriented approach.
@ -37,9 +37,9 @@ version number. This should be separated by a blank
line from the actual headers.
Package: gtk+
Version: 1.2.0
Version: 1.2.7
[ Please substitute 1.2.0 with the version of GTK+ that
[ Please substitute 1.2.7 with the version of GTK+ that
you have installed ]
Then describe the bug. Include:
@ -82,7 +82,7 @@ From: yourname@your.address.org
Subject: handlebox test in testgtk is misnamed.
Package: gtk+
Version: 1.2.0
Version: 1.2.7
When I run gtk/testgtk, the button "handle box"
is misnamed. There are multiple handle boxes in

View File

@ -34,7 +34,7 @@ LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
|| AC_MSG_ERROR([libtool configure failed])
# Reload cache, that may have been modified by ltconfig
@ -66,6 +66,11 @@ AC_REQUIRE([AC_PROG_NM])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
case "$target" in
NONE) lt_target="$host" ;;
*) lt_target="$target" ;;
esac
# Check for any special flags to pass to ltconfig.
libtool_flags="--cache-file=$cache_file"
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
@ -84,7 +89,7 @@ test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
case "$host" in
case "$lt_target" in
*-*-irix6*)
# Find out which ABI we are using.
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
@ -300,7 +305,6 @@ else
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_SUBST(LD)
AC_PROG_LD_GNU
])
@ -346,14 +350,13 @@ else
fi])
NM="$ac_cv_path_NM"
AC_MSG_RESULT([$NM])
AC_SUBST(NM)
])
# AC_CHECK_LIBM - check for math library
AC_DEFUN(AC_CHECK_LIBM,
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
LIBM=
case "$host" in
case "$lt_target" in
*-*-beos* | *-*-cygwin*)
# These system don't have libm
;;
@ -487,6 +490,10 @@ AC_DEFUN(AM_GTK_WITH_NLS,
gt_cv_func_dgettext_libintl=no)])
fi
if test "$gt_cv_func_dgettext_libintl" = "yes"; then
LIBS="$LIBS -lintl";
fi
if test "$gt_cv_func_dgettext_libc" = "yes" \
|| test "$gt_cv_func_dgettext_libintl" = "yes"; then
AC_DEFINE(HAVE_GETTEXT)

94
config.guess vendored
View File

@ -24,7 +24,7 @@
# Written by Per Bothner <bothner@cygnus.com>.
# The master version of this file is at the FSF in /home/gd/gnu/lib.
# Please send patches to the Autoconf mailing list <autoconf@gnu.org>.
# Please send patches to <autoconf-patches@gnu.org>.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
@ -156,6 +156,9 @@ EOF
wgrisc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
@ -328,15 +331,18 @@ EOF
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-o ${TARGET_BINARY_INTERFACE}x = x ] ; then
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[ ${TARGET_BINARY_INTERFACE}x = x ]
then
echo m88k-dg-dgux${UNAME_RELEASE}
else
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
else echo i586-dg-dgux${UNAME_RELEASE}
fi
exit 0 ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
@ -453,7 +459,7 @@ EOF
exit (0);
}
EOF
($CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
rm -f $dummy.c $dummy
esac
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
@ -550,7 +556,7 @@ EOF
echo t90-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY*T3E:*:*:*)
echo t3e-cray-unicosmk${UNAME_RELEASE}
echo alpha-cray-unicosmk${UNAME_RELEASE}
exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
@ -588,7 +594,7 @@ EOF
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit 0 ;;
*:NetBSD:*:*)
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
exit 0 ;;
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
@ -618,12 +624,6 @@ EOF
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
*:Linux:*:*)
# uname on the ARM produces all sorts of strangeness, and we need to
# filter it out.
case "$UNAME_MACHINE" in
armv*) UNAME_MACHINE=$UNAME_MACHINE ;;
arm* | sa110*) UNAME_MACHINE="arm" ;;
esac
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
@ -636,11 +636,38 @@ EOF
s/ .*//
p'`
case "$ld_supported_emulations" in
i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;;
i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;;
sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
*ia64)
echo "${UNAME_MACHINE}-unknown-linux"
exit 0
;;
i?86linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
exit 0
;;
i?86coff)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
exit 0
;;
sparclinux)
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
exit 0
;;
armlinux)
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
exit 0
;;
elf32arm*)
echo "${UNAME_MACHINE}-unknown-linux-gnu"
exit 0
;;
armelf_linux*)
echo "${UNAME_MACHINE}-unknown-linux-gnu"
exit 0
;;
m68klinux)
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
exit 0
;;
elf32ppc)
# Determine Lib Version
cat >$dummy.c <<EOF
@ -670,7 +697,9 @@ EOF
fi
fi
rm -f $dummy.c $dummy
echo powerpc-unknown-linux-gnu${LIBC} ; exit 0 ;;
echo powerpc-unknown-linux-gnu${LIBC}
exit 0
;;
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
@ -797,19 +826,21 @@ EOF
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
exit 0 ;;
i?86:*:5:7*)
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) && UNAME_MACHINE=i586
(/bin/uname -X|egrep '^Machine.*Pent.*II' >/dev/null) && UNAME_MACHINE=i686
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) && UNAME_MACHINE=i585
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}${UNAME_VERSION}-sysv${UNAME_RELEASE}
# Fixed at (any) Pentium or better
UNAME_MACHINE=i586
if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
fi
exit 0 ;;
i?86:*:3.2:*)
if test -f /usr/options/cb.name; then
@ -943,6 +974,9 @@ EOF
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
*:QNX:*:4*)
echo i386-qnx-qnx${UNAME_VERSION}
exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2

45
config.sub vendored
View File

@ -105,7 +105,7 @@ case $os in
-scout)
;;
-wrs)
os=vxworks
os=-vxworks
basic_machine=$1
;;
-hiux*)
@ -156,13 +156,17 @@ case $os in
-psos*)
os=-psos
;;
-mint | -mint[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
| 580 | i960 | h8300 \
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
@ -171,12 +175,12 @@ case $basic_machine in
| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
| mips64vr5000 | miprs64vr5000el \
| mips64vr5000 | miprs64vr5000el | mcore \
| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
| thumb | d10v)
| thumb | d10v | fr30)
basic_machine=$basic_machine-unknown
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65)
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
;;
# We use `pc' rather than `unknown'
@ -191,7 +195,8 @@ case $basic_machine in
exit 1
;;
# Recognize the basic CPU types with company name.
vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
# FIXME: clean up the formatting here.
vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
@ -204,10 +209,10 @@ case $basic_machine in
| sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
| mipstx39-* | mipstx39el-* \
| mipstx39-* | mipstx39el-* | mcore-* \
| f301-* | armv*-* | t3e-* \
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
| thumb-* | v850-* | d30v-* | tic30-* | c30-* )
| thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
@ -425,7 +430,6 @@ case $basic_machine in
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
os=-mvs
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i[34567]86v32)
@ -460,6 +464,9 @@ case $basic_machine in
basic_machine=i386-unknown
os=-mingw32
;;
i386-qnx | qnx)
basic_machine=i386-qnx
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
@ -488,7 +495,7 @@ case $basic_machine in
miniframe)
basic_machine=m68000-convergent
;;
*mint | *MiNT)
*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
@ -514,6 +521,10 @@ case $basic_machine in
basic_machine=i386-unknown
os=-msdos
;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@ -523,7 +534,7 @@ case $basic_machine in
os=-netbsd
;;
netwinder)
basic_machine=armv4l-corel
basic_machine=armv4l-rebel
os=-linux
;;
news | news700 | news800 | news900)
@ -907,7 +918,7 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -rhapsody* | -openstep* | -oskit*)
| -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
@ -926,6 +937,9 @@ case $os in
-sunos6*)
os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
-opened*)
os=-openedition
;;
-osfrose*)
os=-osfrose
;;
@ -963,6 +977,9 @@ case $os in
-oss*)
os=-sysv3
;;
-qnx)
os=-qnx4
;;
-svr4)
os=-sysv4
;;
@ -1012,7 +1029,7 @@ case $basic_machine in
*-acorn)
os=-riscix1.2
;;
arm*-corel)
arm*-rebel)
os=-linux
;;
arm*-semi)
@ -1186,7 +1203,7 @@ case $basic_machine in
-genix*)
vendor=ns
;;
-mvs*)
-mvs* | -opened*)
vendor=ibm
;;
-ptx*)

View File

@ -70,9 +70,9 @@ void gdk_error_trap_push (void);
gint gdk_error_trap_pop (void);
void gdk_set_use_xshm (gint use_xshm);
void gdk_set_use_xshm (gboolean use_xshm);
gint gdk_get_use_xshm (void);
gboolean gdk_get_use_xshm (void);
gchar* gdk_get_display (void);
gint gdk_input_add_full (gint source,
@ -86,20 +86,18 @@ gint gdk_input_add (gint source,
gpointer data);
void gdk_input_remove (gint tag);
gint gdk_pointer_grab (GdkWindow *window,
gint owner_events,
GdkEventMask event_mask,
GdkWindow *confine_to,
GdkCursor *cursor,
guint32 time);
void gdk_pointer_ungrab (guint32 time);
gint gdk_keyboard_grab (GdkWindow *window,
gint owner_events,
guint32 time);
void gdk_keyboard_ungrab (guint32 time);
gint gdk_pointer_is_grabbed (void);
gint gdk_pointer_grab (GdkWindow *window,
gboolean owner_events,
GdkEventMask event_mask,
GdkWindow *confine_to,
GdkCursor *cursor,
guint32 time);
void gdk_pointer_ungrab (guint32 time);
gint gdk_keyboard_grab (GdkWindow *window,
gboolean owner_events,
guint32 time);
void gdk_keyboard_ungrab (guint32 time);
gboolean gdk_pointer_is_grabbed (void);
gint gdk_screen_width (void);
gint gdk_screen_height (void);
@ -115,12 +113,12 @@ void gdk_key_repeat_restore (void);
/* Rectangle utilities
*/
gint gdk_rectangle_intersect (GdkRectangle *src1,
GdkRectangle *src2,
GdkRectangle *dest);
void gdk_rectangle_union (GdkRectangle *src1,
GdkRectangle *src2,
GdkRectangle *dest);
gboolean gdk_rectangle_intersect (GdkRectangle *src1,
GdkRectangle *src2,
GdkRectangle *dest);
void gdk_rectangle_union (GdkRectangle *src1,
GdkRectangle *src2,
GdkRectangle *dest);
/* Conversion functions between wide char and multibyte strings.
*/

View File

@ -101,7 +101,7 @@ gdk_colors_store (GdkColormap *colormap,
static GMemChunk *color_chunk;
GdkColor*
gdk_color_copy (GdkColor *color)
gdk_color_copy (const GdkColor *color)
{
GdkColor *new_color;
@ -221,7 +221,7 @@ gdk_color_hash (const GdkColor *colora)
(colora->blue >> 6));
}
gint
gboolean
gdk_color_equal (const GdkColor *colora,
const GdkColor *colorb)
{

View File

@ -32,7 +32,7 @@ struct _GdkColormap
GdkColormap* gdk_colormap_new (GdkVisual *visual,
gint allocate);
gboolean allocate);
GdkColormap* gdk_colormap_ref (GdkColormap *cmap);
void gdk_colormap_unref (GdkColormap *cmap);
@ -59,22 +59,20 @@ void gdk_colormap_free_colors (GdkColormap *colormap,
GdkVisual *gdk_colormap_get_visual (GdkColormap *colormap);
GdkColor *gdk_color_copy (GdkColor *color);
void gdk_color_free (GdkColor *color);
gint gdk_color_parse (const gchar *spec,
GdkColor *color);
guint gdk_color_hash (const GdkColor *colora);
gint gdk_color_equal (const GdkColor *colora,
const GdkColor *colorb);
GdkColor *gdk_color_copy (const GdkColor *color);
void gdk_color_free (GdkColor *color);
gint gdk_color_parse (const gchar *spec,
GdkColor *color);
guint gdk_color_hash (const GdkColor *colora);
gboolean gdk_color_equal (const GdkColor *colora,
const GdkColor *colorb);
/* The following functions are deprecated */
void gdk_colors_store (GdkColormap *colormap,
GdkColor *colors,
gint ncolors);
gint gdk_colors_alloc (GdkColormap *colormap,
gint contiguous,
gboolean contiguous,
gulong *planes,
gint nplanes,
gulong *pixels,

View File

@ -91,8 +91,6 @@ void gdk_drag_drop (GdkDragContext *context,
void gdk_drag_abort (GdkDragContext *context,
guint32 time);
GdkAtom gdk_drag_get_selection (GdkDragContext *context);
#ifdef __cplusplus
}
#endif /* __cplusplus */

View File

@ -462,7 +462,7 @@ gdk_event_get_time (GdkEvent *event)
*/
void
gdk_set_show_events (gint show_events)
gdk_set_show_events (gboolean show_events)
{
if (show_events)
gdk_debug_flags |= GDK_DEBUG_EVENTS;
@ -470,10 +470,10 @@ gdk_set_show_events (gint show_events)
gdk_debug_flags &= ~GDK_DEBUG_EVENTS;
}
gint
gboolean
gdk_get_show_events (void)
{
return gdk_debug_flags & GDK_DEBUG_EVENTS;
return (gdk_debug_flags & GDK_DEBUG_EVENTS) != 0;
}
static void

View File

@ -419,8 +419,8 @@ void gdk_event_handler_set (GdkEventFunc func,
gpointer data,
GDestroyNotify notify);
void gdk_set_show_events (gint show_events);
gint gdk_get_show_events (void);
void gdk_set_show_events (gboolean show_events);
gboolean gdk_get_show_events (void);
/*
* The following function adds a global filter for all client

View File

@ -25,11 +25,11 @@ struct _GdkFont
};
GdkFont* gdk_font_load (const gchar *font_name);
GdkFont* gdk_fontset_load (gchar *fontset_name);
GdkFont* gdk_fontset_load (const gchar *fontset_name);
GdkFont* gdk_font_ref (GdkFont *font);
void gdk_font_unref (GdkFont *font);
gint gdk_font_id (const GdkFont *font);
gint gdk_font_equal (const GdkFont *fonta,
gboolean gdk_font_equal (const GdkFont *fonta,
const GdkFont *fontb);
gint gdk_string_width (GdkFont *font,

View File

@ -294,7 +294,7 @@ gdk_gc_set_line_attributes (GdkGC *gc,
void
gdk_gc_set_dashes (GdkGC *gc,
gint dash_offset,
gchar dash_list[],
gint8 dash_list[],
gint n)
{
g_return_if_fail (gc != NULL);

View File

@ -219,7 +219,7 @@ void gdk_gc_set_line_attributes (GdkGC *gc,
GdkJoinStyle join_style);
void gdk_gc_set_dashes (GdkGC *gc,
gint dash_offset,
gchar dash_list[],
gint8 dash_list[],
gint n);
void gdk_gc_copy (GdkGC *dst_gc,
GdkGC *src_gc);

View File

@ -47,6 +47,7 @@
# define gdk_iswalnum(c) iswalnum(c)
# define gdk_iswspace(c) iswspace(c)
#else
# include <ctype.h>
# define gdk_iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
# define gdk_iswspace(c) ((wchar_t)(c) <= 0xFF && isspace(c))
#endif

View File

@ -96,7 +96,7 @@ struct _GdkICAttr
GdkColormap *status_colormap;
};
gint gdk_im_ready (void);
gboolean gdk_im_ready (void);
void gdk_im_begin (GdkIC *ic,
GdkWindow *window);

View File

@ -73,34 +73,33 @@ struct _GdkTimeCoord
gdouble ytilt;
};
GList *gdk_input_list_devices (void);
void gdk_input_set_extension_events (GdkWindow *window,
gint mask,
GdkExtensionMode mode);
void gdk_input_set_source (guint32 deviceid,
GdkInputSource source);
gint gdk_input_set_mode (guint32 deviceid,
GdkInputMode mode);
void gdk_input_set_axes (guint32 deviceid,
GdkAxisUse *axes);
void gdk_input_set_key (guint32 deviceid,
guint index,
guint keyval,
GdkModifierType modifiers);
void gdk_input_window_get_pointer (GdkWindow *window,
guint32 deviceid,
gdouble *x,
gdouble *y,
gdouble *pressure,
gdouble *xtilt,
gdouble *ytilt,
GdkModifierType *mask);
GdkTimeCoord *gdk_input_motion_events (GdkWindow *window,
guint32 deviceid,
guint32 start,
guint32 stop,
gint *nevents_return);
GList * gdk_input_list_devices (void);
void gdk_input_set_extension_events (GdkWindow *window,
gint mask,
GdkExtensionMode mode);
void gdk_input_set_source (guint32 deviceid,
GdkInputSource source);
gboolean gdk_input_set_mode (guint32 deviceid,
GdkInputMode mode);
void gdk_input_set_axes (guint32 deviceid,
GdkAxisUse *axes);
void gdk_input_set_key (guint32 deviceid,
guint index,
guint keyval,
GdkModifierType modifiers);
void gdk_input_window_get_pointer (GdkWindow *window,
guint32 deviceid,
gdouble *x,
gdouble *y,
gdouble *pressure,
gdouble *xtilt,
gdouble *ytilt,
GdkModifierType *mask);
GdkTimeCoord *gdk_input_motion_events (GdkWindow *window,
guint32 deviceid,
guint32 start,
guint32 stop,
gint *nevents_return);
#ifdef __cplusplus
}

View File

@ -14,38 +14,42 @@ typedef enum
GDK_PROP_MODE_APPEND
} GdkPropMode;
GdkAtom gdk_atom_intern (const gchar *atom_name,
gboolean only_if_exists);
gchar* gdk_atom_name (GdkAtom atom);
gboolean gdk_property_get (GdkWindow *window,
GdkAtom property,
GdkAtom type,
gulong offset,
gulong length,
gint pdelete,
GdkAtom *actual_property_type,
gint *actual_format,
gint *actual_length,
guchar **data);
GdkAtom gdk_atom_intern (const gchar *atom_name,
gboolean only_if_exists);
gchar* gdk_atom_name (GdkAtom atom);
void gdk_property_change (GdkWindow *window,
GdkAtom property,
GdkAtom type,
gint format,
GdkPropMode mode,
guchar *data,
gint nelements);
void gdk_property_delete (GdkWindow *window,
GdkAtom property);
gboolean gdk_property_get (GdkWindow *window,
GdkAtom property,
GdkAtom type,
gulong offset,
gulong length,
gint pdelete,
GdkAtom *actual_property_type,
gint *actual_format,
gint *actual_length,
guchar **data);
void gdk_property_change (GdkWindow *window,
GdkAtom property,
GdkAtom type,
gint format,
GdkPropMode mode,
const guchar *data,
gint nelements);
void gdk_property_delete (GdkWindow *window,
GdkAtom property);
gint gdk_text_property_to_text_list (GdkAtom encoding, gint format,
guchar *text, gint length,
gchar ***list);
void gdk_free_text_list (gchar **list);
gint gdk_string_to_compound_text (gchar *str,
GdkAtom *encoding, gint *format,
guchar **ctext, gint *length);
void gdk_free_compound_text (guchar *ctext);
gint gdk_text_property_to_text_list (GdkAtom encoding,
gint format,
const guchar *text,
gint length,
gchar ***list);
void gdk_free_text_list (gchar **list);
gint gdk_string_to_compound_text (const gchar *str,
GdkAtom *encoding,
gint *format,
guchar **ctext,
gint *length);
void gdk_free_compound_text (guchar *ctext);
#ifdef __cplusplus
}

View File

@ -41,7 +41,7 @@ gdk_rectangle_union (GdkRectangle *src1,
dest->height = MAX (src1->y + src1->height, src2->y + src2->height) - dest->y;
}
gint
gboolean
gdk_rectangle_intersect (GdkRectangle *src1,
GdkRectangle *src2,
GdkRectangle *dest)

View File

@ -42,7 +42,7 @@ typedef enum
gboolean gdk_selection_owner_set (GdkWindow *owner,
GdkAtom selection,
guint32 time,
gint send_event);
gboolean send_event);
GdkWindow* gdk_selection_owner_get (GdkAtom selection);
void gdk_selection_convert (GdkWindow *requestor,
GdkAtom selection,

View File

@ -241,7 +241,7 @@ void gdk_window_set_background (GdkWindow *window,
GdkColor *color);
void gdk_window_set_back_pixmap (GdkWindow *window,
GdkPixmap *pixmap,
gint parent_relative);
gboolean parent_relative);
void gdk_window_set_cursor (GdkWindow *window,
GdkCursor *cursor);
void gdk_window_get_user_data (GdkWindow *window,
@ -280,7 +280,7 @@ void gdk_window_set_icon (GdkWindow *window,
GdkPixmap *pixmap,
GdkBitmap *mask);
void gdk_window_set_icon_name (GdkWindow *window,
gchar *name);
const gchar *name);
void gdk_window_set_group (GdkWindow *window,
GdkWindow *leader);
void gdk_window_set_decorations (GdkWindow *window,

View File

@ -43,7 +43,7 @@ static GHashTable *colormap_hash = NULL;
GdkColormap*
gdk_colormap_new (GdkVisual *visual,
gint private_cmap)
gboolean private_cmap)
{
GdkColormap *colormap;
GdkColormapPrivateX *private;
@ -344,7 +344,7 @@ gdk_colormap_change (GdkColormap *colormap,
gboolean
gdk_colors_alloc (GdkColormap *colormap,
gint contiguous,
gboolean contiguous,
gulong *planes,
gint nplanes,
gulong *pixels,

View File

@ -950,6 +950,7 @@ motif_read_target_table (void)
guchar *p;
gboolean success = FALSE;
gdk_error_trap_push ();
XGetWindowProperty (gdk_display, motif_drag_window,
motif_drag_targets_atom,
0, (sizeof(MotifTargetTableHeader)+3)/4, FALSE,
@ -957,12 +958,13 @@ motif_read_target_table (void)
&type, &format, &nitems, &bytes_after,
(guchar **)&header);
if ((format != 8) || (nitems < sizeof (MotifTargetTableHeader)))
if (gdk_error_trap_pop () || (format != 8) || (nitems < sizeof (MotifTargetTableHeader)))
goto error;
header->n_lists = card16_to_host (header->n_lists, header->byte_order);
header->total_size = card32_to_host (header->total_size, header->byte_order);
gdk_error_trap_push ();
XGetWindowProperty (gdk_display, motif_drag_window, motif_drag_targets_atom,
(sizeof(MotifTargetTableHeader)+3)/4,
(header->total_size + 3)/4 - (sizeof(MotifTargetTableHeader) + 3)/4,
@ -970,7 +972,7 @@ motif_read_target_table (void)
motif_drag_targets_atom, &type, &format, &nitems,
&bytes_after, &target_bytes);
if ((format != 8) || (bytes_after != 0) ||
if (gdk_error_trap_pop () || (format != 8) || (bytes_after != 0) ||
(nitems != header->total_size - sizeof(MotifTargetTableHeader)))
goto error;
@ -1294,29 +1296,33 @@ motif_check_dest (Window win)
if (!motif_drag_receiver_info_atom)
motif_drag_receiver_info_atom = gdk_atom_intern ("_MOTIF_DRAG_RECEIVER_INFO", FALSE);
gdk_error_trap_push ();
XGetWindowProperty (gdk_display, win,
motif_drag_receiver_info_atom,
0, (sizeof(*info)+3)/4, False, AnyPropertyType,
&type, &format, &nitems, &after,
(guchar **)&info);
if (type != None)
{
if ((format == 8) && (nitems == sizeof(*info)))
{
if ((info->protocol_version == 0) &&
((info->protocol_style == XmDRAG_PREFER_PREREGISTER) ||
(info->protocol_style == XmDRAG_PREFER_DYNAMIC) ||
(info->protocol_style == XmDRAG_DYNAMIC)))
retval = TRUE;
}
else
{
GDK_NOTE (DND,
g_warning ("Invalid Motif drag receiver property on window %ld\n", win));
}
XFree (info);
if (gdk_error_trap_pop() == 0)
{
if (type != None)
{
if ((format == 8) && (nitems == sizeof(*info)))
{
if ((info->protocol_version == 0) &&
((info->protocol_style == XmDRAG_PREFER_PREREGISTER) ||
(info->protocol_style == XmDRAG_PREFER_DYNAMIC) ||
(info->protocol_style == XmDRAG_DYNAMIC)))
retval = TRUE;
}
else
{
GDK_NOTE (DND,
g_warning ("Invalid Motif drag receiver property on window %ld\n", win));
}
XFree (info);
}
}
return retval ? win : GDK_NONE;
@ -1475,13 +1481,14 @@ motif_read_initiator_info (Window source_window,
if (!motif_drag_initiator_info)
motif_drag_initiator_info = gdk_atom_intern ("_MOTIF_DRAG_INITIATOR_INFO", FALSE);
gdk_error_trap_push ();
XGetWindowProperty (gdk_display, source_window, atom,
0, sizeof(*initiator_info), FALSE,
motif_drag_initiator_info,
&type, &format, &nitems, &bytes_after,
(guchar **)&initiator_info);
if ((format != 8) || (nitems != sizeof (MotifDragInitiatorInfo)) || (bytes_after != 0))
if (gdk_error_trap_pop () || (format != 8) || (nitems != sizeof (MotifDragInitiatorInfo)) || (bytes_after != 0))
{
g_warning ("Error reading initiator info\n");
return FALSE;
@ -2308,7 +2315,7 @@ xdnd_check_dest (Window win)
{
if ((format == 32) && (nitems == 1))
{
if (*version == 3)
if (*version >= 3)
retval = TRUE;
}
else
@ -2511,13 +2518,14 @@ xdnd_enter_filter (GdkXEvent *xev,
new_context->targets = NULL;
if (get_types)
{
gdk_error_trap_push ();
XGetWindowProperty (GDK_DRAWABLE_XDISPLAY (event->any.window),
source_window,
gdk_atom_intern ("XdndTypeList", FALSE), 0, 65536,
False, XA_ATOM, &type, &format, &nitems,
&after, (guchar **)&data);
if ((format != 32) || (type != XA_ATOM))
if (gdk_error_trap_pop () || (format != 32) || (type != XA_ATOM))
{
gdk_drag_context_unref (new_context);
return GDK_FILTER_REMOVE;
@ -2779,10 +2787,12 @@ gdk_drag_get_protocol (guint32 xid,
if (xid == gdk_root_window)
rootwin = TRUE;
gdk_error_warnings = 0;
if (!rootwin)
{
gdk_error_code = 0;
XGetWindowProperty (gdk_display, xid,
gdk_atom_intern ("ENLIGHTENMENT_DESKTOP", FALSE),
0, 0, False, AnyPropertyType,

View File

@ -134,7 +134,7 @@ gdk_font_load (const gchar *font_name)
}
GdkFont*
gdk_fontset_load (gchar *fontset_name)
gdk_fontset_load (const gchar *fontset_name)
{
GdkFont *font;
GdkFontPrivateX *private;
@ -276,7 +276,7 @@ gdk_font_id (const GdkFont *font)
}
}
gint
gboolean
gdk_font_equal (const GdkFont *fonta,
const GdkFont *fontb)
{

View File

@ -445,7 +445,7 @@ gdk_im_close (void)
}
}
gint
gboolean
gdk_im_ready (void)
{
return (xim_im != NULL);

View File

@ -73,7 +73,7 @@ gdk_input_set_source (guint32 deviceid, GdkInputSource source)
gdkdev->info.source = source;
}
gint
gboolean
gdk_input_set_mode (guint32 deviceid, GdkInputMode mode)
{
if (deviceid == GDK_CORE_POINTER)

View File

@ -42,7 +42,6 @@
#include <X11/Xlib.h>
#include <X11/Xos.h>
#include <X11/Xutil.h>
#include <X11/Xmu/WinUtil.h>
#include <X11/cursorfont.h>
#include "gdk.h"
@ -191,12 +190,12 @@ _gdk_windowing_init_check (int argc, char **argv)
}
void
gdk_set_use_xshm (gint use_xshm)
gdk_set_use_xshm (gboolean use_xshm)
{
gdk_use_xshm = use_xshm;
}
gint
gboolean
gdk_get_use_xshm (void)
{
return gdk_use_xshm;
@ -227,7 +226,7 @@ gdk_get_use_xshm (void)
gint
gdk_pointer_grab (GdkWindow * window,
gint owner_events,
gboolean owner_events,
GdkEventMask event_mask,
GdkWindow * confine_to,
GdkCursor * cursor,
@ -337,7 +336,7 @@ gdk_pointer_ungrab (guint32 time)
*--------------------------------------------------------------
*/
gint
gboolean
gdk_pointer_is_grabbed (void)
{
return gdk_xgrab_window != NULL;
@ -365,7 +364,7 @@ gdk_pointer_is_grabbed (void)
gint
gdk_keyboard_grab (GdkWindow * window,
gint owner_events,
gboolean owner_events,
guint32 time)
{
g_return_val_if_fail (window != NULL, 0);

View File

@ -212,21 +212,23 @@ gdk_pixmap_seek_string (FILE *infile,
{
char instr[1024];
while (!feof (infile))
while (1)
{
fscanf (infile, "%1023s", instr);
if (fscanf (infile, "%1023s", instr) != 1)
return FALSE;
if (skip_comments == TRUE && strcmp (instr, "/*") == 0)
{
fscanf (infile, "%1023s", instr);
while (!feof (infile) && strcmp (instr, "*/") != 0)
fscanf (infile, "%1023s", instr);
fscanf(infile, "%1023s", instr);
do
{
if (fscanf (infile, "%1023s", instr) != 1)
return FALSE;
}
while (strcmp (instr, "*/") != 0);
}
if (strcmp (instr, str)==0)
else if (strcmp (instr, str) == 0)
return TRUE;
}
return FALSE;
}
static gint

View File

@ -91,7 +91,7 @@ gdk_atom_name (GdkAtom atom)
}
}
gint
gboolean
gdk_property_get (GdkWindow *window,
GdkAtom property,
GdkAtom type,
@ -190,13 +190,13 @@ gdk_property_get (GdkWindow *window,
}
void
gdk_property_change (GdkWindow *window,
GdkAtom property,
GdkAtom type,
gint format,
GdkPropMode mode,
guchar *data,
gint nelements)
gdk_property_change (GdkWindow *window,
GdkAtom property,
GdkAtom type,
gint format,
GdkPropMode mode,
const guchar *data,
gint nelements)
{
Display *xdisplay;
Window xwindow;
@ -219,7 +219,7 @@ gdk_property_change (GdkWindow *window,
}
XChangeProperty (xdisplay, xwindow, property, type,
format, mode, data, nelements);
format, mode, (guchar *)data, nelements);
}
void

View File

@ -34,11 +34,11 @@
#include "gdkx.h"
gint
gboolean
gdk_selection_owner_set (GdkWindow *owner,
GdkAtom selection,
guint32 time,
gint send_event)
gboolean send_event)
{
Display *xdisplay;
Window xwindow;
@ -187,9 +187,11 @@ gdk_selection_send_notify (guint32 requestor,
}
gint
gdk_text_property_to_text_list (GdkAtom encoding, gint format,
guchar *text, gint length,
gchar ***list)
gdk_text_property_to_text_list (GdkAtom encoding,
gint format,
const guchar *text,
gint length,
gchar ***list)
{
XTextProperty property;
gint count = 0;
@ -198,7 +200,7 @@ gdk_text_property_to_text_list (GdkAtom encoding, gint format,
if (!list)
return 0;
property.value = text;
property.value = (guchar *)text;
property.encoding = encoding;
property.format = format;
property.nitems = length;
@ -220,15 +222,17 @@ gdk_free_text_list (gchar **list)
}
gint
gdk_string_to_compound_text (gchar *str,
GdkAtom *encoding, gint *format,
guchar **ctext, gint *length)
gdk_string_to_compound_text (const gchar *str,
GdkAtom *encoding,
gint *format,
guchar **ctext,
gint *length)
{
gint res;
XTextProperty property;
res = XmbTextListToTextProperty (GDK_DISPLAY(),
&str, 1, XCompoundTextStyle,
(char **)&str, 1, XCompoundTextStyle,
&property);
if (res != Success)
{

View File

@ -1069,7 +1069,7 @@ gdk_window_set_background (GdkWindow *window,
void
gdk_window_set_back_pixmap (GdkWindow *window,
GdkPixmap *pixmap,
gint parent_relative)
gboolean parent_relative)
{
Pixmap xpixmap;
@ -1643,8 +1643,8 @@ gdk_window_set_icon (GdkWindow *window,
}
void
gdk_window_set_icon_name (GdkWindow *window,
gchar * name)
gdk_window_set_icon_name (GdkWindow *window,
const gchar *name)
{
XTextProperty property;
gint res;

View File

@ -355,7 +355,7 @@ handle_claim_device(GxidClaimDevice *msg)
{
/* FIXME: this is a bit improper. We probably should do this only
when a window is first claimed. But we might be fooled if
an old client died without releasing its windows. So until
an old client died without releasing it's windows. So until
we look for client-window closings, do it here
(We do look for closings now...)

View File

@ -350,15 +350,20 @@ $(OBJECTS): OLD_STAMP # this is our oldest-source-stamp
gtk.defs gtkmarshal.h gtktypebuiltins.h: # never add deps here
test -f "$(srcdir)/$@" || touch $(srcdir)/$@
# normal autogeneration rules
stamp-gtk.defs: @REBUILD@ makeenums.pl gtk.defs gtk-boxed.defs $(gtk_public_h_sources) $(gdk_headers)
# all autogenerated files need to generated in the srcdir,
# so old versions get remade and are not confused with newer
# versions in the build dir. thus a development setup requires
# srcdir to be writable, passing --disable-rebuilds to
# ../configure will supress all autogeneration rules.
$(srcdir)/stamp-gtk.defs: @REBUILD@ makeenums.pl gtk.defs gtk-boxed.defs $(gtk_public_h_sources) $(gdk_headers)
cd $(srcdir) \
&& $(PERL) makeenums.pl defs $(gtk_public_h_sources) $(gdk_headers) > xgen-gdef \
&& cat gtk-boxed.defs >> xgen-gdef \
&& (cmp -s xgen-gdef gtk.defs || cp xgen-gdef gtk.defs) \
&& rm -f xgen-gdef \
&& echo timestamp > $@
gtkmarshal.c: stamp-gtkmarshal.h
gtkmarshal.c stamp-gtkmarshal.h: @REBUILD@ genmarshal.pl gtkmarshal.list gtkmarshal.h
&& echo timestamp > $(@F)
$(srcdir)/gtkmarshal.c: stamp-gtkmarshal.h
$(srcdir)/gtkmarshal.c $(srcdir)/stamp-gtkmarshal.h: @REBUILD@ genmarshal.pl gtkmarshal.list gtkmarshal.h
cd $(srcdir) \
&& $(PERL) genmarshal.pl gtkmarshal.list xgen-gmh xgen-gmc \
&& (test -z "$(INDENT)" || $(INDENT) xgen-gmh) \
@ -367,26 +372,26 @@ gtkmarshal.c stamp-gtkmarshal.h: @REBUILD@ genmarshal.pl gtkmarshal.list gtkmars
&& (cmp -s xgen-gmh gtkmarshal.h || cp xgen-gmh gtkmarshal.h) \
&& rm -f xgen-gmh xgen-gmc xgen-gmh~ xgen-gmc~ \
&& echo timestamp > stamp-gtkmarshal.h
stamp-gtktypebuiltins.h: @REBUILD@ maketypes.awk stamp-gtk.defs gtktypebuiltins.h
$(srcdir)/stamp-gtktypebuiltins.h: @REBUILD@ maketypes.awk stamp-gtk.defs gtktypebuiltins.h
cd $(srcdir) \
&& $(AWK) -f maketypes.awk gtk.defs macros > xgen-gtbh \
&& (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h) \
&& rm -f xgen-gtbh \
&& echo timestamp > $@
gtktypebuiltins_vars.c: @REBUILD@ maketypes.awk stamp-gtk.defs
&& echo timestamp > $(@F)
$(srcdir)/gtktypebuiltins_vars.c: @REBUILD@ maketypes.awk stamp-gtk.defs
cd $(srcdir) \
&& $(AWK) -f maketypes.awk gtk.defs variables > xgen-gtbvc \
&& cp xgen-gtbvc $@ \
&& cp xgen-gtbvc $(@F) \
&& rm -f xgen-gtbvc
gtktypebuiltins_ids.c: @REBUILD@ maketypes.awk stamp-gtk.defs
$(srcdir)/gtktypebuiltins_ids.c: @REBUILD@ maketypes.awk stamp-gtk.defs
cd $(srcdir) \
&& $(AWK) -f maketypes.awk gtk.defs entries > xgen-gtbic \
&& cp xgen-gtbic $@ \
&& cp xgen-gtbic $(@F) \
&& rm -f xgen-gtbic
gtktypebuiltins_evals.c: @REBUILD@ makeenums.pl $(gtk_public_h_sources) $(gdk_headers)
$(srcdir)/gtktypebuiltins_evals.c: @REBUILD@ makeenums.pl $(gtk_public_h_sources) $(gdk_headers)
cd $(srcdir) \
&& $(PERL) makeenums.pl arrays $(gtk_public_h_sources) $(gdk_headers) > xgen-gtbec \
&& cp xgen-gtbec $@ \
&& cp xgen-gtbec $(@F) \
&& rm -f xgen-gtbec
@ -478,7 +483,7 @@ EXTRA_DIST += @STRIP_BEGIN@ \
testgtk.1 \
testgtkrc \
testgtkrc2 \
circles.xbm \
circles.xbm \
line-arrow.xbm \
line-wrap.xbm \
tree_plus.xbm \

View File

@ -8,7 +8,7 @@
"ULONG"=>"gulong", "FLOAT"=>"gfloat",
"DOUBLE"=>"gdouble", "STRING"=>"gpointer",
"ENUM"=>"gint", "FLAGS"=>"gint",
"BOXED"=>"gpointer", "FOREIGN"=>"gpointer",
"BOXED"=>"gpointer",
"POINTER"=>"gpointer",
"OBJECT"=>"gpointer",

View File

@ -715,7 +715,7 @@ gtk_accelerator_valid (guint keyval,
GDK_BackSpace, GDK_Delete, GDK_KP_Delete,
GDK_Shift_L, GDK_Shift_R, GDK_Shift_Lock, GDK_Caps_Lock, GDK_ISO_Lock,
GDK_Control_L, GDK_Control_R, GDK_Meta_L, GDK_Meta_R,
GDK_Super_L, GDK_Super_R, GDK_Hyper_L, GDK_Hyper_R,
GDK_Alt_L, GDK_Alt_R, GDK_Super_L, GDK_Super_R, GDK_Hyper_L, GDK_Hyper_R,
GDK_Mode_switch, GDK_Num_Lock, GDK_Multi_key,
GDK_Scroll_Lock, GDK_Sys_Req,
GDK_Up, GDK_Down, GDK_Left, GDK_Right, GDK_Tab, GDK_ISO_Left_Tab,

View File

@ -158,14 +158,6 @@ guint gtk_accel_group_create_add (GtkType class_type,
guint gtk_accel_group_create_remove (GtkType class_type,
GtkSignalRunType signal_flags,
guint handler_offset);
void gtk_accel_group_marshal_add (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
GtkArg *args);
void gtk_accel_group_marshal_remove (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
GtkArg *args);
/* Miscellaneous (internal)
*/

View File

@ -55,7 +55,7 @@ struct _GtkAspectFrame
gfloat xalign;
gfloat yalign;
gfloat ratio;
gint obey_child;
gboolean obey_child;
GtkAllocation center_allocation;
};
@ -71,7 +71,7 @@ GtkWidget* gtk_aspect_frame_new (const gchar *label,
gfloat xalign,
gfloat yalign,
gfloat ratio,
gint obey_child);
gboolean obey_child);
void gtk_aspect_frame_set (GtkAspectFrame *aspect_frame,
gfloat xalign,
gfloat yalign,

View File

@ -23,7 +23,7 @@
*/
/*
* Modified by the GTK+ Team and others 1997-1999. See the AUTHORS
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
@ -512,7 +512,7 @@ column_from_x (GtkCalendar *calendar,
x_left = left_x_for_column (calendar, c);
x_right = x_left + GTK_CALENDAR_PRIVATE_DATA (calendar)->day_width;
if (event_x > x_left && event_x < x_right)
if (event_x >= x_left && event_x < x_right)
{
column = c;
break;
@ -549,7 +549,7 @@ row_from_y (GtkCalendar *calendar,
y_top = top_y_for_row (calendar, r);
y_bottom = y_top + height;
if (event_y > y_top && event_y < y_bottom)
if (event_y >= y_top && event_y < y_bottom)
{
row = r;
break;
@ -796,6 +796,10 @@ gtk_calendar_main_button (GtkWidget *widget,
row = row_from_y (calendar, y);
col = column_from_x (calendar, x);
/* If row or column isn't found, just return. */
if (row == -1 || col == -1)
return;
day_month = calendar->day_month[row][col];

View File

@ -122,6 +122,12 @@ LIST_WIDTH (GtkCList * clist)
return 0;
}
/* returns the GList item for the nth row */
#define ROW_ELEMENT(clist, row) (((row) == (clist)->rows - 1) ? \
(clist)->row_list_end : \
g_list_nth ((clist)->row_list, (row)))
#define GTK_CLIST_CLASS_FW(_widget_) GTK_CLIST_CLASS (((GtkObject*) (_widget_))->klass)
/* redraw the list if it's not frozen */
@ -2174,7 +2180,7 @@ gtk_clist_get_cell_type (GtkCList *clist,
if (column < 0 || column >= clist->columns)
return -1;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
return clist_row->cell[column].type;
}
@ -2195,7 +2201,7 @@ gtk_clist_set_text (GtkCList *clist,
if (column < 0 || column >= clist->columns)
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
/* if text is null, then the cell is empty */
GTK_CLIST_CLASS_FW (clist)->set_cell_contents
@ -2225,7 +2231,7 @@ gtk_clist_get_text (GtkCList *clist,
if (column < 0 || column >= clist->columns)
return 0;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (clist_row->cell[column].type != GTK_CELL_TEXT)
return 0;
@ -2253,7 +2259,7 @@ gtk_clist_set_pixmap (GtkCList *clist,
if (column < 0 || column >= clist->columns)
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
gdk_pixmap_ref (pixmap);
@ -2287,7 +2293,7 @@ gtk_clist_get_pixmap (GtkCList *clist,
if (column < 0 || column >= clist->columns)
return 0;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (clist_row->cell[column].type != GTK_CELL_PIXMAP)
return 0;
@ -2321,7 +2327,7 @@ gtk_clist_set_pixtext (GtkCList *clist,
if (column < 0 || column >= clist->columns)
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
gdk_pixmap_ref (pixmap);
if (mask) gdk_pixmap_ref (mask);
@ -2355,7 +2361,7 @@ gtk_clist_get_pixtext (GtkCList *clist,
if (column < 0 || column >= clist->columns)
return 0;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (clist_row->cell[column].type != GTK_CELL_PIXTEXT)
return 0;
@ -2391,7 +2397,7 @@ gtk_clist_set_shift (GtkCList *clist,
if (column < 0 || column >= clist->columns)
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (clist->column[column].auto_resize &&
!GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))
@ -2729,7 +2735,7 @@ real_remove_row (GtkCList *clist,
was_selected = 0;
/* get the row we're going to delete */
list = g_list_nth (clist->row_list, row);
list = ROW_ELEMENT (clist, row);
g_assert (list != NULL);
clist_row = list->data;
@ -2856,7 +2862,7 @@ real_row_move (GtkCList *clist,
gtk_clist_freeze (clist);
/* unlink source row */
clist_row = g_list_nth_data (clist->row_list, source_row);
clist_row = ROW_ELEMENT (clist, source_row)->data;
if (source_row == clist->rows - 1)
clist->row_list_end = clist->row_list_end->prev;
clist->row_list = g_list_remove (clist->row_list, clist_row);
@ -3013,7 +3019,11 @@ gtk_clist_set_row_data_full (GtkCList *clist,
if (row < 0 || row > (clist->rows - 1))
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (clist_row->destroy)
clist_row->destroy (clist_row->data);
clist_row->data = data;
clist_row->destroy = destroy;
}
@ -3030,7 +3040,7 @@ gtk_clist_get_row_data (GtkCList *clist,
if (row < 0 || row > (clist->rows - 1))
return NULL;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
return clist_row->data;
}
@ -3139,7 +3149,7 @@ gtk_clist_set_foreground (GtkCList *clist,
if (row < 0 || row >= clist->rows)
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (color)
{
@ -3169,7 +3179,7 @@ gtk_clist_set_background (GtkCList *clist,
if (row < 0 || row >= clist->rows)
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (color)
{
@ -3210,7 +3220,7 @@ gtk_clist_set_cell_style (GtkCList *clist,
if (column < 0 || column >= clist->columns)
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (clist_row->cell[column].style == style)
return;
@ -3262,7 +3272,7 @@ gtk_clist_get_cell_style (GtkCList *clist,
if (row < 0 || row >= clist->rows || column < 0 || column >= clist->columns)
return NULL;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
return clist_row->cell[column].style;
}
@ -3283,7 +3293,7 @@ gtk_clist_set_row_style (GtkCList *clist,
if (row < 0 || row >= clist->rows)
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (clist_row->style == style)
return;
@ -3345,7 +3355,7 @@ gtk_clist_get_row_style (GtkCList *clist,
if (row < 0 || row >= clist->rows)
return NULL;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
return clist_row->style;
}
@ -3372,7 +3382,7 @@ gtk_clist_set_selectable (GtkCList *clist,
if (row < 0 || row >= clist->rows)
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (selectable == clist_row->selectable)
return;
@ -3403,7 +3413,7 @@ gtk_clist_get_selectable (GtkCList *clist,
if (row < 0 || row >= clist->rows)
return FALSE;
return GTK_CLIST_ROW (g_list_nth (clist->row_list, row))->selectable;
return GTK_CLIST_ROW (ROW_ELEMENT (clist, row))->selectable;
}
void
@ -3510,7 +3520,7 @@ toggle_row (GtkCList *clist,
case GTK_SELECTION_EXTENDED:
case GTK_SELECTION_MULTIPLE:
case GTK_SELECTION_SINGLE:
clist_row = g_list_nth (clist->row_list, row)->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (!clist_row)
return;
@ -3534,7 +3544,7 @@ fake_toggle_row (GtkCList *clist,
{
GList *work;
work = g_list_nth (clist->row_list, row);
work = ROW_ELEMENT (clist, row);
if (!work || !GTK_CLIST_ROW (work)->selectable)
return;
@ -3659,7 +3669,7 @@ real_select_row (GtkCList *clist,
break;
}
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (clist_row->state != GTK_STATE_NORMAL || !clist_row->selectable)
return;
@ -3694,7 +3704,7 @@ real_unselect_row (GtkCList *clist,
if (row < 0 || row > (clist->rows - 1))
return;
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
if (clist_row->state == GTK_STATE_SELECTED)
{
@ -3816,7 +3826,7 @@ fake_unselect_all (GtkCList *clist,
GList *work;
gint i;
if (row >= 0 && (work = g_list_nth (clist->row_list, row)))
if (row >= 0 && (work = ROW_ELEMENT (clist, row)))
{
if (GTK_CLIST_ROW (work)->state == GTK_STATE_NORMAL &&
GTK_CLIST_ROW (work)->selectable)
@ -3833,7 +3843,7 @@ fake_unselect_all (GtkCList *clist,
clist->undo_selection = clist->selection;
clist->selection = NULL;
clist->selection_end = NULL;
for (list = clist->undo_selection; list; list = list->next)
{
if ((i = GPOINTER_TO_INT (list->data)) == row ||
@ -3860,8 +3870,7 @@ real_undo_selection (GtkCList *clist)
clist->selection_mode != GTK_SELECTION_EXTENDED)
return;
if (clist->anchor >= 0)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
if (!(clist->undo_selection || clist->undo_unselection))
{
@ -3943,7 +3952,10 @@ resync_selection (GtkCList *clist,
GList *list;
GtkCListRow *clist_row;
if (clist->anchor < 0)
if (clist->selection_mode != GTK_SELECTION_EXTENDED)
return;
if (clist->anchor < 0 || clist->drag_pos < 0)
return;
gtk_clist_freeze (clist);
@ -4221,10 +4233,9 @@ end_selection (GtkCList *clist)
g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CLIST (clist));
if ((gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_FOCUS(clist)) ||
clist->anchor == -1)
if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_FOCUS(clist))
return;
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
}
@ -4281,8 +4292,7 @@ sync_selection (GtkCList *clist,
clist->focus_row = clist->rows - 1;
}
if (clist->selection_mode == GTK_SELECTION_BROWSE && clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -4687,9 +4697,7 @@ gtk_clist_unmap (GtkWidget *widget)
{
remove_grab (clist);
if (clist->anchor != -1 &&
clist->selection_mode == GTK_SELECTION_EXTENDED)
GTK_CLIST_CLASS_FW (widget)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (widget)->resync_selection (clist, NULL);
clist->click_cell.row = -1;
clist->click_cell.column = -1;
@ -4989,9 +4997,12 @@ gtk_clist_button_press (GtkWidget *widget,
case GTK_SELECTION_SINGLE:
case GTK_SELECTION_MULTIPLE:
if (event->type != GDK_BUTTON_PRESS)
gtk_signal_emit (GTK_OBJECT (clist),
clist_signals[SELECT_ROW],
row, column, event);
{
gtk_signal_emit (GTK_OBJECT (clist),
clist_signals[SELECT_ROW],
row, column, event);
clist->anchor = -1;
}
else
clist->anchor = row;
break;
@ -5661,7 +5672,7 @@ draw_row (GtkCList *clist,
/* if the function is passed the pointer to the row instead of null,
* it avoids this expensive lookup */
if (!clist_row)
clist_row = (g_list_nth (clist->row_list, row))->data;
clist_row = ROW_ELEMENT (clist, row)->data;
/* rectangle of the entire row */
row_rectangle.x = 0;
@ -5675,7 +5686,7 @@ draw_row (GtkCList *clist,
cell_rectangle.width = row_rectangle.width;
cell_rectangle.height = CELL_SPACING;
/* rectangle used to clip drawing operations, it's y and height
/* rectangle used to clip drawing operations, its y and height
* positions only need to be set once, so we set them once here.
* the x and width are set withing the drawing loop below once per
* column */
@ -5938,7 +5949,7 @@ draw_rows (GtkCList *clist,
if (clist->rows == first_row)
first_row--;
list = g_list_nth (clist->row_list, first_row);
list = ROW_ELEMENT (clist, first_row);
i = first_row;
while (list)
{
@ -6682,8 +6693,7 @@ gtk_clist_focus_out (GtkWidget *widget,
clist = GTK_CLIST (widget);
if (clist->anchor != -1 && clist->selection_mode == GTK_SELECTION_EXTENDED)
GTK_CLIST_CLASS_FW (widget)->resync_selection (clist, (GdkEvent *) event);
GTK_CLIST_CLASS_FW (widget)->resync_selection (clist, (GdkEvent *) event);
return FALSE;
}
@ -7877,9 +7887,7 @@ gtk_clist_set_button_actions (GtkCList *clist,
clist->drag_button = 0;
}
if (clist->anchor >= 0 &&
clist->selection_mode == GTK_SELECTION_EXTENDED)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
clist->button_actions[button] = button_actions;
}

View File

@ -2055,8 +2055,7 @@ gtk_ctree_link (GtkCTree *ctree,
if (update_focus_row && clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -2201,8 +2200,7 @@ gtk_ctree_unlink (GtkCTree *ctree,
if (update_focus_row && clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -2384,8 +2382,7 @@ real_tree_move (GtkCTree *ctree,
if (clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -2501,8 +2498,7 @@ real_tree_expand (GtkCTree *ctree,
clist = GTK_CLIST (ctree);
if (clist->selection_mode == GTK_SELECTION_EXTENDED && clist->anchor >= 0)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CTREE_ROW (node)->expanded = TRUE;
level = GTK_CTREE_ROW (node)->level;
@ -2647,8 +2643,7 @@ real_tree_collapse (GtkCTree *ctree,
clist = GTK_CLIST (ctree);
if (clist->selection_mode == GTK_SELECTION_EXTENDED && clist->anchor >= 0)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CTREE_ROW (node)->expanded = FALSE;
level = GTK_CTREE_ROW (node)->level;
@ -3248,7 +3243,15 @@ row_delete (GtkCTree *ctree,
}
if (ctree_row->row.destroy)
ctree_row->row.destroy (ctree_row->row.data);
{
GtkDestroyNotify dnotify = ctree_row->row.destroy;
gpointer ddata = ctree_row->row.data;
ctree_row->row.destroy = NULL;
ctree_row->row.data = NULL;
dnotify (ddata);
}
g_mem_chunk_free (clist->cell_mem_chunk, ctree_row->row.cell);
g_mem_chunk_free (clist->row_mem_chunk, ctree_row);
@ -4571,8 +4574,7 @@ gtk_ctree_real_select_recursive (GtkCTree *ctree,
if (clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -5180,12 +5182,21 @@ gtk_ctree_node_set_row_data_full (GtkCTree *ctree,
gpointer data,
GtkDestroyNotify destroy)
{
GtkDestroyNotify dnotify;
gpointer ddata;
g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
dnotify = GTK_CTREE_ROW (node)->row.destroy;
ddata = GTK_CTREE_ROW (node)->row.data;
GTK_CTREE_ROW (node)->row.data = data;
GTK_CTREE_ROW (node)->row.destroy = destroy;
if (dnotify)
dnotify (ddata);
}
gpointer
@ -5501,8 +5512,7 @@ gtk_ctree_sort_recursive (GtkCTree *ctree,
if (clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -5550,8 +5560,7 @@ gtk_ctree_sort_node (GtkCTree *ctree,
if (clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
@ -5633,7 +5642,10 @@ resync_selection (GtkCList *clist, GdkEvent *event)
g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
if (clist->anchor < 0)
if (clist->selection_mode != GTK_SELECTION_EXTENDED)
return;
if (clist->anchor < 0 || clist->drag_pos < 0)
return;
ctree = GTK_CTREE (clist);
@ -6108,7 +6120,6 @@ gtk_ctree_drag_data_received (GtkWidget *widget,
case GTK_CLIST_DRAG_NONE:
break;
case GTK_CLIST_DRAG_INTO:
g_print ("drag into\n");
if (check_drag (ctree, source_node, dest_node,
dest_info.insert_pos))
gtk_ctree_move (ctree, source_node, dest_node,
@ -6116,7 +6127,6 @@ gtk_ctree_drag_data_received (GtkWidget *widget,
g_dataset_remove_data (context, "gtk-clist-drag-dest");
break;
case GTK_CLIST_DRAG_BEFORE:
g_print ("drag before\n");
if (check_drag (ctree, source_node, dest_node,
dest_info.insert_pos))
gtk_ctree_move (ctree, source_node,
@ -6124,7 +6134,6 @@ gtk_ctree_drag_data_received (GtkWidget *widget,
g_dataset_remove_data (context, "gtk-clist-drag-dest");
break;
case GTK_CLIST_DRAG_AFTER:
g_print ("drag after\n");
if (check_drag (ctree, source_node, dest_node,
dest_info.insert_pos))
gtk_ctree_move (ctree, source_node,

View File

@ -553,6 +553,17 @@ gtk_drag_get_event_actions (GdkEvent *event,
*suggested_action = GDK_ACTION_LINK;
}
}
else
{
*possible_actions = actions;
if (actions & GDK_ACTION_COPY)
*suggested_action = GDK_ACTION_COPY;
else if (actions & GDK_ACTION_MOVE)
*suggested_action = GDK_ACTION_MOVE;
else if (actions & GDK_ACTION_LINK)
*suggested_action = GDK_ACTION_LINK;
}
return;
}
@ -1680,13 +1691,12 @@ gtk_drag_begin (GtkWidget *widget,
gtk_drag_get_event_actions (event, info->button, actions,
&suggested_action, &possible_actions);
if (event)
info->cursor = gtk_drag_get_cursor (suggested_action);
info->cursor = gtk_drag_get_cursor (suggested_action);
/* Set cur_x, cur_y here so if the "drag_begin" signal shows
* the drag icon, it will be in the right place
*/
if (event->type == GDK_MOTION_NOTIFY)
if (event && event->type == GDK_MOTION_NOTIFY)
{
info->cur_x = event->motion.x_root;
info->cur_y = event->motion.y_root;
@ -1703,7 +1713,7 @@ gtk_drag_begin (GtkWidget *widget,
gtk_signal_emit_by_name (GTK_OBJECT (widget), "drag_begin",
info->context);
if (event->type == GDK_MOTION_NOTIFY)
if (event && event->type == GDK_MOTION_NOTIFY)
gtk_drag_motion_cb (info->ipc_widget, (GdkEventMotion *)event, info);
info->start_x = info->cur_x;

View File

@ -36,6 +36,8 @@
#define MIN_ENTRY_WIDTH 150
#define DRAW_TIMEOUT 20
/* If you are going to change this, see the note in entry_adjust_scroll */
#define INNER_BORDER 2
enum {
@ -907,6 +909,8 @@ gtk_entry_button_press (GtkWidget *widget,
default:
break;
}
return TRUE;
}
else if (event->type == GDK_BUTTON_PRESS)
{
@ -930,6 +934,8 @@ gtk_entry_button_press (GtkWidget *widget,
if (gdk_selection_owner_get (GDK_SELECTION_PRIMARY) == widget->window)
gtk_selection_owner_set (NULL, GDK_SELECTION_PRIMARY, event->time);
}
return TRUE;
}
return FALSE;
@ -973,10 +979,14 @@ gtk_entry_button_release (GtkWidget *widget,
if (gdk_selection_owner_get (GDK_SELECTION_PRIMARY) == widget->window)
gtk_selection_owner_set (NULL, GDK_SELECTION_PRIMARY, event->time);
}
return TRUE;
}
else if (event->button == 3)
{
gtk_grab_remove (widget);
return TRUE;
}
return FALSE;
@ -1007,7 +1017,7 @@ gtk_entry_motion_notify (GtkWidget *widget,
entry_adjust_scroll (entry);
gtk_entry_queue_draw (entry);
return FALSE;
return TRUE;
}
static gint
@ -1580,6 +1590,7 @@ entry_adjust_scroll (GtkEntry *entry)
return;
gdk_window_get_size (entry->text_area, &text_area_width, NULL);
text_area_width -= 2 * INNER_BORDER;
/* Display as much text as we can */
max_offset = MAX(0, entry->char_offset[entry->text_length] - text_area_width);
@ -1587,14 +1598,23 @@ entry_adjust_scroll (GtkEntry *entry)
if (entry->scroll_offset > max_offset)
entry->scroll_offset = max_offset;
/* And make sure cursor is on screen */
/* And make sure cursor is on screen. Note that the cursor is
* actually drawn one pixel into the INNER_BORDER space on
* the right, when the scroll is at the utmost right. This
* looks better to to me than confining the cursor inside the
* border entirely, though it means that the cursor gets one
* pixel closer to the the edge of the widget on the right than
* on the left. This might need changing if one changed
* INNER_BORDER from 2 to 1, as one would do on a
* small-screen-real-estate display.
*/
xoffset = entry->char_offset[GTK_EDITABLE(entry)->current_pos];
xoffset -= entry->scroll_offset;
if (xoffset < 0)
entry->scroll_offset += xoffset;
else if (xoffset > text_area_width)
entry->scroll_offset += xoffset - text_area_width + 1;
entry->scroll_offset += xoffset - text_area_width;
gtk_widget_queue_draw (GTK_WIDGET (entry));
}

View File

@ -1998,20 +1998,6 @@ open_ref_dir(gchar* text_to_complete,
if (FALSE)
;
#endif
else if (g_path_is_absolute (text_to_complete) || !cmpl_state->reference_dir)
{
char *root;
int rootlen;
rootlen = g_path_skip_root (text_to_complete) - text_to_complete;
root = g_malloc (rootlen + 1);
memcpy (root, text_to_complete, rootlen);
root[rootlen] = '\0';
new_dir = open_dir (root, cmpl_state);
if (new_dir)
*remaining_text = g_path_skip_root (text_to_complete);
g_free (root);
}
#ifdef HAVE_PWD_H
else if (text_to_complete[0] == '~')
{
@ -2030,6 +2016,45 @@ open_ref_dir(gchar* text_to_complete,
}
}
#endif
else if (g_path_is_absolute (text_to_complete) || !cmpl_state->reference_dir)
{
gchar *tmp = g_strdup(text_to_complete);
gchar *p;
p = tmp;
while (*p && *p != '*' && *p != '?')
p++;
*p = '\0';
p = strrchr(tmp, G_DIR_SEPARATOR);
if (p)
{
if (p == tmp)
p++;
*p = '\0';
new_dir = open_dir(tmp, cmpl_state);
if(new_dir)
*remaining_text = text_to_complete +
((p == tmp + 1) ? (p - tmp) : (p + 1 - tmp));
}
else
{
/* If no possible candidates, use the cwd */
gchar *curdir = g_get_current_dir ();
new_dir = open_dir(curdir, cmpl_state);
if (new_dir)
*remaining_text = text_to_complete;
g_free (curdir);
}
g_free (tmp);
}
else
{
*remaining_text = text_to_complete;

View File

@ -1760,6 +1760,7 @@ gtk_font_selection_load_font (GtkFontSelection *fontsel)
{
GdkFont *font;
gchar *fontname, *label_text;
XFontStruct *xfs;
if (fontsel->font)
gdk_font_unref (fontsel->font);
@ -1777,6 +1778,16 @@ gtk_font_selection_load_font (GtkFontSelection *fontsel)
#endif
#ifndef GDK_WINDOWING_WIN32
font = gdk_font_load (fontname);
xfs = GDK_FONT_XFONT(font);
if (xfs->min_byte1 != 0 || xfs->max_byte1 != 0)
{
gchar *tmp_name;
gdk_font_unref (font);
tmp_name = g_strconcat (fontname, ",*", NULL);
font = gdk_fontset_load (tmp_name);
g_free(tmp_name);
}
#else
/* Load as a fontset so that gtkentry uses wide chars for it */
font = gdk_fontset_load (fontname);
@ -1927,30 +1938,41 @@ gtk_font_selection_show_font_info (GtkFontSelection *fontsel)
#ifdef GDK_WINDOWING_X11
if (fontsel->font)
{
font_atom = XInternAtom(GDK_DISPLAY(), "FONT", True);
if (font_atom != None)
font_atom = gdk_atom_intern ("FONT", FALSE);
if (fontsel->font->type == GDK_FONT_FONTSET)
{
XFontStruct **font_structs;
gint num_fonts;
gchar **font_names;
num_fonts = XFontsOfFontSet (GDK_FONT_XFONT(fontsel->font),
&font_structs, &font_names);
status = XGetFontProperty(font_structs[0], font_atom, &atom);
}
else
{
status = XGetFontProperty(GDK_FONT_XFONT(fontsel->font), font_atom,
&atom);
if (status == True)
}
if (status == True)
{
name = gdk_atom_name (atom);
gtk_entry_set_text (GTK_ENTRY (fontsel->actual_font_name), name);
for (i = 0; i < GTK_XLFD_NUM_FIELDS; i++)
{
name = XGetAtomName(GDK_DISPLAY(), atom);
gtk_entry_set_text(GTK_ENTRY(fontsel->actual_font_name), name);
for (i = 0; i < GTK_XLFD_NUM_FIELDS; i++)
{
field = gtk_font_selection_get_xlfd_field (name, i,
field_buffer);
if (i == XLFD_SLANT)
field = gtk_font_selection_expand_slant_code(field);
else if (i == XLFD_SPACING)
field = gtk_font_selection_expand_spacing_code(field);
gtk_clist_set_text(GTK_CLIST(fontsel->info_clist), i, 2,
field ? field : "");
}
shown_actual_fields = TRUE;
XFree(name);
field = gtk_font_selection_get_xlfd_field (name, i, field_buffer);
if (i == XLFD_SLANT)
field = gtk_font_selection_expand_slant_code(field);
else if (i == XLFD_SPACING)
field = gtk_font_selection_expand_spacing_code(field);
gtk_clist_set_text(GTK_CLIST(fontsel->info_clist), i, 2,
field ? field : "");
}
shown_actual_fields = TRUE;
g_free (name);
}
}
#elif defined (GDK_WINDOWING_WIN32)

View File

@ -149,17 +149,16 @@ gtk_hpaned_size_allocate (GtkWidget *widget,
GtkRequisition child2_requisition;
GtkAllocation child1_allocation;
GtkAllocation child2_allocation;
guint16 border_width;
gint border_width;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_HPANED (widget));
g_return_if_fail (allocation != NULL);
widget->allocation = *allocation;
paned = GTK_PANED (widget);
border_width = GTK_CONTAINER (paned)->border_width;
if (paned->child1)
gtk_widget_get_child_requisition (paned->child1, &child1_requisition);
else
@ -171,9 +170,9 @@ gtk_hpaned_size_allocate (GtkWidget *widget,
child2_requisition.width = 0;
gtk_paned_compute_position (paned,
widget->allocation.width
- paned->handle_size
- 2 * border_width,
MAX (1, (gint) widget->allocation.width
- (gint) paned->handle_size
- 2 * border_width),
child1_requisition.width,
child2_requisition.width);
@ -182,7 +181,7 @@ gtk_hpaned_size_allocate (GtkWidget *widget,
paned->handle_xpos = paned->child1_size + border_width;
paned->handle_ypos = border_width;
paned->handle_width = paned->handle_size;
paned->handle_height = widget->allocation.height - 2 * border_width;
paned->handle_height = MAX (1, (gint) widget->allocation.height - 2 * border_width);
if (GTK_WIDGET_REALIZED (widget))
{
@ -202,7 +201,7 @@ gtk_hpaned_size_allocate (GtkWidget *widget,
child1_allocation.width = paned->child1_size;
child1_allocation.x = border_width;
child1_allocation.y = child2_allocation.y = border_width;
child2_allocation.x = child1_allocation.x + child1_allocation.width + paned->handle_width;
child2_allocation.width = MAX (1, (gint) allocation->width - child2_allocation.x - border_width);

View File

@ -476,6 +476,8 @@ gtk_hscale_pos_background (GtkHScale *hscale,
*h -= theight;
break;
}
*w = MAX (*w, 0);
*h = MAX (*h, 0);
}
static void

View File

@ -722,8 +722,8 @@ gtk_main_do_event (GdkEvent *event)
case GDK_DELETE:
gtk_widget_ref (event_widget);
if (!gtk_widget_event (event_widget, event) &&
!GTK_OBJECT_DESTROYED (event_widget))
if ((!grabs || gtk_widget_get_toplevel (grabs->data) == event_widget) &&
!gtk_widget_event (event_widget, event))
gtk_widget_destroy (event_widget);
gtk_widget_unref (event_widget);
break;

View File

@ -147,7 +147,6 @@ void gtk_menu_detach (GtkMenu *menu);
*/
GtkWidget* gtk_menu_get_attach_widget (GtkMenu *menu);
void gtk_menu_detach (GtkMenu *menu);
void gtk_menu_set_tearoff_state (GtkMenu *menu,
gboolean torn_off);

View File

@ -494,7 +494,17 @@ gtk_menu_shell_button_release (GtkWidget *widget,
}
}
else
deactivate = FALSE;
{
/* We only ever want to prevent deactivation on the first
* press/release. Setting the time to zero is a bit of a
* hack, since we could be being triggered in the first
* few fractions of a second after a server time wraparound.
* the chances of that happening are ~1/10^6, without
* serious harm if we lose.
*/
menu_shell->activate_time = 0;
deactivate = FALSE;
}
/* If the button click was very fast, or we ended up on a submenu,
* leave the menu up

View File

@ -514,8 +514,8 @@ gtk_notebook_map (GtkWidget *widget)
page = children->data;
children = children->next;
if (page->tab_label &&
GTK_WIDGET_VISIBLE (page->child) &&
if (page->tab_label &&
GTK_WIDGET_VISIBLE (page->tab_label) &&
!GTK_WIDGET_MAPPED (page->tab_label))
gtk_widget_map (page->tab_label);
}
@ -803,6 +803,17 @@ gtk_notebook_size_request (GtkWidget *widget,
}
}
}
else
{
for (children = notebook->children; children;
children = children->next)
{
page = children->data;
if (page->tab_label && GTK_WIDGET_VISIBLE (page->tab_label))
gtk_widget_hide (page->tab_label);
}
}
}
widget->requisition.width += GTK_CONTAINER (widget)->border_width * 2;

View File

@ -637,6 +637,7 @@ gtk_option_menu_position (GtkMenu *menu,
GtkOptionMenu *option_menu;
GtkWidget *active;
GtkWidget *child;
GtkRequisition requisition;
GList *children;
gint shift_menu;
gint screen_width;
@ -651,8 +652,9 @@ gtk_option_menu_position (GtkMenu *menu,
option_menu = GTK_OPTION_MENU (user_data);
width = GTK_WIDGET (menu)->allocation.width;
height = GTK_WIDGET (menu)->allocation.height;
gtk_widget_get_child_requisition (GTK_WIDGET (menu), &requisition);
width = requisition.width;
height = requisition.height;
active = gtk_menu_get_active (GTK_MENU (option_menu->menu));
children = GTK_MENU_SHELL (option_menu->menu)->children;
@ -661,7 +663,10 @@ gtk_option_menu_position (GtkMenu *menu,
menu_ypos += GTK_WIDGET (option_menu)->allocation.height / 2 - 2;
if (active != NULL)
menu_ypos -= active->requisition.height / 2;
{
gtk_widget_get_child_requisition (active, &requisition);
menu_ypos -= requisition.height / 2;
}
while (children)
{
@ -671,7 +676,10 @@ gtk_option_menu_position (GtkMenu *menu,
break;
if (GTK_WIDGET_VISIBLE (child))
menu_ypos -= child->allocation.height;
{
gtk_widget_get_child_requisition (child, &requisition);
menu_ypos -= requisition.height;
}
children = children->next;
}

View File

@ -535,24 +535,25 @@ gtk_paned_compute_position(GtkPaned *paned,
paned->max_position = allocation;
if (!paned->child2_shrink)
paned->max_position -= child2_req;
paned->max_position = MAX (1, paned->max_position - child2_req);
if (!paned->position_set)
{
if (paned->child1_resize && !paned->child2_resize)
paned->child1_size = allocation - child2_req;
paned->child1_size = MAX (1, allocation - child2_req);
else if (!paned->child1_resize && paned->child2_resize)
paned->child1_size = child1_req;
else if (child1_req + child2_req != 0)
paned->child1_size = allocation * ((gdouble)child1_req / (child1_req + child2_req));
else
paned->child1_size = allocation * ((gdouble) child1_req /
(child1_req + child2_req));
paned->child1_size = allocation * 0.5;
}
else
{
/* If the position was set before the initial allocation.
* (paned->last_allocation < 0) just clamp it and leave it.
* (paned->last_allocation <= 0) just clamp it and leave it.
*/
if (paned->last_allocation >= 0)
if (paned->last_allocation > 0)
{
if (paned->child1_resize && !paned->child2_resize)
paned->child1_size += allocation - paned->last_allocation;

View File

@ -604,7 +604,7 @@ gtk_progress_set_text_alignment (GtkProgress *progress,
void
gtk_progress_set_format_string (GtkProgress *progress,
gchar *format)
const gchar *format)
{
g_return_if_fail (progress != NULL);
g_return_if_fail (GTK_IS_PROGRESS (progress));

View File

@ -81,7 +81,7 @@ void gtk_progress_set_text_alignment (GtkProgress *progress,
gfloat x_align,
gfloat y_align);
void gtk_progress_set_format_string (GtkProgress *progress,
gchar *format);
const gchar *format);
void gtk_progress_set_adjustment (GtkProgress *progress,
GtkAdjustment *adjustment);
void gtk_progress_configure (GtkProgress *progress,

View File

@ -1,7 +1,7 @@
style "gtk-default-bg" {
fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--12-*-*-*-*-*-microsoft-cp1251,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--12-*-*-*-*-*-microsoft-cp1251,\
-*-arial-medium-r-normal--12-*-*-*-*-*-microsoft-cp1251"
}
class "GtkWidget" style "gtk-default-bg"

View File

@ -1,7 +1,7 @@
style "gtk-default-el" {
fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-7,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-7,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-7"
}
class "GtkWidget" style "gtk-default-el"

View File

@ -1,7 +1,7 @@
style "gtk-default-eo" {
fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-3,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-3,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-3"
}
class "GtkWidget" style "gtk-default-eo"

View File

@ -1,7 +1,7 @@
style "gtk-default-iso-8859-13" {
fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-13,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-13,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-13"
}
class "GtkWidget" style "gtk-default-iso-8859-13"

View File

@ -1,7 +1,7 @@
style "gtk-default-iso-8859-14" {
fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-14,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-14,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-14"
}
class "GtkWidget" style "gtk-default-iso-8859-14"

View File

@ -1,7 +1,7 @@
style "gtk-default-iso-8859-15" {
fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-15,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-15,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-15"
}
class "GtkWidget" style "gtk-default-iso-8859-15"

View File

@ -6,8 +6,8 @@
style "gtk-default-iso-8859-2" {
fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-2,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-2,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-2"
}
class "GtkWidget" style "gtk-default-iso-8859-2"

View File

@ -6,8 +6,8 @@
style "gtk-default-iso-8859-5" {
fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-5,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-5,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-5"
}
class "GtkWidget" style "gtk-default-iso-8859-5"

View File

@ -11,8 +11,8 @@
style "gtk-default-ru" {
fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-*,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-cronyx-helvetica-medium-r-normal--12-*-*-*-*-*-koi8-r,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-cronyx-helvetica-medium-r-normal--12-*-*-*-*-*-koi8-r,\
-*-arial-medium-r-normal--12-*-*-*-*-*-koi8-r"
}
class "GtkWidget" style "gtk-default-ru"

View File

@ -1,7 +1,7 @@
style "gtk-default-tr" {
fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-9,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-9,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-9"
}
class "GtkWidget" style "gtk-default-tr"

View File

@ -8,8 +8,8 @@
style "gtk-default-uk" {
fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-*,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--14-*-*-*-*-*-koi8-u,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--14-*-*-*-*-*-koi8-u,\
-*-arial-medium-r-normal--14-*-*-*-*-*-koi8-u"
}
class "GtkWidget" style "gtk-default-uk"

View File

@ -13,9 +13,9 @@
style "gtk-default-vi-vn-tcvn" {
fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-*,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--14-*-*-*-*-*-tcvn-5712,\"
-*-arial-medium-r-normal--14-*-*-*-*-*-tcvn-5712,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--14-*-*-*-*-*-tcvn-5712,\
-*-arial-medium-r-normal--14-*-*-*-*-*-tcvn-5712,\
-*-verdana-medium-r-normal--14-*-*-*-*-*-tcvn-5712"
}
class "GtkWidget" style "gtk-default-vi-vn-tcvn"

View File

@ -12,9 +12,9 @@
style "gtk-default-vi-vn-viscii" {
fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-*,\
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\"
-*-helvetica-medium-r-normal--14-*-*-*-*-*-viscii1.1-1,\"
-*-arial-medium-r-normal--14-*-*-*-*-*-viscii1.1-1,\"
-*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-helvetica-medium-r-normal--14-*-*-*-*-*-viscii1.1-1,\
-*-arial-medium-r-normal--14-*-*-*-*-*-viscii1.1-1,\
-*-verdana-medium-r-normal--14-*-*-*-*-*-viscii1.1-1"
}
class "GtkWidget" style "gtk-default-vi-vn-viscii"

View File

@ -307,7 +307,7 @@ gtk_scale_get_value_width (GtkScale *scale)
digits = 13;
i = 0;
if (range->adjustment->lower < 0)
if (range->adjustment->upper < 0)
buffer[i++] = '-';
for (j = 0; j < digits; j++)
buffer[i++] = '0';

View File

@ -656,18 +656,18 @@ gtk_scrolled_window_size_request (GtkWidget *widget,
}
if (scrolled_window->hscrollbar_policy == GTK_POLICY_AUTOMATIC ||
GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
scrolled_window->hscrollbar_policy == GTK_POLICY_ALWAYS)
{
requisition->width = MAX (requisition->width, hscrollbar_requisition.width);
if (!extra_height || GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
if (!extra_height || scrolled_window->hscrollbar_policy == GTK_POLICY_ALWAYS)
extra_height = SCROLLBAR_SPACING (scrolled_window) + hscrollbar_requisition.height;
}
if (scrolled_window->vscrollbar_policy == GTK_POLICY_AUTOMATIC ||
GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS)
{
requisition->height = MAX (requisition->height, vscrollbar_requisition.height);
if (!extra_width || GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
if (!extra_height || scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS)
extra_width = SCROLLBAR_SPACING (scrolled_window) + vscrollbar_requisition.width;
}

View File

@ -509,7 +509,8 @@ gtk_spin_button_size_allocate (GtkWidget *widget,
g_return_if_fail (allocation != NULL);
child_allocation = *allocation;
child_allocation.width -= ARROW_SIZE + 2 * widget->style->klass->xthickness;
if (child_allocation.width > ARROW_SIZE + 2 * widget->style->klass->xthickness)
child_allocation.width -= ARROW_SIZE + 2 * widget->style->klass->xthickness;
GTK_WIDGET_CLASS (parent_class)->size_allocate (widget, &child_allocation);

View File

@ -405,7 +405,7 @@ gtk_style_new (void)
if (!default_font)
{
default_font =
gdk_font_load ("-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*");
gdk_font_load ("-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1");
if (!default_font)
default_font = gdk_font_load ("fixed");
if (!default_font)
@ -450,8 +450,8 @@ gtk_style_new (void)
style->base[i] = style->white;
}
style->base[GTK_STATE_INSENSITIVE] = gtk_default_insensitive_bg;
style->text[GTK_STATE_INSENSITIVE] = gtk_default_insensitive_bg;
style->base[GTK_STATE_INSENSITIVE] = gtk_default_prelight_bg;
style->text[GTK_STATE_INSENSITIVE] = gtk_default_insensitive_fg;
for (i = 0; i < 5; i++)
style->bg_pixmap[i] = NULL;

View File

@ -1357,21 +1357,32 @@ gtk_table_size_allocate_pass1 (GtkTable *table)
}
}
/* Check to see if we were allocated less width than we requested.
/* Check to see if we were allocated less width than we requested,
* then shrink until we fit the size give.
*/
if ((width > real_width) && (nshrink >= 1))
if (width > real_width)
{
width = width - real_width;
for (col = 0; col < table->ncols; col++)
if (table->cols[col].shrink)
{
extra = width / nshrink;
table->cols[col].allocation = MAX (1, (gint)table->cols[col].allocation - extra);
width -= extra;
nshrink -= 1;
}
gint total_nshrink = nshrink;
extra = width - real_width;
while (total_nshrink > 0 && extra > 0)
{
nshrink = total_nshrink;
for (col = 0; col < table->ncols; col++)
if (table->cols[col].shrink)
{
gint allocation = table->cols[col].allocation;
table->cols[col].allocation = MAX (1, (gint) table->cols[col].allocation - extra / nshrink);
extra -= allocation - table->cols[col].allocation;
nshrink -= 1;
if (table->cols[col].allocation < 2)
{
total_nshrink -= 1;
table->cols[col].shrink = FALSE;
}
}
}
}
}
@ -1436,20 +1447,31 @@ gtk_table_size_allocate_pass1 (GtkTable *table)
}
/* Check to see if we were allocated less height than we requested.
* then shrink until we fit the size give.
*/
if ((height > real_height) && (nshrink >= 1))
if (height > real_height)
{
height = height - real_height;
gint total_nshrink = nshrink;
for (row = 0; row < table->nrows; row++)
if (table->rows[row].shrink)
{
extra = height / nshrink;
table->rows[row].allocation = MAX (1, (gint)table->rows[row].allocation - extra);
height -= extra;
nshrink -= 1;
}
extra = height - real_height;
while (total_nshrink > 0 && extra > 0)
{
nshrink = total_nshrink;
for (row = 0; row < table->nrows; row++)
if (table->rows[row].shrink)
{
gint allocation = table->rows[row].allocation;
table->rows[row].allocation = MAX (1, (gint) table->rows[row].allocation - extra / nshrink);
extra -= allocation - table->rows[row].allocation;
nshrink -= 1;
if (table->rows[row].allocation < 2)
{
total_nshrink -= 1;
table->rows[row].shrink = FALSE;
}
}
}
}
}
}

View File

@ -207,6 +207,8 @@ static void gtk_text_realize (GtkWidget *widget);
static void gtk_text_unrealize (GtkWidget *widget);
static void gtk_text_style_set (GtkWidget *widget,
GtkStyle *previous_style);
static void gtk_text_state_changed (GtkWidget *widget,
GtkStateType previous_state);
static void gtk_text_draw_focus (GtkWidget *widget);
static void gtk_text_size_request (GtkWidget *widget,
GtkRequisition *requisition);
@ -566,6 +568,7 @@ gtk_text_class_init (GtkTextClass *class)
widget_class->realize = gtk_text_realize;
widget_class->unrealize = gtk_text_unrealize;
widget_class->style_set = gtk_text_style_set;
widget_class->state_changed = gtk_text_state_changed;
widget_class->draw_focus = gtk_text_draw_focus;
widget_class->size_request = gtk_text_size_request;
widget_class->size_allocate = gtk_text_size_allocate;
@ -1309,8 +1312,8 @@ gtk_text_realize (GtkWidget *widget)
widget->style = gtk_style_attach (widget->style, widget->window);
/* Can't call gtk_style_set_background here because it's handled specially */
gdk_window_set_background (widget->window, &widget->style->base[GTK_STATE_NORMAL]);
gdk_window_set_background (text->text_area, &widget->style->base[GTK_STATE_NORMAL]);
gdk_window_set_background (widget->window, &widget->style->base[GTK_WIDGET_STATE (widget)]);
gdk_window_set_background (text->text_area, &widget->style->base[GTK_WIDGET_STATE (widget)]);
if (widget->style->bg_pixmap[GTK_STATE_NORMAL])
text->bg_gc = create_bg_gc (text);
@ -1405,19 +1408,15 @@ gtk_text_realize (GtkWidget *widget)
}
static void
gtk_text_style_set (GtkWidget *widget,
GtkStyle *previous_style)
gtk_text_style_set (GtkWidget *widget,
GtkStyle *previous_style)
{
GtkText *text;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_TEXT (widget));
text = GTK_TEXT (widget);
GtkText *text = GTK_TEXT (widget);
if (GTK_WIDGET_REALIZED (widget))
{
gdk_window_set_background (widget->window, &widget->style->base[GTK_STATE_NORMAL]);
gdk_window_set_background (text->text_area, &widget->style->base[GTK_STATE_NORMAL]);
gdk_window_set_background (widget->window, &widget->style->base[GTK_WIDGET_STATE (widget)]);
gdk_window_set_background (text->text_area, &widget->style->base[GTK_WIDGET_STATE (widget)]);
if (text->bg_gc)
{
@ -1436,6 +1435,19 @@ gtk_text_style_set (GtkWidget *widget,
text->current_font = get_text_font (widget->style->font);
}
static void
gtk_text_state_changed (GtkWidget *widget,
GtkStateType previous_state)
{
GtkText *text = GTK_TEXT (widget);
if (GTK_WIDGET_REALIZED (widget))
{
gdk_window_set_background (widget->window, &widget->style->base[GTK_WIDGET_STATE (widget)]);
gdk_window_set_background (text->text_area, &widget->style->base[GTK_WIDGET_STATE (widget)]);
}
}
static void
gtk_text_unrealize (GtkWidget *widget)
{
@ -4866,7 +4878,7 @@ draw_bg_rect (GtkText* text, GtkPropertyMark *mark,
x, y, width, height);
}
else if (!gdk_color_equal(MARK_CURRENT_BACK (text, mark),
&GTK_WIDGET(text)->style->base[GTK_STATE_NORMAL]))
&GTK_WIDGET(text)->style->base[GTK_WIDGET_STATE (text)]))
{
gdk_gc_set_foreground (text->gc, MARK_CURRENT_BACK (text, mark));

View File

@ -65,7 +65,7 @@ static void gen_8_3_dll_name(gchar *name, gchar *fullname)
#endif
GtkThemeEngine*
gtk_theme_engine_get (gchar *name)
gtk_theme_engine_get (const gchar *name)
{
GtkThemeEnginePrivate *result;

View File

@ -32,6 +32,12 @@
#include <gtk/gtkstyle.h>
#include <gtk/gtkwidget.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
struct _GtkThemeEngine {
/* Fill in engine_data pointer in a GtkRcStyle by parsing contents
* of brackets. Returns G_TOKEN_NONE if succesfull, otherwise returns
@ -77,19 +83,11 @@ struct _GtkThemeEngine {
GtkStateType state_type);
};
GtkThemeEngine *gtk_theme_engine_get (gchar *name);
GtkThemeEngine *gtk_theme_engine_get (const gchar *name);
void gtk_theme_engine_ref (GtkThemeEngine *engine);
void gtk_theme_engine_unref (GtkThemeEngine *engine);
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* Initialization, exit, mainloop and miscellaneous routines
*/
void gtk_themes_init (int *argc,
char ***argv);
void gtk_themes_exit (gint error_code);
#ifdef __cplusplus
}

View File

@ -859,7 +859,7 @@ gtk_toolbar_insert_widget (GtkToolbar *toolbar,
position);
}
GtkWidget *
GtkWidget*
gtk_toolbar_append_element (GtkToolbar *toolbar,
GtkToolbarChildType type,
GtkWidget *widget,

View File

@ -100,9 +100,6 @@ gtk_tooltips_init (GtkTooltips *tooltips)
tooltips->tip_window = NULL;
tooltips->active_tips_data = NULL;
tooltips->tips_data_list = NULL;
tooltips->gc = NULL;
tooltips->foreground = NULL;
tooltips->background = NULL;
tooltips->delay = DEFAULT_DELAY;
tooltips->enabled = TRUE;
@ -167,12 +164,6 @@ gtk_tooltips_destroy (GtkObject *object)
if (tooltips->tip_window)
gtk_widget_destroy (tooltips->tip_window);
if (tooltips->gc != NULL)
{
gdk_gc_destroy (tooltips->gc);
tooltips->gc = NULL;
}
}
void
@ -398,10 +389,8 @@ gtk_tooltips_set_colors (GtkTooltips *tooltips,
{
g_return_if_fail (tooltips != NULL);
if (background != NULL)
tooltips->foreground = foreground;
if (foreground != NULL)
tooltips->background = background;
g_warning ("gtk_tooltips_set_colors is deprecated and does nothing.\n"
"The colors for tooltips are now taken from the style.");
}
static gint

View File

@ -67,10 +67,6 @@ struct _GtkTooltips
GtkTooltipsData *active_tips_data;
GList *tips_data_list;
GdkGC *gc;
GdkColor *foreground;
GdkColor *background;
guint delay : 30;
guint enabled : 1;
gint timer_tag;

View File

@ -283,7 +283,7 @@ gtk_tree_item_new (void)
}
GtkWidget*
gtk_tree_item_new_with_label (gchar *label)
gtk_tree_item_new_with_label (const gchar *label)
{
GtkWidget *tree_item;
GtkWidget *label_widget;

View File

@ -75,7 +75,7 @@ struct _GtkTreeItemClass
GtkType gtk_tree_item_get_type (void);
GtkWidget* gtk_tree_item_new (void);
GtkWidget* gtk_tree_item_new_with_label (gchar *label);
GtkWidget* gtk_tree_item_new_with_label (const gchar *label);
void gtk_tree_item_set_subtree (GtkTreeItem *tree_item,
GtkWidget *subtree);
void gtk_tree_item_remove_subtree (GtkTreeItem *tree_item);

File diff suppressed because it is too large Load Diff

View File

@ -63,9 +63,6 @@ struct _GtkTypeNode
}
static void gtk_type_class_init (GtkType node_type);
static guint gtk_type_name_hash (const char *key);
static gint gtk_type_name_compare (const char *a,
const char *b);
static void gtk_type_init_builtin_types (void);
static GtkTypeNode *type_nodes = NULL;
@ -136,8 +133,7 @@ gtk_type_init (void)
g_assert (sizeof (GtkType) >= 4);
g_assert (TYPE_NODES_BLOCK_SIZE > GTK_TYPE_FUNDAMENTAL_MAX);
type_name_2_type_ht = g_hash_table_new ((GHashFunc) gtk_type_name_hash,
(GCompareFunc) gtk_type_name_compare);
type_name_2_type_ht = g_hash_table_new (g_str_hash, g_str_equal);
gtk_type_init_builtin_types ();
}
@ -908,25 +904,6 @@ gtk_type_query (GtkType type)
return NULL;
}
static guint
gtk_type_name_hash (const char *key)
{
guint result;
result = 0;
while (*key)
result += (result << 3) + *key++;
return result;
}
static gint
gtk_type_name_compare (const char *a,
const char *b)
{
return (strcmp (a, b) == 0);
}
extern void gtk_object_init_type (void);
#include "makeenums.h" /* include for various places

View File

@ -756,12 +756,10 @@ gtk_viewport_size_allocate (GtkWidget *widget,
child_allocation.width = viewport->hadjustment->upper;
child_allocation.height = viewport->vadjustment->upper;
if (!GTK_WIDGET_REALIZED (widget))
gtk_widget_realize (widget);
gdk_window_resize (viewport->bin_window,
child_allocation.width,
child_allocation.height);
if (GTK_WIDGET_REALIZED (widget))
gdk_window_resize (viewport->bin_window,
child_allocation.width,
child_allocation.height);
child_allocation.x = 0;
child_allocation.y = 0;
@ -802,7 +800,6 @@ gtk_viewport_adjustment_value_changed (GtkAdjustment *adjustment,
GtkViewport *viewport;
GtkBin *bin;
GtkAllocation child_allocation;
gint width, height;
g_return_if_fail (adjustment != NULL);
g_return_if_fail (data != NULL);
@ -813,8 +810,6 @@ gtk_viewport_adjustment_value_changed (GtkAdjustment *adjustment,
if (bin->child && GTK_WIDGET_VISIBLE (bin->child))
{
gdk_window_get_size (viewport->view_window, &width, &height);
child_allocation.x = 0;
child_allocation.y = 0;

View File

@ -149,16 +149,16 @@ gtk_vpaned_size_allocate (GtkWidget *widget,
GtkRequisition child2_requisition;
GtkAllocation child1_allocation;
GtkAllocation child2_allocation;
guint16 border_width;
gint border_width;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_VPANED (widget));
g_return_if_fail (allocation != NULL);
widget->allocation = *allocation;
paned = GTK_PANED (widget);
border_width = GTK_CONTAINER (widget)->border_width;
gutter_size = paned->gutter_size;
if (paned->child1)
gtk_widget_get_child_requisition (paned->child1, &child1_requisition);
@ -169,19 +169,19 @@ gtk_vpaned_size_allocate (GtkWidget *widget,
gtk_widget_get_child_requisition (paned->child2, &child2_requisition);
else
child2_requisition.height = 0;
gtk_paned_compute_position(paned,
widget->allocation.height
- paned->handle_size
- 2 * border_width,
child1_requisition.height,
child2_requisition.height);
gtk_paned_compute_position (paned,
MAX (1, (gint) widget->allocation.height
- (gint) paned->handle_size
- 2 * border_width),
child1_requisition.height,
child2_requisition.height);
/* Move the handle before the children so we don't get extra expose events */
paned->handle_xpos = border_width;
paned->handle_ypos = paned->child1_size + border_width;
paned->handle_width = widget->allocation.width - 2 * border_width;
paned->handle_width = MAX (1, (gint) widget->allocation.width - 2 * border_width);
paned->handle_height = paned->handle_size;
if (GTK_WIDGET_REALIZED(widget))
@ -198,7 +198,7 @@ gtk_vpaned_size_allocate (GtkWidget *widget,
paned->handle_size);
}
child1_allocation.width = child2_allocation.width = MAX(1, (gint) allocation->width - border_width * 2);
child1_allocation.width = child2_allocation.width = MAX (1, (gint) allocation->width - border_width * 2);
child1_allocation.height = paned->child1_size;
child1_allocation.x = child2_allocation.x = border_width;
child1_allocation.y = border_width;

View File

@ -478,6 +478,8 @@ gtk_vscale_pos_background (GtkVScale *vscale,
*h -= theight;
break;
}
*w = MAX (*w, 0);
*h = MAX (*h, 0);
}
static void

View File

@ -1518,9 +1518,11 @@ gtk_widget_hide (GtkWidget *widget)
if (GTK_WIDGET_VISIBLE (widget))
{
gtk_widget_ref (widget);
gtk_signal_emit (GTK_OBJECT (widget), widget_signals[HIDE]);
if (!GTK_WIDGET_TOPLEVEL (widget))
if (!GTK_WIDGET_TOPLEVEL (widget) && !GTK_OBJECT_DESTROYED (widget))
gtk_widget_queue_resize (widget);
gtk_widget_unref (widget);
}
}
@ -1703,8 +1705,10 @@ gtk_widget_unrealize (GtkWidget *widget)
if (GTK_WIDGET_REALIZED (widget))
{
gtk_widget_ref (widget);
gtk_signal_emit (GTK_OBJECT (widget), widget_signals[UNREALIZE]);
GTK_WIDGET_UNSET_FLAGS (widget, GTK_REALIZED | GTK_MAPPED);
gtk_widget_unref (widget);
}
}
@ -1860,6 +1864,19 @@ gtk_widget_queue_clear_area (GtkWidget *widget,
if (GTK_WIDGET_NO_WINDOW (widget))
{
/* The following deals with the fact that while we are in
* a reparent, the widget and window heirarchies
* may be different, and the redraw queing code will be utterly
* screwed by that.
*
* So, continuing at this point is a bad idea, and returning is
* generally harmless. (More redraws will be queued then necessary
* for a reparent in any case.) This can go away, when we
* make reparent simply ref/remove/add/unref.
*/
if (GTK_WIDGET_IN_REPARENT (widget))
return;
parent = widget;
while (parent && GTK_WIDGET_NO_WINDOW (parent))
parent = parent->parent;
@ -2981,32 +2998,8 @@ gtk_widget_reparent (GtkWidget *widget,
{
GTK_PRIVATE_UNSET_FLAG (widget, GTK_IN_REPARENT);
/* OK, now fix up the widget's window. (And that for any
* children, if the widget is NO_WINDOW and a container)
*/
if (GTK_WIDGET_NO_WINDOW (widget))
{
if (GTK_IS_CONTAINER (widget))
gtk_container_forall (GTK_CONTAINER (widget),
gtk_widget_reparent_container_child,
gtk_widget_get_parent_window (widget));
else
{
GdkWindow *parent_window;
parent_window = gtk_widget_get_parent_window (widget);
if (parent_window != widget->window)
{
if (widget->window)
gdk_window_unref (widget->window);
widget->window = parent_window;
if (widget->window)
gdk_window_ref (widget->window);
}
}
}
else
gdk_window_reparent (widget->window, gtk_widget_get_parent_window (widget), 0, 0);
gtk_widget_reparent_container_child (widget,
gtk_widget_get_parent_window (widget));
}
}
}
@ -4202,8 +4195,8 @@ gtk_widget_is_ancestor (GtkWidget *widget,
static GQuark quark_composite_name = 0;
void
gtk_widget_set_composite_name (GtkWidget *widget,
gchar *name)
gtk_widget_set_composite_name (GtkWidget *widget,
const gchar *name)
{
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_WIDGET (widget));

View File

@ -588,7 +588,7 @@ void gtk_widget_modify_style (GtkWidget *widget,
* the returned name is newly allocated.
*/
void gtk_widget_set_composite_name (GtkWidget *widget,
gchar *name);
const gchar *name);
gchar* gtk_widget_get_composite_name (GtkWidget *widget);
/* Descend recursively and set rc-style on all widgets without user styles */

View File

@ -2487,32 +2487,6 @@ create_item_factory (void)
gtk_widget_destroy (window);
}
/*
* GtkScrolledWindow
*/
static void
scrolled_windows_remove (GtkWidget *widget, GtkWidget *scrollwin)
{
static GtkWidget *parent = NULL;
static GtkWidget *float_parent;
if (parent)
{
gtk_widget_reparent (scrollwin, parent);
gtk_widget_destroy (float_parent);
float_parent = NULL;
parent = NULL;
}
else
{
parent = widget->parent;
float_parent = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_reparent (scrollwin, float_parent);
gtk_widget_show (float_parent);
}
}
/*
create_modal_window
*/
@ -2644,6 +2618,63 @@ create_modal_window (void)
* GtkScrolledWindow
*/
static GtkWidget *sw_parent = NULL;
static GtkWidget *sw_float_parent;
static guint sw_destroyed_handler = 0;
static gboolean
scrolled_windows_delete_cb (GtkWidget *widget, GdkEventAny *event, GtkWidget *scrollwin)
{
gtk_widget_reparent (scrollwin, sw_parent);
gtk_signal_disconnect (GTK_OBJECT (sw_parent), sw_destroyed_handler);
sw_float_parent = NULL;
sw_parent = NULL;
sw_destroyed_handler = 0;
return FALSE;
}
static void
scrolled_windows_destroy_cb (GtkWidget *widget, GtkWidget *scrollwin)
{
gtk_widget_destroy (sw_float_parent);
sw_float_parent = NULL;
sw_parent = NULL;
sw_destroyed_handler = 0;
}
static void
scrolled_windows_remove (GtkWidget *widget, GtkWidget *scrollwin)
{
if (sw_parent)
{
gtk_widget_reparent (scrollwin, sw_parent);
gtk_widget_destroy (sw_float_parent);
gtk_signal_disconnect (GTK_OBJECT (sw_parent), sw_destroyed_handler);
sw_float_parent = NULL;
sw_parent = NULL;
sw_destroyed_handler = 0;
}
else
{
sw_parent = scrollwin->parent;
sw_float_parent = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (sw_float_parent), 200, 200);
gtk_widget_reparent (scrollwin, sw_float_parent);
gtk_widget_show (sw_float_parent);
sw_destroyed_handler =
gtk_signal_connect (GTK_OBJECT (sw_parent), "destroy",
GTK_SIGNAL_FUNC (scrolled_windows_destroy_cb), scrollwin);
gtk_signal_connect (GTK_OBJECT (sw_float_parent), "delete_event",
GTK_SIGNAL_FUNC (scrolled_windows_delete_cb), scrollwin);
}
}
static void
create_scrolled_windows (void)
{
@ -2696,7 +2727,7 @@ create_scrolled_windows (void)
}
button = gtk_button_new_with_label ("close");
button = gtk_button_new_with_label ("Close");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC(gtk_widget_destroy),
GTK_OBJECT (window));
@ -2706,10 +2737,10 @@ create_scrolled_windows (void)
gtk_widget_grab_default (button);
gtk_widget_show (button);
button = gtk_button_new_with_label ("remove");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC(scrolled_windows_remove),
GTK_OBJECT (scrolled_window));
button = gtk_button_new_with_label ("Reparent Out");
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC(scrolled_windows_remove),
scrolled_window);
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area),
button, TRUE, TRUE, 0);

185
ltconfig
View File

@ -53,7 +53,7 @@ fi
# Find the correct PATH separator. Usually this is `:', but
# DJGPP uses `;' like DOS.
if test "X${PATH_SEPARATOR+set}" != "Xset"; then
if test "X${PATH_SEPARATOR+set}" != Xset; then
UNAME=${UNAME-`uname 2>/dev/null`}
case X$UNAME in
*-DOS) PATH_SEPARATOR=';' ;;
@ -63,9 +63,9 @@ fi
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
if test "X${echo_test_string+set}" != "Xset"; then
if test "X${echo_test_string+set}" != Xset; then
# find a string as large as possible, as long as the shell can cope with it
for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
# expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
@ -169,10 +169,10 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
VERSION=1.3.3
TIMESTAMP=" (1.385.2.181 1999/07/02 15:49:11)"
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
VERSION=1.3.4
TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)"
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
rm="rm -f"
help="Try \`$progname --help' for more information."
@ -369,8 +369,8 @@ exec 5>>./config.log
# Only set LANG and LC_ALL to C if already set.
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi
if test -n "$cache_file" && test -r "$cache_file"; then
echo "loading cache $cache_file within ltconfig"
@ -462,7 +462,7 @@ aix3*)
# AIX sometimes has problems with the GCC collect2 program. For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
# vanish in a puff of smoke.
if test "${COLLECT_NAMES+set}" != set; then
if test "X${COLLECT_NAMES+set}" != Xset; then
COLLECT_NAMES=
export COLLECT_NAMES
fi
@ -663,7 +663,7 @@ if test "$with_gcc" = yes; then
link_static_flag='-static'
case "$host_os" in
beos* | irix5* | irix6* | osf3* | osf4*)
beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
aix*)
@ -718,7 +718,7 @@ else
# We can build DLLs from non-PIC.
;;
osf3* | osf4*)
osf3* | osf4* | osf5*)
# All OSF/1 code is PIC.
wl='-Wl,'
link_static_flag='-non_shared'
@ -1187,7 +1187,7 @@ EOF
;;
netbsd*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
else
@ -1196,7 +1196,7 @@ EOF
fi
;;
solaris*)
solaris* | sysv5*)
if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
cat <<EOF 1>&2
@ -1244,7 +1244,12 @@ EOF
whole_archive_flag_spec=
;;
*)
whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
# ancient GNU ld didn't support --whole-archive et. al.
if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
else
whole_archive_flag_spec=
fi
;;
esac
fi
@ -1405,7 +1410,7 @@ else
old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
;;
osf3* | osf4*)
osf3*)
if test "$with_gcc" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
@ -1417,6 +1422,18 @@ else
hardcode_libdir_separator=:
;;
osf4* | osf5*) # As osf3* with the addition of the -msym flag
if test "$with_gcc" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
else
allow_undefined_flag=' -expect_unresolved \*'
archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
fi
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
sco3.2v5*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
hardcode_shlibpath_var=no
@ -1461,6 +1478,18 @@ else
export_dynamic_flag_spec='-Bexport'
;;
sysv5*)
no_undefined_flag=' -z text'
# $CC -shared without GNU ld will not create a library from C++
# object files and a static libstdc++, better avoid it by now
archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
hardcode_libdir_flag_spec=
hardcode_shlibpath_var=no
runpath_var='LD_RUN_PATH'
;;
uts4*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='-L$libdir'
@ -1474,16 +1503,30 @@ else
;;
sysv4*MP*)
if test -d /usr/nec ;then
# archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs'
archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs'
hardcode_shlibpath_var=no
runpath_var=LD_RUN_PATH
hardcode_runpath_var=yes
ld_shlibs=yes
if test -d /usr/nec; then
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
hardcode_shlibpath_var=no
runpath_var=LD_RUN_PATH
hardcode_runpath_var=yes
ld_shlibs=yes
fi
;;
sysv4.2uw2*)
archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
hardcode_direct=yes
hardcode_minus_L=no
hardcode_shlibpath_var=no
hardcode_runpath_var=yes
runpath_var=LD_RUN_PATH
;;
unixware7*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
runpath_var='LD_RUN_PATH'
hardcode_shlibpath_var=no
;;
*)
ld_shlibs=no
;;
@ -1589,11 +1632,11 @@ void nm_test_func(){}
main(){nm_test_var='a';nm_test_func();return(0);}
EOF
echo "$progname:1592: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:1593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
echo "$progname:1635: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:1636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
# Now try to grab the symbols.
nlist=conftest.nm
if { echo "$progname:1596: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
if { echo "$progname:1639: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
@ -1645,7 +1688,7 @@ EOF
save_CFLAGS="$CFLAGS"
LIBS="conftstm.$objext"
CFLAGS="$CFLAGS$no_builtin_flag"
if { (eval echo $progname:1648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
if { (eval echo $progname:1691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
pipe_works=yes
else
echo "$progname: failed program was:" >&5
@ -1787,8 +1830,9 @@ beos*)
bsdi4*)
version_type=linux
library_names_spec='${libname}.so$major ${libname}.so'
soname_spec='${libname}.so'
need_version=no
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
soname_spec='${libname}${release}.so$major'
finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
shlibpath_var=LD_LIBRARY_PATH
deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
@ -1796,6 +1840,7 @@ bsdi4*)
file_magic_test_file=/shlib/libc.so
sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
export_dynamic_flag_spec=-rdynamic
# the default ld.so.conf also contains /usr/contrib/lib and
# /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
# libtool to hard-code these into programs
@ -1841,10 +1886,9 @@ freebsd*)
need_version=yes
;;
esac
finish_cmds='PATH="\$PATH:/sbin" OBJFORMAT="'"$objformat"'" ldconfig -m $libdir'
shlibpath_var=LD_LIBRARY_PATH
case "$host_os" in
freebsd2* | freebsd3.[01]*)
freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*)
shlibpath_overrides_runpath=yes
;;
*) # from 3.2 on
@ -1896,8 +1940,6 @@ irix5* | irix6*)
*-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
*) libsuff= shlibsuff= libmagic=never-match;;
esac
# this will be overridden with pass_all, but let us keep it just in case
deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
;;
esac
shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
@ -1972,7 +2014,7 @@ os2*)
shlibpath_var=LIBPATH
;;
osf3* | osf4*)
osf3* | osf4* | osf5*)
version_type=osf
need_version=no
soname_spec='${libname}${release}.so'
@ -2167,7 +2209,7 @@ else
if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
lt_cv_dlopen=no lt_cv_dlopen_libs=
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
echo "$progname:2170: checking for dlopen in -ldl" >&5
echo "$progname:2212: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -2175,17 +2217,20 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2178 "ltconfig"
#line 2220 "ltconfig"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char dlopen();
int main() {
dlopen()
; return 0; }
EOF
if { (eval echo $progname:2188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo $progname:2233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -2204,18 +2249,21 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
echo "$progname:2207: checking for dlopen" >&5
echo "$progname:2252: checking for dlopen" >&5
if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2212 "ltconfig"
#line 2257 "ltconfig"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dlopen(); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char dlopen();
int main() {
@ -2231,7 +2279,7 @@ dlopen();
; return 0; }
EOF
if { (eval echo $progname:2234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo $progname:2282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_dlopen=yes"
else
@ -2248,7 +2296,7 @@ if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
echo "$progname:2251: checking for dld_link in -ldld" >&5
echo "$progname:2299: checking for dld_link in -ldld" >&5
ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -2256,17 +2304,20 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2259 "ltconfig"
#line 2307 "ltconfig"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char dld_link();
int main() {
dld_link()
; return 0; }
EOF
if { (eval echo $progname:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo $progname:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -2285,18 +2336,21 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for shl_load""... $ac_c" 1>&6
echo "$progname:2288: checking for shl_load" >&5
echo "$progname:2339: checking for shl_load" >&5
if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2293 "ltconfig"
#line 2344 "ltconfig"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shl_load(); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char shl_load();
int main() {
@ -2312,7 +2366,7 @@ shl_load();
; return 0; }
EOF
if { (eval echo $progname:2315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo $progname:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_shl_load=yes"
else
@ -2330,7 +2384,7 @@ if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
echo "$progname:2333: checking for shl_load in -ldld" >&5
echo "$progname:2387: checking for shl_load in -ldld" >&5
ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -2338,18 +2392,21 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2341 "ltconfig"
#line 2395 "ltconfig"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char shl_load();
int main() {
shl_load()
; return 0; }
EOF
if { (eval echo $progname:2352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo $progname:2409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -2392,17 +2449,17 @@ fi
for ac_hdr in dlfcn.h; do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "$progname:2395: checking for $ac_hdr" >&5
echo "$progname:2452: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2400 "ltconfig"
#line 2457 "ltconfig"
#include <$ac_hdr>
int fnord = 0;
EOF
ac_try="$ac_compile conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo $progname:2405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_try="$ac_compile >/dev/null 2>conftest.out"
{ (eval echo $progname:2462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -2430,7 +2487,7 @@ done
LIBS="$lt_cv_dlopen_libs $LIBS"
echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
echo "$progname:2433: checking whether a program can dlopen itself" >&5
echo "$progname:2490: checking whether a program can dlopen itself" >&5
if test "${lt_cv_dlopen_self+set}" = set; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -2438,7 +2495,7 @@ else
lt_cv_dlopen_self=cross
else
cat > conftest.c <<EOF
#line 2441 "ltconfig"
#line 2498 "ltconfig"
#if HAVE_DLFCN_H
#include <dlfcn.h>
@ -2484,7 +2541,7 @@ main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
EOF
if { (eval echo $progname:2487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
if { (eval echo $progname:2544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
lt_cv_dlopen_self=yes
else
@ -2503,7 +2560,7 @@ echo "$ac_t""$lt_cv_dlopen_self" 1>&6
if test "$lt_cv_dlopen_self" = yes; then
LDFLAGS="$LDFLAGS $link_static_flag"
echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
echo "$progname:2506: checking whether a statically linked program can dlopen itself" >&5
echo "$progname:2563: checking whether a statically linked program can dlopen itself" >&5
if test "${lt_cv_dlopen_self_static+set}" = set; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -2511,7 +2568,7 @@ else
lt_cv_dlopen_self_static=cross
else
cat > conftest.c <<EOF
#line 2514 "ltconfig"
#line 2571 "ltconfig"
#if HAVE_DLFCN_H
#include <dlfcn.h>
@ -2557,7 +2614,7 @@ main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
EOF
if { (eval echo $progname:2560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
if { (eval echo $progname:2617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
lt_cv_dlopen_self_static=yes
else
@ -2649,7 +2706,7 @@ case "$ltmain" in
# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
#
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -2675,7 +2732,7 @@ Xsed="sed -e s/^X//"
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
### BEGIN LIBTOOL CONFIG
EOF
@ -2938,7 +2995,7 @@ case "$ltmain" in
# AIX sometimes has problems with the GCC collect2 program. For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
# vanish in a puff of smoke.
if test "${COLLECT_NAMES+set}" != set; then
if test "X${COLLECT_NAMES+set}" != Xset; then
COLLECT_NAMES=
export COLLECT_NAMES
fi
@ -2948,6 +3005,10 @@ EOF
# Append the ltmain.sh script.
sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
# We use sed instead of cat because bash on DJGPP gets confused if
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
chmod +x "$ofile"
;;

View File

@ -54,8 +54,8 @@ modename="$progname"
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
VERSION=1.3.3
TIMESTAMP=" (1.385.2.181 1999/07/02 15:49:11)"
VERSION=1.3.4
TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)"
default_mode=
help="Try \`$progname --help' for more information."
@ -435,7 +435,7 @@ compiler."
fbsd_hideous_sh_bug=$base_compile
# All platforms use -DPIC, to notify preprocessed assembler code.
command="$base_compile $pic_flag -DPIC $srcfile"
command="$base_compile $srcfile $pic_flag -DPIC"
if test "$build_old_libs" = yes; then
lo_libobj="$libobj"
dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
@ -521,9 +521,17 @@ compiler."
exit $error
fi
xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
if test "X$xdir" = "X$obj"; then
xdir="."
else
xdir="$xdir"
fi
baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
# Now arrange that obj and lo_libobj become the same file
$show "$LN_S $obj $lo_libobj"
if $run $LN_S $obj $lo_libobj; then
$show "(cd $xdir && $LN_S $baseobj $libobj)"
if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
exit 0
else
error=$?
@ -613,8 +621,6 @@ compiler."
# libtool link mode
link)
modename="$modename: link"
C_compiler="$CC" # save it, to compile generated C sources
CC="$nonopt"
case "$host" in
*-*-cygwin* | *-*-mingw* | *-*-os2*)
# It is impossible to link a dll without this setting, and
@ -802,8 +808,8 @@ compiler."
allow_undefined=yes
;;
esac
compile_command="$CC"
finalize_command="$CC"
compile_command="$nonopt"
finalize_command="$nonopt"
compile_rpath=
finalize_rpath=
@ -1851,7 +1857,7 @@ compiler."
int main() { return 0; }
EOF
$rm conftest
$C_compiler -o conftest conftest.c $deplibs
$CC -o conftest conftest.c $deplibs
if test $? -eq 0 ; then
ldd_output=`ldd conftest`
for i in $deplibs; do
@ -1884,7 +1890,7 @@ EOF
# If $name is empty we are operating on a -L argument.
if test "$name" != "" ; then
$rm conftest
$C_compiler -o conftest conftest.c $i
$CC -o conftest conftest.c $i
# Did it work?
if test $? -eq 0 ; then
ldd_output=`ldd conftest`
@ -2047,12 +2053,19 @@ EOF
done
# Ensure that we have .o objects for linkers which dislike .lo
# (e.g. aix) incase we are running --disable-static
# (e.g. aix) in case we are running --disable-static
for obj in $libobjs; do
oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"`
if test ! -f $oldobj; then
$show "${LN_S} $obj $oldobj"
$run ${LN_S} $obj $oldobj || exit $?
xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
if test "X$xdir" = "X$obj"; then
xdir="."
else
xdir="$xdir"
fi
baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
if test ! -f $xdir/$oldobj; then
$show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
$run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
fi
done
@ -2311,8 +2324,16 @@ EOF
# Just create a symlink.
$show $rm $libobj
$run $rm $libobj
$show "$LN_S $obj $libobj"
$run $LN_S $obj $libobj || exit $?
xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
if test "X$xdir" = "X$libobj"; then
xdir="."
else
xdir="$xdir"
fi
baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
$show "(cd $xdir && $LN_S $oldobj $baseobj)"
$run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
fi
if test -n "$gentop"; then
@ -2598,16 +2619,21 @@ static const void *lt_preloaded_setup() {
# linked before any other PIC object. But we must not use
# pic_flag when linking with -static. The problem exists in
# FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
*-*-freebsd2*|*-*-freebsd3.0*)
*-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
case "$compile_command " in
*" -static "*) ;;
*) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
esac;;
*-*-hpux*)
case "$compile_command " in
*" -static "*) ;;
*) pic_flag_for_symtable=" $pic_flag -DPIC";;
esac
esac
# Now compile the dynamic symbol file.
$show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
$run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
$show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
$run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
# Clean up the generated files.
$show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
@ -2776,7 +2802,7 @@ sed_quote_subst='$sed_quote_subst'
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
relink_command=\"$relink_command\"
@ -2865,7 +2891,7 @@ else
fi"
else
echo >> $output "\
program='$outputname$exeext'
program='$outputname'
progdir=\"\$thisdir/$objdir\"
"
fi
@ -2995,14 +3021,21 @@ fi\
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
eval cmds=\"$old_archive_from_new_cmds\"
else
# Ensure that we have .o objects in place incase we decided
# Ensure that we have .o objects in place in case we decided
# not to build a shared library, and have fallen back to building
# static libs even though --disable-static was passed!
for oldobj in $oldobjs; do
if test ! -f $oldobj; then
obj=`$echo "X$oldobj" | $Xsed -e "$o2lo"`
$show "${LN_S} $obj $oldobj"
$run ${LN_S} $obj $oldobj || exit $?
xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
if test "X$xdir" = "X$oldobj"; then
xdir="."
else
xdir="$xdir"
fi
baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
$show "(cd $xdir && ${LN_S} $obj $baseobj)"
$run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
fi
done
@ -3672,8 +3705,10 @@ libdir='$install_libdir'\
done
if test -z "$run"; then
# Export the shlibpath_var.
eval "export $shlibpath_var"
if test -n "$shlibpath_var"; then
# Export the shlibpath_var.
eval "export $shlibpath_var"
fi
# Restore saved enviroment variables
if test "${save_LC_ALL+set}" = set; then
@ -3690,8 +3725,10 @@ libdir='$install_libdir'\
exit 1
else
# Display what would be done.
eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
$echo "export $shlibpath_var"
if test -n "$shlibpath_var"; then
eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
$echo "export $shlibpath_var"
fi
$echo "$cmd$args"
exit 0
fi

View File

@ -2487,32 +2487,6 @@ create_item_factory (void)
gtk_widget_destroy (window);
}
/*
* GtkScrolledWindow
*/
static void
scrolled_windows_remove (GtkWidget *widget, GtkWidget *scrollwin)
{
static GtkWidget *parent = NULL;
static GtkWidget *float_parent;
if (parent)
{
gtk_widget_reparent (scrollwin, parent);
gtk_widget_destroy (float_parent);
float_parent = NULL;
parent = NULL;
}
else
{
parent = widget->parent;
float_parent = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_reparent (scrollwin, float_parent);
gtk_widget_show (float_parent);
}
}
/*
create_modal_window
*/
@ -2644,6 +2618,63 @@ create_modal_window (void)
* GtkScrolledWindow
*/
static GtkWidget *sw_parent = NULL;
static GtkWidget *sw_float_parent;
static guint sw_destroyed_handler = 0;
static gboolean
scrolled_windows_delete_cb (GtkWidget *widget, GdkEventAny *event, GtkWidget *scrollwin)
{
gtk_widget_reparent (scrollwin, sw_parent);
gtk_signal_disconnect (GTK_OBJECT (sw_parent), sw_destroyed_handler);
sw_float_parent = NULL;
sw_parent = NULL;
sw_destroyed_handler = 0;
return FALSE;
}
static void
scrolled_windows_destroy_cb (GtkWidget *widget, GtkWidget *scrollwin)
{
gtk_widget_destroy (sw_float_parent);
sw_float_parent = NULL;
sw_parent = NULL;
sw_destroyed_handler = 0;
}
static void
scrolled_windows_remove (GtkWidget *widget, GtkWidget *scrollwin)
{
if (sw_parent)
{
gtk_widget_reparent (scrollwin, sw_parent);
gtk_widget_destroy (sw_float_parent);
gtk_signal_disconnect (GTK_OBJECT (sw_parent), sw_destroyed_handler);
sw_float_parent = NULL;
sw_parent = NULL;
sw_destroyed_handler = 0;
}
else
{
sw_parent = scrollwin->parent;
sw_float_parent = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (sw_float_parent), 200, 200);
gtk_widget_reparent (scrollwin, sw_float_parent);
gtk_widget_show (sw_float_parent);
sw_destroyed_handler =
gtk_signal_connect (GTK_OBJECT (sw_parent), "destroy",
GTK_SIGNAL_FUNC (scrolled_windows_destroy_cb), scrollwin);
gtk_signal_connect (GTK_OBJECT (sw_float_parent), "delete_event",
GTK_SIGNAL_FUNC (scrolled_windows_delete_cb), scrollwin);
}
}
static void
create_scrolled_windows (void)
{
@ -2696,7 +2727,7 @@ create_scrolled_windows (void)
}
button = gtk_button_new_with_label ("close");
button = gtk_button_new_with_label ("Close");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC(gtk_widget_destroy),
GTK_OBJECT (window));
@ -2706,10 +2737,10 @@ create_scrolled_windows (void)
gtk_widget_grab_default (button);
gtk_widget_show (button);
button = gtk_button_new_with_label ("remove");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC(scrolled_windows_remove),
GTK_OBJECT (scrolled_window));
button = gtk_button_new_with_label ("Reparent Out");
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC(scrolled_windows_remove),
scrolled_window);
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area),
button, TRUE, TRUE, 0);