[gcompris/gcomprixogoo] Fixed a crash case in smallnumber activity.
- From: Bruno Coudoin <bcoudoin src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gcompris/gcomprixogoo] Fixed a crash case in smallnumber activity.
- Date: Sat, 16 Jan 2010 21:53:20 +0000 (UTC)
commit 7cdccbabc7f50a9eb27a0187569322669622692e
Author: Bruno Coudoin <bruno coudoin free fr>
Date: Sat Jan 16 22:52:20 2010 +0100
Fixed a crash case in smallnumber activity.
This has also been improved to avoid overlaps of dices.
src/smallnumbers-activity/smallnumbers.c | 16 ++++++++++++++--
1 files changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/src/smallnumbers-activity/smallnumbers.c b/src/smallnumbers-activity/smallnumbers.c
index 2c7fbbe..0f3d91a 100644
--- a/src/smallnumbers-activity/smallnumbers.c
+++ b/src/smallnumbers-activity/smallnumbers.c
@@ -328,6 +328,9 @@ smallnumbers_gotkey_item(GooCanvasItem *item, guint key)
static void smallnumbers_move_item(GooCanvasItem *item)
{
+ if (item == NULL )
+ return;
+
goo_canvas_item_translate(item, 0, 2.0);
GooCanvasBounds bounds;
@@ -365,6 +368,7 @@ static void smallnumbers_create_item(GooCanvasItem *parent)
guint i;
guint total_number = 0;
double x;
+ static gdouble x_previous = 0; //remember the position of the first dice
guint number_of_dice = number_of_dices;
group_item = goo_canvas_group_new (parent, NULL);
@@ -432,8 +436,16 @@ static void smallnumbers_create_item(GooCanvasItem *parent)
g_free(str1);
- x = (double)(g_random_int()%(BOARDWIDTH-
- (guint)(rsvg_dimension.width * imageZoom)*2));
+ gdouble item_w = rsvg_dimension.width * imageZoom;
+ if ( x_previous < BOARDWIDTH / 2 )
+ x = x_previous + item_w +
+ (gdouble)(g_random_int() % (guint)(BOARDWIDTH - x_previous
+ - item_w * 2));
+
+ else
+ x = (double)(g_random_int() % (guint)(x_previous - item_w));
+
+ x_previous = x;
item = goo_canvas_svg_new (group_item, svg_handle, NULL);
goo_canvas_item_translate(item,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]