[Sugar-devel] [PATCH] fix calculation for determining the placement of badges

Walter Bender walter at sugarlabs.org
Wed Aug 17 13:37:36 EDT 2011


From: Walter Bender <walter.bender at gmail.com>

It is my understanding the icon_info.attach_x,y are pixel offsets into the icon
from the lower-left corner. If that is the case, then it should be added
rather than multiplied. The other interpretation is that it is a position
as percentage. If that is correct, then the default value should be 1.0
instead of 0 if the badge is to be put in the lower-left. I did do an
experiment with setting attach_x,y to 1.0 and got inconsistent results. Keeping
it set to 0 and using it as a pixel offsets works as expected. I tested this
patch with badges on icons on the toolbar and also the network icons in the mesh
view and everything seems to render properly.

---
 src/sugar/graphics/icon.py |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/sugar/graphics/icon.py b/src/sugar/graphics/icon.py
index 62a79f6..b14cb7c 100644
--- a/src/sugar/graphics/icon.py
+++ b/src/sugar/graphics/icon.py
@@ -202,8 +202,8 @@ class _IconBuffer(object):
             return info
 
         info.size = int(_BADGE_SIZE * icon_width)
-        info.attach_x = int(icon_info.attach_x * icon_width - info.size / 2)
-        info.attach_y = int(icon_info.attach_y * icon_height - info.size / 2)
+        info.attach_x = int(icon_info.attach_x + icon_width - info.size / 2)
+        info.attach_y = int(icon_info.attach_y + icon_height - info.size / 2)
 
         if info.attach_x < 0 or info.attach_y < 0:
             info.icon_padding = max(-info.attach_x, -info.attach_y)
-- 
1.7.4.4



More information about the Sugar-devel mailing list