From 1741bddecb23bfc401397222c9961233bb30a87a Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 17 Feb 2003 21:06:39 +0000 Subject: [PATCH] only return as many as was requested --- otk/property.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/otk/property.cc b/otk/property.cc index a284c17e..436507fc 100644 --- a/otk/property.cc +++ b/otk/property.cc @@ -242,13 +242,12 @@ bool Property::get(Window win, Atom atom, Atom type, unsigned long *nelements, // the number of longs that need to be retreived to get the property's // entire value. The last + 1 is the first long that we retrieved above. int remain = (ret_bytes - 1)/sizeof(long) + 1 + 1; - if (remain > size/8 * (signed)maxread) // dont get more than the max - remain = size/8 * (signed)maxread; + if (remain > size * (signed)maxread / 32) // dont get more than the max + remain = size * (signed)maxread / 32; result = XGetWindowProperty(**display, win, atom, 0l, remain, false, type, &ret_type, &ret_size, nelements, &ret_bytes, &c_val); - ret = (result == Success && ret_type == type && ret_size == size && - ret_bytes == 0); + ret = (result == Success && ret_type == type && ret_size == size); /* If the property has changed type/size, or has grown since our first read of it, then stop here and try again. If it shrank, then this will -- 2.39.2