Compare commits

...

36 Commits

Author SHA1 Message Date
PDT 1998 Shawn T. Amundson 668c7604a9 Released GTK 1.0.1
Mon May  4 21:07:36 PDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * Released GTK 1.0.1
1998-05-05 04:10:51 +00:00
rhlabs e8cf1d552b autoconf test for shape extension should really find it, now 1998-05-04 22:12:44 +00:00
Owen Taylor 5266d6322a GtkTooltips is an object, not a Boxed now.
Mon May  4 00:32:20 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtk.defs (GtkContainer): GtkTooltips is an
	object, not a Boxed now.
1998-05-04 05:14:20 +00:00
PDT 1998 Shawn T. Amundson 52d2e1b6a1 Version number changed to 1.0.1, along with a more automatic changing of
Sun May  3 20:43:27 PDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * Version number changed to 1.0.1, along with a more automatic
	  changing of version numbers in the Makefile.am files
1998-05-04 03:46:38 +00:00
Owen Taylor 4aa965149c Draw the areas between the default and the button always in
Fri May  1 22:32:47 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
	between the default and the button always in GTK_STATE_NORMAL.

Sun May  3 16:55:43 1998  Tim Janik  <timj@gtk.org>

	* gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
	set the current focus_child of a container, does proper referencing and
	adjusts the vadjustment/hadjustment associated with the focus widget.

	* gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
	containers via gtk_container_set_focus_child.

	* gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
 	where appropriate.

	* gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
 	child since not every child removal goes through this function (this
	showed up after gtk_container_set_focus_child() started to reference the
 	focus_child of a container).

	* gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
	of a container from gtk_container_remove into this place.
1998-05-04 02:54:17 +00:00
Owen Taylor ab40e71ec9 Don't force a clear until the widget is actually on screen.
Sun May  3 19:04:46 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtklabel.c (gtk_label_state_changed): Don't
	force a clear until the widget is actually on
	screen.
1998-05-03 23:38:58 +00:00
Owen Taylor d8e88af7d0 configure.in acheader.h gdk/gdkwindow.c Check for Shape extension both on
Sun May  3 17:20:50 1998  Owen Taylor  <otaylor@gtk.org>

	* configure.in acheader.h gdk/gdkwindow.c
	Check for Shape extension both on the client and server
	side. (And, more importantly, check for the shape extension
	so we may include -lXext even when compiling with --disable-xshm)

	* gdk/gdkwindow.c: Set ->colormap to NULL for root
	and foreign windows. Use this to check if we
	need to get the colormap from X.

Fri May  1 16:40:57 1998  Owen Taylor  <otaylor@gtk.org>
	[ security-audit changes from Alan Cox ]

	* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
	  Fix a buffer overflow on pixmaps that claim to have
	  more than 31 characters per pixel.

	  (gdk_pixmap_read_string): Don't wrap around strings longer
 	  than half of address space ;-)

	* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
	that were used for printing integers.

	* gdk/gxid.c (handle_claim_device): Some extra checks.
	It isn't safe against being fed bad X id's, but at
	least it should be safe against deleting all your
	files.

Sat May  2 23:14:34 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkcurve.c (gtk_curve_graph_events): Ignore
	Configure events that would result in a negative
	size.

Sat May  2 00:14:05 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
	parameters to log are doubles. Digital Unix apparently
	is missing the argument in its prototype.
1998-05-03 22:17:05 +00:00
Owen Taylor 1a7acfef50 Added a FAQ entry about "glibconfig.h" and another about writing another
Sun May  3 14:55:34 1998  Owen Taylor  <otaylor@gtk.org>

	* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
	"glibconfig.h" and another about writing another IRC
	client.
1998-05-03 18:55:03 +00:00
Owen Taylor f8116014c1 Always show the scrollbars when the policy is GTK_POLICY_ALWAYS...
Fri May  1 22:45:55 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
	Always show the scrollbars when the policy is
	GTK_POLICY_ALWAYS...
1998-05-02 02:55:02 +00:00
Tim Janik eedaab9236 ok this will fix the gimp's channel & layers refcounting wiredness,
but the gimp really ougtha fixed in dealing with gtklists.
BTW: i *hate* backporting bugfixes!

Fri May  1 10:05:44 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
                for us.
                        (gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
                                children.
                                        (gtk_list_shutdown): remove all children from the list.
                                                (gtk_real_list_unselect_child):
                                                        (gtk_real_list_select_child): *always* put our internal structures into
                                                                sane state *before* signal emisions (i.e. list->selection updates prior
                                                                        to gtk_list_item_[de]select() calls).
1998-05-01 17:28:55 +00:00
Owen Taylor 2117f4ac7e Fix up getting colormap for FOREIGN windows to go along with Raster's fix
Fri May  1 00:42:25 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkwindow.c (gdk_window_get_colormap): Fix up
	getting colormap for FOREIGN windows to go along with
	Raster's fix for visuals.
1998-05-01 04:53:18 +00:00
Owen Taylor 6349f7cb2c Check to catch the case when the viewport fits in either direction or
Thu Apr 30 23:32:51 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
	Check to catch the case when the viewport fits in either
 	direction or both, instead of flip-flopping infinitely.

	Only show/hide the scrollbars once at the end.

Thu Apr 30 21:56:07 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
	Include the scrollbars in the foreach call.
	(gtk-fortier-980405-0.patch;
 	 Patrice Fortier <Patrice.Fortier@aquarel.fr>).

	The notebook widget
	really should also include its tabs, but that might cause
	problems for programs if they
1998-05-01 03:37:01 +00:00
Owen Taylor 8435d34838 Check arguments more carefully, (gtk-draco-980423-1.patch;
Thu Apr 30 21:41:30 1998  Owen Taylor  <otaylor@gtk.org>

	* gstring.c : Check arguments more carefully,
	(gtk-draco-980423-1.patch; ramsey@rhrk.uni-kl.de)
1998-05-01 01:41:06 +00:00
rhlabs 0f0ede22ad <raster@redhat.com> fixed gdk_window_get_visual() to check for a foreign
<raster@redhat.com>
fixed gdk_window_get_visual() to check for a foreign window and if so return
the visual the old-way (which worked) the new way only works for gdk created
windows. Now wfixed - keeping owen's optimisations and allowing backwards
compatability.
1998-04-30 23:52:57 +00:00
Owen Taylor 43ef2e2394 Changed Log 1998-04-30 20:46:28 +00:00
Owen Taylor b94559a288 ltmain.sh ltconfig config.sub config.guess:
Thu Apr 30 10:22:59 1998  Owen Taylor  <otaylor@gtk.org>

	* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
	  ltmain.sh ltconfig config.sub config.guess:

	Reverted back to libtool-1.2 (plus minor patches) so as not to
	force the issue for everyone else.
1998-04-30 20:45:30 +00:00
Owen Taylor a3cfbc84cf Update log. Mention new libtool version. 1998-04-30 15:08:58 +00:00
Owen Taylor 4143e106cc Updated to libtool 1.2a.
Thu Apr 30 10:22:59 1998  Owen Taylor  <otaylor@gtk.org>

	* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
	Updated to libtool 1.2a.

	* gtk/gtkclist.c: Draw the in-between lines with style->base
	instead of style->white.
1998-04-30 14:53:02 +00:00
Manish Singh d0a29b40d6 don't die when naughty people remove parts of the filesystem under you (fix
from Josh)

-Yosh
1998-04-30 09:44:07 +00:00
Tim Janik 1b7fc490af check if the viewport already exists before iterating over it, maybe we
Thu Apr 30 09:49:14 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
                if the viewport already exists before iterating over it, maybe we
                        haven't been constructed yet.
1998-04-30 08:08:02 +00:00
Owen Taylor 8c66060a8e Cache the colormap and children of a window locally instead of fetching
Wed Apr 29 15:46:13 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
	Cache the colormap and children of a window locally
	instead of fetching them from the server when needed.
	Huge performance difference for creating/destroying
	windows.

	* gtk/gtkstyle.c: Find the depth from the cached
	visual, instead of asking the server.

	* gtk.m4: Distribute the new version which tries to
	figure out what went wrong and give helpful error
	messages.

	* ltmain.sh ltconfig config.sub config.sh:
	Updated to libtool 1.2a

	* gtk/gtktext.c: Fixed a bug where the drawn level
	was being messed up when the text was scrolled
	during a deletion.
1998-04-30 05:26:57 +00:00
Tim Janik e94d12f926 made this function issue a warning if the GtkBin widget already has a
Thu Apr 30 01:51:00 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
                the GtkBin widget already has a child.

                        * gtk/gtkbox.c (gtk_box_pack_{start|end}):
                                check that child->parent == NULL;
1998-04-30 04:03:06 +00:00
Arturo Espinosa cde57dc1d2 Apply the drag and drop fix to the 1.0 branch as well -mig 1998-04-29 03:08:13 +00:00
Owen Taylor 42a7da51fc Only return FALSE when the clear event is been rejected, not when widget
Tue Apr 28 22:13:54 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkselection.c (gtk_selection_clear): Only return
	FALSE when the clear event is been rejected, not when
	widget has already lost the selection. (Which should
	only happen when we are setting the selection to another
	widget ourself.)
1998-04-29 02:50:40 +00:00
Tim Janik 2bec3fad18 allow the inclusion of other rc-files.
Tue Apr 28 15:46:41 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
                rc-files.
1998-04-28 13:49:05 +00:00
Tim Janik 2f6ee99191 only allow grabbing of focus for CAN_FOCUS widgets.
Mon Apr 27 15:11:52 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
                for CAN_FOCUS widgets.

                        * gtk/testgtk.c (create_scrolled_windows): feature h/v focus
                                adjustments for the table.
                                        (create_list): feature automatic adjustment of the scrolled window to
                                                always contain the focused child.
                                                        (create_main_window): keep the focussed button always inside of the
                                                                scrolled windoww.

                                                                        * gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
                                                                                adjustments, to contain the allocation of the currently focused child.
                                                                                        (gtk_container_set_focus_hadjustment): new functin to set the
                                                                                                horizontal focus adjustment.
                                                                                                        (gtk_container_set_focus_vadjustment): new functin to set the vertical
                                                                                                                focus adjustment.

                                                                                                                        * gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
                                                                                                                                clamp the currents adjustment page into a specific range.

                                                                                                                                        * random GtkType fixups for gtk_*_get_type() functions.



this bug-fix (feature? ;) is fully binary compatible, so just invoke
touch *.h -r gtkbutton.h; make; make install-exec
and you are all set ;)
(devoted to yosh ;)))
1998-04-27 13:46:54 +00:00
Owen Taylor 9a1db40746 Removed the "check visibility after gtk_widget_unparent" bug in hopefully
Fri Apr 24 19:07:32 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:

	Removed the "check visibility after gtk_widget_unparent" bug
	in hopefully the last three places.
1998-04-24 23:13:43 +00:00
Owen Taylor 37bedcc07a Account for the fact that gtk_tree_item_remove_subtree will be called
Fri Apr 24 18:37:16 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
	Account for the fact that gtk_tree_item_remove_subtree
	will be called recursively.

	Handle removing a collapsed subtree.

	(From Andy Dustman <adustman@comstar.net>)

	* gtk/gtktree.c (gtk_tree_remove_items): Look for the
	root tree when removing items from a non-previously
	mapped tree.

	* gtk/testgtk.c: Added a remove_subtree button.
1998-04-24 22:52:15 +00:00
Owen Taylor 302aaa2802 Notify all weak references before object removing data. This change fixes
Thu Apr 23 23:44:17 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
	before object removing data. This change fixes a bug where
	removing the last weak references would cause it to be
	triggered.
1998-04-24 17:14:45 +00:00
Tim Janik 9829d1ee03 merging changes from me and quartic back into the old tree. 1998-04-24 00:57:36 +00:00
Tim Janik aa6097e255 haha! got it merged!
/me wins over cvs (this time...)
1998-04-24 00:46:27 +00:00
Tim Janik 1d8aed6816 prepend the running_timeouts list with the tmp_list link itself, not with
Wed Apr 22 04:15:26 1998  Tim Janik  <timj@gtk.org>

	* gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
 	running_timeouts list with the tmp_list link itself, not with a new
	GList structure pointing to our link. that would fill up memory and
	causes the GList.data fields of the running_timeouts list to point to
	GList structures and not GtkTimeoutFunction structures which is a
 	*really* bad thing.
	(gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
	the above entry ;).
1998-04-22 03:33:50 +00:00
Tim Janik 49680fed32 corrected a brace position (Damon Chaplin), which i got wrong when
Wed Apr 15 05:13:09 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
                (Damon Chaplin), which i got wrong when applying Damon's patch the last
                        time.

hm, first -j use...
1998-04-17 01:18:30 +00:00
Owen Taylor 4a7d355898 Make sure that when we are running with a non-installed colormap, in 8-bit
Wed Apr 15 20:42:46 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
	that when we are running with a non-installed colormap,
        in 8-bit pseudo-color, we actually are using the system
	visual. (Fixes *Bad Match* errors on Digital Unix machines
	with multiple 8-bit pseudo-color visuals)

	* gdk/Makefile.am: Removed mostly useless dependency that
	was causing problems for SGI's make, when used with
	the 'make dist' form of GTK+. (Dependency caused dependencies
        to be redone when BUILT_SOURCES changed)
