Convert over to using an GtkInvisible - selections don't work properly

Sun Feb 24 23:23:28 2002  Owen Taylor  <otaylor@redhat.com>

	* tests/testselection.c (main): Convert over to using
	an GtkInvisible - selections don't work properly
	with now NO_WINDOW GtkToggleButton. (Example really
	should be using GtkClipboard.)

	* gdk/x11/gdkselection-x11.c (gdk_selection_property_get):
	Fix  problems if sizeof(GdkAtom) != sizeof(Atom). (Unlikely)

	* gdk/x11/gdkproperty-x11.c (gdk_property_get): Set
	actual_length when converting atoms as well.
	(Gregory Merchan, #72074)
This commit is contained in:
Owen Taylor
2002-02-25 05:12:14 +00:00
committed by Owen Taylor
parent f9debe2f69
commit 3ce820584f
10 changed files with 117 additions and 10 deletions

View File

@ -244,21 +244,24 @@ gdk_selection_property_get (GdkWindow *requestor,
if (prop_type != None)
{
*data = g_new (guchar, length);
if (prop_type == XA_ATOM || prop_type == gdk_x11_get_xatom_by_name ("ATOM_PAIR"))
{
Atom* atoms = (Atom*) t;
GdkAtom* atoms_dest = (GdkAtom*) *data;
GdkAtom* atoms_dest;
gint num_atom, i;
num_atom = (length - 1) / sizeof (Atom);
length = sizeof (GdkAtom) * num_atom + 1;
*data = g_malloc (length);
(*data)[length - 1] = '\0';
atoms_dest = (GdkAtom *)(*data);
num_atom = (length - 1) / sizeof (GdkAtom);
for (i=0; i < num_atom; i++)
atoms_dest[i] = gdk_x11_xatom_to_atom (atoms[i]);
}
else
{
memcpy (*data, t, length);
*data = g_memdup (t, length);
}
if (t)