1998-04-16 01:01:04 +00:00
Arturo Espinosa 0982f71b98 Put the gdkwindow.c fix here too 1998-04-15 03:40:58 +00:00
Shawn Amundson 7363897409 Makefile.am: add gtk+.spec, removed gtk+.prj
Makefile.am: add gtk+.spec, removed gtk+.prj
1998-04-14 03:08:50 +00:00
92 changed files with 4327 additions and 2537 deletions
+2 -2
View File
@@ -10,9 +10,9 @@ The GTK+ Team (in alphabetical order)
Shawn T. Amundson <amundson@gtk.org>
Jerome Bolliet <bolliet@in2p3.fr>
Tony Gale <gale@gtk.org>
Lars Hamann <hamann@braunschweig.netsurf.de>
Lars Hamann <lars@gtk.org>
Tim Janik <timj@gtk.org>
Stefan Jeske <jeske@braunschweig.netsurf.de>
Stefan Jeske <stefan@gtk.org>
Elliot Lee <sopwith@gtk.org>
Ian Main <imain@gtk.org>
Fedrerico Mena <quartic@gtk.org>
+337
View File
@@ -1,3 +1,340 @@
Mon May 4 21:07:36 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK 1.0.1
Mon May 4 00:32:20 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtk.defs (GtkContainer): GtkTooltips is an
object, not a Boxed, now.
Sun May 3 20:43:27 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Version number changed to 1.0.1, along with a more automatic
changing of version numbers in the Makefile.am files
Fri May 1 22:32:47 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
between the default and the button always in GTK_STATE_NORMAL.
Sun May 3 16:55:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
set the current focus_child of a container, does proper referencing and
adjusts the vadjustment/hadjustment associated with the focus widget.
* gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
containers via gtk_container_set_focus_child.
* gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
where appropriate.
* gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
child since not every child removal goes through this function (this
showed up after gtk_container_set_focus_child() started to reference the
focus_child of a container).
* gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
of a container from gtk_container_remove into this place.
Sun May 3 19:04:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtklabel.c (gtk_label_state_changed): Don't
force a clear until the widget is actually on
screen.
Sun May 3 17:20:50 1998 Owen Taylor <otaylor@gtk.org>
* configure.in acheader.h gdk/gdkwindow.c
Check for Shape extension both on the client and server
side. (And, more importantly, check for the shape extension
so we may include -lXext even when compiling with --disable-xshm)
* gdk/gdkwindow.c: Set ->colormap to NULL for root
and foreign windows. Use this to check if we
need to get the colormap from X.
Sun May 3 14:55:34 1998 Owen Taylor <otaylor@gtk.org>
* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
"glibconfig.h" and another about writing another IRC
client.
Fri May 1 16:40:57 1998 Owen Taylor <otaylor@gtk.org>
[ security-audit changes from Alan Cox ]
* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
Fix a buffer overflow on pixmaps that claim to have
more than 31 characters per pixel.
(gdk_pixmap_read_string): Don't wrap around strings longer
than half of address space ;-)
* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
that were used for printing integers.
* gdk/gxid.c (handle_claim_device): Some extra checks.
It isn't safe against being fed bad X id's, but at
least it should be safe against deleting all your
files.
Sat May 2 23:14:34 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcurve.c (gtk_curve_graph_events): Ignore
Configure events that would result in a negative
size.
Sat May 2 00:14:05 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
parameters to log are doubles. Digital Unix apparently
is missing the argument in its prototype.
Fri May 1 22:45:55 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Always show the scrollbars when the policy is
GTK_POLICY_ALWAYS...
Fri May 1 10:05:44 1998 Tim Janik <timj@gtk.org>
* gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
for us.
(gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
children.
(gtk_list_shutdown): remove all children from the list.
(gtk_real_list_unselect_child):
(gtk_real_list_select_child): *always* put our internal structures into
sane state *before* signal emisions (i.e. list->selection updates prior
to gtk_list_item_[de]select() calls).
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Fri Apr 24 01:29:04 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelerator.h (struct _GtkAcceleratorTable): changed ref_count
field to be of type guint.
* gtk/gtkaccelerator.c (gtk_accelerator_table_unref): added check for
ref_count>0;
(gtk_accelerator_table_install): keep a per object list of accelerator
tables that refer to this object.
(gtk_accelerator_table_remove): remove the accelerator table from the
per object list.
(gtk_accelerator_table_clean): warn if there are any object references
left in an accelerator table upon destruction.
(gtk_accelerator_tables_delete): new function to delete object
references from the accelerator tables associated with this object.
* gtk/gtkwidget.c (gtk_widget_class_init): changed emission of
GtkWidget::install_accelerator to GTK_RUN_LAST so the installation
of an accelerator can be prevented by gtk_signal_emit_stop().
(gtk_widget_real_destroy): call gtk_accelerator_tables_delete (),
so there are no stale pointers in accelerator tables left.
1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkbin.c (gtk_bin_remove): Remember whether the widget was
visible before we unparent it.
Wed Apr 22 04:15:26 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
running_timeouts list with the tmp_list link itself, not with a new
GList structure pointing to our link. that would fill up memory and
causes the GList.data fields of the running_timeouts list to point to
GList structures and not GtkTimeoutFunction structures which is a
*really* bad thing.
(gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
the above entry ;).
Sat Apr 18 22:18:12 1998 Tim Janik <timj@gtk.org>
* gtk/gtkradiomenuitem.h:
* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_set_group): new function
ala gtk_radio_button_set_group.
(gtk_radio_menu_item_init): assure that we always have at least a group
that points to self.
* gtk/gtkradiobutton.c (gtk_radio_button_set_group): few cleanups and
added g_return_if_fail() statements.
(gtk_radio_button_init): assure that we always have at least a group
that points to self.
Wed Apr 15 05:13:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
(Damon Chaplin), which i got wrong when applying Damon's patch the last
time.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
that when we are running with a non-installed colormap,
in 8-bit pseudo-color, we actually are using the system
visual. (Fixes *Bad Match* errors on Digital Unix machines
with multiple 8-bit pseudo-color visuals)
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
1998-04-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
by whoever thought that randomly changing ints to unsigned int
without reviewing the code was a good idea. It is, btw not
mentioned in the ChangeLog as usual, but I know it was not Elliot
the culprit this time.
Mon Apr 13 19:16:22 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK+ 1.0.0
+337
View File
@@ -1,3 +1,340 @@
Mon May 4 21:07:36 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK 1.0.1
Mon May 4 00:32:20 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtk.defs (GtkContainer): GtkTooltips is an
object, not a Boxed, now.
Sun May 3 20:43:27 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Version number changed to 1.0.1, along with a more automatic
changing of version numbers in the Makefile.am files
Fri May 1 22:32:47 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
between the default and the button always in GTK_STATE_NORMAL.
Sun May 3 16:55:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
set the current focus_child of a container, does proper referencing and
adjusts the vadjustment/hadjustment associated with the focus widget.
* gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
containers via gtk_container_set_focus_child.
* gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
where appropriate.
* gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
child since not every child removal goes through this function (this
showed up after gtk_container_set_focus_child() started to reference the
focus_child of a container).
* gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
of a container from gtk_container_remove into this place.
Sun May 3 19:04:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtklabel.c (gtk_label_state_changed): Don't
force a clear until the widget is actually on
screen.
Sun May 3 17:20:50 1998 Owen Taylor <otaylor@gtk.org>
* configure.in acheader.h gdk/gdkwindow.c
Check for Shape extension both on the client and server
side. (And, more importantly, check for the shape extension
so we may include -lXext even when compiling with --disable-xshm)
* gdk/gdkwindow.c: Set ->colormap to NULL for root
and foreign windows. Use this to check if we
need to get the colormap from X.
Sun May 3 14:55:34 1998 Owen Taylor <otaylor@gtk.org>
* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
"glibconfig.h" and another about writing another IRC
client.
Fri May 1 16:40:57 1998 Owen Taylor <otaylor@gtk.org>
[ security-audit changes from Alan Cox ]
* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
Fix a buffer overflow on pixmaps that claim to have
more than 31 characters per pixel.
(gdk_pixmap_read_string): Don't wrap around strings longer
than half of address space ;-)
* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
that were used for printing integers.
* gdk/gxid.c (handle_claim_device): Some extra checks.
It isn't safe against being fed bad X id's, but at
least it should be safe against deleting all your
files.
Sat May 2 23:14:34 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcurve.c (gtk_curve_graph_events): Ignore
Configure events that would result in a negative
size.
Sat May 2 00:14:05 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
parameters to log are doubles. Digital Unix apparently
is missing the argument in its prototype.
Fri May 1 22:45:55 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Always show the scrollbars when the policy is
GTK_POLICY_ALWAYS...
Fri May 1 10:05:44 1998 Tim Janik <timj@gtk.org>
* gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
for us.
(gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
children.
(gtk_list_shutdown): remove all children from the list.
(gtk_real_list_unselect_child):
(gtk_real_list_select_child): *always* put our internal structures into
sane state *before* signal emisions (i.e. list->selection updates prior
to gtk_list_item_[de]select() calls).
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Fri Apr 24 01:29:04 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelerator.h (struct _GtkAcceleratorTable): changed ref_count
field to be of type guint.
* gtk/gtkaccelerator.c (gtk_accelerator_table_unref): added check for
ref_count>0;
(gtk_accelerator_table_install): keep a per object list of accelerator
tables that refer to this object.
(gtk_accelerator_table_remove): remove the accelerator table from the
per object list.
(gtk_accelerator_table_clean): warn if there are any object references
left in an accelerator table upon destruction.
(gtk_accelerator_tables_delete): new function to delete object
references from the accelerator tables associated with this object.
* gtk/gtkwidget.c (gtk_widget_class_init): changed emission of
GtkWidget::install_accelerator to GTK_RUN_LAST so the installation
of an accelerator can be prevented by gtk_signal_emit_stop().
(gtk_widget_real_destroy): call gtk_accelerator_tables_delete (),
so there are no stale pointers in accelerator tables left.
1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkbin.c (gtk_bin_remove): Remember whether the widget was
visible before we unparent it.
Wed Apr 22 04:15:26 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
running_timeouts list with the tmp_list link itself, not with a new
GList structure pointing to our link. that would fill up memory and
causes the GList.data fields of the running_timeouts list to point to
GList structures and not GtkTimeoutFunction structures which is a
*really* bad thing.
(gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
the above entry ;).
Sat Apr 18 22:18:12 1998 Tim Janik <timj@gtk.org>
* gtk/gtkradiomenuitem.h:
* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_set_group): new function
ala gtk_radio_button_set_group.
(gtk_radio_menu_item_init): assure that we always have at least a group
that points to self.
* gtk/gtkradiobutton.c (gtk_radio_button_set_group): few cleanups and
added g_return_if_fail() statements.
(gtk_radio_button_init): assure that we always have at least a group
that points to self.
Wed Apr 15 05:13:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
(Damon Chaplin), which i got wrong when applying Damon's patch the last
time.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
that when we are running with a non-installed colormap,
in 8-bit pseudo-color, we actually are using the system
visual. (Fixes *Bad Match* errors on Digital Unix machines
with multiple 8-bit pseudo-color visuals)
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
1998-04-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
by whoever thought that randomly changing ints to unsigned int
without reviewing the code was a good idea. It is, btw not
mentioned in the ChangeLog as usual, but I know it was not Elliot
the culprit this time.
Mon Apr 13 19:16:22 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK+ 1.0.0
+337
View File
@@ -1,3 +1,340 @@
Mon May 4 21:07:36 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK 1.0.1
Mon May 4 00:32:20 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtk.defs (GtkContainer): GtkTooltips is an
object, not a Boxed, now.
Sun May 3 20:43:27 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Version number changed to 1.0.1, along with a more automatic
changing of version numbers in the Makefile.am files
Fri May 1 22:32:47 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
between the default and the button always in GTK_STATE_NORMAL.
Sun May 3 16:55:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
set the current focus_child of a container, does proper referencing and
adjusts the vadjustment/hadjustment associated with the focus widget.
* gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
containers via gtk_container_set_focus_child.
* gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
where appropriate.
* gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
child since not every child removal goes through this function (this
showed up after gtk_container_set_focus_child() started to reference the
focus_child of a container).
* gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
of a container from gtk_container_remove into this place.
Sun May 3 19:04:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtklabel.c (gtk_label_state_changed): Don't
force a clear until the widget is actually on
screen.
Sun May 3 17:20:50 1998 Owen Taylor <otaylor@gtk.org>
* configure.in acheader.h gdk/gdkwindow.c
Check for Shape extension both on the client and server
side. (And, more importantly, check for the shape extension
so we may include -lXext even when compiling with --disable-xshm)
* gdk/gdkwindow.c: Set ->colormap to NULL for root
and foreign windows. Use this to check if we
need to get the colormap from X.
Sun May 3 14:55:34 1998 Owen Taylor <otaylor@gtk.org>
* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
"glibconfig.h" and another about writing another IRC
client.
Fri May 1 16:40:57 1998 Owen Taylor <otaylor@gtk.org>
[ security-audit changes from Alan Cox ]
* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
Fix a buffer overflow on pixmaps that claim to have
more than 31 characters per pixel.
(gdk_pixmap_read_string): Don't wrap around strings longer
than half of address space ;-)
* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
that were used for printing integers.
* gdk/gxid.c (handle_claim_device): Some extra checks.
It isn't safe against being fed bad X id's, but at
least it should be safe against deleting all your
files.
Sat May 2 23:14:34 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcurve.c (gtk_curve_graph_events): Ignore
Configure events that would result in a negative
size.
Sat May 2 00:14:05 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
parameters to log are doubles. Digital Unix apparently
is missing the argument in its prototype.
Fri May 1 22:45:55 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Always show the scrollbars when the policy is
GTK_POLICY_ALWAYS...
Fri May 1 10:05:44 1998 Tim Janik <timj@gtk.org>
* gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
for us.
(gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
children.
(gtk_list_shutdown): remove all children from the list.
(gtk_real_list_unselect_child):
(gtk_real_list_select_child): *always* put our internal structures into
sane state *before* signal emisions (i.e. list->selection updates prior
to gtk_list_item_[de]select() calls).
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Fri Apr 24 01:29:04 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelerator.h (struct _GtkAcceleratorTable): changed ref_count
field to be of type guint.
* gtk/gtkaccelerator.c (gtk_accelerator_table_unref): added check for
ref_count>0;
(gtk_accelerator_table_install): keep a per object list of accelerator
tables that refer to this object.
(gtk_accelerator_table_remove): remove the accelerator table from the
per object list.
(gtk_accelerator_table_clean): warn if there are any object references
left in an accelerator table upon destruction.
(gtk_accelerator_tables_delete): new function to delete object
references from the accelerator tables associated with this object.
* gtk/gtkwidget.c (gtk_widget_class_init): changed emission of
GtkWidget::install_accelerator to GTK_RUN_LAST so the installation
of an accelerator can be prevented by gtk_signal_emit_stop().
(gtk_widget_real_destroy): call gtk_accelerator_tables_delete (),
so there are no stale pointers in accelerator tables left.
1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkbin.c (gtk_bin_remove): Remember whether the widget was
visible before we unparent it.
Wed Apr 22 04:15:26 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
running_timeouts list with the tmp_list link itself, not with a new
GList structure pointing to our link. that would fill up memory and
causes the GList.data fields of the running_timeouts list to point to
GList structures and not GtkTimeoutFunction structures which is a
*really* bad thing.
(gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
the above entry ;).
Sat Apr 18 22:18:12 1998 Tim Janik <timj@gtk.org>
* gtk/gtkradiomenuitem.h:
* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_set_group): new function
ala gtk_radio_button_set_group.
(gtk_radio_menu_item_init): assure that we always have at least a group
that points to self.
* gtk/gtkradiobutton.c (gtk_radio_button_set_group): few cleanups and
added g_return_if_fail() statements.
(gtk_radio_button_init): assure that we always have at least a group
that points to self.
Wed Apr 15 05:13:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
(Damon Chaplin), which i got wrong when applying Damon's patch the last
time.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
that when we are running with a non-installed colormap,
in 8-bit pseudo-color, we actually are using the system
visual. (Fixes *Bad Match* errors on Digital Unix machines
with multiple 8-bit pseudo-color visuals)
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
1998-04-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
by whoever thought that randomly changing ints to unsigned int
without reviewing the code was a good idea. It is, btw not
mentioned in the ChangeLog as usual, but I know it was not Elliot
the culprit this time.
Mon Apr 13 19:16:22 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK+ 1.0.0
+337
View File
@@ -1,3 +1,340 @@
Mon May 4 21:07:36 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK 1.0.1
Mon May 4 00:32:20 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtk.defs (GtkContainer): GtkTooltips is an
object, not a Boxed, now.
Sun May 3 20:43:27 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Version number changed to 1.0.1, along with a more automatic
changing of version numbers in the Makefile.am files
Fri May 1 22:32:47 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
between the default and the button always in GTK_STATE_NORMAL.
Sun May 3 16:55:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
set the current focus_child of a container, does proper referencing and
adjusts the vadjustment/hadjustment associated with the focus widget.
* gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
containers via gtk_container_set_focus_child.
* gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
where appropriate.
* gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
child since not every child removal goes through this function (this
showed up after gtk_container_set_focus_child() started to reference the
focus_child of a container).
* gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
of a container from gtk_container_remove into this place.
Sun May 3 19:04:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtklabel.c (gtk_label_state_changed): Don't
force a clear until the widget is actually on
screen.
Sun May 3 17:20:50 1998 Owen Taylor <otaylor@gtk.org>
* configure.in acheader.h gdk/gdkwindow.c
Check for Shape extension both on the client and server
side. (And, more importantly, check for the shape extension
so we may include -lXext even when compiling with --disable-xshm)
* gdk/gdkwindow.c: Set ->colormap to NULL for root
and foreign windows. Use this to check if we
need to get the colormap from X.
Sun May 3 14:55:34 1998 Owen Taylor <otaylor@gtk.org>
* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
"glibconfig.h" and another about writing another IRC
client.
Fri May 1 16:40:57 1998 Owen Taylor <otaylor@gtk.org>
[ security-audit changes from Alan Cox ]
* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
Fix a buffer overflow on pixmaps that claim to have
more than 31 characters per pixel.
(gdk_pixmap_read_string): Don't wrap around strings longer
than half of address space ;-)
* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
that were used for printing integers.
* gdk/gxid.c (handle_claim_device): Some extra checks.
It isn't safe against being fed bad X id's, but at
least it should be safe against deleting all your
files.
Sat May 2 23:14:34 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcurve.c (gtk_curve_graph_events): Ignore
Configure events that would result in a negative
size.
Sat May 2 00:14:05 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
parameters to log are doubles. Digital Unix apparently
is missing the argument in its prototype.
Fri May 1 22:45:55 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Always show the scrollbars when the policy is
GTK_POLICY_ALWAYS...
Fri May 1 10:05:44 1998 Tim Janik <timj@gtk.org>
* gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
for us.
(gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
children.
(gtk_list_shutdown): remove all children from the list.
(gtk_real_list_unselect_child):
(gtk_real_list_select_child): *always* put our internal structures into
sane state *before* signal emisions (i.e. list->selection updates prior
to gtk_list_item_[de]select() calls).
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Fri Apr 24 01:29:04 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelerator.h (struct _GtkAcceleratorTable): changed ref_count
field to be of type guint.
* gtk/gtkaccelerator.c (gtk_accelerator_table_unref): added check for
ref_count>0;
(gtk_accelerator_table_install): keep a per object list of accelerator
tables that refer to this object.
(gtk_accelerator_table_remove): remove the accelerator table from the
per object list.
(gtk_accelerator_table_clean): warn if there are any object references
left in an accelerator table upon destruction.
(gtk_accelerator_tables_delete): new function to delete object
references from the accelerator tables associated with this object.
* gtk/gtkwidget.c (gtk_widget_class_init): changed emission of
GtkWidget::install_accelerator to GTK_RUN_LAST so the installation
of an accelerator can be prevented by gtk_signal_emit_stop().
(gtk_widget_real_destroy): call gtk_accelerator_tables_delete (),
so there are no stale pointers in accelerator tables left.
1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkbin.c (gtk_bin_remove): Remember whether the widget was
visible before we unparent it.
Wed Apr 22 04:15:26 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
running_timeouts list with the tmp_list link itself, not with a new
GList structure pointing to our link. that would fill up memory and
causes the GList.data fields of the running_timeouts list to point to
GList structures and not GtkTimeoutFunction structures which is a
*really* bad thing.
(gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
the above entry ;).
Sat Apr 18 22:18:12 1998 Tim Janik <timj@gtk.org>
* gtk/gtkradiomenuitem.h:
* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_set_group): new function
ala gtk_radio_button_set_group.
(gtk_radio_menu_item_init): assure that we always have at least a group
that points to self.
* gtk/gtkradiobutton.c (gtk_radio_button_set_group): few cleanups and
added g_return_if_fail() statements.
(gtk_radio_button_init): assure that we always have at least a group
that points to self.
Wed Apr 15 05:13:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
(Damon Chaplin), which i got wrong when applying Damon's patch the last
time.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
that when we are running with a non-installed colormap,
in 8-bit pseudo-color, we actually are using the system
visual. (Fixes *Bad Match* errors on Digital Unix machines
with multiple 8-bit pseudo-color visuals)
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
1998-04-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
by whoever thought that randomly changing ints to unsigned int
without reviewing the code was a good idea. It is, btw not
mentioned in the ChangeLog as usual, but I know it was not Elliot
the culprit this time.
Mon Apr 13 19:16:22 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK+ 1.0.0
+337
View File
@@ -1,3 +1,340 @@
Mon May 4 21:07:36 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK 1.0.1
Mon May 4 00:32:20 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtk.defs (GtkContainer): GtkTooltips is an
object, not a Boxed, now.
Sun May 3 20:43:27 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Version number changed to 1.0.1, along with a more automatic
changing of version numbers in the Makefile.am files
Fri May 1 22:32:47 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
between the default and the button always in GTK_STATE_NORMAL.
Sun May 3 16:55:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
set the current focus_child of a container, does proper referencing and
adjusts the vadjustment/hadjustment associated with the focus widget.
* gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
containers via gtk_container_set_focus_child.
* gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
where appropriate.
* gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
child since not every child removal goes through this function (this
showed up after gtk_container_set_focus_child() started to reference the
focus_child of a container).
* gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
of a container from gtk_container_remove into this place.
Sun May 3 19:04:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtklabel.c (gtk_label_state_changed): Don't
force a clear until the widget is actually on
screen.
Sun May 3 17:20:50 1998 Owen Taylor <otaylor@gtk.org>
* configure.in acheader.h gdk/gdkwindow.c
Check for Shape extension both on the client and server
side. (And, more importantly, check for the shape extension
so we may include -lXext even when compiling with --disable-xshm)
* gdk/gdkwindow.c: Set ->colormap to NULL for root
and foreign windows. Use this to check if we
need to get the colormap from X.
Sun May 3 14:55:34 1998 Owen Taylor <otaylor@gtk.org>
* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
"glibconfig.h" and another about writing another IRC
client.
Fri May 1 16:40:57 1998 Owen Taylor <otaylor@gtk.org>
[ security-audit changes from Alan Cox ]
* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
Fix a buffer overflow on pixmaps that claim to have
more than 31 characters per pixel.
(gdk_pixmap_read_string): Don't wrap around strings longer
than half of address space ;-)
* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
that were used for printing integers.
* gdk/gxid.c (handle_claim_device): Some extra checks.
It isn't safe against being fed bad X id's, but at
least it should be safe against deleting all your
files.
Sat May 2 23:14:34 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcurve.c (gtk_curve_graph_events): Ignore
Configure events that would result in a negative
size.
Sat May 2 00:14:05 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
parameters to log are doubles. Digital Unix apparently
is missing the argument in its prototype.
Fri May 1 22:45:55 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Always show the scrollbars when the policy is
GTK_POLICY_ALWAYS...
Fri May 1 10:05:44 1998 Tim Janik <timj@gtk.org>
* gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
for us.
(gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
children.
(gtk_list_shutdown): remove all children from the list.
(gtk_real_list_unselect_child):
(gtk_real_list_select_child): *always* put our internal structures into
sane state *before* signal emisions (i.e. list->selection updates prior
to gtk_list_item_[de]select() calls).
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Fri Apr 24 01:29:04 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelerator.h (struct _GtkAcceleratorTable): changed ref_count
field to be of type guint.
* gtk/gtkaccelerator.c (gtk_accelerator_table_unref): added check for
ref_count>0;
(gtk_accelerator_table_install): keep a per object list of accelerator
tables that refer to this object.
(gtk_accelerator_table_remove): remove the accelerator table from the
per object list.
(gtk_accelerator_table_clean): warn if there are any object references
left in an accelerator table upon destruction.
(gtk_accelerator_tables_delete): new function to delete object
references from the accelerator tables associated with this object.
* gtk/gtkwidget.c (gtk_widget_class_init): changed emission of
GtkWidget::install_accelerator to GTK_RUN_LAST so the installation
of an accelerator can be prevented by gtk_signal_emit_stop().
(gtk_widget_real_destroy): call gtk_accelerator_tables_delete (),
so there are no stale pointers in accelerator tables left.
1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkbin.c (gtk_bin_remove): Remember whether the widget was
visible before we unparent it.
Wed Apr 22 04:15:26 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
running_timeouts list with the tmp_list link itself, not with a new
GList structure pointing to our link. that would fill up memory and
causes the GList.data fields of the running_timeouts list to point to
GList structures and not GtkTimeoutFunction structures which is a
*really* bad thing.
(gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
the above entry ;).
Sat Apr 18 22:18:12 1998 Tim Janik <timj@gtk.org>
* gtk/gtkradiomenuitem.h:
* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_set_group): new function
ala gtk_radio_button_set_group.
(gtk_radio_menu_item_init): assure that we always have at least a group
that points to self.
* gtk/gtkradiobutton.c (gtk_radio_button_set_group): few cleanups and
added g_return_if_fail() statements.
(gtk_radio_button_init): assure that we always have at least a group
that points to self.
Wed Apr 15 05:13:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
(Damon Chaplin), which i got wrong when applying Damon's patch the last
time.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
that when we are running with a non-installed colormap,
in 8-bit pseudo-color, we actually are using the system
visual. (Fixes *Bad Match* errors on Digital Unix machines
with multiple 8-bit pseudo-color visuals)
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
1998-04-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
by whoever thought that randomly changing ints to unsigned int
without reviewing the code was a good idea. It is, btw not
mentioned in the ChangeLog as usual, but I know it was not Elliot
the culprit this time.
Mon Apr 13 19:16:22 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK+ 1.0.0
+337
View File
@@ -1,3 +1,340 @@
Mon May 4 21:07:36 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK 1.0.1
Mon May 4 00:32:20 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtk.defs (GtkContainer): GtkTooltips is an
object, not a Boxed, now.
Sun May 3 20:43:27 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Version number changed to 1.0.1, along with a more automatic
changing of version numbers in the Makefile.am files
Fri May 1 22:32:47 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
between the default and the button always in GTK_STATE_NORMAL.
Sun May 3 16:55:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
set the current focus_child of a container, does proper referencing and
adjusts the vadjustment/hadjustment associated with the focus widget.
* gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
containers via gtk_container_set_focus_child.
* gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
where appropriate.
* gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
child since not every child removal goes through this function (this
showed up after gtk_container_set_focus_child() started to reference the
focus_child of a container).
* gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
of a container from gtk_container_remove into this place.
Sun May 3 19:04:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtklabel.c (gtk_label_state_changed): Don't
force a clear until the widget is actually on
screen.
Sun May 3 17:20:50 1998 Owen Taylor <otaylor@gtk.org>
* configure.in acheader.h gdk/gdkwindow.c
Check for Shape extension both on the client and server
side. (And, more importantly, check for the shape extension
so we may include -lXext even when compiling with --disable-xshm)
* gdk/gdkwindow.c: Set ->colormap to NULL for root
and foreign windows. Use this to check if we
need to get the colormap from X.
Sun May 3 14:55:34 1998 Owen Taylor <otaylor@gtk.org>
* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
"glibconfig.h" and another about writing another IRC
client.
Fri May 1 16:40:57 1998 Owen Taylor <otaylor@gtk.org>
[ security-audit changes from Alan Cox ]
* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
Fix a buffer overflow on pixmaps that claim to have
more than 31 characters per pixel.
(gdk_pixmap_read_string): Don't wrap around strings longer
than half of address space ;-)
* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
that were used for printing integers.
* gdk/gxid.c (handle_claim_device): Some extra checks.
It isn't safe against being fed bad X id's, but at
least it should be safe against deleting all your
files.
Sat May 2 23:14:34 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcurve.c (gtk_curve_graph_events): Ignore
Configure events that would result in a negative
size.
Sat May 2 00:14:05 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
parameters to log are doubles. Digital Unix apparently
is missing the argument in its prototype.
Fri May 1 22:45:55 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Always show the scrollbars when the policy is
GTK_POLICY_ALWAYS...
Fri May 1 10:05:44 1998 Tim Janik <timj@gtk.org>
* gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
for us.
(gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
children.
(gtk_list_shutdown): remove all children from the list.
(gtk_real_list_unselect_child):
(gtk_real_list_select_child): *always* put our internal structures into
sane state *before* signal emisions (i.e. list->selection updates prior
to gtk_list_item_[de]select() calls).
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Fri Apr 24 01:29:04 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelerator.h (struct _GtkAcceleratorTable): changed ref_count
field to be of type guint.
* gtk/gtkaccelerator.c (gtk_accelerator_table_unref): added check for
ref_count>0;
(gtk_accelerator_table_install): keep a per object list of accelerator
tables that refer to this object.
(gtk_accelerator_table_remove): remove the accelerator table from the
per object list.
(gtk_accelerator_table_clean): warn if there are any object references
left in an accelerator table upon destruction.
(gtk_accelerator_tables_delete): new function to delete object
references from the accelerator tables associated with this object.
* gtk/gtkwidget.c (gtk_widget_class_init): changed emission of
GtkWidget::install_accelerator to GTK_RUN_LAST so the installation
of an accelerator can be prevented by gtk_signal_emit_stop().
(gtk_widget_real_destroy): call gtk_accelerator_tables_delete (),
so there are no stale pointers in accelerator tables left.
1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkbin.c (gtk_bin_remove): Remember whether the widget was
visible before we unparent it.
Wed Apr 22 04:15:26 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
running_timeouts list with the tmp_list link itself, not with a new
GList structure pointing to our link. that would fill up memory and
causes the GList.data fields of the running_timeouts list to point to
GList structures and not GtkTimeoutFunction structures which is a
*really* bad thing.
(gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
the above entry ;).
Sat Apr 18 22:18:12 1998 Tim Janik <timj@gtk.org>
* gtk/gtkradiomenuitem.h:
* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_set_group): new function
ala gtk_radio_button_set_group.
(gtk_radio_menu_item_init): assure that we always have at least a group
that points to self.
* gtk/gtkradiobutton.c (gtk_radio_button_set_group): few cleanups and
added g_return_if_fail() statements.
(gtk_radio_button_init): assure that we always have at least a group
that points to self.
Wed Apr 15 05:13:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
(Damon Chaplin), which i got wrong when applying Damon's patch the last
time.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
that when we are running with a non-installed colormap,
in 8-bit pseudo-color, we actually are using the system
visual. (Fixes *Bad Match* errors on Digital Unix machines
with multiple 8-bit pseudo-color visuals)
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
1998-04-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
by whoever thought that randomly changing ints to unsigned int
without reviewing the code was a good idea. It is, btw not
mentioned in the ChangeLog as usual, but I know it was not Elliot
the culprit this time.
Mon Apr 13 19:16:22 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK+ 1.0.0
+337
View File
@@ -1,3 +1,340 @@
Mon May 4 21:07:36 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK 1.0.1
Mon May 4 00:32:20 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtk.defs (GtkContainer): GtkTooltips is an
object, not a Boxed, now.
Sun May 3 20:43:27 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Version number changed to 1.0.1, along with a more automatic
changing of version numbers in the Makefile.am files
Fri May 1 22:32:47 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
between the default and the button always in GTK_STATE_NORMAL.
Sun May 3 16:55:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
set the current focus_child of a container, does proper referencing and
adjusts the vadjustment/hadjustment associated with the focus widget.
* gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
containers via gtk_container_set_focus_child.
* gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
where appropriate.
* gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
child since not every child removal goes through this function (this
showed up after gtk_container_set_focus_child() started to reference the
focus_child of a container).
* gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
of a container from gtk_container_remove into this place.
Sun May 3 19:04:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtklabel.c (gtk_label_state_changed): Don't
force a clear until the widget is actually on
screen.
Sun May 3 17:20:50 1998 Owen Taylor <otaylor@gtk.org>
* configure.in acheader.h gdk/gdkwindow.c
Check for Shape extension both on the client and server
side. (And, more importantly, check for the shape extension
so we may include -lXext even when compiling with --disable-xshm)
* gdk/gdkwindow.c: Set ->colormap to NULL for root
and foreign windows. Use this to check if we
need to get the colormap from X.
Sun May 3 14:55:34 1998 Owen Taylor <otaylor@gtk.org>
* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
"glibconfig.h" and another about writing another IRC
client.
Fri May 1 16:40:57 1998 Owen Taylor <otaylor@gtk.org>
[ security-audit changes from Alan Cox ]
* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
Fix a buffer overflow on pixmaps that claim to have
more than 31 characters per pixel.
(gdk_pixmap_read_string): Don't wrap around strings longer
than half of address space ;-)
* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
that were used for printing integers.
* gdk/gxid.c (handle_claim_device): Some extra checks.
It isn't safe against being fed bad X id's, but at
least it should be safe against deleting all your
files.
Sat May 2 23:14:34 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcurve.c (gtk_curve_graph_events): Ignore
Configure events that would result in a negative
size.
Sat May 2 00:14:05 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
parameters to log are doubles. Digital Unix apparently
is missing the argument in its prototype.
Fri May 1 22:45:55 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Always show the scrollbars when the policy is
GTK_POLICY_ALWAYS...
Fri May 1 10:05:44 1998 Tim Janik <timj@gtk.org>
* gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
for us.
(gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
children.
(gtk_list_shutdown): remove all children from the list.
(gtk_real_list_unselect_child):
(gtk_real_list_select_child): *always* put our internal structures into
sane state *before* signal emisions (i.e. list->selection updates prior
to gtk_list_item_[de]select() calls).
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Fri Apr 24 01:29:04 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelerator.h (struct _GtkAcceleratorTable): changed ref_count
field to be of type guint.
* gtk/gtkaccelerator.c (gtk_accelerator_table_unref): added check for
ref_count>0;
(gtk_accelerator_table_install): keep a per object list of accelerator
tables that refer to this object.
(gtk_accelerator_table_remove): remove the accelerator table from the
per object list.
(gtk_accelerator_table_clean): warn if there are any object references
left in an accelerator table upon destruction.
(gtk_accelerator_tables_delete): new function to delete object
references from the accelerator tables associated with this object.
* gtk/gtkwidget.c (gtk_widget_class_init): changed emission of
GtkWidget::install_accelerator to GTK_RUN_LAST so the installation
of an accelerator can be prevented by gtk_signal_emit_stop().
(gtk_widget_real_destroy): call gtk_accelerator_tables_delete (),
so there are no stale pointers in accelerator tables left.
1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkbin.c (gtk_bin_remove): Remember whether the widget was
visible before we unparent it.
Wed Apr 22 04:15:26 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
running_timeouts list with the tmp_list link itself, not with a new
GList structure pointing to our link. that would fill up memory and
causes the GList.data fields of the running_timeouts list to point to
GList structures and not GtkTimeoutFunction structures which is a
*really* bad thing.
(gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
the above entry ;).
Sat Apr 18 22:18:12 1998 Tim Janik <timj@gtk.org>
* gtk/gtkradiomenuitem.h:
* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_set_group): new function
ala gtk_radio_button_set_group.
(gtk_radio_menu_item_init): assure that we always have at least a group
that points to self.
* gtk/gtkradiobutton.c (gtk_radio_button_set_group): few cleanups and
added g_return_if_fail() statements.
(gtk_radio_button_init): assure that we always have at least a group
that points to self.
Wed Apr 15 05:13:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
(Damon Chaplin), which i got wrong when applying Damon's patch the last
time.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
that when we are running with a non-installed colormap,
in 8-bit pseudo-color, we actually are using the system
visual. (Fixes *Bad Match* errors on Digital Unix machines
with multiple 8-bit pseudo-color visuals)
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
1998-04-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
by whoever thought that randomly changing ints to unsigned int
without reviewing the code was a good idea. It is, btw not
mentioned in the ChangeLog as usual, but I know it was not Elliot
the culprit this time.
Mon Apr 13 19:16:22 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK+ 1.0.0
+2 -2
View File
@@ -1,8 +1,8 @@
Simple install procedure
========================
% gzip -cd gtk+-1.0.0.tar.gz | tar xvf - # unpack the sources
% cd gtk+-1.0.0 # change to the toplevel directory
% gzip -cd gtk+-1.0.1.tar.gz | tar xvf - # unpack the sources
% cd gtk+-1.0.1 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK
[ Become root if necessary ]
+1 -1
View File
@@ -6,7 +6,7 @@ SUBDIRS = $(SRC_SUBDIRS) docs
bin_SCRIPTS = gtk-config
EXTRA_DIST = \
gtk+.prj \
gtk+.spec \
gtk.m4 \
makecopyright \
TODO \
-353
View File
@@ -1,353 +0,0 @@
# Makefile.in generated automatically by automake 1.2c from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = true
PRE_INSTALL = true
POST_INSTALL = true
NORMAL_UNINSTALL = true
PRE_UNINSTALL = true
POST_UNINSTALL = true
host_alias = @host_alias@
host_triplet = @host@
CC = @CC@
CPP = @CPP@
LD = @LD@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
NM = @NM@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
x_cflags = @x_cflags@
x_includes = @x_includes@
x_ldflags = @x_ldflags@
x_libs = @x_libs@
xinput_progs = @xinput_progs@
SRC_SUBDIRS = glib gdk gtk
SUBDIRS = $(SRC_SUBDIRS) docs
EXTRA_DIST = gtk+.prj makecopyright TODO REFCOUNTING BUGS
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = gtk+.xconfig
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
Makefile.in NEWS TODO acconfig.h aclocal.m4 config.guess config.h.in \
config.sub configure configure.in gtk+.xconfig.in install-sh ltconfig \
ltmain.sh missing mkinstalldirs stamp-h.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
default: all
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): @MAINT@ configure.in
cd $(srcdir) && $(ACLOCAL)
config.status: $(srcdir)/configure
$(SHELL) ./config.status --recheck
$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
config.h: stamp-h
@:
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=config.h \
$(SHELL) ./config.status
@echo timestamp > stamp-h
$(srcdir)/config.h.in: @MAINT@$(srcdir)/stamp-h.in
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in
mostlyclean-hdr:
clean-hdr:
distclean-hdr:
-rm -f config.h
maintainer-clean-hdr:
gtk+.xconfig: $(top_builddir)/config.status gtk+.xconfig.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
@SET_MAKE@
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
for subdir in $(SUBDIRS); do \
target=`echo $@ | sed s/-recursive//`; \
echo "Making $$target in $$subdir"; \
(cd $$subdir && $(MAKE) $$target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
rev=''; for subdir in $(SUBDIRS); do rev="$$subdir $$rev"; done; \
for subdir in $$rev; do \
target=`echo $@ | sed s/-recursive//`; \
echo "Making $$target in $$subdir"; \
(cd $$subdir && $(MAKE) $$target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
(cd $$subdir && $(MAKE) tags); \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES)
here=`pwd` && cd $(srcdir) && mkid -f$$here/ID $(SOURCES) $(HEADERS)
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
done; \
test -z "$(ETAGS_ARGS)config.h.in$(SOURCES)$(HEADERS)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $(SOURCES) $(HEADERS) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-rm -rf $(distdir)
GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) \
&& $(MAKE) dvi \
&& $(MAKE) check \
&& $(MAKE) install \
&& $(MAKE) installcheck \
&& $(MAKE) dist
-rm -rf $(distdir)
@echo "========================"; \
echo "$(distdir).tar.gz is ready for distribution"; \
echo "========================"
dist: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
dist-all: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
distdir: $(DISTFILES)
-rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done
for subdir in $(SUBDIRS); do \
test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \
|| exit 1; \
chmod 777 $(distdir)/$$subdir; \
(cd $$subdir && $(MAKE) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
|| exit 1; \
done
info: info-recursive
dvi: dvi-recursive
check: all-am
$(MAKE) check-recursive
installcheck: installcheck-recursive
all-recursive-am: config.h
$(MAKE) all-recursive
all-am: Makefile config.h
install-exec: install-exec-recursive
@$(NORMAL_INSTALL)
install-data: install-data-recursive
@$(NORMAL_INSTALL)
install: install-recursive
@:
uninstall: uninstall-recursive
all: all-recursive-am all-am
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
installdirs: installdirs-recursive
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
maintainer-clean-generic distclean-am
mostlyclean: mostlyclean-recursive mostlyclean-am
clean: clean-recursive clean-am
distclean: distclean-recursive distclean-am
-rm -f config.status
-rm -f libtool
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
-rm -f config.status
.PHONY: default mostlyclean-hdr distclean-hdr clean-hdr \
maintainer-clean-hdr install-data-recursive uninstall-data-recursive \
install-exec-recursive uninstall-exec-recursive installdirs-recursive \
uninstalldirs-recursive all-recursive check-recursive \
installcheck-recursive info-recursive dvi-recursive \
mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
installcheck all-recursive-am all-am install-exec install-data install \
uninstall all installdirs mostlyclean-generic distclean-generic \
clean-generic maintainer-clean-generic clean mostlyclean distclean \
maintainer-clean
.PHONY: files populate checkin release
files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
@for subdir in $(SUBDIRS); do \
files=`cd $$subdir; $(MAKE) files | grep -v "make\[[1-9]\]"`; \
for file in $$files; do \
echo $$subdir/$$file; \
done; \
done
populate:
@echo "populating project"
@files=`$(MAKE) files | grep -v "make\[[1-9]\]"`; prcs populate -d gtk+.prj $$files
checkin: populate
@echo "checking in project"
@prcs checkin
release:
$(MAKE) dist distdir=$(PACKAGE)`date +"%y%m%d"`
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+6
View File
@@ -1,3 +1,9 @@
Overview of Changes in GTK+ 1.0.1:
* Significant speedups to widget creation and destruction
* Upgrade to libtool-1.2
* Lots of bug fixes, including one that fixed a major memory leak
in 1.0.0.
Overview of Changes in GTK+ 1.0.0:
+1 -1
View File
@@ -1,7 +1,7 @@
General Information
===================
This is GTK+ version 1.0.0. GTK+, which stands for the Gimp ToolKit,
This is GTK+ version 1.0.1. 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.
+1 -1
View File
@@ -17,8 +17,8 @@
/* Other stuff */
#undef HAVE_IPC_H
#undef HAVE_SHM_H
#undef HAVE_XPM
#undef HAVE_XSHM_H
#undef HAVE_SHAPE_EXT
#undef HAVE_SYS_SELECT_H
#undef IPC_RMID_DEFERRED_RELEASE
+1 -1
View File
@@ -18,8 +18,8 @@
/* Other stuff */
#undef HAVE_IPC_H
#undef HAVE_SHM_H
#undef HAVE_XPM
#undef HAVE_XSHM_H
#undef HAVE_SHAPE_EXT
#undef HAVE_SYS_SELECT_H
#undef IPC_RMID_DEFERRED_RELEASE
+12 -1
View File
@@ -6,7 +6,7 @@ cflags_set=${CFLAGS+set}
GTK_MAJOR_VERSION=1
GTK_MINOR_VERSION=0
GTK_MICRO_VERSION=0
GTK_MICRO_VERSION=1
GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
# For automake.
@@ -118,6 +118,14 @@ if test "x$enable_shm" = "xyes"; then
$x_libs)
fi
# Check for shaped window extension
AC_CHECK_LIB(Xext, XShapeCombineMask,
if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
$x_libs="-lXext $x_libs"
fi
AC_DEFINE(HAVE_SHAPE_EXT),, $x_libs)
x_cflags="$X_CFLAGS"
x_ldflags="$X_LDFLAGS $X_LIBS"
@@ -139,6 +147,9 @@ AC_SUBST(x_includes)
AC_SUBST(x_ldflags)
AC_SUBST(x_libs)
AC_SUBST(xinput_progs)
AC_SUBST(GTK_MAJOR_VERSION)
AC_SUBST(GTK_MINOR_VERSION)
AC_SUBST(GTK_MICRO_VERSION)
AC_SUBST(GTK_VERSION)
CFLAGS="$saved_cflags"
-294
View File
@@ -1,294 +0,0 @@
# Makefile.in generated automatically by automake 1.2c from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = true
PRE_INSTALL = true
POST_INSTALL = true
NORMAL_UNINSTALL = true
PRE_UNINSTALL = true
POST_UNINSTALL = true
host_alias = @host_alias@
host_triplet = @host@
CC = @CC@
CPP = @CPP@
LD = @LD@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
NM = @NM@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
x_cflags = @x_cflags@
x_includes = @x_includes@
x_ldflags = @x_ldflags@
x_libs = @x_libs@
xinput_progs = @xinput_progs@
info_TEXINFOS = gdk.texi gtk.texi
EXTRA_DIST = texinfo.tex macros.texi Makefile.gtkfaq gtkfaq.sgml gtkfaq_fix
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
TEXI2DVI = texi2dvi
TEXINFO_TEX = $(srcdir)/texinfo.tex
INFO_DEPS = gdk.info gtk.info
DVIS = gdk.dvi gtk.dvi
TEXINFOS = gdk.texi gtk.texi
DIST_COMMON = Makefile.am Makefile.in texinfo.tex
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
default: all
.SUFFIXES:
.SUFFIXES: .dvi .info .ps .texi .texinfo
$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
gdk.info: gdk.texi
gdk.dvi: gdk.texi
gtk.info: gtk.texi
gtk.dvi: gtk.texi
DVIPS = dvips
.texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.dvi.ps:
$(DVIPS) $< -o $@
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(infodir)
@for file in $(INFO_DEPS); do \
d=$(srcdir); \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
echo " $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile"; \
$(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile; \
else : ; fi; \
done; \
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
for file in $(INFO_DEPS); do \
echo " install-info --info-dir=$(infodir) $(infodir)/$$file";\
install-info --info-dir=$(infodir) $(infodir)/$$file || :;\
done; \
else : ; fi
uninstall-info:
$(PRE_UNINSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
ii=yes; \
else ii=; fi; \
for file in $(INFO_DEPS); do \
test -z $ii || install-info --info-dir=$(infodir) --remove $$file; \
done
$(NORMAL_UNINSTALL)
for file in $(INFO_DEPS); do \
(cd $(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
done
dist-info: $(INFO_DEPS)
for base in $(INFO_DEPS); do \
d=$(srcdir); \
for file in `cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done; \
done
mostlyclean-aminfo:
-rm -f gdk.aux gdk.cp gdk.cps gdk.dvi gdk.fn gdk.fns gdk.ky gdk.kys \
gdk.ps gdk.log gdk.pg gdk.toc gdk.tp gdk.tps gdk.vr gdk.vrs \
gdk.op gdk.tr gdk.cv gdk.cn gtk.aux gtk.cp gtk.cps gtk.dvi \
gtk.fn gtk.fns gtk.ky gtk.kys gtk.ps gtk.log gtk.pg gtk.toc \
gtk.tp gtk.tps gtk.vr gtk.vrs gtk.op gtk.tr gtk.cv gtk.cn
clean-aminfo:
distclean-aminfo:
maintainer-clean-aminfo:
for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
fi; \
done
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = docs
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu docs/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done
$(MAKE) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
info: $(INFO_DEPS)
dvi: $(DVIS)
check: all
$(MAKE)
installcheck:
install-exec:
@$(NORMAL_INSTALL)
install-data: install-info-am
@$(NORMAL_INSTALL)
install: install-exec install-data all
@:
uninstall: uninstall-info
all: Makefile $(INFO_DEPS)
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
installdirs:
$(mkinstalldirs) $(infodir)
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean: mostlyclean-aminfo mostlyclean-generic
clean: clean-aminfo clean-generic mostlyclean
distclean: distclean-aminfo distclean-generic clean
-rm -f config.status
-rm -f libtool
maintainer-clean: maintainer-clean-aminfo maintainer-clean-generic \
distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
.PHONY: default install-info-am uninstall-info mostlyclean-aminfo \
distclean-aminfo clean-aminfo maintainer-clean-aminfo tags distdir info \
dvi installcheck install-exec install-data install uninstall all \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+59 -2
View File
@@ -163,6 +163,23 @@ name="http://www.gnome.org">)
is using GTK+ to build a free desktop for Linux. Many more programs can be found
there.
<!-- ----------------------------------------------------------------- -->
<sect1>I'm looking for an application to write in GTK+. How about an IRC client?
<p>
Ask on gtk-list for suggestions. There are at least four IRC
clients already under development
<itemize>
<item>girc. (Included with GNOME)
<item>Bezerk (<htmlurl url="http://www.gtk.org/~trog/"
name="http://www.gtk.org/~trog/">)
<item>gsirc. (Location?)
<item>Gnirc. (<htmlurl url="http://www.imaginet.fr/~dramboz/gnirc"
name="http://www.imaginet.fr/~dramboz/gnirc">)
</itemize>
<!-- ***************************************************************** -->
<sect>How to find, configure, install, and troubleshoot GTK+
@@ -202,8 +219,7 @@ handle the automatically generated Makefiles.
<!-- ----------------------------------------------------------------- -->
<sect1>I've compiled and installed GTK+, but I can't get any programs to link
with it!
<sect1>I've compiled and installed GTK+, but I can't get any programs to link with it!
<p>
This problem is most often encountered when the GTK+ libraries can't be
found or are the wrong version. Generally, the compiler will complain about an
@@ -249,6 +265,47 @@ the libraries libgtk, libgdk, libglib, or libgck. If they do exist, remove them
and reinstall gtk+.
</itemize>
<!-- ----------------------------------------------------------------- -->
<sect1>When compiling programs with GTK+, I get compiler error messages about not being able to find <tt/"glibconfig.h"/.
<p> The header file "glibconfig.h" was moved to the directory
$exec_prefix/lib/glib/include/. $exec_prefix is the
directory that was specified by giving the --exec-prefix
flags to ./configure when compiling GTK+. It defaults to
$prefix, (specified with --prefix), which in turn defaults
to /usr/local/.
<p> This was done because "glibconfig.h" includes architecture
dependent information, and the rest of the include files
are put in $prefix/include, which can be shared between different
architectures.
<p> GTK+ includes a shell script, <tt/gtk-config/, that
makes it easy to find out the correct include paths.
The GTK+ tutorial includes an example of using <tt/gtk-config/
for simple compilation from the command line. For information
about more complicated configuration, see the file
docs/gtk-config.txt in the GTK+ distribution.
<p> If you are trying to compile an old program, you may
be able to work around the problem by configuring it
with a command line like:
<tscreen><verb>
CPPFLAGS="-I/usr/local/include/glib/include ./configure
</verb></tscreen>
<p>
for Bourne-compatible shells like bash, or for csh variants:
<tscreen><verb>
setenv CPPFLAGS "-I/usr/local/include/glib/include
./configure
</verb></tscreen>
<p>
(Substitute the appropriate value of $exec_prefix for /usr/local.)
<!-- ----------------------------------------------------------------- -->
<sect1>When installing The GIMP, configure reports that it can't find GTK.
<p>
+59 -2
View File
@@ -163,6 +163,23 @@ name="http://www.gnome.org">)
is using GTK+ to build a free desktop for Linux. Many more programs can be found
there.
<!-- ----------------------------------------------------------------- -->
<sect1>I'm looking for an application to write in GTK+. How about an IRC client?
<p>
Ask on gtk-list for suggestions. There are at least four IRC
clients already under development
<itemize>
<item>girc. (Included with GNOME)
<item>Bezerk (<htmlurl url="http://www.gtk.org/~trog/"
name="http://www.gtk.org/~trog/">)
<item>gsirc. (Location?)
<item>Gnirc. (<htmlurl url="http://www.imaginet.fr/~dramboz/gnirc"
name="http://www.imaginet.fr/~dramboz/gnirc">)
</itemize>
<!-- ***************************************************************** -->
<sect>How to find, configure, install, and troubleshoot GTK+
@@ -202,8 +219,7 @@ handle the automatically generated Makefiles.
<!-- ----------------------------------------------------------------- -->
<sect1>I've compiled and installed GTK+, but I can't get any programs to link
with it!
<sect1>I've compiled and installed GTK+, but I can't get any programs to link with it!
<p>
This problem is most often encountered when the GTK+ libraries can't be
found or are the wrong version. Generally, the compiler will complain about an
@@ -249,6 +265,47 @@ the libraries libgtk, libgdk, libglib, or libgck. If they do exist, remove them
and reinstall gtk+.
</itemize>
<!-- ----------------------------------------------------------------- -->
<sect1>When compiling programs with GTK+, I get compiler error messages about not being able to find <tt/"glibconfig.h"/.
<p> The header file "glibconfig.h" was moved to the directory
$exec_prefix/lib/glib/include/. $exec_prefix is the
directory that was specified by giving the --exec-prefix
flags to ./configure when compiling GTK+. It defaults to
$prefix, (specified with --prefix), which in turn defaults
to /usr/local/.
<p> This was done because "glibconfig.h" includes architecture
dependent information, and the rest of the include files
are put in $prefix/include, which can be shared between different
architectures.
<p> GTK+ includes a shell script, <tt/gtk-config/, that
makes it easy to find out the correct include paths.
The GTK+ tutorial includes an example of using <tt/gtk-config/
for simple compilation from the command line. For information
about more complicated configuration, see the file
docs/gtk-config.txt in the GTK+ distribution.
<p> If you are trying to compile an old program, you may
be able to work around the problem by configuring it
with a command line like:
<tscreen><verb>
CPPFLAGS="-I/usr/local/include/glib/include ./configure
</verb></tscreen>
<p>
for Bourne-compatible shells like bash, or for csh variants:
<tscreen><verb>
setenv CPPFLAGS "-I/usr/local/include/glib/include
./configure
</verb></tscreen>
<p>
(Substitute the appropriate value of $exec_prefix for /usr/local.)
<!-- ----------------------------------------------------------------- -->
<sect1>When installing The GIMP, configure reports that it can't find GTK.
<p>
+1 -3
View File
@@ -46,7 +46,7 @@ gdkinclude_HEADERS = \
gdktypes.h \
gdkx.h
libgdk_la_LDFLAGS = -version-info 1:0:0 \
libgdk_la_LDFLAGS = -version-info $(GTK_MAJOR_VERSION):$(GTK_MICRO_VERSION):0 \
@x_ldflags@ @x_libs@
INCLUDES = -I$(top_srcdir) -I../glib -I$(top_srcdir)/glib @x_cflags@
@@ -78,5 +78,3 @@ files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
$(DEP_FILES) : $(BUILT_SOURCES)
+2 -2
View File
@@ -1964,7 +1964,7 @@ gdk_event_translate (GdkEvent *event,
window_private->dnd_drag_savedeventmask = dnd_winattr.your_event_mask;
dnd_setwinattr.event_mask =
window_private->dnd_drag_eventmask = ButtonMotionMask | ButtonPressMask | ButtonReleaseMask |
EnterWindowMask | LeaveWindowMask;
EnterWindowMask | LeaveWindowMask | ExposureMask;
XChangeWindowAttributes(gdk_display, window_private->xwindow,
CWEventMask, &dnd_setwinattr);
}
@@ -2333,7 +2333,7 @@ gdk_event_translate (GdkEvent *event,
ButtonMotionMask | PointerMotionMask |
/* PointerMotionHintMask | */ /* HINTME */
ButtonPressMask | ButtonReleaseMask,
GrabModeAsync, GrabModeAsync, gdk_root_window,
GrabModeAsync, GrabModeAsync, None,
None, CurrentTime);
#ifdef G_ENABLE_DEBUG
GDK_NOTE(DND, g_print("xgpret = %d\n", xgpret));
+21 -4
View File
@@ -55,7 +55,7 @@ gdk_pixmap_new (GdkWindow *window,
return NULL;
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;
@@ -64,6 +64,7 @@ gdk_pixmap_new (GdkWindow *window,
private->window_type = GDK_WINDOW_PIXMAP;
private->xwindow = XCreatePixmap (private->xdisplay, window_private->xwindow,
width, height, depth);
private->colormap = NULL;
private->parent = NULL;
private->x = 0;
private->y = 0;
@@ -148,7 +149,7 @@ gdk_pixmap_create_from_data (GdkWindow *window,
return NULL;
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;
@@ -255,8 +256,14 @@ gdk_pixmap_read_string (FILE *infile,
{
if (cnt == (*buffer_size))
{
(*buffer_size) *= 2;
(*buffer) = (gchar *) g_realloc ((*buffer), *buffer_size); }
guint new_size = (*buffer_size) * 2;
if (new_size > (*buffer_size))
*buffer_size = new_size;
else
return FALSE;
(*buffer) = (gchar *) g_realloc ((*buffer), *buffer_size);
}
if (c != '"')
(*buffer)[cnt++] = c;
@@ -398,6 +405,11 @@ gdk_pixmap_colormap_create_from_xpm (GdkWindow *window,
gdk_pixmap_read_string (infile, &buffer, &buffer_size);
sscanf (buffer,"%d %d %d %d", &width, &height, &num_cols, &cpp);
if (cpp >= 32)
{
g_warning ("Pixmap has more than 31 characters per color\n");
return NULL;
}
colors = g_new(_GdkPixmapColor, num_cols);
@@ -573,6 +585,11 @@ gdk_pixmap_colormap_create_from_xpm_d (GdkWindow *window,
i = 0;
buffer = data[i++];
sscanf (buffer,"%d %d %d %d", &width, &height, &num_cols, &cpp);
if (cpp >= 32)
{
g_warning ("Pixmap has more than 31 characters per color\n");
return NULL;
}
colors = g_new(_GdkPixmapColor, num_cols);
+2
View File
@@ -81,6 +81,8 @@ struct _GdkWindowPrivate
gint extension_events;
GList *filters;
GdkColormap *colormap;
GList *children;
};
struct _GdkImagePrivate
+119 -59
View File
@@ -20,7 +20,6 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/extensions/shape.h>
#include <netinet/in.h>
#include "gdk.h"
#include "../config.h"
@@ -30,6 +29,10 @@
#include <stdlib.h>
#include <stdio.h>
#ifdef HAVE_SHAPE_EXT
#include <X11/extensions/shape.h>
#endif
int nevent_masks = 17;
int event_mask_table[19] =
{
@@ -65,18 +68,18 @@ gdk_window_xid_at(Window base, gint bx, gint by, gint x, gint y,
Display *disp;
Window *list=NULL;
Window child=0,parent_win=0,root_win=0;
int i;
guint num;
int wx,wy;
guint ww,wh,wb,wd;
int i;
unsigned int ww, wh, wb, wd, num;
int wx,wy;
window=(GdkWindow*)&gdk_root_parent;
private=(GdkWindowPrivate*)window;
disp=private->xdisplay;
if (!XGetGeometry(disp,base,&root_win,&wx,&wy,&ww,&wh,&wb,&wd))
return 0;
wx+=bx;wy+=by;
if (!((x>=wx)&&(y>=wy)&&(x<(wx+ww))&&(y<(wy+wh))))
if (!((x>=wx)&&(y>=wy)&&(x<(int)(wx+ww))&&(y<(int)(wy+wh))))
return 0;
if (!XQueryTree(disp,base,&root_win,&parent_win,&list,&num))
return base;
@@ -172,7 +175,7 @@ gdk_window_xid_at_coords(gint x, gint y, GList *excludes, gboolean excl_child)
}
void
gdk_window_init ()
gdk_window_init (void)
{
XWindowAttributes xattributes;
unsigned int width;
@@ -191,6 +194,8 @@ gdk_window_init ()
gdk_root_parent.window.user_data = NULL;
gdk_root_parent.width = width;
gdk_root_parent.height = height;
gdk_root_parent.children = NULL;
gdk_root_parent.colormap = NULL;
}
GdkWindow*
@@ -202,7 +207,6 @@ gdk_window_new (GdkWindow *parent,
GdkWindowPrivate *private;
GdkWindowPrivate *parent_private;
GdkVisual *visual;
GdkColormap *colormap;
Display *parent_display;
Window xparent;
Visual *xvisual;
@@ -232,6 +236,10 @@ gdk_window_new (GdkWindow *parent,
window = (GdkWindow*) private;
private->parent = parent;
if (parent_private != &gdk_root_parent)
parent_private->children = g_list_prepend (parent_private->children, window);
private->xdisplay = parent_display;
private->destroyed = FALSE;
private->resize_count = 0;
@@ -264,6 +272,7 @@ gdk_window_new (GdkWindow *parent,
private->dnd_drag_eventmask = private->dnd_drag_savedeventmask = 0;
private->filters = NULL;
private->children = NULL;
window->user_data = NULL;
@@ -296,9 +305,9 @@ gdk_window_new (GdkWindow *parent,
depth = visual->depth;
if (attributes_mask & GDK_WA_COLORMAP)
colormap = attributes->colormap;
private->colormap = attributes->colormap;
else
colormap = gdk_colormap_get_system ();
private->colormap = gdk_colormap_get_system ();
xattributes.background_pixel = BlackPixel (gdk_display, gdk_screen);
xattributes.border_pixel = BlackPixel (gdk_display, gdk_screen);
@@ -307,26 +316,26 @@ gdk_window_new (GdkWindow *parent,
switch (private->window_type)
{
case GDK_WINDOW_TOPLEVEL:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
break;
case GDK_WINDOW_CHILD:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
break;
case GDK_WINDOW_DIALOG:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
break;
case GDK_WINDOW_TEMP:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
@@ -348,7 +357,7 @@ gdk_window_new (GdkWindow *parent,
{
depth = 0;
class = InputOnly;
colormap = NULL;
private->colormap = NULL;
}
private->xwindow = XCreateWindow (private->xdisplay, xparent,
@@ -358,6 +367,9 @@ gdk_window_new (GdkWindow *parent,
gdk_window_ref (window);
gdk_xid_table_insert (&private->xwindow, window);
if (private->colormap)
gdk_colormap_ref (private->colormap);
gdk_window_set_cursor (window, ((attributes_mask & GDK_WA_CURSOR) ?
(attributes->cursor) :
NULL));
@@ -372,8 +384,8 @@ gdk_window_new (GdkWindow *parent,
break;
case GDK_WINDOW_CHILD:
if ((attributes->wclass == GDK_INPUT_OUTPUT) &&
(colormap != gdk_colormap_get_system ()) &&
(colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window))))
(private->colormap != gdk_colormap_get_system ()) &&
(private->colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window))))
{
GDK_NOTE (MISC, g_print ("adding colormap window\n"));
gdk_window_add_colormap_windows (window);
@@ -430,6 +442,7 @@ gdk_window_foreign_new (guint32 anid)
{
GdkWindow *window;
GdkWindowPrivate *private;
GdkWindowPrivate *parent_private;
XWindowAttributes attrs;
Window root, parent;
Window *children;
@@ -446,6 +459,11 @@ gdk_window_foreign_new (guint32 anid)
XFree (children);
private->parent = gdk_xid_table_lookup (parent);
parent_private = (GdkWindowPrivate *)private->parent;
if (parent_private)
parent_private->children = g_list_prepend (parent_private->children, window);
private->xwindow = anid;
private->xdisplay = gdk_display;
private->x = attrs.x;
@@ -458,6 +476,7 @@ gdk_window_foreign_new (guint32 anid)
private->destroyed = FALSE;
private->extension_events = 0;
private->colormap = NULL;
private->dnd_drag_data_type = None;
private->dnd_drag_data_typesavail =
@@ -469,6 +488,7 @@ gdk_window_foreign_new (guint32 anid)
private->dnd_drag_eventmask = private->dnd_drag_savedeventmask = 0;
private->filters = NULL;
private->children = NULL;
window->user_data = NULL;
@@ -507,10 +527,17 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
case GDK_WINDOW_FOREIGN:
if (!private->destroyed)
{
if (private->parent)
{
GdkWindowPrivate *parent_private = (GdkWindowPrivate *)private->parent;
if (parent_private->children)
parent_private->children = g_list_remove (parent_private->children, window);
}
if (private->window_type != GDK_WINDOW_FOREIGN)
{
children = gdk_window_get_children (window);
tmp = children;
children = tmp = private->children;
private->children = NULL;
while (tmp)
{
@@ -522,7 +549,7 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
gdk_window_internal_destroy (temp_window, FALSE,
our_destroy);
}
g_list_free (children);
}
@@ -581,6 +608,9 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
else if (xdestroy)
XDestroyWindow (private->xdisplay, private->xwindow);
if (private->colormap)
gdk_colormap_unref (private->colormap);
private->destroyed = TRUE;
}
break;
@@ -1059,6 +1089,11 @@ gdk_window_set_colormap (GdkWindow *window,
XSetWindowColormap (window_private->xdisplay,
window_private->xwindow,
colormap_private->xcolormap);
if (window_private->colormap)
gdk_colormap_unref (window_private->colormap);
window_private->colormap = colormap;
gdk_colormap_ref (window_private->colormap);
if (window_private->window_type != GDK_WINDOW_TOPLEVEL)
gdk_window_add_colormap_windows (window);
@@ -1153,20 +1188,27 @@ gdk_window_get_visual (GdkWindow *window)
{
GdkWindowPrivate *window_private;
XWindowAttributes window_attributes;
g_return_val_if_fail (window != NULL, NULL);
window_private = (GdkWindowPrivate*) window;
/* Huh? ->parent is never set for a pixmap. We should just return
* null immeditately
*/
while (window_private && (window_private->window_type == GDK_WINDOW_PIXMAP))
window_private = (GdkWindowPrivate*) window_private->parent;
if (window_private && !window_private->destroyed)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_visual_lookup (window_attributes.visual);
if (window_private->colormap == NULL)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_visual_lookup (window_attributes.visual);
}
else
return ((GdkColormapPrivate *)window_private->colormap)->visual;
}
return NULL;
@@ -1179,16 +1221,20 @@ gdk_window_get_colormap (GdkWindow *window)
XWindowAttributes window_attributes;
g_return_val_if_fail (window != NULL, NULL);
window_private = (GdkWindowPrivate*) window;
g_return_val_if_fail (window_private->window_type != GDK_WINDOW_PIXMAP, NULL);
if (!window_private->destroyed)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_colormap_lookup (window_attributes.colormap);
if (window_private->colormap == NULL)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_colormap_lookup (window_attributes.colormap);
}
else
return window_private->colormap;
}
return NULL;
@@ -1436,8 +1482,7 @@ gdk_window_add_colormap_windows (GdkWindow *window)
/*
* This needs the X11 shape extension.
* If not available, simply remove the call to
* XShapeCombineMask. Shaped windows will look
* If not available, shaped windows will look
* ugly, but programs still work. Stefan Wille
*/
void
@@ -1445,38 +1490,53 @@ gdk_window_shape_combine_mask (GdkWindow *window,
GdkBitmap *mask,
gint x, gint y)
{
enum { UNKNOWN, NO, YES };
static gint have_shape = UNKNOWN;
GdkWindowPrivate *window_private;
Pixmap pixmap;
g_return_if_fail (window != NULL);
/* This is needed, according to raster */
gdk_window_set_override_redirect(window, TRUE);
window_private = (GdkWindowPrivate*) window;
if (window_private->destroyed)
return;
if (mask)
#ifdef HAVE_SHAPE_EXT
if (have_shape == UNKNOWN)
{
GdkWindowPrivate *pixmap_private;
pixmap_private = (GdkWindowPrivate*) mask;
pixmap = (Pixmap) pixmap_private->xwindow;
int ignore;
if (XQueryExtension(gdk_display, "SHAPE", &ignore, &ignore, &ignore))
have_shape = YES;
else
have_shape = NO;
}
else
if (have_shape == YES)
{
x = 0;
y = 0;
pixmap = None;
window_private = (GdkWindowPrivate*) window;
if (window_private->destroyed)
return;
if (mask)
{
GdkWindowPrivate *pixmap_private;
pixmap_private = (GdkWindowPrivate*) mask;
pixmap = (Pixmap) pixmap_private->xwindow;
}
else
{
x = 0;
y = 0;
pixmap = None;
}
XShapeCombineMask (window_private->xdisplay,
window_private->xwindow,
ShapeBounding,
x, y,
pixmap,
ShapeSet);
}
XShapeCombineMask (window_private->xdisplay,
window_private->xwindow,
ShapeBounding,
x, y,
pixmap,
ShapeSet);
#endif /* HAVE_SHAPE_EXT */
}
void
+33 -14
View File
@@ -61,7 +61,7 @@ handler(int signal)
}
void
init_socket()
init_socket(void)
{
struct sockaddr_in sin;
@@ -130,7 +130,7 @@ enable_device(GxidDevice *dev)
/* switch the core pointer from whatever it is now to something else,
return true on success, false otherwise */
static int
switch_core_pointer()
switch_core_pointer(void)
{
GxidDevice *old_pointer = 0;
GxidDevice *new_pointer = 0;
@@ -222,7 +222,7 @@ init_device(XDeviceInfo *xdevice)
}
void
init_xinput()
init_xinput(void)
{
char **extensions;
XDeviceInfo *xdevices;
@@ -279,12 +279,22 @@ int
handle_claim_device(GxidClaimDevice *msg)
{
int i,j;
XID devid = ntohl(msg->device);
XID winid = ntohl(msg->window);
int exclusive = ntohl(msg->exclusive);
XID devid;
XID winid;
int exclusive;
GxidDevice *device = NULL;
GxidWindow *window = NULL;
if (msg->length != sizeof(GxidClaimDevice))
{
fprintf(stderr,"Bad length for ClaimDevice message\n");
return GXID_RETURN_ERROR;
}
devid = ntohl(msg->device);
winid = ntohl(msg->window);
exclusive = ntohl(msg->exclusive);
#ifdef DEBUG_CLIENTS
fprintf(stderr,"device %ld claimed (window 0x%lx)\n",devid,winid);
#endif
@@ -397,11 +407,20 @@ int
handle_release_device(GxidReleaseDevice *msg)
{
int i,j;
XID devid = ntohl(msg->device);
XID winid = ntohl(msg->window);
XID devid;
XID winid;
GxidDevice *device = NULL;
if (msg->length != sizeof(GxidReleaseDevice))
{
fprintf(stderr,"Bad length for ReleaseDevice message\n");
return GXID_RETURN_ERROR;
}
devid = ntohl(msg->device);
winid = ntohl(msg->window);
#ifdef DEBUG_CLIENTS
fprintf(stderr,"device %ld released (window 0x%lx)\n",devid,winid);
#endif
@@ -460,11 +479,11 @@ handle_release_device(GxidReleaseDevice *msg)
}
void
handle_connection()
handle_connection(void)
{
GxidMessage msg;
GxidU32 type;
int length;
GxidU32 length;
GxidI32 retval;
int conn_fd;
@@ -496,7 +515,7 @@ handle_connection()
/* read rest of message */
if (length > sizeof(GxidMessage))
if ((length > sizeof(GxidMessage)) || (length < 2*sizeof(GxidU32)))
{
fprintf(stderr,"%s: Bad message length\n",
program_name);
@@ -689,7 +708,7 @@ handle_destroy_notify(XDestroyWindowEvent *event)
}
void
handle_xevent()
handle_xevent(void)
{
int i;
XEvent event;
@@ -743,7 +762,7 @@ handle_xevent()
}
void
usage()
usage(void)
{
fprintf(stderr,"Usage: %s [-d display] [-p --gxid-port port]\n",
program_name);
@@ -833,7 +852,7 @@ main(int argc, char **argv)
}
if (FD_ISSET(socket_fd,&readfds))
handle_connection(socket_fd);
handle_connection();
while (XPending(dpy))
handle_xevent();
+2 -2
View File
@@ -1964,7 +1964,7 @@ gdk_event_translate (GdkEvent *event,
window_private->dnd_drag_savedeventmask = dnd_winattr.your_event_mask;
dnd_setwinattr.event_mask =
window_private->dnd_drag_eventmask = ButtonMotionMask | ButtonPressMask | ButtonReleaseMask |
EnterWindowMask | LeaveWindowMask;
EnterWindowMask | LeaveWindowMask | ExposureMask;
XChangeWindowAttributes(gdk_display, window_private->xwindow,
CWEventMask, &dnd_setwinattr);
}
@@ -2333,7 +2333,7 @@ gdk_event_translate (GdkEvent *event,
ButtonMotionMask | PointerMotionMask |
/* PointerMotionHintMask | */ /* HINTME */
ButtonPressMask | ButtonReleaseMask,
GrabModeAsync, GrabModeAsync, gdk_root_window,
GrabModeAsync, GrabModeAsync, None,
None, CurrentTime);
#ifdef G_ENABLE_DEBUG
GDK_NOTE(DND, g_print("xgpret = %d\n", xgpret));
+21 -4
View File
@@ -55,7 +55,7 @@ gdk_pixmap_new (GdkWindow *window,
return NULL;
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;
@@ -64,6 +64,7 @@ gdk_pixmap_new (GdkWindow *window,
private->window_type = GDK_WINDOW_PIXMAP;
private->xwindow = XCreatePixmap (private->xdisplay, window_private->xwindow,
width, height, depth);
private->colormap = NULL;
private->parent = NULL;
private->x = 0;
private->y = 0;
@@ -148,7 +149,7 @@ gdk_pixmap_create_from_data (GdkWindow *window,
return NULL;
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;
@@ -255,8 +256,14 @@ gdk_pixmap_read_string (FILE *infile,
{
if (cnt == (*buffer_size))
{
(*buffer_size) *= 2;
(*buffer) = (gchar *) g_realloc ((*buffer), *buffer_size); }
guint new_size = (*buffer_size) * 2;
if (new_size > (*buffer_size))
*buffer_size = new_size;
else
return FALSE;
(*buffer) = (gchar *) g_realloc ((*buffer), *buffer_size);
}
if (c != '"')
(*buffer)[cnt++] = c;
@@ -398,6 +405,11 @@ gdk_pixmap_colormap_create_from_xpm (GdkWindow *window,
gdk_pixmap_read_string (infile, &buffer, &buffer_size);
sscanf (buffer,"%d %d %d %d", &width, &height, &num_cols, &cpp);
if (cpp >= 32)
{
g_warning ("Pixmap has more than 31 characters per color\n");
return NULL;
}
colors = g_new(_GdkPixmapColor, num_cols);
@@ -573,6 +585,11 @@ gdk_pixmap_colormap_create_from_xpm_d (GdkWindow *window,
i = 0;
buffer = data[i++];
sscanf (buffer,"%d %d %d %d", &width, &height, &num_cols, &cpp);
if (cpp >= 32)
{
g_warning ("Pixmap has more than 31 characters per color\n");
return NULL;
}
colors = g_new(_GdkPixmapColor, num_cols);
+119 -59
View File
@@ -20,7 +20,6 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/extensions/shape.h>
#include <netinet/in.h>
#include "gdk.h"
#include "../config.h"
@@ -30,6 +29,10 @@
#include <stdlib.h>
#include <stdio.h>
#ifdef HAVE_SHAPE_EXT
#include <X11/extensions/shape.h>
#endif
int nevent_masks = 17;
int event_mask_table[19] =
{
@@ -65,18 +68,18 @@ gdk_window_xid_at(Window base, gint bx, gint by, gint x, gint y,
Display *disp;
Window *list=NULL;
Window child=0,parent_win=0,root_win=0;
int i;
guint num;
int wx,wy;
guint ww,wh,wb,wd;
int i;
unsigned int ww, wh, wb, wd, num;
int wx,wy;
window=(GdkWindow*)&gdk_root_parent;
private=(GdkWindowPrivate*)window;
disp=private->xdisplay;
if (!XGetGeometry(disp,base,&root_win,&wx,&wy,&ww,&wh,&wb,&wd))
return 0;
wx+=bx;wy+=by;
if (!((x>=wx)&&(y>=wy)&&(x<(wx+ww))&&(y<(wy+wh))))
if (!((x>=wx)&&(y>=wy)&&(x<(int)(wx+ww))&&(y<(int)(wy+wh))))
return 0;
if (!XQueryTree(disp,base,&root_win,&parent_win,&list,&num))
return base;
@@ -172,7 +175,7 @@ gdk_window_xid_at_coords(gint x, gint y, GList *excludes, gboolean excl_child)
}
void
gdk_window_init ()
gdk_window_init (void)
{
XWindowAttributes xattributes;
unsigned int width;
@@ -191,6 +194,8 @@ gdk_window_init ()
gdk_root_parent.window.user_data = NULL;
gdk_root_parent.width = width;
gdk_root_parent.height = height;
gdk_root_parent.children = NULL;
gdk_root_parent.colormap = NULL;
}
GdkWindow*
@@ -202,7 +207,6 @@ gdk_window_new (GdkWindow *parent,
GdkWindowPrivate *private;
GdkWindowPrivate *parent_private;
GdkVisual *visual;
GdkColormap *colormap;
Display *parent_display;
Window xparent;
Visual *xvisual;
@@ -232,6 +236,10 @@ gdk_window_new (GdkWindow *parent,
window = (GdkWindow*) private;
private->parent = parent;
if (parent_private != &gdk_root_parent)
parent_private->children = g_list_prepend (parent_private->children, window);
private->xdisplay = parent_display;
private->destroyed = FALSE;
private->resize_count = 0;
@@ -264,6 +272,7 @@ gdk_window_new (GdkWindow *parent,
private->dnd_drag_eventmask = private->dnd_drag_savedeventmask = 0;
private->filters = NULL;
private->children = NULL;
window->user_data = NULL;
@@ -296,9 +305,9 @@ gdk_window_new (GdkWindow *parent,
depth = visual->depth;
if (attributes_mask & GDK_WA_COLORMAP)
colormap = attributes->colormap;
private->colormap = attributes->colormap;
else
colormap = gdk_colormap_get_system ();
private->colormap = gdk_colormap_get_system ();
xattributes.background_pixel = BlackPixel (gdk_display, gdk_screen);
xattributes.border_pixel = BlackPixel (gdk_display, gdk_screen);
@@ -307,26 +316,26 @@ gdk_window_new (GdkWindow *parent,
switch (private->window_type)
{
case GDK_WINDOW_TOPLEVEL:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
break;
case GDK_WINDOW_CHILD:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
break;
case GDK_WINDOW_DIALOG:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
break;
case GDK_WINDOW_TEMP:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
@@ -348,7 +357,7 @@ gdk_window_new (GdkWindow *parent,
{
depth = 0;
class = InputOnly;
colormap = NULL;
private->colormap = NULL;
}
private->xwindow = XCreateWindow (private->xdisplay, xparent,
@@ -358,6 +367,9 @@ gdk_window_new (GdkWindow *parent,
gdk_window_ref (window);
gdk_xid_table_insert (&private->xwindow, window);
if (private->colormap)
gdk_colormap_ref (private->colormap);
gdk_window_set_cursor (window, ((attributes_mask & GDK_WA_CURSOR) ?
(attributes->cursor) :
NULL));
@@ -372,8 +384,8 @@ gdk_window_new (GdkWindow *parent,
break;
case GDK_WINDOW_CHILD:
if ((attributes->wclass == GDK_INPUT_OUTPUT) &&
(colormap != gdk_colormap_get_system ()) &&
(colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window))))
(private->colormap != gdk_colormap_get_system ()) &&
(private->colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window))))
{
GDK_NOTE (MISC, g_print ("adding colormap window\n"));
gdk_window_add_colormap_windows (window);
@@ -430,6 +442,7 @@ gdk_window_foreign_new (guint32 anid)
{
GdkWindow *window;
GdkWindowPrivate *private;
GdkWindowPrivate *parent_private;
XWindowAttributes attrs;
Window root, parent;
Window *children;
@@ -446,6 +459,11 @@ gdk_window_foreign_new (guint32 anid)
XFree (children);
private->parent = gdk_xid_table_lookup (parent);
parent_private = (GdkWindowPrivate *)private->parent;
if (parent_private)
parent_private->children = g_list_prepend (parent_private->children, window);
private->xwindow = anid;
private->xdisplay = gdk_display;
private->x = attrs.x;
@@ -458,6 +476,7 @@ gdk_window_foreign_new (guint32 anid)
private->destroyed = FALSE;
private->extension_events = 0;
private->colormap = NULL;
private->dnd_drag_data_type = None;
private->dnd_drag_data_typesavail =
@@ -469,6 +488,7 @@ gdk_window_foreign_new (guint32 anid)
private->dnd_drag_eventmask = private->dnd_drag_savedeventmask = 0;
private->filters = NULL;
private->children = NULL;
window->user_data = NULL;
@@ -507,10 +527,17 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
case GDK_WINDOW_FOREIGN:
if (!private->destroyed)
{
if (private->parent)
{
GdkWindowPrivate *parent_private = (GdkWindowPrivate *)private->parent;
if (parent_private->children)
parent_private->children = g_list_remove (parent_private->children, window);
}
if (private->window_type != GDK_WINDOW_FOREIGN)
{
children = gdk_window_get_children (window);
tmp = children;
children = tmp = private->children;
private->children = NULL;
while (tmp)
{
@@ -522,7 +549,7 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
gdk_window_internal_destroy (temp_window, FALSE,
our_destroy);
}
g_list_free (children);
}
@@ -581,6 +608,9 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
else if (xdestroy)
XDestroyWindow (private->xdisplay, private->xwindow);
if (private->colormap)
gdk_colormap_unref (private->colormap);
private->destroyed = TRUE;
}
break;
@@ -1059,6 +1089,11 @@ gdk_window_set_colormap (GdkWindow *window,
XSetWindowColormap (window_private->xdisplay,
window_private->xwindow,
colormap_private->xcolormap);
if (window_private->colormap)
gdk_colormap_unref (window_private->colormap);
window_private->colormap = colormap;
gdk_colormap_ref (window_private->colormap);
if (window_private->window_type != GDK_WINDOW_TOPLEVEL)
gdk_window_add_colormap_windows (window);
@@ -1153,20 +1188,27 @@ gdk_window_get_visual (GdkWindow *window)
{
GdkWindowPrivate *window_private;
XWindowAttributes window_attributes;
g_return_val_if_fail (window != NULL, NULL);
window_private = (GdkWindowPrivate*) window;
/* Huh? ->parent is never set for a pixmap. We should just return
* null immeditately
*/
while (window_private && (window_private->window_type == GDK_WINDOW_PIXMAP))
window_private = (GdkWindowPrivate*) window_private->parent;
if (window_private && !window_private->destroyed)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_visual_lookup (window_attributes.visual);
if (window_private->colormap == NULL)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_visual_lookup (window_attributes.visual);
}
else
return ((GdkColormapPrivate *)window_private->colormap)->visual;
}
return NULL;
@@ -1179,16 +1221,20 @@ gdk_window_get_colormap (GdkWindow *window)
XWindowAttributes window_attributes;
g_return_val_if_fail (window != NULL, NULL);
window_private = (GdkWindowPrivate*) window;
g_return_val_if_fail (window_private->window_type != GDK_WINDOW_PIXMAP, NULL);
if (!window_private->destroyed)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_colormap_lookup (window_attributes.colormap);
if (window_private->colormap == NULL)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_colormap_lookup (window_attributes.colormap);
}
else
return window_private->colormap;
}
return NULL;
@@ -1436,8 +1482,7 @@ gdk_window_add_colormap_windows (GdkWindow *window)
/*
* This needs the X11 shape extension.
* If not available, simply remove the call to
* XShapeCombineMask. Shaped windows will look
* If not available, shaped windows will look
* ugly, but programs still work. Stefan Wille
*/
void
@@ -1445,38 +1490,53 @@ gdk_window_shape_combine_mask (GdkWindow *window,
GdkBitmap *mask,
gint x, gint y)
{
enum { UNKNOWN, NO, YES };
static gint have_shape = UNKNOWN;
GdkWindowPrivate *window_private;
Pixmap pixmap;
g_return_if_fail (window != NULL);
/* This is needed, according to raster */
gdk_window_set_override_redirect(window, TRUE);
window_private = (GdkWindowPrivate*) window;
if (window_private->destroyed)
return;
if (mask)
#ifdef HAVE_SHAPE_EXT
if (have_shape == UNKNOWN)
{
GdkWindowPrivate *pixmap_private;
pixmap_private = (GdkWindowPrivate*) mask;
pixmap = (Pixmap) pixmap_private->xwindow;
int ignore;
if (XQueryExtension(gdk_display, "SHAPE", &ignore, &ignore, &ignore))
have_shape = YES;
else
have_shape = NO;
}
else
if (have_shape == YES)
{
x = 0;
y = 0;
pixmap = None;
window_private = (GdkWindowPrivate*) window;
if (window_private->destroyed)
return;
if (mask)
{
GdkWindowPrivate *pixmap_private;
pixmap_private = (GdkWindowPrivate*) mask;
pixmap = (Pixmap) pixmap_private->xwindow;
}
else
{
x = 0;
y = 0;
pixmap = None;
}
XShapeCombineMask (window_private->xdisplay,
window_private->xwindow,
ShapeBounding,
x, y,
pixmap,
ShapeSet);
}
XShapeCombineMask (window_private->xdisplay,
window_private->xwindow,
ShapeBounding,
x, y,
pixmap,
ShapeSet);
#endif /* HAVE_SHAPE_EXT */
}
void
+33 -14
View File
@@ -61,7 +61,7 @@ handler(int signal)
}
void
init_socket()
init_socket(void)
{
struct sockaddr_in sin;
@@ -130,7 +130,7 @@ enable_device(GxidDevice *dev)
/* switch the core pointer from whatever it is now to something else,
return true on success, false otherwise */
static int
switch_core_pointer()
switch_core_pointer(void)
{
GxidDevice *old_pointer = 0;
GxidDevice *new_pointer = 0;
@@ -222,7 +222,7 @@ init_device(XDeviceInfo *xdevice)
}
void
init_xinput()
init_xinput(void)
{
char **extensions;
XDeviceInfo *xdevices;
@@ -279,12 +279,22 @@ int
handle_claim_device(GxidClaimDevice *msg)
{
int i,j;
XID devid = ntohl(msg->device);
XID winid = ntohl(msg->window);
int exclusive = ntohl(msg->exclusive);
XID devid;
XID winid;
int exclusive;
GxidDevice *device = NULL;
GxidWindow *window = NULL;
if (msg->length != sizeof(GxidClaimDevice))
{
fprintf(stderr,"Bad length for ClaimDevice message\n");
return GXID_RETURN_ERROR;
}
devid = ntohl(msg->device);
winid = ntohl(msg->window);
exclusive = ntohl(msg->exclusive);
#ifdef DEBUG_CLIENTS
fprintf(stderr,"device %ld claimed (window 0x%lx)\n",devid,winid);
#endif
@@ -397,11 +407,20 @@ int
handle_release_device(GxidReleaseDevice *msg)
{
int i,j;
XID devid = ntohl(msg->device);
XID winid = ntohl(msg->window);
XID devid;
XID winid;
GxidDevice *device = NULL;
if (msg->length != sizeof(GxidReleaseDevice))
{
fprintf(stderr,"Bad length for ReleaseDevice message\n");
return GXID_RETURN_ERROR;
}
devid = ntohl(msg->device);
winid = ntohl(msg->window);
#ifdef DEBUG_CLIENTS
fprintf(stderr,"device %ld released (window 0x%lx)\n",devid,winid);
#endif
@@ -460,11 +479,11 @@ handle_release_device(GxidReleaseDevice *msg)
}
void
handle_connection()
handle_connection(void)
{
GxidMessage msg;
GxidU32 type;
int length;
GxidU32 length;
GxidI32 retval;
int conn_fd;
@@ -496,7 +515,7 @@ handle_connection()
/* read rest of message */
if (length > sizeof(GxidMessage))
if ((length > sizeof(GxidMessage)) || (length < 2*sizeof(GxidU32)))
{
fprintf(stderr,"%s: Bad message length\n",
program_name);
@@ -689,7 +708,7 @@ handle_destroy_notify(XDestroyWindowEvent *event)
}
void
handle_xevent()
handle_xevent(void)
{
int i;
XEvent event;
@@ -743,7 +762,7 @@ handle_xevent()
}
void
usage()
usage(void)
{
fprintf(stderr,"Usage: %s [-d display] [-p --gxid-port port]\n",
program_name);
@@ -833,7 +852,7 @@ main(int argc, char **argv)
}
if (FD_ISSET(socket_fd,&readfds))
handle_connection(socket_fd);
handle_connection();
while (XPending(dpy))
handle_xevent();
+12
View File
@@ -1,3 +1,15 @@
Fri May 1 16:36:08 1998 Owen Taylor <otaylor@gtk.org>
* gutils.c: (g_strcasecmp). Check for isupper before
taking tolower, and account for macroized tolower.
* gutils.c (g_error): Check for recursion.
Thu Apr 30 21:41:30 1998 Owen Taylor <otaylor@gtk.org>
* gstring.c : Check arguments more carefully,
(gtk-draco-980423-1.patch; ramsey@rhrk.uni-kl.de)
Tue Apr 7 19:36:48 1998 Owen Taylor <owt1@cornell.edu>
* gutils.c (g_direct_compare): Removed, because that's what
+1 -1
View File
@@ -25,7 +25,7 @@ include_HEADERS = \
configinclude_DATA = \
glibconfig.h
libglib_la_LDFLAGS = -version-info 1:0:0
libglib_la_LDFLAGS = -version-info $(GLIB_MAJOR_VERSION):$(GLIB_MICRO_VERSION):0
INCLUDES = -I$(top_srcdir)
+14 -2
View File
@@ -4,8 +4,15 @@ AC_INIT(glist.c)
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}
dnl Initialize automake stuff
AM_INIT_AUTOMAKE(glib, 1.0.0)
GLIB_MAJOR_VERSION=1
GLIB_MINOR_VERSION=0
GLIB_MICRO_VERSION=1
GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
VERSION=$GLIB_VERSION
PACKAGE=glib
AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
# Specify a configuration file
AM_CONFIG_HEADER(glibconfig.h)
@@ -166,4 +173,9 @@ if test $gtk_ok = no; then
fi
AC_MSG_RESULT($gtk_ok)
AC_SUBST(GLIB_MAJOR_VERSION)
AC_SUBST(GLIB_MINOR_VERSION)
AC_SUBST(GLIB_MICRO_VERSION)
AC_SUBST(GLIB_VERSION)
AC_OUTPUT(Makefile)
-3
View File
@@ -35,9 +35,6 @@
#undef NO_SYS_ERRLIST
#undef NO_SYS_SIGLIST
/* #undef PACKAGE */
/* #undef VERSION */
/* The number of bytes in a char. */
#undef SIZEOF_CHAR
+16 -4
View File
@@ -254,8 +254,11 @@ GString*
g_string_append (GString *fstring, gchar *val)
{
GRealString *string = (GRealString*)fstring;
int len = strlen (val);
int len;
g_return_val_if_fail (val != NULL, fstring);
len = strlen (val);
g_string_maybe_expand (string, len);
strcpy (string->str + string->len, val);
@@ -282,8 +285,11 @@ GString*
g_string_prepend (GString *fstring, gchar *val)
{
GRealString *string = (GRealString*)fstring;
gint len = strlen (val);
gint len;
g_return_val_if_fail (val != NULL, fstring);
len = strlen (val);
g_string_maybe_expand (string, len);
g_memmove (string->str + len, string->str, string->len);
@@ -319,10 +325,13 @@ GString *
g_string_insert (GString *fstring, gint pos, gchar *val)
{
GRealString *string = (GRealString*)fstring;
gint len = strlen (val);
gint len;
g_return_val_if_fail (val != NULL, fstring);
g_return_val_if_fail (pos >= 0, fstring);
g_return_val_if_fail (pos <= string->len, fstring);
len = strlen (val);
g_string_maybe_expand (string, len);
g_memmove (string->str + pos + len, string->str + pos, string->len - pos);
@@ -361,10 +370,13 @@ g_string_erase (GString *fstring, gint pos, gint len)
{
GRealString *string = (GRealString*)fstring;
g_return_val_if_fail (len >= 0, fstring);
g_return_val_if_fail (pos >= 0, fstring);
g_return_val_if_fail (pos <= string->len, fstring);
g_return_val_if_fail (pos + len <= string->len, fstring);
g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len));
if (pos + len < string->len)
g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len));
string->len -= len;
+18 -4
View File
@@ -22,6 +22,7 @@
#include <string.h>
#include <locale.h>
#include <ctype.h> /* For tolower() */
#include <unistd.h>
#include "glib.h"
@@ -675,7 +676,14 @@ g_error (gchar *format, ...)
{
va_list args, args2;
char *buf;
static gboolean errored = 0;
if (errored++)
{
write (2, "g_error: recursed!\n", 19);
return;
}
va_start (args, format);
va_start (args2, format);
buf = g_vsprintf (format, &args, &args2);
@@ -688,9 +696,10 @@ g_error (gchar *format, ...)
}
else
{
fputs ("\n** ERROR **: ", stderr);
fputs (buf, stderr);
fputc ('\n', stderr);
/* Use write() here because we might be out of memory */
write (2, "\n** ERROR **: ", 14);
write (2, buf, strlen(buf));
write (2, "\n", 1);
}
abort ();
@@ -855,9 +864,14 @@ g_strcasecmp (const gchar *s1, const gchar *s2)
while (*s1 && *s2)
{
c1 = tolower((guchar)(*s1++)); c2 = tolower((guchar)(*s2++));
/* According to A. Cox, some platforms have islower's that
* don't work right on non-uppercase
*/
c1 = isupper ((guchar)*s1) ? tolower ((guchar)*s1) : *s1;
c2 = isupper ((guchar)*s2) ? tolower ((guchar)*s2) : *s2;
if (c1 != c2)
return (c1 - c2);
s1++; s2++;
}
return (((gint)(guchar) *s1) - ((gint)(guchar) *s2));
+54 -33
View File
@@ -32,23 +32,43 @@ if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
echo=echo
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# The Solaris and AIX default echo program unquotes backslashes.
# This makes it impossible to quote backslashes using
# The Solaris, AIX, and Digital Unix default echo programs unquote
# backslashes. This makes it impossible to quote backslashes using
# echo "$something" | sed 's/\\/\\\\/g'
# So, we emulate echo with printf '%s\n'
echo="printf %s\\n"
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We have no working printf. Try to find a not-so-buggy echo.
echo=echo
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
echo="$dir/echo"
break
#
# So, first we look for a working echo in the user's PATH.
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t'; then
echo="$dir/echo"
break
fi
done
IFS="$save_ifs"
if test "X$echo" = Xecho; then
# We didn't find a better echo, so look for alternatives.
if test "X`(print -r '\t') 2>/dev/null`" = 'X\t'; then
# This shell has a builtin print -r that does the trick.
echo='print -r'
#
# The following is from libtool-1.2a, won't work with this patched
# libtool-1.2
#
# elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
# # If we have ksh, try running ltconfig again with it.
# CONFIG_SHELL=/bin/ksh
# export CONFIG_SHELL
# exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
else
# Try using printf.
echo='printf %s\n'
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We lost completely, so just stick with echo.
echo=echo
fi
done
IFS="$save_ifs"
fi
fi
fi
@@ -66,7 +86,7 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
VERSION=1.1
VERSION=1.2
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'
rm="rm -f"
@@ -421,7 +441,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
# Now see if the compiler is really GCC.
with_gcc=no
echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
echo "$progname:424: checking whether we are using GNU C" >&5
echo "$progname:444: checking whether we are using GNU C" >&5
$rm conftest.c
cat > conftest.c <<EOF
@@ -429,7 +449,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:452: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
with_gcc=yes
fi
$rm conftest.c
@@ -544,14 +564,15 @@ if test -n "$pic_flag"; then
echo > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pic_flag -DPIC"
echo "$progname:547: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any errors to the config.log.
echo "$progname:567: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any warnings to the config.log.
cat conftest.err 1>&5
# On HP-UX, the stripped-down bundled CC does not accept +Z, but also
# reports no error. So, we need to grep stderr for (Bundled).
if grep '(Bundled)' conftest.err >/dev/null; then
# On HP-UX, both CC and GCC only warn that PIC is supported... then they
# create non-PIC objects. So, if there were any warnings, we assume that
# PIC is not supported.
if test -s conftest.err; then
echo "$ac_t"no 1>&6
can_build_shared=no
pic_flag=
@@ -587,8 +608,8 @@ $rm conftest*
echo 'main(){return(0);}' > conftest.c
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $link_static_flag"
echo "$progname:590: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$progname:611: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$ac_t$link_static_flag" 1>&6
else
echo "$ac_t"none 1>&6
@@ -620,7 +641,7 @@ if test -z "$LD"; then
if test "$with_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
echo "$progname:623: checking for ld used by GCC" >&5
echo "$progname:644: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
@@ -638,10 +659,10 @@ if test -z "$LD"; then
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld... $ac_c" 1>&6
echo "$progname:641: checking for GNU ld" >&5
echo "$progname:662: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
echo "$progname:644: checking for non-GNU ld" >&5
echo "$progname:665: checking for non-GNU ld" >&5
fi
if test -z "$LD"; then
@@ -967,11 +988,11 @@ void nm_test_func(){}
main(){nm_test_var='a';nm_test_func();return(0);}
EOF
echo "$progname:970: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
echo "$progname:991: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:992: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
# Now try to grab the symbols.
nlist=conftest.nm
if { echo "$progname:974: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
if { echo "$progname:995: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
@@ -1029,7 +1050,7 @@ EOF
save_CFLAGS="$CFLAGS"
LIBS='conftestm.o'
CFLAGS="$CFLAGS$no_builtin_flag"
if { (eval echo $progname:1032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
if { (eval echo $progname:1053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
pipe_works=yes
else
echo "$progname: failed program was:" >&5
+47 -51
View File
@@ -30,7 +30,7 @@ modename="$progname"
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
VERSION=1.1
VERSION=1.2
default_mode=
help="Try \`$progname --help' for more information."
@@ -481,7 +481,7 @@ if test -z "$show_help"; then
if test "$export_dynamic" != yes; then
export_dynamic=yes
if test -n "$export_dynamic_flag_spec"; then
arg=`eval \\$echo "$export_dynamic_flag_spec"`
eval arg=\"$export_dynamic_flag_spec\"
else
arg=
fi
@@ -682,7 +682,7 @@ if test -z "$show_help"; then
fi
if test -n "$libdir"; then
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
@@ -843,7 +843,7 @@ if test -z "$show_help"; then
esac
name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
libname=`eval \\$echo \"$libname_spec\"`
eval libname=\"$libname_spec\"
# All the library-specific variables (install_libdir is set above).
library_names=
@@ -1006,13 +1006,13 @@ if test -z "$show_help"; then
if test "$build_libtool_libs" = yes; then
# Get the real and link names of the library.
library_names=`eval \\$echo \"$library_names_spec\"`
eval library_names=\"$library_names_spec\"
set dummy $library_names
realname="$2"
shift; shift
if test -n "$soname_spec"; then
soname=`eval \\$echo \"$soname_spec\"`
eval soname=\"$soname_spec\"
else
soname="$realname"
fi
@@ -1027,7 +1027,7 @@ if test -z "$show_help"; then
test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
# Do each of the archive commands.
cmds=`eval \\$echo \"$archive_cmds\"`
eval cmds=\"$archive_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -1104,7 +1104,7 @@ if test -z "$show_help"; then
reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
output="$obj"
cmds=`eval \\$echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -1128,7 +1128,7 @@ if test -z "$show_help"; then
# Only do commands if we really have different PIC objects.
reload_objs="$libobjs"
output="$libobj"
cmds=`eval \\$echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -1177,7 +1177,7 @@ if test -z "$show_help"; then
fi
if test -n "$libdir"; then
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
@@ -1254,8 +1254,8 @@ if test -z "$show_help"; then
case "$dlsyms" in
"") ;;
*.c)
$echo > "$objdir/$dlsyms" \
"/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
$echo > "$objdir/$dlsyms" "\
/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
#ifdef __cplusplus
@@ -1266,17 +1266,17 @@ extern \"C\" {
#define dld_preloaded_symbol_count some_other_symbol
#define dld_preloaded_symbols some_other_symbol
/* External symbol declarations for the compiler. */"
/* External symbol declarations for the compiler. */\
"
if test -f "$nlist"; then
sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
else
echo '/* NONE */' >> "$objdir/$dlsyms"
EOF
fi
$echo >> "$objdir/$dlsyms" \
"
$echo >> "$objdir/$dlsyms" "\
#undef dld_preloaded_symbol_count
#undef dld_preloaded_symbols
@@ -1295,19 +1295,21 @@ struct {
__ptr_t address;
}
dld_preloaded_symbols[] =
{"
{\
"
if test -f "$nlist"; then
sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
fi
$echo >> "$objdir/$dlsyms" \
" {0, (__ptr_t) 0}
$echo >> "$objdir/$dlsyms" "\
{0, (__ptr_t) 0}
};
#ifdef __cplusplus
}
#endif"
#endif\
"
;;
*)
@@ -1427,8 +1429,8 @@ dld_preloaded_symbols[] =
$rm $output
trap "$rm $output; exit 1" 1 2 15
$echo > $output \
"#! /bin/sh
$echo > $output "\
#! /bin/sh
# $output - temporary wrapper script for $objdir/$output
# Generated by ltmain.sh - GNU $PACKAGE $VERSION
@@ -1459,10 +1461,9 @@ else
else
echo=\"$qecho\"
file=\"\$0\"
fi
"
$echo >> $output \
fi\
"
$echo >> $output "\
# Find the directory that this script lives in.
thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
@@ -1496,8 +1497,8 @@ else
# Export our shlibpath_var if we have one.
if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
$echo >> $output \
" # Add our own library path to $shlibpath_var
$echo >> $output "\
# Add our own library path to $shlibpath_var
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
# Some systems cannot cope with colon-terminated $shlibpath_var
@@ -1507,24 +1508,17 @@ else
"
fi
echo >> $output \
" if test \"\$libtool_execute_magic\" != \"$magic\"; then
$echo >> $output "\
if test \"\$libtool_execute_magic\" != \"$magic\"; then
# Run the actual program with our arguments.
args=
for arg
do
# Quote arguments (to preserve shell metacharacters).
arg=\`\$echo \"X\$arg\" | \$Xsed -e \"\$sed_quote_subst\"\`
args=\"\$args \\\"\$arg\\\"\"
done
# Export the path to the program.
PATH=\"\$progdir:\$PATH\"
export PATH
eval \"exec \$program \$args\"
exec \$program \${1+\"\$@\"}
\$echo \"\$0: cannot exec \$program \$args\"
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
exit 1
fi
else
@@ -1534,7 +1528,8 @@ else
echo \"See the $PACKAGE documentation for more information.\" 1>&2
exit 1
fi
fi"
fi\
"
chmod +x $output
fi
exit 0
@@ -1548,9 +1543,9 @@ fi"
# Do each command in the archive commands.
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
cmds=`eval \\$echo \"$old_archive_from_new_cmds\"`
eval cmds=\"$old_archive_from_new_cmds\"
else
cmds=`eval \\$echo \"$old_archive_cmds\"`
eval cmds=\"$old_archive_cmds\"
fi
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
@@ -1571,8 +1566,8 @@ fi"
# Only create the output if not a dry run.
if test -z "$run"; then
echo > $output \
"# $output - a libtool library file
$echo > $output "\
# $output - a libtool library file
# Generated by ltmain.sh - GNU $PACKAGE $VERSION
# The name that we can dlopen(3).
@@ -1593,7 +1588,8 @@ age=$age
revision=$revision
# Directory that this library needs to be installed in:
libdir='$install_libdir'"
libdir='$install_libdir'\
"
fi
# Do a symbolic link so that the libtool archive can be found in
@@ -1835,7 +1831,7 @@ libdir='$install_libdir'"
# Do each command in the postinstall commands.
lib="$destdir/$realname"
cmds=`eval \\$echo \"$postinstall_cmds\"`
eval cmds=\"$postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -1972,7 +1968,7 @@ libdir='$install_libdir'"
$run eval "$install_prog \$file \$oldlib" || exit $?
# Do each command in the postinstall commands.
cmds=`eval \\$echo \"$old_postinstall_cmds\"`
eval cmds=\"$old_postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -2010,7 +2006,7 @@ libdir='$install_libdir'"
for libdir in $libdirs; do
if test -n "$finish_cmds"; then
# Do each command in the finish commands.
cmds=`eval \\$echo \"$finish_cmds\"`
eval cmds=\"$finish_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -2021,7 +2017,7 @@ libdir='$install_libdir'"
fi
if test -n "$finish_eval"; then
# Do the single finish_eval.
cmds=`eval \\$echo \"$finish_eval\"`
eval cmds=\"$finish_eval\"
$run eval "$cmds"
fi
done
@@ -2047,7 +2043,7 @@ libdir='$install_libdir'"
fi
if test -n "$hardcode_libdir_flag_spec"; then
libdir=LIBDIR
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
echo " - use the \`$flag' linker flag"
fi
@@ -2238,7 +2234,7 @@ libdir='$install_libdir'"
if test -n "$library_names"; then
# Do each command in the postuninstall commands.
cmds=`eval \\$echo \"$postuninstall_cmds\"`
eval cmds=\"$postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -2250,7 +2246,7 @@ libdir='$install_libdir'"
if test -n "$old_library"; then
# Do each command in the old_postuninstall commands.
cmds=`eval \\$echo \"$old_postuninstall_cmds\"`
eval cmds=\"$old_postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
-334
View File
@@ -1,334 +0,0 @@
;; -*- Lisp -*-
(Created-By-Prcs-Version 1 1 0)
(Project-Description "")
(Project-Version gtk+ 0 16)
(Parent-Version gtk+ 0 15)
(Descends-From -*- -*- -*-)
(Version-Log "")
(New-Version-Log "")
(Checkin-Time "Wed, 19 Feb 1997 15:49:10 -0800")
(Checkin-Login pmattis)
(Populate-Ignore ("\\.o$" "\\.a$" "^core$" "^.*/core$"
".*.deps/.*" "\\.dvi$" "\\.aux$" "\\.log"
"Makefile$" "config.cache$" "config.log$"
"configure$" "gconfig.h$" "stamp-h$"))
(Files
;; This is a comment. Fill in files here.
;; For example: (prcs/checkout.cc ())
; Files added by populate at Thu, 21 Nov 1996 16:48:40 -0800:
(docs/texinfo.tex (gtk+/1_texinfo.te 1.1 644))
(docs/gtk.texi (gtk+/2_gtk.texi 1.5 644))
(docs/gdk.texi (gtk+/3_gdk.texi 1.2 644))
(docs/Makefile.in (gtk+/4_Makefile.i 1.5 644))
(docs/Makefile.am (gtk+/5_Makefile.a 1.2 644))
(gtk/testgtk.c (gtk+/6_testgtk.c 1.14 644))
(gtk/gtkwindow.h (gtk+/7_gtkwindow. 1.6 644))
(gtk/gtkwindow.c (gtk+/8_gtkwindow. 1.10 644))
(gtk/gtkwidget.h (gtk+/9_gtkwidget. 1.8 644))
(gtk/gtkwidget.c (gtk+/10_gtkwidget. 1.14 644))
(gtk/gtkvseparator.h (gtk+/11_gtkvsepara 1.3 644))
(gtk/gtkvseparator.c (gtk+/12_gtkvsepara 1.5 644))
(gtk/gtkvscrollbar.h (gtk+/13_gtkvscroll 1.3 644))
(gtk/gtkvscrollbar.c (gtk+/14_gtkvscroll 1.5 644))
(gtk/gtkvscale.h (gtk+/15_gtkvscale. 1.2 644))
(gtk/gtkvscale.c (gtk+/16_gtkvscale. 1.7 644))
(gtk/gtkvruler.h (gtk+/17_gtkvruler. 1.4 644))
(gtk/gtkvruler.c (gtk+/18_gtkvruler. 1.7 644))
(gtk/gtkviewport.h (gtk+/19_gtkviewpor 1.3 644))
(gtk/gtkviewport.c (gtk+/20_gtkviewpor 1.6 644))
(gtk/gtkvbox.h (gtk+/21_gtkvbox.h 1.2 644))
(gtk/gtkvbox.c (gtk+/22_gtkvbox.c 1.5 644))
(gtk/gtktypeutils.h (gtk+/23_gtktypeuti 1.4 644))
(gtk/gtktypeutils.c (gtk+/24_gtktypeuti 1.6 644))
(gtk/gtktreeitem.h (gtk+/25_gtktreeite 1.3 644))
(gtk/gtktreeitem.c (gtk+/26_gtktreeite 1.4 644))
(gtk/gtktree.h (gtk+/27_gtktree.h 1.3 644))
(gtk/gtktree.c (gtk+/28_gtktree.c 1.4 644))
(gtk/gtktogglebutton.h (gtk+/29_gtktoggleb 1.5 644))
(gtk/gtktogglebutton.c (gtk+/30_gtktoggleb 1.8 644))
(gtk/gtktable.h (gtk+/31_gtktable.h 1.2 644))
(gtk/gtktable.c (gtk+/32_gtktable.c 1.8 644))
(gtk/gtkstyle.h (gtk+/33_gtkstyle.h 1.3 644))
(gtk/gtkstyle.c (gtk+/34_gtkstyle.c 1.7 644))
(gtk/gtksignal.h (gtk+/35_gtksignal. 1.7 644))
(gtk/gtksignal.c (gtk+/36_gtksignal. 1.9 644))
(gtk/gtkseparator.h (gtk+/37_gtkseparat 1.2 644))
(gtk/gtkseparator.c (gtk+/38_gtkseparat 1.4 644))
(gtk/gtkscrolledwindow.h (gtk+/39_gtkscrolle 1.2 644))
(gtk/gtkscrolledwindow.c (gtk+/40_gtkscrolle 1.8 644))
(gtk/gtkscrollbar.h (gtk+/41_gtkscrollb 1.2 644))
(gtk/gtkscrollbar.c (gtk+/42_gtkscrollb 1.4 644))
(gtk/gtkscale.h (gtk+/43_gtkscale.h 1.4 644))
(gtk/gtkscale.c (gtk+/44_gtkscale.c 1.7 644))
(gtk/gtkruler.h (gtk+/45_gtkruler.h 1.5 644))
(gtk/gtkruler.c (gtk+/46_gtkruler.c 1.8 644))
(gtk/gtkrc.h (gtk+/47_gtkrc.h 1.3 644))
(gtk/gtkrc.c (gtk+/48_gtkrc.c 1.4 644))
(gtk/gtkrange.h (gtk+/49_gtkrange.h 1.4 644))
(gtk/gtkrange.c (gtk+/50_gtkrange.c 1.6 644))
(gtk/gtkradiobutton.h (gtk+/51_gtkradiobu 1.3 644))
(gtk/gtkradiobutton.c (gtk+/b/0_gtkradiobutton.c 1.7 644))
(gtk/gtkpixmap.h (gtk+/b/1_gtkpixmap. 1.3 644))
(gtk/gtkpixmap.c (gtk+/b/2_gtkpixmap. 1.5 644))
(gtk/gtkoptionmenu.h (gtk+/b/3_gtkoptionm 1.5 644))
(gtk/gtkoptionmenu.c (gtk+/b/4_gtkoptionm 1.7 644))
(gtk/gtkobject.h (gtk+/b/5_gtkobject. 1.6 644))
(gtk/gtkobject.c (gtk+/b/6_gtkobject. 1.9 644))
(gtk/gtkmisc.h (gtk+/b/7_gtkmisc.h 1.2 644))
(gtk/gtkmisc.c (gtk+/b/8_gtkmisc.c 1.4 644))
(gtk/gtkmenushell.h (gtk+/b/9_gtkmenushe 1.5 644))
(gtk/gtkmenushell.c (gtk+/b/10_gtkmenushe 1.8 644))
(gtk/gtkmenuitem.h (gtk+/b/11_gtkmenuite 1.6 644))
(gtk/gtkmenuitem.c (gtk+/b/12_gtkmenuite 1.8 644))
(gtk/gtkmenubar.h (gtk+/b/13_gtkmenubar 1.4 644))
(gtk/gtkmenubar.c (gtk+/b/14_gtkmenubar 1.7 644))
(gtk/gtkmenu.h (gtk+/b/15_gtkmenu.h 1.5 644))
(gtk/gtkmenu.c (gtk+/b/16_gtkmenu.c 1.8 644))
(gtk/gtkmain.h (gtk+/b/17_gtkmain.h 1.4 644))
(gtk/gtkmain.c (gtk+/b/18_gtkmain.c 1.11 644))
(gtk/gtklistitem.h (gtk+/b/19_gtklistite 1.3 644))
(gtk/gtklistitem.c (gtk+/b/20_gtklistite 1.9 644))
(gtk/gtklist.h (gtk+/b/21_gtklist.h 1.5 644))
(gtk/gtklist.c (gtk+/b/22_gtklist.c 1.10 644))
(gtk/gtklabel.h (gtk+/b/23_gtklabel.h 1.2 644))
(gtk/gtklabel.c (gtk+/b/24_gtklabel.c 1.7 644))
(gtk/gtkitem.h (gtk+/b/25_gtkitem.h 1.3 644))
(gtk/gtkitem.c (gtk+/b/26_gtkitem.c 1.7 644))
(gtk/gtkimage.h (gtk+/b/27_gtkimage.h 1.2 644))
(gtk/gtkimage.c (gtk+/b/28_gtkimage.c 1.4 644))
(gtk/gtkhseparator.h (gtk+/b/29_gtkhsepara 1.2 644))
(gtk/gtkhseparator.c (gtk+/b/30_gtkhsepara 1.4 644))
(gtk/gtkhscrollbar.h (gtk+/b/31_gtkhscroll 1.2 644))
(gtk/gtkhscrollbar.c (gtk+/b/32_gtkhscroll 1.4 644))
(gtk/gtkhscale.h (gtk+/b/33_gtkhscale. 1.2 644))
(gtk/gtkhscale.c (gtk+/b/34_gtkhscale. 1.7 644))
(gtk/gtkhruler.h (gtk+/b/35_gtkhruler. 1.4 644))
(gtk/gtkhruler.c (gtk+/b/36_gtkhruler. 1.7 644))
(gtk/gtkhbox.h (gtk+/b/37_gtkhbox.h 1.2 644))
(gtk/gtkhbox.c (gtk+/b/38_gtkhbox.c 1.5 644))
(gtk/gtkgc.h (gtk+/b/39_gtkgc.h 1.3 644))
(gtk/gtkgc.c (gtk+/b/40_gtkgc.c 1.5 644))
(gtk/gtkframe.h (gtk+/b/41_gtkframe.h 1.2 644))
(gtk/gtkframe.c (gtk+/b/42_gtkframe.c 1.5 644))
(gtk/gtkenums.h (gtk+/b/45_gtkenums.h 1.6 644))
(gtk/gtkentry.h (gtk+/b/46_gtkentry.h 1.5 644))
(gtk/gtkentry.c (gtk+/b/47_gtkentry.c 1.9 644))
(gtk/gtkdrawingarea.h (gtk+/b/48_gtkdrawing 1.4 644))
(gtk/gtkdrawingarea.c (gtk+/b/49_gtkdrawing 1.6 644))
(gtk/gtkdata.h (gtk+/b/50_gtkdata.h 1.2 644))
(gtk/gtkdata.c (gtk+/b/51_gtkdata.c 1.7 644))
(gtk/gtkcontainer.h (gtk+/c/0_gtkcontainer.h 1.6 644))
(gtk/gtkcontainer.c (gtk+/c/1_gtkcontain 1.10 644))
(gtk/gtkcheckbutton.h (gtk+/c/2_gtkcheckbu 1.3 644))
(gtk/gtkcheckbutton.c (gtk+/c/3_gtkcheckbu 1.6 644))
(gtk/gtkbutton.h (gtk+/c/4_gtkbutton. 1.4 644))
(gtk/gtkbutton.c (gtk+/c/5_gtkbutton. 1.9 644))
(gtk/gtkbox.h (gtk+/c/6_gtkbox.h 1.2 644))
(gtk/gtkbox.c (gtk+/c/7_gtkbox.c 1.5 644))
(gtk/gtkbin.h (gtk+/c/8_gtkbin.h 1.2 644))
(gtk/gtkbin.c (gtk+/c/9_gtkbin.c 1.6 644))
(gtk/gtkarrow.h (gtk+/c/10_gtkarrow.h 1.2 644))
(gtk/gtkarrow.c (gtk+/c/11_gtkarrow.c 1.4 644))
(gtk/gtkalignment.h (gtk+/c/12_gtkalignme 1.2 644))
(gtk/gtkalignment.c (gtk+/c/13_gtkalignme 1.5 644))
(gtk/gtkadjustment.h (gtk+/c/14_gtkadjustm 1.3 644))
(gtk/gtkadjustment.c (gtk+/c/15_gtkadjustm 1.7 644))
(gtk/gtkaccelerator.h (gtk+/c/16_gtkacceler 1.4 644))
(gtk/gtkaccelerator.c (gtk+/c/17_gtkacceler 1.4 644))
(gtk/gtk.h (gtk+/c/18_gtk.h 1.7 644))
(gtk/fnmatch.h (gtk+/c/19_fnmatch.h 1.1 644))
(gtk/fnmatch.c (gtk+/c/20_fnmatch.c 1.1 644))
(TODO (gtk+/c/21_TODO 1.13 644))
(gtk/Makefile.in (gtk+/c/22_Makefile.i 1.10 644))
(gtk/Makefile.am (gtk+/c/23_Makefile.a 1.10 644))
(gdk/makekeysyms.sed (gtk+/c/24_makekeysym 1.1 644))
(gdk/makekeysyms (gtk+/c/25_makekeysym 1.1 755))
(gdk/makecursors.sed (gtk+/c/26_makecursor 1.1 644))
(gdk/makecursors (gtk+/c/27_makecursor 1.1 755))
(gdk/gdkx.h (gtk+/c/28_gdkx.h 1.2 644))
(gdk/gdkwindow.c (gtk+/c/29_gdkwindow. 1.8 644))
(gdk/gdkvisual.c (gtk+/c/30_gdkvisual. 1.2 644))
(gdk/gdktypes.h (gtk+/c/31_gdktypes.h 1.6 644))
(gdk/gdkrectangle.c (gtk+/c/32_gdkrectang 1.3 644))
(gdk/gdkprivate.h (gtk+/c/33_gdkprivate 1.4 644))
(gdk/gdkpixmap.c (gtk+/c/34_gdkpixmap. 1.6 644))
(gdk/gdkkeysyms.h (gtk+/c/35_gdkkeysyms 1.2 644))
(gdk/gdkimage.c (gtk+/c/36_gdkimage.c 1.4 644))
(gdk/gdkglobals.c (gtk+/c/37_gdkglobals 1.3 644))
(gdk/gdkgc.c (gtk+/c/38_gdkgc.c 1.6 644))
(gdk/gdkfont.c (gtk+/c/39_gdkfont.c 1.4 644))
(gdk/gdkdraw.c (gtk+/c/40_gdkdraw.c 1.4 644))
(gdk/gdkcursors.h (gtk+/c/41_gdkcursors 1.3 644))
(gdk/gdkcursor.c (gtk+/c/42_gdkcursor. 1.3 644))
(gdk/gdkcolor.c (gtk+/c/43_gdkcolor.c 1.4 644))
(gdk/gdk.h (gtk+/c/44_gdk.h 1.6 644))
(gdk/gdk.c (gtk+/c/45_gdk.c 1.8 644))
(gdk/Makefile.in (gtk+/c/46_Makefile.i 1.7 644))
(gdk/Makefile.am (gtk+/c/47_Makefile.a 1.7 644))
(glib/testglib.c (gtk+/c/48_testglib.c 1.8 644))
(glib/stamp-h.in (gtk+/c/49_stamp-h.in 1.1 644))
(glib/mkinstalldirs (gtk+/c/50_mkinstalld 1.1 755))
(glib/install-sh (gtk+/c/51_install-sh 1.1 755))
(glib/gutils.c (gtk+/d/0_gutils.c 1.3 644))
(glib/gtimer.c (gtk+/d/1_gtimer.c 1.2 644))
(glib/gslist.c (gtk+/d/2_gslist.c 1.6 644))
(glib/gprimes.c (gtk+/d/3_gprimes.c 1.2 644))
(glib/gmem.c (gtk+/d/4_gmem.c 1.9 644))
(glib/glist.c (gtk+/d/5_glist.c 1.4 644))
(glib/glib.h (gtk+/d/6_glib.h 1.8 644))
(glib/ghash.c (gtk+/d/7_ghash.c 1.5 644))
(glib/gerror.c (gtk+/d/8_gerror.c 1.4 644))
(glib/gconfig.h.in (gtk+/d/9_gconfig.h. 1.3 644))
(glib/gconfig.h (gtk+/d/10_gconfig.h 1.6 644))
(glib/gcache.c (gtk+/d/11_gcache.c 1.6 644))
(glib/configure.in (gtk+/d/12_configure. 1.4 644))
(glib/configure (gtk+/d/13_configure 1.4 755))
(glib/config.sub (gtk+/d/14_config.sub 1.2 755))
(glib/config.guess (gtk+/d/15_config.gue 1.2 755))
(glib/aclocal.m4 (gtk+/d/16_aclocal.m4 1.4 644))
(glib/acconfig.h (gtk+/d/17_acconfig.h 1.3 644))
(glib/README (gtk+/d/18_README 1.1 644))
(glib/NEWS (gtk+/d/19_NEWS 1.1 644))
(glib/Makefile.in (gtk+/d/20_Makefile.i 1.7 644))
(glib/Makefile.am (gtk+/d/21_Makefile.a 1.7 644))
(glib/INSTALL (gtk+/d/22_INSTALL 1.1 644))
(glib/ChangeLog (gtk+/d/23_ChangeLog 1.2 644))
(glib/COPYING (gtk+/d/24_COPYING 1.1 644))
(glib/AUTHORS (gtk+/d/25_AUTHORS 1.2 644))
(stamp-h.in (gtk+/d/26_stamp-h.in 1.1 644))
(mkinstalldirs (gtk+/d/27_mkinstalld 1.1 755))
(install-sh (gtk+/d/28_install-sh 1.1 755))
(configure.in (gtk+/d/30_configure. 1.8 644))
(configure (gtk+/d/31_configure 1.8 755))
(config.sub (gtk+/d/32_config.sub 1.2 755))
(config.h.in (gtk+/d/33_config.h.i 1.4 644))
(config.guess (gtk+/d/34_config.gue 1.2 755))
(aclocal.m4 (gtk+/d/35_aclocal.m4 1.4 644))
(acconfig.h (gtk+/d/36_acconfig.h 1.3 644))
(README (gtk+/d/37_README 1.1 644))
(NEWS (gtk+/d/38_NEWS 1.1 644))
(Makefile.in (gtk+/d/39_Makefile.i 1.9 644))
(Makefile.am (gtk+/d/40_Makefile.a 1.7 644))
(INSTALL (gtk+/d/41_INSTALL 1.1 644))
(ChangeLog (gtk+/d/42_ChangeLog 1.14 644))
(COPYING (gtk+/d/43_COPYING 1.2 644))
(AUTHORS (gtk+/d/44_AUTHORS 1.2 644))
; Files added by populate at Mon, 30 Dec 1996 13:14:24 -0800:
(gtk/gtkmenufactory.h (gtk+/0_gtkmenufac 1.4 644))
(gtk/gtkmenufactory.c (gtk+/1_gtkmenufac 1.4 644))
; Files added by populate at Thu, 02 Jan 1997 15:31:44 -0800:
(gtk/testgtkrc (gtk+/0_testgtkrc 1.2 644))
; Files added by populate at Fri, 10 Jan 1997 14:19:47 -0800:
(gtk/gtkfilesel.h (gtk+/b/0_gtkfilesel.h 1.3 644))
(gtk/gtkfilesel.c (gtk+/c/0_gtkfilesel.c 1.7 644))
(glib/gstring.c (gtk+/d/0_gstring.c 1.4 644))
; Files added by populate at Fri, 10 Jan 1997 18:01:19 -0800:
(gdk/gdkselection.c (gtk+/b/0_gdkselection.c 1.5 644))
; Files added by populate at Sun, 19 Jan 1997 18:29:12 -0800:
(gtk/gtktext.h (gtk+/b/0_gtktext.h 1.4 644))
(gtk/gtktext.c (gtk+/c/0_gtktext.c 1.7 644))
(gtk/gtkdialog.h (gtk+/d/0_gtkdialog.h 1.2 644))
(gtk/gtkdialog.c (gtk+/d/47_gtkdialog. 1.4 644))
(gdk/gdkxid.c (gtk+/d/48_gdkxid.c 1.2 644))
; Files added by populate at Thu, 23 Jan 1997 01:29:17 -0800:
(gtk/gtknotebook.h (gtk+/b/0_gtknotebook.h 1.3 644))
(gtk/gtknotebook.c (gtk+/c/0_gtknotebook.c 1.6 644))
; Files added by populate at Thu, 23 Jan 1997 02:06:11 -0800:
(gtk/line-wrap.xbm (gtk+/b/0_line-wrap.xbm 1.1 644))
(gtk/line-arrow.xbm (gtk+/c/0_line-arrow.xbm 1.1 644))
; Files added by populate at Fri, 24 Jan 1997 13:02:44 -0800:
; Files deleted by populate at Fri, 24 Jan 1997 13:02:44 -0800:
; `docs/texinfo3.7.patch'
; Files added by populate at Tue, 28 Jan 1997 16:54:35 -0800:
(gtk/simple.c (gtk+/e/0_simple.c 1.1 644))
(glib/ltmain.sh (gtk+/e/1_ltmain.sh 1.3 644))
(glib/ltconfig (gtk+/e/2_ltconfig 1.3 755))
(ltmain.sh (gtk+/e/3_ltmain.sh 1.3 644))
(ltconfig (gtk+/e/4_ltconfig 1.3 755))
; Files added by populate at Thu, 30 Jan 1997 01:30:38 -0800:
(glib/gtree.c (gtk+/b/0_gtree.c 1.3 644))
; Files added by populate at Mon, 03 Feb 1997 19:46:14 -0800:
(makecopyright (gtk+/b/0_makecopyright 1.1 755))
; Files added by populate at Sat, 08 Feb 1997 14:41:52 -0800:
(gtk/gtkprogressbar.h (gtk+/b/0_gtkprogressbar.h 1.1 644))
(gtk/gtkprogressbar.c (gtk+/c/0_gtkprogressbar.c 1.1 644))
(glib/garray.c (gtk+/d/0_garray.c 1.1 644))
; Files deleted by populate at Sat, 08 Feb 1997 14:41:52 -0800:
; `interp/Makefile.am'
; `interp/Makefile.in'
; `interp/interp.c'
;; Files added by populate at Wed, 19 Feb 1997 15:48:04 -0800:
(gtk+.xconfig.in (gtk+/b/0_gtk+.xconfig.in 1.1 644))
;; Files deleted by populate at Wed, 19 Feb 1997 15:48:04 -0800:
; docs/proposal.tex
;; Files added by populate at Thu, 17 Apr 1997 17:39:47 -0700:
(docs/macros.texi ())
(gdk/gdkproperty.c ())
(glib/missing () :symlink)
(missing () :symlink)
;; Files deleted by populate at Thu, 17 Apr 1997 17:39:47 -0700:
; gtk/gtkcanvas.c
; gtk/gtkcanvas.h
; gtk/gtkfill.c
; gtk/gtkfill.h
;; Files added by populate at Thu, 17 Apr 1997 17:41:14 -0700:
(gtk/gtktooltips.h ())
(gtk/gtktooltips.c ())
(gtk/gtkradiomenuitem.h ())
(gtk/gtkradiomenuitem.c ())
(gtk/gtkpreview.h ())
(gtk/gtkpreview.c ())
(gtk/gtkcolorsel.h ())
(gtk/gtkcolorsel.c ())
(gtk/gtkcheckmenuitem.h ())
(gtk/gtkcheckmenuitem.c ())
(gtk/gtkaspectframe.h ())
(gtk/gtkaspectframe.c ())
)
(Merge-Parents)
(New-Merge-Parents)
+5 -1
View File
@@ -1,5 +1,5 @@
# Note that this is NOT a relocatable package
%define ver 1.0.0
%define ver 1.0.1
%define rel SNAP
%define prefix /usr
@@ -46,6 +46,10 @@ are in gtk+-devel.
%changelog
* Sun May 3 1998 Shawn T. Amundson <amundson@gtk.org>
- Changed version to 1.0.1
* Mon Apr 13 1998 Marc Ewing <marc@redhat.com>
- Split out glib package
+104 -13
View File
@@ -12,6 +12,8 @@ AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed
gtk_config_prefix="$withval", gtk_config_prefix="")
AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
, enable_gtktest=yes)
if test x$gtk_config_exec_prefix != x ; then
gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
@@ -30,18 +32,28 @@ AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK
min_gtk_version=ifelse([$1], ,0.99.7,$1)
AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
no_gtk=""
if test "$GTK_CONFIG" != "no" ; then
if test "$GTK_CONFIG" = "no" ; then
no_gtk=yes
else
GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_gtktest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
dnl
dnl Now check if the installed GTK is sufficiently new. (Also sanity
dnl checks the results of gtk-config to some extent
dnl
AC_TRY_RUN([
rm -f conf.gtktest
AC_TRY_RUN([
#include <gtk/gtk.h>
#include <stdio.h>
@@ -50,30 +62,109 @@ main ()
{
int major, minor, micro;
system ("touch conf.gtktest");
if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_gtk_version");
exit(1);
}
return !((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
if ((gtk_major_version != $gtk_config_major_version) ||
(gtk_minor_version != $gtk_config_minor_version) ||
(gtk_micro_version != $gtk_config_micro_version))
{
printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
$gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf ("*** was found! If gtk-config was correct, then it is best\n");
printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
printf("*** before re-running configure\n");
}
else
{
if ((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
major, minor, micro);
printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
printf("*** correct copy of gtk-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
}
return 1;
}
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
else
no_gtk=yes
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_gtk" = x ; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$GTK_CONFIG" = "no" ; then
echo "*** The gtk-config script installed by GTK could not be found"
echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the GTK_CONFIG environment variable to the"
echo "*** full path to gtk-config."
else
if test -f conf.gtktest ; then
:
else
echo "*** Could not run GTK test program, checking why..."
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
AC_TRY_LINK([
#include <gtk/gtk.h>
#include <stdio.h>
], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GTK or finding the wrong"
echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
echo "***"
echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
echo "*** came with the system with the command"
echo "***"
echo "*** rpm --erase --nodeps gtk gtk-devel" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means GTK was incorrectly installed"
echo "*** or that you have moved GTK since it was installed. In the latter case, you"
echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
GTK_CFLAGS=""
GTK_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
rm -f conf.gtktest
])
+2 -1
View File
@@ -197,12 +197,13 @@ $(srcdir)/gtktypebuiltins.h: @MAINT@ $(srcdir)/gtk.defs $(srcdir)/gentypeinfo.el
$(srcdir)/gtktypebuiltins.c: @MAINT@ $(srcdir)/gtk.defs $(srcdir)/gentypeinfo.el
$(SHELL) $(srcdir)/runelisp $(srcdir)/gentypeinfo.el id $< $@
libgtk_la_LDFLAGS = -version-info 1:0:0
libgtk_la_LDFLAGS = -version-info $(GTK_MAJOR_VERSION):$(GTK_MICRO_VERSION):0
EXTRA_DIST = \
line-arrow.xbm \
line-wrap.xbm \
testgtkrc \
testgtkrc2 \
gtk.defs \
runelisp \
gentypeinfo.el \
-690
View File
@@ -1,690 +0,0 @@
# Makefile.in generated automatically by automake 1.2c from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = true
PRE_INSTALL = true
POST_INSTALL = true
NORMAL_UNINSTALL = true
PRE_UNINSTALL = true
POST_UNINSTALL = true
host_alias = @host_alias@
host_triplet = @host@
CC = @CC@
CPP = @CPP@
LD = @LD@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
NM = @NM@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
x_cflags = @x_cflags@
x_includes = @x_includes@
x_ldflags = @x_ldflags@
x_libs = @x_libs@
xinput_progs = @xinput_progs@
gtkincludedir = $(includedir)/gtk
lib_LTLIBRARIES = libgtk.la
libgtk_la_SOURCES = \
gtkaccelerator.c \
gtkadjustment.c \
gtkaspectframe.c \
gtkalignment.c \
gtkarrow.c \
gtkbin.c \
gtkbbox.c \
gtkbox.c \
gtkbutton.c \
gtkcheckbutton.c \
gtkcheckmenuitem.c \
gtkclist.c \
gtkcolorsel.c \
gtkcombo.c \
gtkcontainer.c \
gtkcurve.c \
gtkdata.c \
gtkdialog.c \
gtkdrawingarea.c \
gtkentry.c \
gtkeventbox.c \
gtkfilesel.c \
gtkfixed.c \
gtkframe.c \
gtkgamma.c \
gtkgc.c \
gtkhandlebox.c \
gtkhbbox.c \
gtkhbox.c \
gtkhpaned.c \
gtkhruler.c \
gtkhscale.c \
gtkhscrollbar.c \
gtkhseparator.c \
gtkimage.c \
gtkinputdialog.c \
gtkitem.c \
gtklabel.c \
gtklist.c \
gtklistitem.c \
gtkmain.c \
gtkmenu.c \
gtkmenubar.c \
gtkmenufactory.c \
gtkmenuitem.c \
gtkmenushell.c \
gtkmisc.c \
gtknotebook.c \
gtkobject.c \
gtkoptionmenu.c \
gtkpaned.c \
gtkpixmap.c \
gtkpreview.c \
gtkprogressbar.c \
gtkradiobutton.c \
gtkradiomenuitem.c \
gtkrange.c \
gtkrc.c \
gtkruler.c \
gtkscale.c \
gtkscrollbar.c \
gtkscrolledwindow.c \
gtkselection.c \
gtkseparator.c \
gtksignal.c \
gtkstyle.c \
gtkstatusbar.c \
gtktable.c \
gtktext.c \
gtktogglebutton.c \
gtktoolbar.c \
gtktooltips.c \
gtktree.c \
gtktreeitem.c \
gtktypeutils.c \
gtkvbbox.c \
gtkvbox.c \
gtkviewport.c \
gtkvpaned.c \
gtkvruler.c \
gtkvscale.c \
gtkvscrollbar.c \
gtkvseparator.c \
gtkwidget.c \
gtkwindow.c \
fnmatch.c \
fnmatch.h
gtkinclude_HEADERS = \
gtk.h \
gtkaccelerator.h \
gtkadjustment.h \
gtkaspectframe.h \
gtkalignment.h \
gtkarrow.h \
gtkbin.h \
gtkbbox.h \
gtkbox.h \
gtkbutton.h \
gtkcheckbutton.h \
gtkcheckmenuitem.h \
gtkclist.h \
gtkcolorsel.h \
gtkcombo.h \
gtkcontainer.h \
gtkcurve.h \
gtkdata.h \
gtkdialog.h \
gtkdrawingarea.h \
gtkentry.h \
gtkenums.h \
gtkeventbox.h \
gtkfilesel.h \
gtkfixed.h \
gtkframe.h \
gtkgamma.h \
gtkgc.h \
gtkhandlebox.h \
gtkhbbox.h \
gtkhbox.h \
gtkhpaned.h \
gtkhruler.h \
gtkhscale.h \
gtkhscrollbar.h \
gtkhseparator.h \
gtkimage.h \
gtkinputdialog.h \
gtkitem.h \
gtklabel.h \
gtklist.h \
gtklistitem.h \
gtkmain.h \
gtkmenu.h \
gtkmenubar.h \
gtkmenufactory.h \
gtkmenuitem.h \
gtkmenushell.h \
gtkmisc.h \
gtknotebook.h \
gtkobject.h \
gtkoptionmenu.h \
gtkpaned.h \
gtkpixmap.h \
gtkpreview.h \
gtkprogressbar.h \
gtkradiobutton.h \
gtkradiomenuitem.h \
gtkrange.h \
gtkrc.h \
gtkruler.h \
gtkscale.h \
gtkscrollbar.h \
gtkscrolledwindow.h \
gtkselection.h \
gtkseparator.h \
gtksignal.h \
gtkstyle.h \
gtkstatusbar.h \
gtktable.h \
gtktext.h \
gtktogglebutton.h \
gtktoolbar.h \
gtktooltips.h \
gtktree.h \
gtktreeitem.h \
gtktypeutils.h \
gtkvbbox.h \
gtkvbox.h \
gtkviewport.h \
gtkvpaned.h \
gtkvruler.h \
gtkvscale.h \
gtkvscrollbar.h \
gtkvseparator.h \
gtkwidget.h \
gtkwindow.h \
gtktypebuiltins.h
libgtk_la_LDFLAGS = -version-info 1:0:0
EXTRA_DIST = \
line-arrow.xbm \
line-wrap.xbm \
testgtkrc \
gtk.defs \
runelisp \
gentypeinfo.el \
gtktypebuiltins.c \
test.xpm \
marble.xpm \
3DRings.xpm \
FilesQueue.xpm \
Modeller.xpm \
tree_plus.xpm \
tree_minus.xpm \
tree_plus.xbm \
tree_minus.xbm
INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/glib @x_cflags@
noinst_PROGRAMS = testgtk testinput testselection simple testtree
testgtk_LDADD = \
libgtk.la \
$(top_builddir)/gdk/libgdk.la \
@x_ldflags@ \
@x_libs@ \
$(top_builddir)/glib/libglib.la \
-lm
testinput_LDADD = \
libgtk.la \
$(top_builddir)/gdk/libgdk.la \
@x_ldflags@ \
@x_libs@ \
$(top_builddir)/glib/libglib.la \
-lm
testselection_LDADD = \
libgtk.la \
$(top_builddir)/gdk/libgdk.la \
@x_ldflags@ \
@x_libs@ \
$(top_builddir)/glib/libglib.la \
-lm
simple_LDADD = \
libgtk.la \
$(top_builddir)/gdk/libgdk.la \
@x_ldflags@ \
@x_libs@ \
$(top_builddir)/glib/libglib.la \
-lm
testtree_LDADD = \
libgtk.la \
$(top_builddir)/gdk/libgdk.la \
@x_ldflags@ \
@x_libs@ \
$(top_builddir)/glib/libglib.la \
-lm
DEPS = \
$(top_builddir)/gtk/libgtk.la \
$(top_builddir)/gdk/libgdk.la \
$(top_builddir)/glib/libglib.la
testgtk_DEPENDENCIES = $(DEPS)
testinput_DEPENDENCIES = $(DEPS)
testselection_DEPENDENCIES = $(DEPS)
simple_DEPENDENCIES = $(DEPS)
testtree_DEPENDENCIES = $(DEPS)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(lib_LTLIBRARIES)
DEFS = @DEFS@ -I. -I$(srcdir) -I..
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
libgtk_la_LIBADD =
libgtk_la_OBJECTS = gtkaccelerator.lo gtkadjustment.lo \
gtkaspectframe.lo gtkalignment.lo gtkarrow.lo gtkbin.lo gtkbbox.lo \
gtkbox.lo gtkbutton.lo gtkcheckbutton.lo gtkcheckmenuitem.lo \
gtkclist.lo gtkcolorsel.lo gtkcombo.lo gtkcontainer.lo gtkcurve.lo \
gtkdata.lo gtkdialog.lo gtkdrawingarea.lo gtkentry.lo gtkeventbox.lo \
gtkfilesel.lo gtkfixed.lo gtkframe.lo gtkgamma.lo gtkgc.lo \
gtkhandlebox.lo gtkhbbox.lo gtkhbox.lo gtkhpaned.lo gtkhruler.lo \
gtkhscale.lo gtkhscrollbar.lo gtkhseparator.lo gtkimage.lo \
gtkinputdialog.lo gtkitem.lo gtklabel.lo gtklist.lo gtklistitem.lo \
gtkmain.lo gtkmenu.lo gtkmenubar.lo gtkmenufactory.lo gtkmenuitem.lo \
gtkmenushell.lo gtkmisc.lo gtknotebook.lo gtkobject.lo gtkoptionmenu.lo \
gtkpaned.lo gtkpixmap.lo gtkpreview.lo gtkprogressbar.lo \
gtkradiobutton.lo gtkradiomenuitem.lo gtkrange.lo gtkrc.lo gtkruler.lo \
gtkscale.lo gtkscrollbar.lo gtkscrolledwindow.lo gtkselection.lo \
gtkseparator.lo gtksignal.lo gtkstyle.lo gtkstatusbar.lo gtktable.lo \
gtktext.lo gtktogglebutton.lo gtktoolbar.lo gtktooltips.lo gtktree.lo \
gtktreeitem.lo gtktypeutils.lo gtkvbbox.lo gtkvbox.lo gtkviewport.lo \
gtkvpaned.lo gtkvruler.lo gtkvscale.lo gtkvscrollbar.lo \
gtkvseparator.lo gtkwidget.lo gtkwindow.lo fnmatch.lo
PROGRAMS = $(noinst_PROGRAMS)
testgtk_SOURCES = testgtk.c
testgtk_OBJECTS = testgtk.o
testgtk_LDFLAGS =
testinput_SOURCES = testinput.c
testinput_OBJECTS = testinput.o
testinput_LDFLAGS =
testselection_SOURCES = testselection.c
testselection_OBJECTS = testselection.o
testselection_LDFLAGS =
simple_SOURCES = simple.c
simple_OBJECTS = simple.o
simple_LDFLAGS =
testtree_SOURCES = testtree.c
testtree_OBJECTS = testtree.o
testtree_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
HEADERS = $(gtkinclude_HEADERS)
DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
DEP_FILES = .deps/fnmatch.P .deps/gtkaccelerator.P \
.deps/gtkadjustment.P .deps/gtkalignment.P .deps/gtkarrow.P \
.deps/gtkaspectframe.P .deps/gtkbbox.P .deps/gtkbin.P .deps/gtkbox.P \
.deps/gtkbutton.P .deps/gtkcheckbutton.P .deps/gtkcheckmenuitem.P \
.deps/gtkclist.P .deps/gtkcolorsel.P .deps/gtkcombo.P \
.deps/gtkcontainer.P .deps/gtkcurve.P .deps/gtkdata.P .deps/gtkdialog.P \
.deps/gtkdrawingarea.P .deps/gtkentry.P .deps/gtkeventbox.P \
.deps/gtkfilesel.P .deps/gtkfixed.P .deps/gtkframe.P .deps/gtkgamma.P \
.deps/gtkgc.P .deps/gtkhandlebox.P .deps/gtkhbbox.P .deps/gtkhbox.P \
.deps/gtkhpaned.P .deps/gtkhruler.P .deps/gtkhscale.P \
.deps/gtkhscrollbar.P .deps/gtkhseparator.P .deps/gtkimage.P \
.deps/gtkinputdialog.P .deps/gtkitem.P .deps/gtklabel.P .deps/gtklist.P \
.deps/gtklistitem.P .deps/gtkmain.P .deps/gtkmenu.P .deps/gtkmenubar.P \
.deps/gtkmenufactory.P .deps/gtkmenuitem.P .deps/gtkmenushell.P \
.deps/gtkmisc.P .deps/gtknotebook.P .deps/gtkobject.P \
.deps/gtkoptionmenu.P .deps/gtkpaned.P .deps/gtkpixmap.P \
.deps/gtkpreview.P .deps/gtkprogressbar.P .deps/gtkradiobutton.P \
.deps/gtkradiomenuitem.P .deps/gtkrange.P .deps/gtkrc.P \
.deps/gtkruler.P .deps/gtkscale.P .deps/gtkscrollbar.P \
.deps/gtkscrolledwindow.P .deps/gtkselection.P .deps/gtkseparator.P \
.deps/gtksignal.P .deps/gtkstatusbar.P .deps/gtkstyle.P \
.deps/gtktable.P .deps/gtktext.P .deps/gtktogglebutton.P \
.deps/gtktoolbar.P .deps/gtktooltips.P .deps/gtktree.P \
.deps/gtktreeitem.P .deps/gtktypeutils.P .deps/gtkvbbox.P \
.deps/gtkvbox.P .deps/gtkviewport.P .deps/gtkvpaned.P .deps/gtkvruler.P \
.deps/gtkvscale.P .deps/gtkvscrollbar.P .deps/gtkvseparator.P \
.deps/gtkwidget.P .deps/gtkwindow.P .deps/simple.P .deps/testgtk.P \
.deps/testinput.P .deps/testselection.P .deps/testtree.P
SOURCES = $(libgtk_la_SOURCES) testgtk.c testinput.c testselection.c simple.c testtree.c
OBJECTS = $(libgtk_la_OBJECTS) testgtk.o testinput.o testselection.o simple.o testtree.o
default: all
.SUFFIXES:
.SUFFIXES: .c .lo .o
$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu gtk/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-libLTLIBRARIES:
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
distclean-libLTLIBRARIES:
maintainer-clean-libLTLIBRARIES:
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(libdir)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo "$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(libdir)/$$p"; \
$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(libdir)/$$p; \
else :; fi; \
done
uninstall-libLTLIBRARIES:
$(NORMAL_UNINSTALL)
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
$(LIBTOOL) --mode=uninstall rm -f $(libdir)/$$p; \
done
.c.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
.c.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs
distclean-libtool:
maintainer-clean-libtool:
libgtk.la: $(libgtk_la_OBJECTS) $(libgtk_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libgtk_la_LDFLAGS) $(libgtk_la_OBJECTS) $(libgtk_la_LIBADD) $(LIBS)
mostlyclean-noinstPROGRAMS:
clean-noinstPROGRAMS:
-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
distclean-noinstPROGRAMS:
maintainer-clean-noinstPROGRAMS:
testgtk: $(testgtk_OBJECTS) $(testgtk_DEPENDENCIES)
@rm -f testgtk
$(LINK) $(testgtk_LDFLAGS) $(testgtk_OBJECTS) $(testgtk_LDADD) $(LIBS)
testinput: $(testinput_OBJECTS) $(testinput_DEPENDENCIES)
@rm -f testinput
$(LINK) $(testinput_LDFLAGS) $(testinput_OBJECTS) $(testinput_LDADD) $(LIBS)
testselection: $(testselection_OBJECTS) $(testselection_DEPENDENCIES)
@rm -f testselection
$(LINK) $(testselection_LDFLAGS) $(testselection_OBJECTS) $(testselection_LDADD) $(LIBS)
simple: $(simple_OBJECTS) $(simple_DEPENDENCIES)
@rm -f simple
$(LINK) $(simple_LDFLAGS) $(simple_OBJECTS) $(simple_LDADD) $(LIBS)
testtree: $(testtree_OBJECTS) $(testtree_DEPENDENCIES)
@rm -f testtree
$(LINK) $(testtree_LDFLAGS) $(testtree_OBJECTS) $(testtree_LDADD) $(LIBS)
install-gtkincludeHEADERS: $(gtkinclude_HEADERS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(gtkincludedir)
@list='$(gtkinclude_HEADERS)'; for p in $$list; do \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(gtkincludedir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(gtkincludedir)/$$p; \
done
uninstall-gtkincludeHEADERS:
$(NORMAL_UNINSTALL)
list='$(gtkinclude_HEADERS)'; for p in $$list; do \
rm -f $(gtkincludedir)/$$p; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES)
here=`pwd` && cd $(srcdir) && mkid -f$$here/ID $(SOURCES) $(HEADERS)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES)
tags=; \
here=`pwd`; \
test -z "$(ETAGS_ARGS)$(SOURCES)$(HEADERS)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $(SOURCES) $(HEADERS) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = gtk
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu gtk/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done
MKDEP = $(CC) -M $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include .deps/.P
.deps/.P: $(BUILT_SOURCES)
echo > $@
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
maintainer-clean-depend:
-rm -rf .deps
.deps/%.P: %.c
@echo "Computing dependencies for $<..."
@o='o'; \
test -n "$o" && o='$$o'; \
$(MKDEP) $< >$@.tmp \
&& sed "s,^\(.*\)\.o:,\1.$$o \1.l$$o $@:," < $@.tmp > $@ \
&& rm -f $@.tmp
info:
dvi:
check: all
$(MAKE)
installcheck:
install-exec: install-libLTLIBRARIES
@$(NORMAL_INSTALL)
install-data: install-gtkincludeHEADERS
@$(NORMAL_INSTALL)
install: install-exec install-data all
@:
uninstall: uninstall-libLTLIBRARIES uninstall-gtkincludeHEADERS
all: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS)
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
installdirs:
$(mkinstalldirs) $(libdir) $(gtkincludedir)
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean: mostlyclean-libLTLIBRARIES mostlyclean-compile \
mostlyclean-libtool mostlyclean-noinstPROGRAMS \
mostlyclean-tags mostlyclean-depend mostlyclean-generic
clean: clean-libLTLIBRARIES clean-compile clean-libtool \
clean-noinstPROGRAMS clean-tags clean-depend \
clean-generic mostlyclean
distclean: distclean-libLTLIBRARIES distclean-compile distclean-libtool \
distclean-noinstPROGRAMS distclean-tags \
distclean-depend distclean-generic clean
-rm -f config.status
-rm -f libtool
maintainer-clean: maintainer-clean-libLTLIBRARIES \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
maintainer-clean-depend maintainer-clean-generic \
distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
.PHONY: default mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
distclean-compile clean-compile maintainer-clean-compile \
mostlyclean-libtool distclean-libtool clean-libtool \
maintainer-clean-libtool mostlyclean-noinstPROGRAMS \
distclean-noinstPROGRAMS clean-noinstPROGRAMS \
maintainer-clean-noinstPROGRAMS uninstall-gtkincludeHEADERS \
install-gtkincludeHEADERS tags mostlyclean-tags distclean-tags \
clean-tags maintainer-clean-tags distdir mostlyclean-depend \
distclean-depend clean-depend maintainer-clean-depend info dvi \
installcheck install-exec install-data install uninstall all \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
../gtk/gtktypebuiltins.h: gtk.defs gentypeinfo.el
$(SHELL) $(srcdir)/runelisp $(srcdir)/gentypeinfo.el idmac $< $@
gtktypebuiltins.c: gtk.defs gentypeinfo.el
$(SHELL) $(srcdir)/runelisp $(srcdir)/gentypeinfo.el id $< $@
.PHONY: files
files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+1 -3
View File
@@ -1094,9 +1094,7 @@
;; Tooltips
(define-boxed GtkTooltips
gtk_tooltips_ref
gtk_tooltips_unref)
(define-object GtkTooltips (GtkObject))
(define-func gtk_tooltips_new
GtkTooltips
+82 -3
View File
@@ -39,6 +39,8 @@ static void gtk_accelerator_table_clean (GtkAcceleratorTable *table);
static GtkAcceleratorTable *default_table = NULL;
static GSList *tables = NULL;
static guint8 gtk_accelerator_table_default_mod_mask = (guint8) ~0;
static const gchar *actable_key = "gtk-accelerator-tables";
static guint actable_key_id = 0;
GtkAcceleratorTable*
@@ -46,6 +48,9 @@ gtk_accelerator_table_new ()
{
GtkAcceleratorTable *table;
if (!actable_key_id)
actable_key_id = gtk_object_data_force_id (actable_key);
table = g_new (GtkAcceleratorTable, 1);
gtk_accelerator_table_init (table);
@@ -109,9 +114,10 @@ void
gtk_accelerator_table_unref (GtkAcceleratorTable *table)
{
g_return_if_fail (table != NULL);
g_return_if_fail (table->ref_count > 0);
table->ref_count -= 1;
if (table->ref_count <= 0)
if (table->ref_count == 0)
{
tables = g_slist_remove (tables, table);
gtk_accelerator_table_clean (table);
@@ -154,6 +160,12 @@ gtk_accelerator_table_install (GtkAcceleratorTable *table,
if ((entry->modifiers & table->modifier_mask) ==
(accelerator_mods & table->modifier_mask))
{
gtk_object_set_data_by_id (entry->object,
actable_key_id,
g_slist_remove (gtk_object_get_data_by_id (entry->object,
actable_key_id),
table));
if (GTK_IS_WIDGET (entry->object))
{
signame = gtk_signal_name (entry->signal_id);
@@ -165,6 +177,12 @@ gtk_accelerator_table_install (GtkAcceleratorTable *table,
entry->modifiers = accelerator_mods;
entry->object = object;
entry->signal_id = signal_id;
gtk_object_set_data_by_id (entry->object,
actable_key_id,
g_slist_prepend (gtk_object_get_data_by_id (entry->object,
actable_key_id),
table));
return;
}
@@ -175,7 +193,13 @@ gtk_accelerator_table_install (GtkAcceleratorTable *table,
entry->modifiers = accelerator_mods;
entry->object = object;
entry->signal_id = signal_id;
gtk_object_set_data_by_id (entry->object,
actable_key_id,
g_slist_prepend (gtk_object_get_data_by_id (entry->object,
actable_key_id),
table));
gtk_accelerator_table_ref (table);
table->entries[hash] = g_list_prepend (table->entries[hash], entry);
}
@@ -225,7 +249,14 @@ gtk_accelerator_table_remove (GtkAcceleratorTable *table,
temp_list->next = NULL;
temp_list->prev = NULL;
g_list_free (temp_list);
gtk_object_set_data_by_id (object,
actable_key_id,
g_slist_remove (gtk_object_get_data_by_id (object,
actable_key_id),
table));
gtk_accelerator_table_unref (table);
return;
}
@@ -332,6 +363,9 @@ gtk_accelerator_table_clean (GtkAcceleratorTable *table)
for (i = 0; i < 256; i++)
{
entries = table->entries[i];
if (entries)
g_warning ("stale object reference in accelerator table (%d)", i);
while (entries)
{
entry = entries->data;
@@ -344,3 +378,48 @@ gtk_accelerator_table_clean (GtkAcceleratorTable *table)
table->entries[i] = NULL;
}
}
void
gtk_accelerator_tables_delete (GtkObject *object)
{
GSList *slist;
g_return_if_fail (object != NULL);
slist = gtk_object_get_data_by_id (object, actable_key_id);
if (slist)
{
for (; slist; slist = slist->next)
{
GtkAcceleratorTable *table;
guint i;
table = slist->data;
for (i = 0; i < 256; i++)
{
GList *entries;
entries = table->entries[i];
while (entries)
{
GtkAcceleratorEntry *entry;
entry = entries->data;
entries = entries->next;
if (entry->object == object)
{
table->entries[i] = g_list_remove (table->entries[i], entry);
g_free (entry);
}
}
}
gtk_accelerator_table_unref (table);
}
gtk_object_remove_data_by_id (object, actable_key_id);
}
}
+4 -1
View File
@@ -26,6 +26,7 @@
#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus */
@@ -34,7 +35,7 @@ typedef struct _GtkAcceleratorTable GtkAcceleratorTable;
struct _GtkAcceleratorTable
{
GList *entries[256];
gint ref_count;
guint ref_count;
guint8 modifier_mask;
};
@@ -60,6 +61,8 @@ void gtk_accelerator_table_remove (GtkAcceleratorTable *table,
gint gtk_accelerator_table_check (GtkAcceleratorTable *table,
const guchar accelerator_key,
guint8 accelerator_mods);
void gtk_accelerator_tables_delete (GtkObject *object);
void gtk_accelerator_table_set_mod_mask (GtkAcceleratorTable *table,
guint8 modifier_mask);
+32 -2
View File
@@ -34,10 +34,10 @@ static void gtk_adjustment_init (GtkAdjustment *adjustment);
static guint adjustment_signals[LAST_SIGNAL] = { 0 };
guint
GtkType
gtk_adjustment_get_type ()
{
static guint adjustment_type = 0;
static GtkType adjustment_type = 0;
if (!adjustment_type)
{
@@ -130,3 +130,33 @@ gtk_adjustment_set_value (GtkAdjustment *adjustment,
gtk_signal_emit_by_name (GTK_OBJECT (adjustment), "value_changed");
}
void
gtk_adjustment_clamp_page (GtkAdjustment *adjustment,
gfloat lower,
gfloat upper)
{
gint need_emission;
g_return_if_fail (adjustment != NULL);
g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
lower = CLAMP (lower, adjustment->lower, adjustment->upper);
upper = CLAMP (upper, adjustment->lower, adjustment->upper);
need_emission = FALSE;
if (adjustment->value + adjustment->page_size < upper)
{
adjustment->value = upper - adjustment->page_size;
need_emission = TRUE;
}
if (adjustment->value > lower)
{
adjustment->value = lower;
need_emission = TRUE;
}
if (need_emission)
gtk_signal_emit_by_name (GTK_OBJECT (adjustment), "value_changed");
}
+22 -17
View File
@@ -8,7 +8,7 @@
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
@@ -26,21 +26,22 @@
#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus */
#define GTK_ADJUSTMENT(obj) GTK_CHECK_CAST (obj, gtk_adjustment_get_type (), GtkAdjustment)
#define GTK_ADJUSTMENT_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_adjustment_get_type (), GtkAdjustmentClass)
#define GTK_IS_ADJUSTMENT(obj) GTK_CHECK_TYPE (obj, gtk_adjustment_get_type ())
#define GTK_ADJUSTMENT(obj) (GTK_CHECK_CAST (obj, gtk_adjustment_get_type (), GtkAdjustment))
#define GTK_ADJUSTMENT_CLASS(klass) (GTK_CHECK_CLASS_CAST (klass, gtk_adjustment_get_type (), GtkAdjustmentClass))
#define GTK_IS_ADJUSTMENT(obj) (GTK_CHECK_TYPE (obj, gtk_adjustment_get_type ()))
typedef struct _GtkAdjustment GtkAdjustment;
typedef struct _GtkAdjustment GtkAdjustment;
typedef struct _GtkAdjustmentClass GtkAdjustmentClass;
struct _GtkAdjustment
{
GtkData data;
gfloat lower;
gfloat upper;
gfloat value;
@@ -52,21 +53,25 @@ struct _GtkAdjustment
struct _GtkAdjustmentClass
{
GtkDataClass parent_class;
void (* changed) (GtkAdjustment *adjustment);
void (* changed) (GtkAdjustment *adjustment);
void (* value_changed) (GtkAdjustment *adjustment);
};
guint gtk_adjustment_get_type (void);
GtkObject* gtk_adjustment_new (gfloat value,
gfloat lower,
gfloat upper,
gfloat step_increment,
gfloat page_increment,
gfloat page_size);
void gtk_adjustment_set_value (GtkAdjustment *adjustment,
gfloat value);
GtkType gtk_adjustment_get_type (void);
GtkObject* gtk_adjustment_new (gfloat value,
gfloat lower,
gfloat upper,
gfloat step_increment,
gfloat page_increment,
gfloat page_size);
void gtk_adjustment_set_value (GtkAdjustment *adjustment,
gfloat value);
void gtk_adjustment_clamp_page (GtkAdjustment *adjustment,
gfloat lower,
gfloat upper);
+19 -19
View File
@@ -200,27 +200,25 @@ gtk_bin_add (GtkContainer *container,
g_return_if_fail (widget != NULL);
bin = GTK_BIN (container);
g_return_if_fail (bin->child == NULL);
if (!bin->child)
gtk_widget_set_parent (widget, GTK_WIDGET (container));
if (GTK_WIDGET_VISIBLE (widget->parent))
{
gtk_widget_set_parent (widget, GTK_WIDGET (container));
if (GTK_WIDGET_VISIBLE (widget->parent))
{
if (GTK_WIDGET_REALIZED (widget->parent) &&
!GTK_WIDGET_REALIZED (widget))
gtk_widget_realize (widget);
if (GTK_WIDGET_MAPPED (widget->parent) &&
!GTK_WIDGET_MAPPED (widget))
gtk_widget_map (widget);
}
bin->child = widget;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (widget);
if (GTK_WIDGET_REALIZED (widget->parent) &&
!GTK_WIDGET_REALIZED (widget))
gtk_widget_realize (widget);
if (GTK_WIDGET_MAPPED (widget->parent) &&
!GTK_WIDGET_MAPPED (widget))
gtk_widget_map (widget);
}
bin->child = widget;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (widget);
}
static void
@@ -237,10 +235,12 @@ gtk_bin_remove (GtkContainer *container,
if (bin->child == widget)
{
gboolean widget_was_visible = GTK_WIDGET_VISIBLE (widget);
gtk_widget_unparent (widget);
bin->child = NULL;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
if (widget_was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
}
}
+2
View File
@@ -160,6 +160,7 @@ gtk_box_pack_start (GtkBox *box,
g_return_if_fail (box != NULL);
g_return_if_fail (GTK_IS_BOX (box));
g_return_if_fail (child != NULL);
g_return_if_fail (child->parent == NULL);
child_info = g_new (GtkBoxChild, 1);
child_info->widget = child;
@@ -199,6 +200,7 @@ gtk_box_pack_end (GtkBox *box,
g_return_if_fail (box != NULL);
g_return_if_fail (GTK_IS_BOX (box));
g_return_if_fail (child != NULL);
g_return_if_fail (child->parent == NULL);
child_info = g_new (GtkBoxChild, 1);
child_info->widget = child;
+92 -14
View File
@@ -41,7 +41,7 @@ enum {
ARG_0,
ARG_LABEL
};
static void gtk_button_class_init (GtkButtonClass *klass);
@@ -94,7 +94,7 @@ static guint button_signals[LAST_SIGNAL] = { 0 };
guint
gtk_button_get_type ()
gtk_button_get_type (void)
{
static guint button_type = 0;
@@ -219,16 +219,16 @@ gtk_button_set_arg (GtkButton *button,
{
case ARG_LABEL:
gtk_container_disable_resize (GTK_CONTAINER (button));
if (button->child)
{
gtk_widget_unparent (button->child);
button->child = NULL;
}
label = gtk_label_new (GTK_VALUE_STRING(*arg));
gtk_widget_show (label);
gtk_container_add (GTK_CONTAINER (button), label);
gtk_container_enable_resize (GTK_CONTAINER (button));
break;
@@ -239,7 +239,7 @@ gtk_button_set_arg (GtkButton *button,
}
GtkWidget*
gtk_button_new ()
gtk_button_new (void)
{
return GTK_WIDGET (gtk_type_new (gtk_button_get_type ()));
}
@@ -433,9 +433,9 @@ gtk_button_size_allocate (GtkWidget *widget,
DEFAULT_LEFT_POS);
child_allocation.y += (GTK_WIDGET (widget)->style->klass->ythickness +
DEFAULT_TOP_POS);
child_allocation.width = MAX (1, child_allocation.width -
child_allocation.width = MAX (1, child_allocation.width -
(GTK_WIDGET (widget)->style->klass->xthickness * 2 + DEFAULT_SPACING));
child_allocation.height = MAX (1, child_allocation.height -
child_allocation.height = MAX (1, child_allocation.height -
(GTK_WIDGET (widget)->style->klass->xthickness * 2 + DEFAULT_SPACING));
}
@@ -443,25 +443,60 @@ gtk_button_size_allocate (GtkWidget *widget,
}
}
/*
* +------------------------------------------------+
* | BORDER |
* | +------------------------------------------+ |
* | |\\\\\\\\\\\\\\\\DEFAULT\\\\\\\\\\\\\\\\\ | |
* | |\\+------------------------------------+ | |
* | |\\| | SPACING 3 | | | |
* | |\\| +--------------------------------+ | | |
* | |\\| |########## FOCUS ###############| | | |
* | |\\| |#+----------------------------+#| | | |
* | |\\| |#| RELIEF \|#| | | |
* | |\\| |#| +-----------------------+\|#| | | |
* | |\\|1|#| + THE TEXT +\|#|2| | |
* | |\\| |#| +-----------------------+\|#| | | |
* | |\\| |#| \\\\\ ythickness \\\\\\\\\\|#| | | |
* | |\\| |#+----------------------------+#| | | |
* | |\\| |########### 1 ##################| | | |
* | |\\| +--------------------------------+ | | |
* | |\\| | default spacing 4 | | | |
* | |\\+------------------------------------+ | |
* | |\ ythickness | |
* | +------------------------------------------+ |
* | border_width |
* +------------------------------------------------+
*/
static void
gtk_button_paint (GtkWidget *widget,
GdkRectangle *area)
{
GdkRectangle restrict_area;
GdkRectangle outer_area;
GdkRectangle tmp_area;
GdkRectangle new_area;
gint xthickness;
gint ythickness;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_BUTTON (widget));
xthickness = widget->style->klass->xthickness;
ythickness = widget->style->klass->ythickness;
if (GTK_WIDGET_DRAWABLE (widget))
{
restrict_area.x = GTK_WIDGET (widget)->style->klass->xthickness;
restrict_area.y = GTK_WIDGET (widget)->style->klass->ythickness;
restrict_area.width = GTK_WIDGET (widget)->allocation.width -
restrict_area.x = xthickness;
restrict_area.y = ythickness;
restrict_area.width = GTK_WIDGET (widget)->allocation.width -
restrict_area.x * 2 - GTK_CONTAINER (widget)->border_width * 2;
restrict_area.height = GTK_WIDGET (widget)->allocation.height -
restrict_area.height = GTK_WIDGET (widget)->allocation.height -
restrict_area.y * 2 - GTK_CONTAINER (widget)->border_width * 2;
outer_area = restrict_area;
if (GTK_WIDGET_CAN_DEFAULT (widget))
{
restrict_area.x += DEFAULT_LEFT_POS;
@@ -477,6 +512,49 @@ gtk_button_paint (GtkWidget *widget,
new_area.x, new_area.y,
new_area.width, new_area.height);
}
if (GTK_WIDGET_CAN_DEFAULT (widget))
{
/* Now fill spacing area between the default border and the button */
/* 1 */ tmp_area = outer_area;
tmp_area.width = restrict_area.x - outer_area.x;
if (gdk_rectangle_intersect (area, &tmp_area, &new_area))
gdk_draw_rectangle (widget->window,
widget->style->bg_gc[GTK_STATE_NORMAL],
TRUE,
new_area.x, new_area.y,
new_area.width, new_area.height);
/* 2 */ tmp_area.x = restrict_area.x + restrict_area.width;
if (gdk_rectangle_intersect (area, &tmp_area, &new_area))
gdk_draw_rectangle (widget->window,
widget->style->bg_gc[GTK_STATE_NORMAL],
TRUE,
new_area.x, new_area.y,
new_area.width, new_area.height);
/* 3 */ tmp_area.width = restrict_area.width;
tmp_area.height = restrict_area.y - outer_area.y;
tmp_area.x = restrict_area.x;
if (gdk_rectangle_intersect (area, &tmp_area, &new_area))
gdk_draw_rectangle (widget->window,
widget->style->bg_gc[GTK_STATE_NORMAL],
TRUE,
new_area.x, new_area.y,
new_area.width, new_area.height);
/* 4 */ tmp_area.y = restrict_area.y + restrict_area.height;
if (gdk_rectangle_intersect (area, &tmp_area, &new_area))
gdk_draw_rectangle (widget->window,
widget->style->bg_gc[GTK_STATE_NORMAL],
TRUE,
new_area.x, new_area.y,
new_area.width, new_area.height);
}
}
}
@@ -790,12 +868,12 @@ gtk_button_add (GtkContainer *container,
if (GTK_WIDGET_REALIZED (widget->parent) &&
!GTK_WIDGET_REALIZED (widget))
gtk_widget_realize (widget);
if (GTK_WIDGET_MAPPED (widget->parent) &&
!GTK_WIDGET_MAPPED (widget))
gtk_widget_map (widget);
}
button->child = widget;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
+4 -4
View File
@@ -2495,7 +2495,7 @@ draw_row (GtkCList * clist,
{
if (gdk_rectangle_intersect (area, &cell_rectangle, &intersect_rectangle))
gdk_draw_rectangle (clist->clist_window,
widget->style->white_gc,
widget->style->base_gc[GTK_STATE_NORMAL],
TRUE,
intersect_rectangle.x,
intersect_rectangle.y,
@@ -2509,7 +2509,7 @@ draw_row (GtkCList * clist,
if (gdk_rectangle_intersect (area, &cell_rectangle, &intersect_rectangle))
gdk_draw_rectangle (clist->clist_window,
widget->style->white_gc,
widget->style->base_gc[GTK_STATE_NORMAL],
TRUE,
intersect_rectangle.x,
intersect_rectangle.y,
@@ -2538,7 +2538,7 @@ draw_row (GtkCList * clist,
else
{
gdk_draw_rectangle (clist->clist_window,
widget->style->white_gc,
widget->style->base_gc[GTK_STATE_NORMAL],
TRUE,
cell_rectangle.x,
cell_rectangle.y,
@@ -2551,7 +2551,7 @@ draw_row (GtkCList * clist,
cell_rectangle.y += clist->row_height + CELL_SPACING;
gdk_draw_rectangle (clist->clist_window,
widget->style->white_gc,
widget->style->base_gc[GTK_STATE_NORMAL],
TRUE,
cell_rectangle.x,
cell_rectangle.y,
+89 -7
View File
@@ -110,10 +110,15 @@ static guint container_signals[LAST_SIGNAL] = { 0 };
static GtkWidgetClass *parent_class = NULL;
guint
gtk_container_get_type ()
static const gchar *vadjustment_key = "gtk-vadjustment";
static guint vadjustment_key_id = 0;
static const gchar *hadjustment_key = "gtk-hadjustment";
static guint hadjustment_key_id = 0;
GtkType
gtk_container_get_type (void)
{
static guint container_type = 0;
static GtkType container_type = 0;
if (!container_type)
{
@@ -142,7 +147,11 @@ gtk_container_class_init (GtkContainerClass *class)
object_class = (GtkObjectClass*) class;
widget_class = (GtkWidgetClass*) class;
parent_class = gtk_type_class (gtk_widget_get_type ());
vadjustment_key_id = gtk_object_data_force_id (vadjustment_key);
hadjustment_key_id = gtk_object_data_force_id (hadjustment_key);
gtk_object_add_arg_type ("GtkContainer::border_width", GTK_TYPE_LONG, GTK_ARG_READWRITE, ARG_BORDER_WIDTH);
gtk_object_add_arg_type ("GtkContainer::auto_resize", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_AUTO_RESIZE);
@@ -350,9 +359,6 @@ gtk_container_remove (GtkContainer *container,
g_return_if_fail (widget->parent == GTK_WIDGET (container));
gtk_signal_emit (GTK_OBJECT (container), container_signals[REMOVE], widget);
if (container->focus_child == widget)
container->focus_child = NULL;
}
void
@@ -529,6 +535,47 @@ gtk_container_unregister_toplevel (GtkContainer *container)
gtk_widget_unref (GTK_WIDGET (container));
}
void
gtk_container_set_focus_child (GtkContainer *container,
GtkWidget *child)
{
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_CONTAINER (container));
if (child)
g_return_if_fail (GTK_IS_WIDGET (child));
if (child != container->focus_child)
{
if (container->focus_child)
gtk_widget_unref (container->focus_child);
container->focus_child = child;
if (container->focus_child)
gtk_widget_ref (container->focus_child);
}
/* check for h/v adjustments
*/
if (container->focus_child)
{
GtkAdjustment *adjustment;
adjustment = gtk_object_get_data_by_id (GTK_OBJECT (container), vadjustment_key_id);
if (adjustment)
gtk_adjustment_clamp_page (adjustment,
container->focus_child->allocation.y,
(container->focus_child->allocation.y +
container->focus_child->allocation.height));
adjustment = gtk_object_get_data_by_id (GTK_OBJECT (container), hadjustment_key_id);
if (adjustment)
gtk_adjustment_clamp_page (adjustment,
container->focus_child->allocation.x,
(container->focus_child->allocation.x +
container->focus_child->allocation.width));
}
}
static void
gtk_container_marshal_signal_1 (GtkObject *object,
GtkSignalFunc func,
@@ -972,7 +1019,7 @@ gtk_container_focus_move (GtkContainer *container,
GtkWidget *child;
focus_child = container->focus_child;
container->focus_child = NULL;
gtk_container_set_focus_child (container, NULL);
while (children)
{
@@ -1059,3 +1106,38 @@ gtk_container_hide_all (GtkWidget *widget)
gtk_container_foreach (container, (GtkCallback) gtk_widget_hide_all, NULL);
}
void
gtk_container_set_focus_vadjustment (GtkContainer *container,
GtkAdjustment *adjustment)
{
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_CONTAINER (container));
if (adjustment)
g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
if (adjustment)
gtk_object_ref (adjustment);
gtk_object_set_data_by_id_full (GTK_OBJECT (container),
vadjustment_key_id,
adjustment,
(GtkDestroyNotify) gtk_object_unref);
}
void
gtk_container_set_focus_hadjustment (GtkContainer *container,
GtkAdjustment *adjustment)
{
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_CONTAINER (container));
if (adjustment)
g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
if (adjustment)
gtk_object_ref (adjustment);
gtk_object_set_data_by_id_full (GTK_OBJECT (container),
hadjustment_key_id,
adjustment,
(GtkDestroyNotify) gtk_object_unref);
}
+55 -45
View File
@@ -8,7 +8,7 @@
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
@@ -23,34 +23,36 @@
#include <gdk/gdk.h>
#include <gtk/gtkenums.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkadjustment.h>
#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus */
#define GTK_CONTAINER(obj) (GTK_CHECK_CAST ((obj), gtk_container_get_type (), GtkContainer))
#define GTK_CONTAINER(obj) (GTK_CHECK_CAST ((obj), gtk_container_get_type (), GtkContainer))
#define GTK_CONTAINER_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), gtk_container_get_type (), GtkContainerClass))
#define GTK_IS_CONTAINER(obj) (GTK_CHECK_TYPE ((obj), gtk_container_get_type ()))
#define GTK_IS_CONTAINER(obj) (GTK_CHECK_TYPE ((obj), gtk_container_get_type ()))
#define GTK_TYPE_CONTAINER (gtk_container_get_type ())
#define GTK_TYPE_CONTAINER (gtk_container_get_type ())
typedef struct _GtkContainer GtkContainer;
typedef struct _GtkContainer GtkContainer;
typedef struct _GtkContainerClass GtkContainerClass;
struct _GtkContainer
{
GtkWidget widget;
GtkWidget *focus_child;
gint16 border_width;
guint auto_resize : 1;
guint need_resize : 1;
guint block_resize : 1;
/* The list of children that requested a resize
*/
GSList *resize_widgets;
@@ -59,52 +61,60 @@ struct _GtkContainer
struct _GtkContainerClass
{
GtkWidgetClass parent_class;
void (* add) (GtkContainer *container,
GtkWidget *widget);
void (* remove) (GtkContainer *container,
GtkWidget *widget);
gint (* need_resize) (GtkContainer *container);
void (* foreach) (GtkContainer *container,
GtkCallback callback,
gpointer callbabck_data);
gint (* focus) (GtkContainer *container,
void (* add) (GtkContainer *container,
GtkWidget *widget);
void (* remove) (GtkContainer *container,
GtkWidget *widget);
gint (* need_resize) (GtkContainer *container);
void (* foreach) (GtkContainer *container,
GtkCallback callback,
gpointer callbabck_data);
gint (* focus) (GtkContainer *container,
GtkDirectionType direction);
};
guint gtk_container_get_type (void);
void gtk_container_border_width (GtkContainer *container,
gint border_width);
void gtk_container_add (GtkContainer *container,
GtkWidget *widget);
void gtk_container_remove (GtkContainer *container,
GtkWidget *widget);
void gtk_container_disable_resize (GtkContainer *container);
void gtk_container_enable_resize (GtkContainer *container);
void gtk_container_block_resize (GtkContainer *container);
void gtk_container_unblock_resize (GtkContainer *container);
gint gtk_container_need_resize (GtkContainer *container);
void gtk_container_foreach (GtkContainer *container,
GtkCallback callback,
gpointer callback_data);
void gtk_container_foreach_interp (GtkContainer *container,
GtkType gtk_container_get_type (void);
void gtk_container_border_width (GtkContainer *container,
gint border_width);
void gtk_container_add (GtkContainer *container,
GtkWidget *widget);
void gtk_container_remove (GtkContainer *container,
GtkWidget *widget);
void gtk_container_disable_resize (GtkContainer *container);
void gtk_container_enable_resize (GtkContainer *container);
void gtk_container_block_resize (GtkContainer *container);
void gtk_container_unblock_resize (GtkContainer *container);
gint gtk_container_need_resize (GtkContainer *container);
void gtk_container_foreach (GtkContainer *container,
GtkCallback callback,
gpointer callback_data);
void gtk_container_foreach_interp (GtkContainer *container,
GtkCallbackMarshal marshal,
gpointer callback_data,
gpointer callback_data,
GtkDestroyNotify notify);
void gtk_container_foreach_full (GtkContainer *container,
GtkCallback callback,
void gtk_container_foreach_full (GtkContainer *container,
GtkCallback callback,
GtkCallbackMarshal marshal,
gpointer callback_data,
gpointer callback_data,
GtkDestroyNotify notify);
gint gtk_container_focus (GtkContainer *container,
GtkDirectionType direction);
GList* gtk_container_children (GtkContainer *container);
GList* gtk_container_children (GtkContainer *container);
void gtk_container_register_toplevel (GtkContainer *container);
void gtk_container_unregister_toplevel (GtkContainer *container);
gint gtk_container_focus (GtkContainer *container,
GtkDirectionType direction);
void gtk_container_set_focus_child (GtkContainer *container,
GtkWidget *child);
void gtk_container_set_focus_vadjustment (GtkContainer *container,
GtkAdjustment *adjustment);
void gtk_container_set_focus_hadjustment (GtkContainer *container,
GtkAdjustment *adjustment);
void gtk_container_register_toplevel (GtkContainer *container);
void gtk_container_unregister_toplevel (GtkContainer *container);
#ifdef __cplusplus
}
+3
View File
@@ -294,6 +294,9 @@ gtk_curve_graph_events (GtkWidget *widget, GdkEvent *event, GtkCurve *c)
width = w->allocation.width - RADIUS * 2;
height = w->allocation.height - RADIUS * 2;
if ((width < 0) || (height < 0))
return FALSE;
/* get the pointer position */
gdk_window_get_pointer (w->window, &tx, &ty, NULL);
x = CLAMP ((tx - RADIUS), 0, width-1);
+18 -4
View File
@@ -1436,7 +1436,13 @@ cmpl_last_valid_char (CompletionState* cmpl_state)
static gchar*
cmpl_completion_fullname (gchar* text, CompletionState* cmpl_state)
{
if (text[0] == '/')
static char nothing[2] = "";
if (!cmpl_state_okay (cmpl_state))
{
return nothing;
}
else if (text[0] == '/')
{
strcpy (cmpl_state->updated_text, text);
}
@@ -1515,10 +1521,14 @@ cmpl_init_state (void)
if (!getcwd (getcwd_buf, MAXPATHLEN))
#endif
{
cmpl_errno = errno;
return NULL;
/* Oh joy, we can't get the current directory. Um..., we should have
* a root directory, right? Right? (Probably not portable to non-Unix)
*/
strcpy (getcwd_buf, "/");
}
tryagain:
new_state->reference_dir = NULL;
new_state->completion_dir = NULL;
new_state->active_completion_dir = NULL;
@@ -1542,7 +1552,11 @@ cmpl_init_state (void)
new_state->reference_dir = open_dir (getcwd_buf, new_state);
if (!new_state->reference_dir)
return NULL;
{
/* Directories changing from underneath us, grumble */
strcpy (getcwd_buf, "/");
goto tryagain;
}
return new_state;
}
+3 -1
View File
@@ -437,13 +437,15 @@ gtk_fixed_remove (GtkContainer *container,
if (child->widget == widget)
{
gboolean was_visible = GTK_WIDGET_VISIBLE (widget);
gtk_widget_unparent (widget);
fixed->children = g_list_remove_link (fixed->children, children);
g_list_free (children);
g_free (child);
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
if (was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
break;
+3 -3
View File
@@ -39,7 +39,7 @@ static void gtk_hruler_draw_pos (GtkRuler *ruler);
guint
gtk_hruler_get_type ()
gtk_hruler_get_type (void)
{
static guint hruler_type = 0;
@@ -89,7 +89,7 @@ gtk_hruler_init (GtkHRuler *hruler)
GtkWidget*
gtk_hruler_new ()
gtk_hruler_new (void)
{
return GTK_WIDGET (gtk_type_new (gtk_hruler_get_type ()));
}
@@ -136,7 +136,7 @@ gtk_hruler_draw_ticks (GtkRuler *ruler)
gfloat step_incr;
gfloat increment;
gfloat start, end, cur;
gchar unit_str[12];
gchar unit_str[32];
gint text_height;
gint digit_height;
gint pos;
+2 -2
View File
@@ -128,7 +128,7 @@ gtk_input_dialog_get_device_info(guint32 deviceid)
}
guint
gtk_input_dialog_get_type ()
gtk_input_dialog_get_type (void)
{
static guint input_dialog_type = 0;
@@ -650,7 +650,7 @@ gtk_input_dialog_fill_keys(GtkInputDialog *inputd, GdkDeviceInfo *info)
GtkWidget *label;
GtkWidget *button;
char buffer[16];
char buffer[32];
/* remove all the old items */
if (inputd->keys_list)
+5 -3
View File
@@ -268,7 +268,7 @@ gtk_label_size_request (GtkWidget *widget,
width = MAX (width,
gdk_text_width (GTK_WIDGET (label)->style->font,
row->data,
(gchar*) row->next->data - (gchar*) row->data) - 1);
(gchar*) row->next->data - (gchar*) row->data - 1));
else
width = MAX (width, gdk_string_width (GTK_WIDGET (label)->style->font, row->data));
row = row->next;
@@ -396,13 +396,15 @@ static void
gtk_label_state_changed (GtkWidget *widget,
guint previous_state)
{
GTK_LABEL (widget)->needs_clear = 1;
if (GTK_WIDGET_DRAWABLE (widget))
GTK_LABEL (widget)->needs_clear = 1;
}
static void
gtk_label_style_set (GtkWidget *widget,
GtkStyle *previous_style)
{
GTK_LABEL (widget)->needs_clear = 1;
if (GTK_WIDGET_DRAWABLE (widget))
GTK_LABEL (widget)->needs_clear = 1;
}
+116 -123
View File
@@ -8,7 +8,7 @@
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
@@ -31,54 +31,55 @@ enum {
typedef void (*GtkListSignal) (GtkObject *object,
gpointer arg1,
gpointer data);
gpointer arg1,
gpointer data);
static void gtk_list_class_init (GtkListClass *klass);
static void gtk_list_init (GtkList *list);
static void gtk_list_destroy (GtkObject *object);
static void gtk_list_map (GtkWidget *widget);
static void gtk_list_unmap (GtkWidget *widget);
static void gtk_list_realize (GtkWidget *widget);
static void gtk_list_draw (GtkWidget *widget,
static void gtk_list_class_init (GtkListClass *klass);
static void gtk_list_init (GtkList *list);
static void gtk_list_shutdown (GtkObject *object);
static void gtk_list_destroy (GtkObject *object);
static void gtk_list_map (GtkWidget *widget);
static void gtk_list_unmap (GtkWidget *widget);
static void gtk_list_realize (GtkWidget *widget);
static void gtk_list_draw (GtkWidget *widget,
GdkRectangle *area);
static gint gtk_list_expose (GtkWidget *widget,
static gint gtk_list_expose (GtkWidget *widget,
GdkEventExpose *event);
static gint gtk_list_motion_notify (GtkWidget *widget,
static gint gtk_list_motion_notify (GtkWidget *widget,
GdkEventMotion *event);
static gint gtk_list_button_press (GtkWidget *widget,
static gint gtk_list_button_press (GtkWidget *widget,
GdkEventButton *event);
static gint gtk_list_button_release (GtkWidget *widget,
static gint gtk_list_button_release (GtkWidget *widget,
GdkEventButton *event);
static void gtk_list_size_request (GtkWidget *widget,
static void gtk_list_size_request (GtkWidget *widget,
GtkRequisition *requisition);
static void gtk_list_size_allocate (GtkWidget *widget,
static void gtk_list_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static void gtk_list_add (GtkContainer *container,
GtkWidget *widget);
static void gtk_list_remove (GtkContainer *container,
GtkWidget *widget);
static void gtk_list_foreach (GtkContainer *container,
static void gtk_list_add (GtkContainer *container,
GtkWidget *widget);
static void gtk_list_remove (GtkContainer *container,
GtkWidget *widget);
static void gtk_list_foreach (GtkContainer *container,
GtkCallback callback,
gpointer callback_data);
gpointer callback_data);
static void gtk_real_list_select_child (GtkList *list,
GtkWidget *child);
static void gtk_real_list_unselect_child (GtkList *list,
GtkWidget *child);
static void gtk_real_list_select_child (GtkList *list,
GtkWidget *child);
static void gtk_real_list_unselect_child (GtkList *list,
GtkWidget *child);
static void gtk_list_marshal_signal (GtkObject *object,
static void gtk_list_marshal_signal (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
GtkArg *args);
gpointer func_data,
GtkArg *args);
static GtkContainerClass *parent_class = NULL;
static guint list_signals[LAST_SIGNAL] = { 0 };
guint
GtkType
gtk_list_get_type ()
{
static guint list_type = 0;
@@ -93,7 +94,7 @@ gtk_list_get_type ()
(GtkClassInitFunc) gtk_list_class_init,
(GtkObjectInitFunc) gtk_list_init,
(GtkArgSetFunc) NULL,
(GtkArgGetFunc) NULL,
(GtkArgGetFunc) NULL,
};
list_type = gtk_type_unique (gtk_container_get_type (), &list_info);
@@ -117,30 +118,31 @@ gtk_list_class_init (GtkListClass *class)
list_signals[SELECTION_CHANGED] =
gtk_signal_new ("selection_changed",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, selection_changed),
gtk_signal_default_marshaller,
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, selection_changed),
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
list_signals[SELECT_CHILD] =
gtk_signal_new ("select_child",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, select_child),
gtk_list_marshal_signal,
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, select_child),
gtk_list_marshal_signal,
GTK_TYPE_NONE, 1,
GTK_TYPE_WIDGET);
GTK_TYPE_WIDGET);
list_signals[UNSELECT_CHILD] =
gtk_signal_new ("unselect_child",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, unselect_child),
gtk_list_marshal_signal,
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, unselect_child),
gtk_list_marshal_signal,
GTK_TYPE_NONE, 1,
GTK_TYPE_WIDGET);
GTK_TYPE_WIDGET);
gtk_object_class_add_signals (object_class, list_signals, LAST_SIGNAL);
object_class->shutdown = gtk_list_shutdown;
object_class->destroy = gtk_list_destroy;
widget_class->map = gtk_list_map;
@@ -182,6 +184,14 @@ gtk_list_new ()
return GTK_WIDGET (gtk_type_new (gtk_list_get_type ()));
}
static void
gtk_list_shutdown (GtkObject *object)
{
gtk_list_clear_items (GTK_LIST (object), 0, -1);
GTK_OBJECT_CLASS (parent_class)->shutdown (object);
}
static void
gtk_list_destroy (GtkObject *object)
{
@@ -219,7 +229,7 @@ gtk_list_destroy (GtkObject *object)
void
gtk_list_insert_items (GtkList *list,
GList *items,
gint position)
gint position)
{
GtkWidget *widget;
GList *tmp_list;
@@ -307,7 +317,7 @@ gtk_list_append_items (GtkList *list,
void
gtk_list_prepend_items (GtkList *list,
GList *items)
GList *items)
{
g_return_if_fail (list != NULL);
g_return_if_fail (GTK_IS_LIST (list));
@@ -316,8 +326,8 @@ gtk_list_prepend_items (GtkList *list,
}
static void
gtk_list_remove_items_internal (GtkList *list,
GList *items,
gtk_list_remove_items_internal (GtkList *list,
GList *items,
gboolean no_unref)
{
GtkWidget *widget;
@@ -326,7 +336,10 @@ gtk_list_remove_items_internal (GtkList *list,
g_return_if_fail (list != NULL);
g_return_if_fail (GTK_IS_LIST (list));
if (!items)
return;
tmp_list = items;
selected_widgets = NULL;
widget = NULL;
@@ -336,17 +349,15 @@ gtk_list_remove_items_internal (GtkList *list,
widget = tmp_list->data;
tmp_list = tmp_list->next;
if (widget->state == GTK_STATE_SELECTED)
selected_widgets = g_list_prepend (selected_widgets, widget);
list->children = g_list_remove (list->children, widget);
if (GTK_WIDGET_MAPPED (widget))
gtk_widget_unmap (widget);
if (no_unref)
gtk_widget_ref (widget);
gtk_widget_unparent (widget);
list->children = g_list_remove (list->children, widget);
if (widget->state == GTK_STATE_SELECTED)
selected_widgets = g_list_prepend (selected_widgets, widget);
else
gtk_widget_unparent (widget);
}
if (selected_widgets)
@@ -358,6 +369,8 @@ gtk_list_remove_items_internal (GtkList *list,
tmp_list = tmp_list->next;
gtk_list_unselect_child (list, widget);
gtk_widget_unparent (widget);
}
gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECTION_CHANGED]);
@@ -377,15 +390,15 @@ gtk_list_remove_items_internal (GtkList *list,
}
void
gtk_list_remove_items (GtkList *list,
GList *items)
gtk_list_remove_items (GtkList *list,
GList *items)
{
gtk_list_remove_items_internal (list, items, FALSE);
}
void
gtk_list_remove_items_no_unref (GtkList *list,
GList *items)
gtk_list_remove_items_no_unref (GtkList *list,
GList *items)
{
gtk_list_remove_items_internal (list, items, TRUE);
}
@@ -400,7 +413,6 @@ gtk_list_clear_items (GtkList *list,
GList *end_list;
GList *tmp_list;
guint nchildren;
gboolean selection_changed;
g_return_if_fail (list != NULL);
g_return_if_fail (GTK_IS_LIST (list));
@@ -409,6 +421,8 @@ gtk_list_clear_items (GtkList *list,
if (nchildren > 0)
{
gboolean selection_changed;
if ((end < 0) || (end > nchildren))
end = nchildren;
@@ -421,11 +435,11 @@ gtk_list_clear_items (GtkList *list,
if (start_list->prev)
start_list->prev->next = end_list;
if (end_list && end_list->prev)
end_list->prev->next = NULL;
end_list->prev->next = NULL;
if (end_list)
end_list->prev = start_list->prev;
end_list->prev = start_list->prev;
if (start_list == list->children)
list->children = end_list;
list->children = end_list;
selection_changed = FALSE;
widget = NULL;
@@ -438,9 +452,8 @@ gtk_list_clear_items (GtkList *list,
if (widget->state == GTK_STATE_SELECTED)
{
gtk_list_unselect_child (list, widget);
selection_changed = TRUE;
list->selection = g_list_remove (list->selection, widget);
gtk_widget_unref (widget);
}
gtk_widget_unparent (widget);
@@ -454,8 +467,7 @@ gtk_list_clear_items (GtkList *list,
widget = list->children->data;
gtk_list_select_child (list, widget);
}
if (selection_changed)
else if (selection_changed)
gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECTION_CHANGED]);
gtk_widget_queue_resize (GTK_WIDGET (list));
@@ -478,7 +490,7 @@ gtk_list_select_item (GtkList *list,
void
gtk_list_unselect_item (GtkList *list,
gint item)
gint item)
{
GList *tmp_list;
@@ -491,7 +503,7 @@ gtk_list_unselect_item (GtkList *list,
}
void
gtk_list_select_child (GtkList *list,
gtk_list_select_child (GtkList *list,
GtkWidget *child)
{
gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECT_CHILD], child);
@@ -531,7 +543,7 @@ gtk_list_child_position (GtkList *list,
}
void
gtk_list_set_selection_mode (GtkList *list,
gtk_list_set_selection_mode (GtkList *list,
GtkSelectionMode mode)
{
g_return_if_fail (list != NULL);
@@ -639,7 +651,7 @@ gtk_list_draw (GtkWidget *widget,
}
static gint
gtk_list_expose (GtkWidget *widget,
gtk_list_expose (GtkWidget *widget,
GdkEventExpose *event)
{
GtkList *list;
@@ -698,20 +710,20 @@ gtk_list_button_press (GtkWidget *widget,
list = GTK_LIST (widget);
item = gtk_get_event_widget ((GdkEvent*) event);
while (item && !GTK_IS_LIST_ITEM (item))
item = item->parent;
if (!item || (item->parent != widget))
return FALSE;
gtk_list_select_child (list, item);
gtk_list_select_child (list, item);
return FALSE;
}
static gint
gtk_list_button_release (GtkWidget *widget,
gtk_list_button_release (GtkWidget *widget,
GdkEventButton *event)
{
GtkList *list;
@@ -813,36 +825,19 @@ gtk_list_size_allocate (GtkWidget *widget,
static void
gtk_list_add (GtkContainer *container,
GtkWidget *widget)
GtkWidget *widget)
{
GtkList *list;
GList *item_list;
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_LIST (container));
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_LIST_ITEM (widget));
list = GTK_LIST (container);
gtk_widget_set_parent (widget, GTK_WIDGET (container));
if (GTK_WIDGET_VISIBLE (widget->parent))
{
if (GTK_WIDGET_REALIZED (widget->parent) &&
!GTK_WIDGET_REALIZED (widget))
gtk_widget_realize (widget);
if (GTK_WIDGET_MAPPED (widget->parent) &&
!GTK_WIDGET_MAPPED (widget))
gtk_widget_map (widget);
}
list->children = g_list_append (list->children, widget);
if (!list->selection && (list->selection_mode == GTK_SELECTION_BROWSE))
gtk_list_select_child (list, widget);
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (widget);
item_list = g_list_alloc ();
item_list->data = widget;
gtk_list_append_items (GTK_LIST (container), item_list);
}
static void
@@ -867,8 +862,8 @@ gtk_list_remove (GtkContainer *container,
static void
gtk_list_foreach (GtkContainer *container,
GtkCallback callback,
gpointer callback_data)
GtkCallback callback,
gpointer callback_data)
{
GtkList *list;
GtkWidget *child;
@@ -915,15 +910,14 @@ gtk_real_list_select_child (GtkList *list,
if (tmp_item != child)
{
gtk_list_item_deselect (GTK_LIST_ITEM (tmp_item));
tmp_list = selection;
selection = selection->next;
list->selection = g_list_remove_link (list->selection, tmp_list);
gtk_widget_unref (GTK_WIDGET (tmp_item));
g_list_free (tmp_list);
gtk_list_item_deselect (GTK_LIST_ITEM (tmp_item));
gtk_widget_unref (GTK_WIDGET (tmp_item));
}
else
selection = selection->next;
@@ -931,14 +925,14 @@ gtk_real_list_select_child (GtkList *list,
if (child->state == GTK_STATE_NORMAL)
{
gtk_list_item_select (GTK_LIST_ITEM (child));
list->selection = g_list_prepend (list->selection, child);
gtk_widget_ref (child);
gtk_list_item_select (GTK_LIST_ITEM (child));
}
else if (child->state == GTK_STATE_SELECTED)
{
gtk_list_item_deselect (GTK_LIST_ITEM (child));
list->selection = g_list_remove (list->selection, child);
gtk_list_item_deselect (GTK_LIST_ITEM (child));
gtk_widget_unref (child);
}
@@ -954,15 +948,14 @@ gtk_real_list_select_child (GtkList *list,
if (tmp_item != child)
{
gtk_list_item_deselect (GTK_LIST_ITEM (tmp_item));
tmp_list = selection;
selection = selection->next;
list->selection = g_list_remove_link (list->selection, tmp_list);
gtk_widget_unref (GTK_WIDGET (tmp_item));
g_list_free (tmp_list);
gtk_list_item_deselect (GTK_LIST_ITEM (tmp_item));
gtk_widget_unref (GTK_WIDGET (tmp_item));
}
else
selection = selection->next;
@@ -970,9 +963,9 @@ gtk_real_list_select_child (GtkList *list,
if (child->state == GTK_STATE_NORMAL)
{
gtk_list_item_select (GTK_LIST_ITEM (child));
list->selection = g_list_prepend (list->selection, child);
gtk_widget_ref (child);
gtk_list_item_select (GTK_LIST_ITEM (child));
gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECTION_CHANGED]);
}
break;
@@ -980,15 +973,15 @@ gtk_real_list_select_child (GtkList *list,
case GTK_SELECTION_MULTIPLE:
if (child->state == GTK_STATE_NORMAL)
{
gtk_list_item_select (GTK_LIST_ITEM (child));
list->selection = g_list_prepend (list->selection, child);
gtk_widget_ref (child);
gtk_list_item_select (GTK_LIST_ITEM (child));
gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECTION_CHANGED]);
}
else if (child->state == GTK_STATE_SELECTED)
{
gtk_list_item_deselect (GTK_LIST_ITEM (child));
list->selection = g_list_remove (list->selection, child);
gtk_list_item_deselect (GTK_LIST_ITEM (child));
gtk_widget_unref (child);
gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECTION_CHANGED]);
}
@@ -1000,7 +993,7 @@ gtk_real_list_select_child (GtkList *list,
}
static void
gtk_real_list_unselect_child (GtkList *list,
gtk_real_list_unselect_child (GtkList *list,
GtkWidget *child)
{
g_return_if_fail (list != NULL);
@@ -1015,8 +1008,8 @@ gtk_real_list_unselect_child (GtkList *list,
case GTK_SELECTION_BROWSE:
if (child->state == GTK_STATE_SELECTED)
{
gtk_list_item_deselect (GTK_LIST_ITEM (child));
list->selection = g_list_remove (list->selection, child);
gtk_list_item_deselect (GTK_LIST_ITEM (child));
gtk_widget_unref (child);
gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECTION_CHANGED]);
}
@@ -1029,10 +1022,10 @@ gtk_real_list_unselect_child (GtkList *list,
static void
gtk_list_marshal_signal (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
GtkArg *args)
gtk_list_marshal_signal (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
GtkArg *args)
{
GtkListSignal rfunc;
+35 -35
View File
@@ -8,7 +8,7 @@
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
@@ -30,12 +30,12 @@ extern "C" {
#endif /* __cplusplus */
#define GTK_LIST(obj) GTK_CHECK_CAST (obj, gtk_list_get_type (), GtkList)
#define GTK_LIST_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_list_get_type (), GtkListClass)
#define GTK_IS_LIST(obj) GTK_CHECK_TYPE (obj, gtk_list_get_type ())
#define GTK_LIST(obj) (GTK_CHECK_CAST (obj, gtk_list_get_type (), GtkList))
#define GTK_LIST_CLASS(klass) (GTK_CHECK_CLASS_CAST (klass, gtk_list_get_type (), GtkListClass))
#define GTK_IS_LIST(obj) (GTK_CHECK_TYPE (obj, gtk_list_get_type ()))
typedef struct _GtkList GtkList;
typedef struct _GtkList GtkList;
typedef struct _GtkListClass GtkListClass;
struct _GtkList
@@ -57,41 +57,41 @@ struct _GtkListClass
{
GtkContainerClass parent_class;
void (* selection_changed) (GtkList *list);
void (* select_child) (GtkList *list,
void (* selection_changed) (GtkList *list);
void (* select_child) (GtkList *list,
GtkWidget *child);
void (* unselect_child) (GtkList *list,
void (* unselect_child) (GtkList *list,
GtkWidget *child);
};
guint gtk_list_get_type (void);
GtkWidget* gtk_list_new (void);
void gtk_list_insert_items (GtkList *list,
GList *items,
gint position);
void gtk_list_append_items (GtkList *list,
GList *items);
void gtk_list_prepend_items (GtkList *list,
GList *items);
void gtk_list_remove_items (GtkList *list,
GList *items);
void gtk_list_remove_items_no_unref (GtkList *list,
GList *items);
void gtk_list_clear_items (GtkList *list,
gint start,
gint end);
void gtk_list_select_item (GtkList *list,
gint item);
void gtk_list_unselect_item (GtkList *list,
gint item);
void gtk_list_select_child (GtkList *list,
GtkWidget *child);
void gtk_list_unselect_child (GtkList *list,
GtkWidget *child);
gint gtk_list_child_position (GtkList *list,
GtkWidget *child);
void gtk_list_set_selection_mode (GtkList *list,
GtkType gtk_list_get_type (void);
GtkWidget* gtk_list_new (void);
void gtk_list_insert_items (GtkList *list,
GList *items,
gint position);
void gtk_list_append_items (GtkList *list,
GList *items);
void gtk_list_prepend_items (GtkList *list,
GList *items);
void gtk_list_remove_items (GtkList *list,
GList *items);
void gtk_list_remove_items_no_unref (GtkList *list,
GList *items);
void gtk_list_clear_items (GtkList *list,
gint start,
gint end);
void gtk_list_select_item (GtkList *list,
gint item);
void gtk_list_unselect_item (GtkList *list,
gint item);
void gtk_list_select_child (GtkList *list,
GtkWidget *child);
void gtk_list_unselect_child (GtkList *list,
GtkWidget *child);
gint gtk_list_child_position (GtkList *list,
GtkWidget *child);
void gtk_list_set_selection_mode (GtkList *list,
GtkSelectionMode mode);
+12 -2
View File
@@ -1399,7 +1399,12 @@ gtk_handle_current_timeouts (guint32 the_time)
timeoutf = tmp_list->data;
current_timeouts = g_list_remove_link (current_timeouts, tmp_list);
running_timeouts = g_list_prepend (running_timeouts, tmp_list);
if (running_timeouts)
{
running_timeouts->prev = tmp_list;
tmp_list->next = running_timeouts;
}
running_timeouts = tmp_list;
result = gtk_invoke_timeout_function (timeoutf);
@@ -1520,7 +1525,12 @@ gtk_handle_current_idles ()
idlef = tmp_list->data;
current_idles = g_list_remove_link (current_idles, tmp_list);
running_idles = g_list_prepend (running_idles, tmp_list);
if (running_idles)
{
running_idles->prev = tmp_list;
tmp_list->next = running_idles;
}
running_idles = tmp_list;
result = gtk_idle_invoke_function (idlef);
+6 -9
View File
@@ -144,7 +144,7 @@ static GtkContainerClass *parent_class = NULL;
static guint notebook_signals[LAST_SIGNAL] = { 0 };
guint
gtk_notebook_get_type ()
gtk_notebook_get_type (void)
{
static guint notebook_type = 0;
@@ -243,7 +243,7 @@ gtk_notebook_init (GtkNotebook *notebook)
}
GtkWidget*
gtk_notebook_new ()
gtk_notebook_new (void)
{
return GTK_WIDGET (gtk_type_new (gtk_notebook_get_type ()));
}
@@ -1485,10 +1485,7 @@ gtk_notebook_button_press (GtkWidget *widget,
if (event->window == notebook->panel)
{
if (!GTK_WIDGET_HAS_FOCUS (widget))
{
GTK_CONTAINER (widget)->focus_child = NULL;
gtk_widget_grab_focus (widget);
}
gtk_widget_grab_focus (widget);
gtk_grab_add (widget);
notebook->button = event->button;
@@ -1557,7 +1554,7 @@ gtk_notebook_button_press (GtkWidget *widget,
(event->x <= (page->allocation.x + page->allocation.width)) &&
(event->y <= (page->allocation.y + page->allocation.height)))
{
GTK_CONTAINER (notebook)->focus_child = NULL;
gtk_container_set_focus_child (GTK_CONTAINER (notebook), NULL);
if (page == notebook->cur_page &&
notebook->focus_tab != children &&
@@ -2088,7 +2085,7 @@ gtk_notebook_focus_in (GtkWidget *widget,
if (gtk_notebook_page_select (GTK_NOTEBOOK (widget)))
return FALSE;
else
GTK_CONTAINER (widget)->focus_child = NULL;
gtk_container_set_focus_child (GTK_CONTAINER (widget), NULL);
}
GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
@@ -2647,7 +2644,7 @@ gtk_notebook_focus (GtkContainer *container,
return FALSE;
focus_child = container->focus_child;
container->focus_child = NULL;
gtk_container_set_focus_child (container, NULL);
if (!notebook->show_tabs)
{
+33 -24
View File
@@ -72,7 +72,8 @@ static void gtk_object_get_arg (GtkObject *object,
static void gtk_object_shutdown (GtkObject *object);
static void gtk_object_real_destroy (GtkObject *object);
static void gtk_object_finalize (GtkObject *object);
static void gtk_object_notify_weaks (gpointer data);
static void gtk_object_notify_weaks (GtkObject *object);
static void gtk_object_data_destroy (GtkObjectData *odata);
static guint* gtk_object_data_id_alloc (void);
@@ -91,7 +92,8 @@ static GHashTable *arg_info_ht = NULL;
static const gchar *user_data_key = "user_data";
static guint user_data_key_id = 0;
static const gchar *weakrefs_key = "gtk-weakrefs";
static guint weakrefs_key_id = 0;
#ifdef G_ENABLE_DEBUG
static guint obj_count = 0;
@@ -259,6 +261,8 @@ gtk_object_finalize (GtkObject *object)
{
GtkObjectData *odata, *next;
gtk_object_notify_weaks (object);
odata = object->object_data;
while (odata)
{
@@ -443,14 +447,14 @@ gtk_object_sink (GtkObject *object)
* referenced object is finalized.
*
* They are not implemented as a signal because they really are
* special and need to be used with great care. Unlike signals, who
* special and need to be used with great care. Unlike signals, which
* should be able to execute any code whatsoever.
*
* A weakref callback is not allowed to retain a reference to the
* object. In fact, the object is no longer there at all when it is
* called.
* object. Object data keys may be retrieved in a weak reference
* callback.
*
* A weakref callback is called atmost once.
* A weakref callback is called at most once.
*
*****************************************/
@@ -463,8 +467,6 @@ struct _GtkWeakRef
gpointer data;
};
static const gchar *weakrefs_key = "gtk-weakrefs";
void
gtk_object_weakref (GtkObject *object,
GtkDestroyNotify notify,
@@ -476,12 +478,14 @@ gtk_object_weakref (GtkObject *object,
g_return_if_fail (notify != NULL);
g_return_if_fail (GTK_IS_OBJECT (object));
if (!weakrefs_key_id)
weakrefs_key_id = gtk_object_data_force_id (weakrefs_key);
weak = g_new (GtkWeakRef, 1);
weak->next = gtk_object_get_data (object, weakrefs_key);
weak->next = gtk_object_get_data_by_id (object, weakrefs_key_id);
weak->notify = notify;
weak->data = data;
gtk_object_set_data_full (object, weakrefs_key, weak,
gtk_object_notify_weaks);
gtk_object_set_data_by_id (object, weakrefs_key_id, weak);
}
void
@@ -494,15 +498,17 @@ gtk_object_weakunref (GtkObject *object,
g_return_if_fail (object != NULL);
g_return_if_fail (GTK_IS_OBJECT (object));
weaks = gtk_object_get_data (object, weakrefs_key);
if (!weakrefs_key_id)
return;
weaks = gtk_object_get_data_by_id (object, weakrefs_key_id);
for (wp = &weaks; *wp; wp = &(*wp)->next)
{
w = *wp;
if (w->notify == notify && w->data == data)
{
if (w == weaks)
gtk_object_set_data_full (object, weakrefs_key, w->next,
gtk_object_notify_weaks);
gtk_object_set_data_by_id (object, weakrefs_key_id, w->next);
else
*wp = w->next;
g_free (w);
@@ -512,18 +518,21 @@ gtk_object_weakunref (GtkObject *object,
}
static void
gtk_object_notify_weaks (gpointer data)
gtk_object_notify_weaks (GtkObject *object)
{
GtkWeakRef *w1, *w2;
w1 = (GtkWeakRef *)data;
while (w1)
if (weakrefs_key_id)
{
w1->notify (w1->data);
w2 = w1->next;
g_free (w1);
w1 = w2;
GtkWeakRef *w1, *w2;
w1 = gtk_object_get_data_by_id (object, weakrefs_key_id);
while (w1)
{
w1->notify (w1->data);
w2 = w1->next;
g_free (w1);
w1 = w2;
}
}
}
+5 -3
View File
@@ -349,20 +349,22 @@ gtk_paned_remove (GtkContainer *container,
GtkWidget *widget)
{
GtkPaned *paned;
gboolean was_visible;
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_PANED (container));
g_return_if_fail (widget != NULL);
paned = GTK_PANED (container);
was_visible = GTK_WIDGET_VISIBLE (widget);
if (paned->child1 == widget)
{
gtk_widget_unparent (widget);
paned->child1 = NULL;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
if (was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
}
else if (paned->child2 == widget)
@@ -371,7 +373,7 @@ gtk_paned_remove (GtkContainer *container,
paned->child2 = NULL;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
if (was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
}
}
+11 -1
View File
@@ -104,12 +104,16 @@ gtk_pixmap_set (GtkPixmap *pixmap,
{
gint width;
gint height;
gint oldwidth;
gint oldheight;
g_return_if_fail (pixmap != NULL);
g_return_if_fail (GTK_IS_PIXMAP (pixmap));
if (pixmap->pixmap != val)
{
oldwidth = GTK_WIDGET (pixmap)->requisition.width;
oldheight = GTK_WIDGET (pixmap)->requisition.height;
if (pixmap->pixmap)
gdk_pixmap_unref (pixmap->pixmap);
pixmap->pixmap = val;
@@ -128,7 +132,13 @@ gtk_pixmap_set (GtkPixmap *pixmap,
GTK_WIDGET (pixmap)->requisition.height = 0;
}
if (GTK_WIDGET_VISIBLE (pixmap))
gtk_widget_queue_resize (GTK_WIDGET (pixmap));
{
if ((GTK_WIDGET (pixmap)->requisition.width != oldwidth) ||
(GTK_WIDGET (pixmap)->requisition.height != oldheight))
gtk_widget_queue_resize (GTK_WIDGET (pixmap));
else
gtk_widget_queue_draw (GTK_WIDGET (pixmap));
}
}
if (pixmap->mask != mask)
+13 -1
View File
@@ -872,6 +872,18 @@ gtk_preview_get_visuals (GtkPreviewClass *klass)
return;
}
/* If we are _not_ running with an installed cmap, we must run
* with the system visual. Otherwise, we let GDK pick the visual,
* and it makes some effort to pick a non-default visual, which
* will hopefully provide minimum color flashing.
*/
if ((klass->info.visual->depth == gdk_visual_get_system()->depth) &&
(klass->info.visual->type == gdk_visual_get_system()->type) &&
!install_cmap)
{
klass->info.visual = gdk_visual_get_system();
}
switch (klass->info.visual->depth)
{
case 8:
@@ -1226,7 +1238,7 @@ gtk_trim_cmap (GtkPreviewClass *klass)
nred = nred - 1;
else
{
tmp = log (ngray) / log (2);
tmp = log ((gdouble)ngray) / log (2.0);
if (ngreen >= tmp)
ngreen = ngreen - 1;
+21 -16
View File
@@ -82,40 +82,45 @@ gtk_radio_button_class_init (GtkRadioButtonClass *class)
static void
gtk_radio_button_init (GtkRadioButton *radio_button)
{
radio_button->group = NULL;
radio_button->group = g_slist_prepend (NULL, radio_button);
}
void
gtk_radio_button_set_group (GtkRadioButton *radio_button,
GSList *group)
{
GSList *tmp_list;
GtkRadioButton *tmp_button;
g_return_if_fail (radio_button != NULL);
g_return_if_fail (GTK_IS_RADIO_BUTTON (radio_button));
g_return_if_fail (!g_slist_find (group, radio_button));
if (radio_button->group)
{
GSList *slist;
radio_button->group = g_slist_remove (radio_button->group, radio_button);
tmp_list = radio_button->group;
while (tmp_list)
for (slist = radio_button->group; slist; slist = slist->next)
{
tmp_button = tmp_list->data;
tmp_list = tmp_list->next;
GtkRadioButton *tmp_button;
tmp_button = slist->data;
tmp_button->group = radio_button->group;
}
}
radio_button->group = g_slist_prepend (group, radio_button);
tmp_list = group;
if (tmp_list)
if (group)
{
while (tmp_list)
GSList *slist;
for (slist = group; slist; slist = slist->next)
{
tmp_button = tmp_list->data;
tmp_list = tmp_list->next;
GtkRadioButton *tmp_button;
tmp_button = slist->data;
tmp_button->group = radio_button->group;
}
}
+42 -13
View File
@@ -55,30 +55,59 @@ GtkWidget*
gtk_radio_menu_item_new (GSList *group)
{
GtkRadioMenuItem *radio_menu_item;
GtkRadioMenuItem *tmp_menu_item;
GSList *tmp_list;
radio_menu_item = gtk_type_new (gtk_radio_menu_item_get_type ());
tmp_list = group;
radio_menu_item->group = g_slist_prepend (group, radio_menu_item);
gtk_radio_menu_item_set_group (radio_menu_item, group);
if (tmp_list)
return GTK_WIDGET (radio_menu_item);
}
void
gtk_radio_menu_item_set_group (GtkRadioMenuItem *radio_menu_item,
GSList *group)
{
g_return_if_fail (radio_menu_item != NULL);
g_return_if_fail (GTK_IS_RADIO_MENU_ITEM (radio_menu_item));
g_return_if_fail (!g_slist_find (group, radio_menu_item));
if (radio_menu_item->group)
{
while (tmp_list)
GSList *slist;
radio_menu_item->group = g_slist_remove (radio_menu_item->group, radio_menu_item);
for (slist = radio_menu_item->group; slist; slist = slist->next)
{
tmp_menu_item = tmp_list->data;
tmp_list = tmp_list->next;
tmp_menu_item->group = radio_menu_item->group;
GtkRadioMenuItem *tmp_item;
tmp_item = slist->data;
tmp_item->group = radio_menu_item->group;
}
}
radio_menu_item->group = g_slist_prepend (group, radio_menu_item);
if (group)
{
GSList *slist;
for (slist = group; slist; slist = slist->next)
{
GtkRadioMenuItem *tmp_item;
tmp_item = slist->data;
tmp_item->group = radio_menu_item->group;
}
}
else
{
GTK_CHECK_MENU_ITEM (radio_menu_item)->active = TRUE;
/* gtk_widget_set_state (GTK_WIDGET (radio_menu_item), GTK_STATE_ACTIVE);
*/
}
return GTK_WIDGET (radio_menu_item);
}
GtkWidget*
@@ -125,7 +154,7 @@ gtk_radio_menu_item_class_init (GtkRadioMenuItemClass *klass)
static void
gtk_radio_menu_item_init (GtkRadioMenuItem *radio_menu_item)
{
radio_menu_item->group = NULL;
radio_menu_item->group = g_slist_prepend (NULL, radio_menu_item);
}
static void
+2
View File
@@ -55,6 +55,8 @@ GtkWidget* gtk_radio_menu_item_new (GSList *group);
GtkWidget* gtk_radio_menu_item_new_with_label (GSList *group,
const gchar *label);
GSList* gtk_radio_menu_item_group (GtkRadioMenuItem *radio_menu_item);
void gtk_radio_menu_item_set_group (GtkRadioMenuItem *radio_menu_item,
GSList *group);
#ifdef __cplusplus
+48 -28
View File
@@ -26,6 +26,7 @@
enum {
TOKEN_INVALID = G_TOKEN_LAST,
TOKEN_INCLUDE,
TOKEN_ACTIVE,
TOKEN_BASE,
TOKEN_BG,
@@ -47,7 +48,8 @@ enum {
enum {
PARSE_OK,
PARSE_ERROR,
PARSE_SYNTAX
PARSE_SYNTAX,
PARSE_DONE
};
enum {
@@ -175,30 +177,28 @@ static GScannerConfig gtk_rc_scanner_config =
static struct
{
char *name;
int token;
} symbols[] =
{
{ "ACTIVE", TOKEN_ACTIVE },
{ "base", TOKEN_BASE },
{ "bg", TOKEN_BG },
{ "bg_pixmap", TOKEN_BG_PIXMAP },
{ "fg", TOKEN_FG },
{ "font", TOKEN_FONT },
{ "fontset", TOKEN_FONTSET },
{ "INSENSITIVE", TOKEN_INSENSITIVE },
{ "NORMAL", TOKEN_NORMAL },
{ "pixmap_path", TOKEN_PIXMAP_PATH },
{ "PRELIGHT", TOKEN_PRELIGHT },
{ "SELECTED", TOKEN_SELECTED },
{ "style", TOKEN_STYLE },
{ "text", TOKEN_TEXT },
{ "widget", TOKEN_WIDGET },
{ "widget_class", TOKEN_WIDGET_CLASS },
};
static int nsymbols = sizeof (symbols) / sizeof (symbols[0]);
static int done;
gchar *name;
gint token;
} symbols[] = {
{ "include", TOKEN_INCLUDE },
{ "ACTIVE", TOKEN_ACTIVE },
{ "base", TOKEN_BASE },
{ "bg", TOKEN_BG },
{ "bg_pixmap", TOKEN_BG_PIXMAP },
{ "fg", TOKEN_FG },
{ "font", TOKEN_FONT },
{ "fontset", TOKEN_FONTSET },
{ "INSENSITIVE", TOKEN_INSENSITIVE },
{ "NORMAL", TOKEN_NORMAL },
{ "pixmap_path", TOKEN_PIXMAP_PATH },
{ "PRELIGHT", TOKEN_PRELIGHT },
{ "SELECTED", TOKEN_SELECTED },
{ "style", TOKEN_STYLE },
{ "text", TOKEN_TEXT },
{ "widget", TOKEN_WIDGET },
{ "widget_class", TOKEN_WIDGET_CLASS },
};
static guint nsymbols = sizeof (symbols) / sizeof (symbols[0]);
static GHashTable *rc_style_ht = NULL;
static GSList *widget_sets = NULL;
@@ -341,6 +341,7 @@ gtk_rc_parse_any (const gchar *input_name,
{
GScanner *scanner;
guint i;
gboolean done;
scanner = g_scanner_new (&gtk_rc_scanner_config);
@@ -363,8 +364,15 @@ gtk_rc_parse_any (const gchar *input_name,
done = FALSE;
while (!done)
{
if (gtk_rc_parse_statement (scanner) != PARSE_OK)
gint return_val;
return_val = gtk_rc_parse_statement (scanner);
switch (return_val)
{
case PARSE_OK:
break;
default:
if (scanner->next_token != G_TOKEN_NONE)
g_scanner_get_next_token (scanner);
@@ -375,8 +383,10 @@ gtk_rc_parse_any (const gchar *input_name,
g_warning ("rc file parse error: \"%s\" line %d",
input_name,
scanner->line);
/* fall through */
case PARSE_DONE:
done = TRUE;
break;
}
}
g_scanner_destroy (scanner);
@@ -569,8 +579,18 @@ gtk_rc_parse_statement (GScanner *scanner)
token = g_scanner_peek_next_token (scanner);
if (token == G_TOKEN_EOF)
return PARSE_DONE;
if (token == TOKEN_INCLUDE)
{
done = TRUE;
g_scanner_get_next_token (scanner);
token = g_scanner_get_next_token (scanner);
if (token != G_TOKEN_STRING)
return PARSE_ERROR;
gtk_rc_parse (scanner->value.v_string);
return PARSE_OK;
}
+62 -39
View File
@@ -371,7 +371,8 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
GtkAllocation child_allocation;
guint previous_hvis;
guint previous_vvis;
gint count;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_SCROLLED_WINDOW (widget));
g_return_if_fail (allocation != NULL);
@@ -379,12 +380,17 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
scrolled_window = GTK_SCROLLED_WINDOW (widget);
widget->allocation = *allocation;
gtk_scrolled_window_viewport_allocate (widget, &viewport_allocation);
gtk_container_disable_resize (GTK_CONTAINER (scrolled_window));
if (scrolled_window->hscrollbar_policy == GTK_POLICY_ALWAYS)
scrolled_window->hscrollbar_visible = TRUE;
if (scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS)
scrolled_window->vscrollbar_visible = TRUE;
if (GTK_WIDGET_VISIBLE (scrolled_window->viewport))
{
count = 0;
do {
gtk_scrolled_window_viewport_allocate (widget, &viewport_allocation);
@@ -393,16 +399,32 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
child_allocation.width = viewport_allocation.width;
child_allocation.height = viewport_allocation.height;
previous_hvis = GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar);
previous_vvis = GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar);
previous_hvis = scrolled_window->hscrollbar_visible;
previous_vvis = scrolled_window->vscrollbar_visible;
gtk_widget_size_allocate (scrolled_window->viewport, &child_allocation);
} while ((previous_hvis != GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar)) ||
(previous_vvis != GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar)));
/* If, after the first iteration, the hscrollbar and the
* vscrollbar flip visiblity, then we need both.
*/
if ((count++) &&
(previous_hvis != scrolled_window->hscrollbar_visible) &&
(previous_vvis != scrolled_window->vscrollbar_visible))
{
scrolled_window->hscrollbar_visible = TRUE;
scrolled_window->vscrollbar_visible = TRUE;
break;
}
count++;
} while ((previous_hvis != scrolled_window->hscrollbar_visible) ||
(previous_vvis != scrolled_window->vscrollbar_visible));
}
if (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
if (scrolled_window->hscrollbar_visible)
{
if (!GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
gtk_widget_show (scrolled_window->hscrollbar);
child_allocation.x = viewport_allocation.x;
child_allocation.y = viewport_allocation.y + viewport_allocation.height + SCROLLBAR_SPACING (scrolled_window);
child_allocation.width = viewport_allocation.width;
@@ -412,9 +434,17 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
gtk_widget_size_allocate (scrolled_window->hscrollbar, &child_allocation);
}
if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
else
{
if (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
gtk_widget_hide (scrolled_window->hscrollbar);
}
if (scrolled_window->vscrollbar_visible)
{
if (!GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
gtk_widget_show (scrolled_window->vscrollbar);
child_allocation.x = viewport_allocation.x + viewport_allocation.width + SCROLLBAR_SPACING (scrolled_window);
child_allocation.y = viewport_allocation.y;
child_allocation.width = scrolled_window->vscrollbar->requisition.width;
@@ -424,6 +454,11 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
gtk_widget_size_allocate (scrolled_window->vscrollbar, &child_allocation);
}
else
{
if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
gtk_widget_hide (scrolled_window->vscrollbar);
}
gtk_container_enable_resize (GTK_CONTAINER (scrolled_window));
}
@@ -478,7 +513,11 @@ gtk_scrolled_window_foreach (GtkContainer *container,
scrolled_window = GTK_SCROLLED_WINDOW (container);
(* callback) (scrolled_window->viewport, callback_data);
if (scrolled_window->viewport)
(* callback) (scrolled_window->viewport, callback_data);
(* callback) (scrolled_window->vscrollbar, callback_data);
(* callback) (scrolled_window->hscrollbar, callback_data);
}
static void
@@ -497,10 +536,10 @@ gtk_scrolled_window_viewport_allocate (GtkWidget *widget,
allocation->width = MAX (1, widget->allocation.width - allocation->x * 2);
allocation->height = MAX (1, widget->allocation.height - allocation->y * 2);
if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
if (scrolled_window->vscrollbar_visible)
allocation->width = MAX (1,
allocation->width - (scrolled_window->vscrollbar->requisition.width + SCROLLBAR_SPACING (scrolled_window)));
if (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
if (scrolled_window->hscrollbar_visible)
allocation->height = MAX (1,
allocation->height - (scrolled_window->hscrollbar->requisition.height + SCROLLBAR_SPACING (scrolled_window)));
}
@@ -510,9 +549,6 @@ gtk_scrolled_window_adjustment_changed (GtkAdjustment *adjustment,
gpointer data)
{
GtkScrolledWindow *scrolled_win;
GtkWidget *scrollbar;
gint hide_scrollbar;
gint policy;
g_return_if_fail (adjustment != NULL);
g_return_if_fail (data != NULL);
@@ -521,36 +557,23 @@ gtk_scrolled_window_adjustment_changed (GtkAdjustment *adjustment,
if (adjustment == gtk_range_get_adjustment (GTK_RANGE (scrolled_win->hscrollbar)))
{
scrollbar = scrolled_win->hscrollbar;
policy = scrolled_win->hscrollbar_policy;
if (scrolled_win->hscrollbar_policy == GTK_POLICY_AUTOMATIC)
{
scrolled_win->hscrollbar_visible =
((adjustment->upper - adjustment->lower) > adjustment->page_size);
}
}
else if (adjustment == gtk_range_get_adjustment (GTK_RANGE (scrolled_win->vscrollbar)))
{
scrollbar = scrolled_win->vscrollbar;
policy = scrolled_win->vscrollbar_policy;
if (scrolled_win->vscrollbar_policy == GTK_POLICY_AUTOMATIC)
{
scrolled_win->vscrollbar_visible =
((adjustment->upper - adjustment->lower) > adjustment->page_size);
}
}
else
{
g_warning ("could not determine which adjustment scrollbar received change signal for");
return;
}
if (policy == GTK_POLICY_AUTOMATIC)
{
hide_scrollbar = FALSE;
if ((adjustment->upper - adjustment->lower) <= adjustment->page_size)
hide_scrollbar = TRUE;
if (hide_scrollbar)
{
if (GTK_WIDGET_VISIBLE (scrollbar))
gtk_widget_hide (scrollbar);
}
else
{
if (!GTK_WIDGET_VISIBLE (scrollbar))
gtk_widget_show (scrollbar);
}
}
}
+2
View File
@@ -49,6 +49,8 @@ struct _GtkScrolledWindow
guint8 hscrollbar_policy;
guint8 vscrollbar_policy;
gint hscrollbar_visible : 1;
gint vscrollbar_visible : 1;
};
struct _GtkScrolledWindowClass
+11 -6
View File
@@ -630,12 +630,17 @@ gtk_selection_clear (GtkWidget *widget,
tmp_list = tmp_list->next;
}
if (tmp_list == NULL || selection_info->time > event->time)
return FALSE;
current_selections = g_list_remove_link (current_selections, tmp_list);
g_list_free (tmp_list);
g_free (selection_info);
if (selection_info->time > event->time)
return FALSE; /* return FALSE to indicate that
* the selection was out of date,
* and this clear should be ignored */
else
if (tmp_list)
{
current_selections = g_list_remove_link (current_selections, tmp_list);
g_list_free (tmp_list);
g_free (selection_info);
}
return TRUE;
}
+1 -1
View File
@@ -266,7 +266,7 @@ gtk_style_attach (GtkStyle *style,
g_return_val_if_fail (window != NULL, NULL);
colormap = gdk_window_get_colormap (window);
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
new_style = gtk_style_find (style, colormap, depth);
+3 -1
View File
@@ -570,12 +570,14 @@ gtk_table_remove (GtkContainer *container,
if (child->widget == widget)
{
gboolean was_visible = GTK_WIDGET_VISIBLE (widget);
gtk_widget_unparent (widget);
table->children = g_list_remove (table->children, child);
g_free (child);
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
if (was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
break;
}
+8 -1
View File
@@ -4497,7 +4497,14 @@ expose_text (GtkText* text, GdkRectangle *area, gboolean cursor)
{
if (CACHE_DATA(cache).start.index <= text->cursor_mark.index &&
CACHE_DATA(cache).end.index >= text->cursor_mark.index)
draw_cursor (text, TRUE);
{
/* We undraw and draw the cursor here to get the drawn
* level right ... FIXME - maybe the second parameter
* of draw_cursor should work differently
*/
undraw_cursor (text, FALSE);
draw_cursor (text, FALSE);
}
}
pixels += LINE_HEIGHT(CACHE_DATA(cache));
+16 -3
View File
@@ -710,7 +710,20 @@ gtk_tree_remove_items (GtkTree *tree,
g_print("+ gtk_tree_remove_items [ tree %#x items list %#x ]\n", (int)tree, (int)items);
#endif /* TREE_DEBUG */
root_tree = GTK_TREE(GTK_TREE_ROOT_TREE(tree));
/* We may not yet be mapped, so we actively have to find our
* root tree
*/
if (tree->root_tree)
root_tree = tree->root_tree;
else
{
GtkWidget *tmp = GTK_WIDGET (tree);
while (tmp->parent && GTK_IS_TREE (tmp->parent))
tmp = tmp->parent;
root_tree = GTK_TREE (tmp);
}
tmp_list = items;
selected_widgets = NULL;
sorted_list = NULL;
@@ -779,9 +792,9 @@ gtk_tree_remove_items (GtkTree *tree,
#endif /* TREE_DEBUG */
}
/* remove this item of his real parent */
/* remove this item from its real parent */
#ifdef TREE_DEBUG
g_print("* remove widget of his owner tree\n");
g_print("* remove widget from its owner tree\n");
#endif /* TREE_DEBUG */
real_tree->children = g_list_remove (real_tree->children, widget);
+20 -13
View File
@@ -304,9 +304,6 @@ gtk_tree_item_set_subtree (GtkTreeItem *tree_item,
tree_item->subtree = subtree;
GTK_TREE(subtree)->tree_owner = GTK_WIDGET(tree_item);
/* set root tree for selection list */
GTK_TREE(subtree)->root_tree = GTK_TREE(GTK_WIDGET(tree_item)->parent)->root_tree;
/* show subtree button */
if (tree_item->pixmaps_box)
gtk_widget_show(tree_item->pixmaps_box);
@@ -994,25 +991,35 @@ gtk_tree_item_remove_subtree (GtkTreeItem* item)
g_return_if_fail (item->subtree != NULL);
if (GTK_TREE (item->subtree)->children)
gtk_tree_remove_items (GTK_TREE (item->subtree),
GTK_TREE (item->subtree)->children);
{
/* The following call will remove the children and call
* gtk_tree_item_remove_subtree() again. So we are done.
*/
gtk_tree_remove_items (GTK_TREE (item->subtree),
GTK_TREE (item->subtree)->children);
return;
}
if (GTK_WIDGET_MAPPED (item->subtree))
gtk_widget_unmap (item->subtree);
gtk_widget_unparent (item->subtree);
if (item->pixmaps_box)
gtk_widget_hide (item->pixmaps_box);
item->subtree = NULL;
item->expanded = FALSE;
if (item->pixmaps_box)
if (item->expanded)
{
gtk_container_remove (GTK_CONTAINER (item->pixmaps_box),
item->minus_pix_widget);
gtk_container_add (GTK_CONTAINER (item->pixmaps_box),
item->plus_pix_widget);
item->expanded = FALSE;
if (item->pixmaps_box)
{
gtk_container_remove (GTK_CONTAINER (item->pixmaps_box),
item->minus_pix_widget);
gtk_container_add (GTK_CONTAINER (item->pixmaps_box),
item->plus_pix_widget);
}
}
}
-1
View File
@@ -56,4 +56,3 @@
{ "GdkWindow", GTK_TYPE_BOXED },
{ "GdkEvent", GTK_TYPE_BOXED },
{ "GdkColor", GTK_TYPE_BOXED },
{ "GtkTooltips", GTK_TYPE_BOXED },
+1 -2
View File
@@ -56,5 +56,4 @@
#define GTK_TYPE_GDK_WINDOW (gtk_type_builtins[53])
#define GTK_TYPE_GDK_EVENT (gtk_type_builtins[54])
#define GTK_TYPE_GDK_COLOR (gtk_type_builtins[55])
#define GTK_TYPE_TOOLTIPS (gtk_type_builtins[56])
#define GTK_TYPE_NUM_BUILTINS 57
#define GTK_TYPE_NUM_BUILTINS 56
+3 -3
View File
@@ -39,7 +39,7 @@ static void gtk_vruler_draw_pos (GtkRuler *ruler);
guint
gtk_vruler_get_type ()
gtk_vruler_get_type (void)
{
static guint vruler_type = 0;
@@ -88,7 +88,7 @@ gtk_vruler_init (GtkVRuler *vruler)
}
GtkWidget*
gtk_vruler_new ()
gtk_vruler_new (void)
{
return GTK_WIDGET (gtk_type_new (gtk_vruler_get_type ()));
}
@@ -136,7 +136,7 @@ gtk_vruler_draw_ticks (GtkRuler *ruler)
gfloat step_incr;
gfloat increment;
gfloat start, end, cur;
gchar unit_str[12];
gchar unit_str[32];
gchar digit_str[2] = { '\0', '\0' };
gint text_height;
gint digit_height;
+55 -35
View File
@@ -256,10 +256,10 @@ static const gchar *visual_key = "gtk-visual";
* results:
*****************************************/
guint
GtkType
gtk_widget_get_type ()
{
static guint widget_type = 0;
static GtkType widget_type = 0;
if (!widget_type)
{
@@ -419,7 +419,7 @@ gtk_widget_class_init (GtkWidgetClass *klass)
GTK_TYPE_BOXED);
widget_signals[INSTALL_ACCELERATOR] =
gtk_signal_new ("install_accelerator",
GTK_RUN_FIRST,
GTK_RUN_LAST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkWidgetClass, install_accelerator),
gtk_widget_marshal_signal_2,
@@ -1128,7 +1128,6 @@ void
gtk_widget_unparent (GtkWidget *widget)
{
GtkWidget *toplevel;
GtkWidget *child;
GtkWidget *old_parent;
GSList *tmp_list, *prev_list;
@@ -1139,18 +1138,30 @@ gtk_widget_unparent (GtkWidget *widget)
/* keep this function in sync with gtk_menu_detach()
*/
/* unset focused and default children properly
*/
toplevel = gtk_widget_get_toplevel (widget);
if (GTK_CONTAINER (widget->parent)->focus_child == widget)
{
gtk_container_set_focus_child (GTK_CONTAINER (widget->parent), NULL);
if (GTK_IS_WINDOW (toplevel))
{
GtkWidget *child;
child = GTK_WINDOW (toplevel)->focus_widget;
while (child && child != widget)
child = child->parent;
if (child == widget)
gtk_window_set_focus (GTK_WINDOW (toplevel), NULL);
}
}
if (GTK_IS_WINDOW (toplevel))
{
child = GTK_WINDOW (toplevel)->focus_widget;
GtkWidget *child;
while (child && child != widget)
child = child->parent;
if (child == widget)
gtk_window_set_focus (GTK_WINDOW (toplevel), NULL);
child = GTK_WINDOW (toplevel)->default_widget;
while (child && child != widget)
@@ -2244,27 +2255,31 @@ gtk_widget_basic (GtkWidget *widget)
void
gtk_widget_grab_focus (GtkWidget *widget)
{
GtkWidget *window;
GtkWidget *child;
GtkType window_type;
g_return_if_fail (widget != NULL);
window_type = gtk_window_get_type ();
window = widget->parent;
child = widget;
while (window && !gtk_type_is_a (GTK_WIDGET_TYPE (window), window_type))
g_return_if_fail (GTK_IS_WIDGET (widget));
if (GTK_WIDGET_CAN_FOCUS (widget))
{
GTK_CONTAINER (window)->focus_child = child;
child = window;
window = window->parent;
}
if (window && gtk_type_is_a (GTK_WIDGET_TYPE (window), window_type))
{
GTK_CONTAINER (window)->focus_child = child;
gtk_window_set_focus (GTK_WINDOW (window), widget);
GtkWidget *parent;
GtkWidget *child;
GtkType window_type;
window_type = gtk_window_get_type ();
parent = widget->parent;
child = widget;
while (parent && !gtk_type_is_a (GTK_WIDGET_TYPE (parent), window_type))
{
gtk_container_set_focus_child (GTK_CONTAINER (parent), child);
child = parent;
parent = parent->parent;
}
if (parent && gtk_type_is_a (GTK_WIDGET_TYPE (parent), window_type))
{
gtk_container_set_focus_child (GTK_CONTAINER (parent), child);
gtk_window_set_focus (GTK_WINDOW (parent), widget);
}
}
}
@@ -2577,7 +2592,11 @@ gtk_widget_style_set (GtkWidget *widget,
{
if (GTK_WIDGET_REALIZED (widget) &&
!GTK_WIDGET_NO_WINDOW (widget))
gtk_style_set_background (widget->style, widget->window, widget->state);
{
gtk_style_set_background (widget->style, widget->window, widget->state);
if (GTK_WIDGET_DRAWABLE (widget))
gdk_window_clear (widget->window);
}
}
static void
@@ -3490,12 +3509,13 @@ gtk_widget_real_destroy (GtkObject *object)
gtk_grab_remove (widget);
gtk_selection_remove_all (widget);
saved_style = gtk_object_get_data_by_id (GTK_OBJECT (widget), saved_default_style_key_id);
gtk_accelerator_tables_delete (object);
saved_style = gtk_object_get_data_by_id (object, saved_default_style_key_id);
if (saved_style)
{
gtk_style_unref (saved_style);
gtk_object_remove_data_by_id (GTK_OBJECT (widget), saved_default_style_key_id);
gtk_object_remove_data_by_id (object, saved_default_style_key_id);
}
gtk_style_unref (widget->style);
+1 -1
View File
@@ -355,7 +355,7 @@ struct _GtkWidgetShapeInfo
};
guint gtk_widget_get_type (void);
GtkType gtk_widget_get_type (void);
GtkWidget* gtk_widget_new (guint type,
...);
GtkWidget* gtk_widget_newv (guint type,
+37
View File
@@ -51,6 +51,7 @@ typedef struct sTreeButtons {
guint nb_item_add;
GtkWidget* add_button;
GtkWidget* remove_button;
GtkWidget* subtree_button;
} sTreeButtons;
/* end of tree section */
@@ -1065,6 +1066,22 @@ cb_remove_item(GtkWidget*w, GtkTree* tree)
g_list_free (clear_list);
}
static void
cb_remove_subtree(GtkWidget*w, GtkTree* tree)
{
GList* selected_list;
GtkTreeItem *item;
selected_list = GTK_TREE_SELECTION(tree);
if (selected_list)
{
item = GTK_TREE_ITEM (selected_list->data);
if (item->subtree)
gtk_tree_item_remove_subtree (item);
}
}
static void
cb_tree_changed(GtkTree* tree)
{
@@ -1084,11 +1101,13 @@ cb_tree_changed(GtkTree* tree)
else
gtk_widget_set_sensitive(tree_buttons->add_button, FALSE);
gtk_widget_set_sensitive(tree_buttons->remove_button, FALSE);
gtk_widget_set_sensitive(tree_buttons->subtree_button, FALSE);
}
else
{
gtk_widget_set_sensitive(tree_buttons->remove_button, TRUE);
gtk_widget_set_sensitive(tree_buttons->add_button, (nb_selected == 1));
gtk_widget_set_sensitive(tree_buttons->subtree_button, (nb_selected == 1));
}
}
@@ -1228,6 +1247,15 @@ create_tree_sample(guint selection_mode,
gtk_widget_show(button);
tree_buttons->remove_button = button;
button = gtk_button_new_with_label("Remove Subtree");
gtk_widget_set_sensitive(button, FALSE);
gtk_signal_connect(GTK_OBJECT (button), "clicked",
(GtkSignalFunc) cb_remove_subtree,
(gpointer)root_tree);
gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0);
gtk_widget_show(button);
tree_buttons->subtree_button = button;
/* create separator */
separator = gtk_hseparator_new();
gtk_box_pack_start(GTK_BOX(box1), separator, FALSE, FALSE, 0);
@@ -2114,6 +2142,10 @@ create_scrolled_windows ()
gtk_table_set_row_spacings (GTK_TABLE (table), 10);
gtk_table_set_col_spacings (GTK_TABLE (table), 10);
gtk_container_add (GTK_CONTAINER (scrolled_window), table);
gtk_container_set_focus_hadjustment (GTK_CONTAINER (table),
gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_container_set_focus_vadjustment (GTK_CONTAINER (table),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_widget_show (table);
for (i = 0; i < 20; i++)
@@ -2772,6 +2804,8 @@ create_list ()
gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_MULTIPLE);
gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_BROWSE);
gtk_container_add (GTK_CONTAINER (scrolled_win), list);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (list),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_win)));
gtk_widget_show (list);
for (i = 0; i < nlist_items; i++)
@@ -5754,12 +5788,15 @@ create_main_window ()
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (scrolled_window)->vscrollbar, GTK_CAN_FOCUS);
gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0);
gtk_widget_show (scrolled_window);
box2 = gtk_vbox_new (FALSE, 0);
gtk_container_border_width (GTK_CONTAINER (box2), 10);
gtk_container_add (GTK_CONTAINER (scrolled_window), box2);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (box2),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_widget_show (box2);
for (i = 0; i < nbuttons; i++)
+9 -3
View File
@@ -1,5 +1,7 @@
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
# include "rc-file"
#
# style <name> [= <name>]
# {
# <option>
@@ -8,6 +10,9 @@
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
# testgtkrc2 introduces the green color in the button list
include "testgtkrc2"
pixmap_path "."
style "default"
@@ -33,10 +38,11 @@ style "button"
# bg[PRELIGHT] = { 0, 0, 0.75 }
}
style 'main_button' = 'button'
# we set want buttons in the main window to be blue by default
style 'main_buttons' = 'button'
{
font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
bg[PRELIGHT] = { 0, 0.75, 0x00 }
bg[PRELIGHT] = { 0, 0, 0.75 }
}
style "toggle_button" = "button"
@@ -74,5 +80,5 @@ widget_class "*GtkButton*" style "button"
widget_class "*Ruler" style "ruler"
widget_class "*GtkText" style "text"
widget_class "*" style "default"
widget "main window.*GtkButton*" style "main_button"
widget "main window.*GtkButton*" style "main_buttons"
widget "*GtkCurve" style "curve"
+21
View File
@@ -0,0 +1,21 @@
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
# include "rc-file"
#
# style <name> [= <name>]
# {
# <option>
# }
#
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
# this file gets included from testgtkrc
style 'button_list' = 'button'
{
font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
bg[PRELIGHT] = { 0, 0.75, 0x00 }
}
widget "main window.*GtkScrolledWindow.*GtkButton*" style "button_list"
+54 -33
View File
@@ -32,23 +32,43 @@ if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
echo=echo
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# The Solaris and AIX default echo program unquotes backslashes.
# This makes it impossible to quote backslashes using
# The Solaris, AIX, and Digital Unix default echo programs unquote
# backslashes. This makes it impossible to quote backslashes using
# echo "$something" | sed 's/\\/\\\\/g'
# So, we emulate echo with printf '%s\n'
echo="printf %s\\n"
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We have no working printf. Try to find a not-so-buggy echo.
echo=echo
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
echo="$dir/echo"
break
#
# So, first we look for a working echo in the user's PATH.
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t'; then
echo="$dir/echo"
break
fi
done
IFS="$save_ifs"
if test "X$echo" = Xecho; then
# We didn't find a better echo, so look for alternatives.
if test "X`(print -r '\t') 2>/dev/null`" = 'X\t'; then
# This shell has a builtin print -r that does the trick.
echo='print -r'
#
# The following is from libtool-1.2a, won't work with this patched
# libtool-1.2
#
# elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
# # If we have ksh, try running ltconfig again with it.
# CONFIG_SHELL=/bin/ksh
# export CONFIG_SHELL
# exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
else
# Try using printf.
echo='printf %s\n'
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We lost completely, so just stick with echo.
echo=echo
fi
done
IFS="$save_ifs"
fi
fi
fi
@@ -66,7 +86,7 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
VERSION=1.1
VERSION=1.2
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'
rm="rm -f"
@@ -421,7 +441,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
# Now see if the compiler is really GCC.
with_gcc=no
echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
echo "$progname:424: checking whether we are using GNU C" >&5
echo "$progname:444: checking whether we are using GNU C" >&5
$rm conftest.c
cat > conftest.c <<EOF
@@ -429,7 +449,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:452: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
with_gcc=yes
fi
$rm conftest.c
@@ -544,14 +564,15 @@ if test -n "$pic_flag"; then
echo > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pic_flag -DPIC"
echo "$progname:547: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any errors to the config.log.
echo "$progname:567: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any warnings to the config.log.
cat conftest.err 1>&5
# On HP-UX, the stripped-down bundled CC does not accept +Z, but also
# reports no error. So, we need to grep stderr for (Bundled).
if grep '(Bundled)' conftest.err >/dev/null; then
# On HP-UX, both CC and GCC only warn that PIC is supported... then they
# create non-PIC objects. So, if there were any warnings, we assume that
# PIC is not supported.
if test -s conftest.err; then
echo "$ac_t"no 1>&6
can_build_shared=no
pic_flag=
@@ -587,8 +608,8 @@ $rm conftest*
echo 'main(){return(0);}' > conftest.c
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $link_static_flag"
echo "$progname:590: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$progname:611: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$ac_t$link_static_flag" 1>&6
else
echo "$ac_t"none 1>&6
@@ -620,7 +641,7 @@ if test -z "$LD"; then
if test "$with_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
echo "$progname:623: checking for ld used by GCC" >&5
echo "$progname:644: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
@@ -638,10 +659,10 @@ if test -z "$LD"; then
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld... $ac_c" 1>&6
echo "$progname:641: checking for GNU ld" >&5
echo "$progname:662: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
echo "$progname:644: checking for non-GNU ld" >&5
echo "$progname:665: checking for non-GNU ld" >&5
fi
if test -z "$LD"; then
@@ -967,11 +988,11 @@ void nm_test_func(){}
main(){nm_test_var='a';nm_test_func();return(0);}
EOF
echo "$progname:970: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
echo "$progname:991: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:992: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
# Now try to grab the symbols.
nlist=conftest.nm
if { echo "$progname:974: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
if { echo "$progname:995: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
@@ -1029,7 +1050,7 @@ EOF
save_CFLAGS="$CFLAGS"
LIBS='conftestm.o'
CFLAGS="$CFLAGS$no_builtin_flag"
if { (eval echo $progname:1032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
if { (eval echo $progname:1053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
pipe_works=yes
else
echo "$progname: failed program was:" >&5
+47 -51
View File
@@ -30,7 +30,7 @@ modename="$progname"
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
VERSION=1.1
VERSION=1.2
default_mode=
help="Try \`$progname --help' for more information."
@@ -481,7 +481,7 @@ if test -z "$show_help"; then
if test "$export_dynamic" != yes; then
export_dynamic=yes
if test -n "$export_dynamic_flag_spec"; then
arg=`eval \\$echo "$export_dynamic_flag_spec"`
eval arg=\"$export_dynamic_flag_spec\"
else
arg=
fi
@@ -682,7 +682,7 @@ if test -z "$show_help"; then
fi
if test -n "$libdir"; then
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
@@ -843,7 +843,7 @@ if test -z "$show_help"; then
esac
name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
libname=`eval \\$echo \"$libname_spec\"`
eval libname=\"$libname_spec\"
# All the library-specific variables (install_libdir is set above).
library_names=
@@ -1006,13 +1006,13 @@ if test -z "$show_help"; then
if test "$build_libtool_libs" = yes; then
# Get the real and link names of the library.
library_names=`eval \\$echo \"$library_names_spec\"`
eval library_names=\"$library_names_spec\"
set dummy $library_names
realname="$2"
shift; shift
if test -n "$soname_spec"; then
soname=`eval \\$echo \"$soname_spec\"`
eval soname=\"$soname_spec\"
else
soname="$realname"
fi
@@ -1027,7 +1027,7 @@ if test -z "$show_help"; then
test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
# Do each of the archive commands.
cmds=`eval \\$echo \"$archive_cmds\"`
eval cmds=\"$archive_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -1104,7 +1104,7 @@ if test -z "$show_help"; then
reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
output="$obj"
cmds=`eval \\$echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -1128,7 +1128,7 @@ if test -z "$show_help"; then
# Only do commands if we really have different PIC objects.
reload_objs="$libobjs"
output="$libobj"
cmds=`eval \\$echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -1177,7 +1177,7 @@ if test -z "$show_help"; then
fi
if test -n "$libdir"; then
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
@@ -1254,8 +1254,8 @@ if test -z "$show_help"; then
case "$dlsyms" in
"") ;;
*.c)
$echo > "$objdir/$dlsyms" \
"/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
$echo > "$objdir/$dlsyms" "\
/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
#ifdef __cplusplus
@@ -1266,17 +1266,17 @@ extern \"C\" {
#define dld_preloaded_symbol_count some_other_symbol
#define dld_preloaded_symbols some_other_symbol
/* External symbol declarations for the compiler. */"
/* External symbol declarations for the compiler. */\
"
if test -f "$nlist"; then
sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
else
echo '/* NONE */' >> "$objdir/$dlsyms"
EOF
fi
$echo >> "$objdir/$dlsyms" \
"
$echo >> "$objdir/$dlsyms" "\
#undef dld_preloaded_symbol_count
#undef dld_preloaded_symbols
@@ -1295,19 +1295,21 @@ struct {
__ptr_t address;
}
dld_preloaded_symbols[] =
{"
{\
"
if test -f "$nlist"; then
sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
fi
$echo >> "$objdir/$dlsyms" \
" {0, (__ptr_t) 0}
$echo >> "$objdir/$dlsyms" "\
{0, (__ptr_t) 0}
};
#ifdef __cplusplus
}
#endif"
#endif\
"
;;
*)
@@ -1427,8 +1429,8 @@ dld_preloaded_symbols[] =
$rm $output
trap "$rm $output; exit 1" 1 2 15
$echo > $output \
"#! /bin/sh
$echo > $output "\
#! /bin/sh
# $output - temporary wrapper script for $objdir/$output
# Generated by ltmain.sh - GNU $PACKAGE $VERSION
@@ -1459,10 +1461,9 @@ else
else
echo=\"$qecho\"
file=\"\$0\"
fi
"
$echo >> $output \
fi\
"
$echo >> $output "\
# Find the directory that this script lives in.
thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
@@ -1496,8 +1497,8 @@ else
# Export our shlibpath_var if we have one.
if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
$echo >> $output \
" # Add our own library path to $shlibpath_var
$echo >> $output "\
# Add our own library path to $shlibpath_var
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
# Some systems cannot cope with colon-terminated $shlibpath_var
@@ -1507,24 +1508,17 @@ else
"
fi
echo >> $output \
" if test \"\$libtool_execute_magic\" != \"$magic\"; then
$echo >> $output "\
if test \"\$libtool_execute_magic\" != \"$magic\"; then
# Run the actual program with our arguments.
args=
for arg
do
# Quote arguments (to preserve shell metacharacters).
arg=\`\$echo \"X\$arg\" | \$Xsed -e \"\$sed_quote_subst\"\`
args=\"\$args \\\"\$arg\\\"\"
done
# Export the path to the program.
PATH=\"\$progdir:\$PATH\"
export PATH
eval \"exec \$program \$args\"
exec \$program \${1+\"\$@\"}
\$echo \"\$0: cannot exec \$program \$args\"
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
exit 1
fi
else
@@ -1534,7 +1528,8 @@ else
echo \"See the $PACKAGE documentation for more information.\" 1>&2
exit 1
fi
fi"
fi\
"
chmod +x $output
fi
exit 0
@@ -1548,9 +1543,9 @@ fi"
# Do each command in the archive commands.
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
cmds=`eval \\$echo \"$old_archive_from_new_cmds\"`
eval cmds=\"$old_archive_from_new_cmds\"
else
cmds=`eval \\$echo \"$old_archive_cmds\"`
eval cmds=\"$old_archive_cmds\"
fi
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
@@ -1571,8 +1566,8 @@ fi"
# Only create the output if not a dry run.
if test -z "$run"; then
echo > $output \
"# $output - a libtool library file
$echo > $output "\
# $output - a libtool library file
# Generated by ltmain.sh - GNU $PACKAGE $VERSION
# The name that we can dlopen(3).
@@ -1593,7 +1588,8 @@ age=$age
revision=$revision
# Directory that this library needs to be installed in:
libdir='$install_libdir'"
libdir='$install_libdir'\
"
fi
# Do a symbolic link so that the libtool archive can be found in
@@ -1835,7 +1831,7 @@ libdir='$install_libdir'"
# Do each command in the postinstall commands.
lib="$destdir/$realname"
cmds=`eval \\$echo \"$postinstall_cmds\"`
eval cmds=\"$postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -1972,7 +1968,7 @@ libdir='$install_libdir'"
$run eval "$install_prog \$file \$oldlib" || exit $?
# Do each command in the postinstall commands.
cmds=`eval \\$echo \"$old_postinstall_cmds\"`
eval cmds=\"$old_postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -2010,7 +2006,7 @@ libdir='$install_libdir'"
for libdir in $libdirs; do
if test -n "$finish_cmds"; then
# Do each command in the finish commands.
cmds=`eval \\$echo \"$finish_cmds\"`
eval cmds=\"$finish_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -2021,7 +2017,7 @@ libdir='$install_libdir'"
fi
if test -n "$finish_eval"; then
# Do the single finish_eval.
cmds=`eval \\$echo \"$finish_eval\"`
eval cmds=\"$finish_eval\"
$run eval "$cmds"
fi
done
@@ -2047,7 +2043,7 @@ libdir='$install_libdir'"
fi
if test -n "$hardcode_libdir_flag_spec"; then
libdir=LIBDIR
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
echo " - use the \`$flag' linker flag"
fi
@@ -2238,7 +2234,7 @@ libdir='$install_libdir'"
if test -n "$library_names"; then
# Do each command in the postuninstall commands.
cmds=`eval \\$echo \"$postuninstall_cmds\"`
eval cmds=\"$postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@@ -2250,7 +2246,7 @@ libdir='$install_libdir'"
if test -n "$old_library"; then
# Do each command in the old_postuninstall commands.
cmds=`eval \\$echo \"$old_postuninstall_cmds\"`
eval cmds=\"$old_postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
+37
View File
@@ -51,6 +51,7 @@ typedef struct sTreeButtons {
guint nb_item_add;
GtkWidget* add_button;
GtkWidget* remove_button;
GtkWidget* subtree_button;
} sTreeButtons;
/* end of tree section */
@@ -1065,6 +1066,22 @@ cb_remove_item(GtkWidget*w, GtkTree* tree)
g_list_free (clear_list);
}
static void
cb_remove_subtree(GtkWidget*w, GtkTree* tree)
{
GList* selected_list;
GtkTreeItem *item;
selected_list = GTK_TREE_SELECTION(tree);
if (selected_list)
{
item = GTK_TREE_ITEM (selected_list->data);
if (item->subtree)
gtk_tree_item_remove_subtree (item);
}
}
static void
cb_tree_changed(GtkTree* tree)
{
@@ -1084,11 +1101,13 @@ cb_tree_changed(GtkTree* tree)
else
gtk_widget_set_sensitive(tree_buttons->add_button, FALSE);
gtk_widget_set_sensitive(tree_buttons->remove_button, FALSE);
gtk_widget_set_sensitive(tree_buttons->subtree_button, FALSE);
}
else
{
gtk_widget_set_sensitive(tree_buttons->remove_button, TRUE);
gtk_widget_set_sensitive(tree_buttons->add_button, (nb_selected == 1));
gtk_widget_set_sensitive(tree_buttons->subtree_button, (nb_selected == 1));
}
}
@@ -1228,6 +1247,15 @@ create_tree_sample(guint selection_mode,
gtk_widget_show(button);
tree_buttons->remove_button = button;
button = gtk_button_new_with_label("Remove Subtree");
gtk_widget_set_sensitive(button, FALSE);
gtk_signal_connect(GTK_OBJECT (button), "clicked",
(GtkSignalFunc) cb_remove_subtree,
(gpointer)root_tree);
gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0);
gtk_widget_show(button);
tree_buttons->subtree_button = button;
/* create separator */
separator = gtk_hseparator_new();
gtk_box_pack_start(GTK_BOX(box1), separator, FALSE, FALSE, 0);
@@ -2114,6 +2142,10 @@ create_scrolled_windows ()
gtk_table_set_row_spacings (GTK_TABLE (table), 10);
gtk_table_set_col_spacings (GTK_TABLE (table), 10);
gtk_container_add (GTK_CONTAINER (scrolled_window), table);
gtk_container_set_focus_hadjustment (GTK_CONTAINER (table),
gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_container_set_focus_vadjustment (GTK_CONTAINER (table),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_widget_show (table);
for (i = 0; i < 20; i++)
@@ -2772,6 +2804,8 @@ create_list ()
gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_MULTIPLE);
gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_BROWSE);
gtk_container_add (GTK_CONTAINER (scrolled_win), list);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (list),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_win)));
gtk_widget_show (list);
for (i = 0; i < nlist_items; i++)
@@ -5754,12 +5788,15 @@ create_main_window ()
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (scrolled_window)->vscrollbar, GTK_CAN_FOCUS);
gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0);
gtk_widget_show (scrolled_window);
box2 = gtk_vbox_new (FALSE, 0);
gtk_container_border_width (GTK_CONTAINER (box2), 10);
gtk_container_add (GTK_CONTAINER (scrolled_window), box2);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (box2),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_widget_show (box2);
for (i = 0; i < nbuttons; i++)
+9 -3
View File
@@ -1,5 +1,7 @@
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
# include "rc-file"
#
# style <name> [= <name>]
# {
# <option>
@@ -8,6 +10,9 @@
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
# testgtkrc2 introduces the green color in the button list
include "testgtkrc2"
pixmap_path "."
style "default"
@@ -33,10 +38,11 @@ style "button"
# bg[PRELIGHT] = { 0, 0, 0.75 }
}
style 'main_button' = 'button'
# we set want buttons in the main window to be blue by default
style 'main_buttons' = 'button'
{
font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
bg[PRELIGHT] = { 0, 0.75, 0x00 }
bg[PRELIGHT] = { 0, 0, 0.75 }
}
style "toggle_button" = "button"
@@ -74,5 +80,5 @@ widget_class "*GtkButton*" style "button"
widget_class "*Ruler" style "ruler"
widget_class "*GtkText" style "text"
widget_class "*" style "default"
widget "main window.*GtkButton*" style "main_button"
widget "main window.*GtkButton*" style "main_buttons"
widget "*GtkCurve" style "curve"
+21
View File
@@ -0,0 +1,21 @@
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
# include "rc-file"
#
# style <name> [= <name>]
# {
# <option>
# }
#
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
# this file gets included from testgtkrc
style 'button_list' = 'button'
{
font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
bg[PRELIGHT] = { 0, 0.75, 0x00 }
}
widget "main window.*GtkScrolledWindow.*GtkButton*" style "button_list"