ivi-shell: bugfix, update event_mask when new propertiy is not same as before.

In previous code, it sends notification whenever setter calls. This
patch fixs that notification will not happens if there is no change of
properties by setter.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
Nobuhiko Tanibata 2015-06-22 15:32:14 +09:00 committed by Pekka Paalanen
parent 6ce3ef864d
commit 5d4a323c36

View file

@ -1951,7 +1951,10 @@ ivi_layout_layer_set_visibility(struct ivi_layout_layer *ivilayer,
prop = &ivilayer->pending.prop;
prop->visibility = newVisibility;
ivilayer->event_mask |= IVI_NOTIFICATION_VISIBILITY;
if (ivilayer->prop.visibility != newVisibility)
ivilayer->event_mask |= IVI_NOTIFICATION_VISIBILITY;
else
ivilayer->event_mask &= ~IVI_NOTIFICATION_VISIBILITY;
return IVI_SUCCEEDED;
}
@ -1983,7 +1986,10 @@ ivi_layout_layer_set_opacity(struct ivi_layout_layer *ivilayer,
prop = &ivilayer->pending.prop;
prop->opacity = opacity;
ivilayer->event_mask |= IVI_NOTIFICATION_OPACITY;
if (ivilayer->prop.opacity != opacity)
ivilayer->event_mask |= IVI_NOTIFICATION_OPACITY;
else
ivilayer->event_mask &= ~IVI_NOTIFICATION_OPACITY;
return IVI_SUCCEEDED;
}
@ -2017,7 +2023,12 @@ ivi_layout_layer_set_source_rectangle(struct ivi_layout_layer *ivilayer,
prop->source_width = width;
prop->source_height = height;
ivilayer->event_mask |= IVI_NOTIFICATION_SOURCE_RECT;
if (ivilayer->prop.source_x != x || ivilayer->prop.source_y != y ||
ivilayer->prop.source_width != width ||
ivilayer->prop.source_height != height)
ivilayer->event_mask |= IVI_NOTIFICATION_SOURCE_RECT;
else
ivilayer->event_mask &= ~IVI_NOTIFICATION_SOURCE_RECT;
return IVI_SUCCEEDED;
}
@ -2040,7 +2051,12 @@ ivi_layout_layer_set_destination_rectangle(struct ivi_layout_layer *ivilayer,
prop->dest_width = width;
prop->dest_height = height;
ivilayer->event_mask |= IVI_NOTIFICATION_DEST_RECT;
if (ivilayer->prop.dest_x != x || ivilayer->prop.dest_y != y ||
ivilayer->prop.dest_width != width ||
ivilayer->prop.dest_height != height)
ivilayer->event_mask |= IVI_NOTIFICATION_DEST_RECT;
else
ivilayer->event_mask &= ~IVI_NOTIFICATION_DEST_RECT;
return IVI_SUCCEEDED;
}
@ -2076,7 +2092,11 @@ ivi_layout_layer_set_dimension(struct ivi_layout_layer *ivilayer,
prop->dest_width = dest_width;
prop->dest_height = dest_height;
ivilayer->event_mask |= IVI_NOTIFICATION_DIMENSION;
if (ivilayer->prop.dest_width != dest_width ||
ivilayer->prop.dest_height != dest_height)
ivilayer->event_mask |= IVI_NOTIFICATION_DIMENSION;
else
ivilayer->event_mask &= ~IVI_NOTIFICATION_DIMENSION;
return IVI_SUCCEEDED;
}
@ -2111,7 +2131,10 @@ ivi_layout_layer_set_position(struct ivi_layout_layer *ivilayer,
prop->dest_x = dest_x;
prop->dest_y = dest_y;
ivilayer->event_mask |= IVI_NOTIFICATION_POSITION;
if (ivilayer->prop.dest_x != dest_x || ivilayer->prop.dest_y != dest_y)
ivilayer->event_mask |= IVI_NOTIFICATION_POSITION;
else
ivilayer->event_mask &= ~IVI_NOTIFICATION_POSITION;
return IVI_SUCCEEDED;
}
@ -2130,7 +2153,10 @@ ivi_layout_layer_set_orientation(struct ivi_layout_layer *ivilayer,
prop = &ivilayer->pending.prop;
prop->orientation = orientation;
ivilayer->event_mask |= IVI_NOTIFICATION_ORIENTATION;
if (ivilayer->prop.orientation != orientation)
ivilayer->event_mask |= IVI_NOTIFICATION_ORIENTATION;
else
ivilayer->event_mask &= ~IVI_NOTIFICATION_ORIENTATION;
return IVI_SUCCEEDED;
}
@ -2211,7 +2237,10 @@ ivi_layout_surface_set_visibility(struct ivi_layout_surface *ivisurf,
prop = &ivisurf->pending.prop;
prop->visibility = newVisibility;
ivisurf->event_mask |= IVI_NOTIFICATION_VISIBILITY;
if (ivisurf->prop.visibility != newVisibility)
ivisurf->event_mask |= IVI_NOTIFICATION_VISIBILITY;
else
ivisurf->event_mask &= ~IVI_NOTIFICATION_VISIBILITY;
return IVI_SUCCEEDED;
}
@ -2243,7 +2272,10 @@ ivi_layout_surface_set_opacity(struct ivi_layout_surface *ivisurf,
prop = &ivisurf->pending.prop;
prop->opacity = opacity;
ivisurf->event_mask |= IVI_NOTIFICATION_OPACITY;
if (ivisurf->prop.opacity != opacity)
ivisurf->event_mask |= IVI_NOTIFICATION_OPACITY;
else
ivisurf->event_mask &= ~IVI_NOTIFICATION_OPACITY;
return IVI_SUCCEEDED;
}
@ -2281,7 +2313,12 @@ ivi_layout_surface_set_destination_rectangle(struct ivi_layout_surface *ivisurf,
prop->dest_width = width;
prop->dest_height = height;
ivisurf->event_mask |= IVI_NOTIFICATION_DEST_RECT;
if (ivisurf->prop.dest_x != x || ivisurf->prop.dest_y != y ||
ivisurf->prop.dest_width != width ||
ivisurf->prop.dest_height != height)
ivisurf->event_mask |= IVI_NOTIFICATION_DEST_RECT;
else
ivisurf->event_mask &= ~IVI_NOTIFICATION_DEST_RECT;
return IVI_SUCCEEDED;
}
@ -2301,7 +2338,11 @@ ivi_layout_surface_set_dimension(struct ivi_layout_surface *ivisurf,
prop->dest_width = dest_width;
prop->dest_height = dest_height;
ivisurf->event_mask |= IVI_NOTIFICATION_DIMENSION;
if (ivisurf->prop.dest_width != dest_width ||
ivisurf->prop.dest_height != dest_height)
ivisurf->event_mask |= IVI_NOTIFICATION_DIMENSION;
else
ivisurf->event_mask &= ~IVI_NOTIFICATION_DIMENSION;
return IVI_SUCCEEDED;
}
@ -2336,7 +2377,10 @@ ivi_layout_surface_set_position(struct ivi_layout_surface *ivisurf,
prop->dest_x = dest_x;
prop->dest_y = dest_y;
ivisurf->event_mask |= IVI_NOTIFICATION_POSITION;
if (ivisurf->prop.dest_x != dest_x || ivisurf->prop.dest_y != dest_y)
ivisurf->event_mask |= IVI_NOTIFICATION_POSITION;
else
ivisurf->event_mask &= ~IVI_NOTIFICATION_POSITION;
return IVI_SUCCEEDED;
}
@ -2370,7 +2414,10 @@ ivi_layout_surface_set_orientation(struct ivi_layout_surface *ivisurf,
prop = &ivisurf->pending.prop;
prop->orientation = orientation;
ivisurf->event_mask |= IVI_NOTIFICATION_ORIENTATION;
if (ivisurf->prop.orientation != orientation)
ivisurf->event_mask |= IVI_NOTIFICATION_ORIENTATION;
else
ivisurf->event_mask &= ~IVI_NOTIFICATION_ORIENTATION;
return IVI_SUCCEEDED;
}
@ -2644,7 +2691,12 @@ ivi_layout_surface_set_source_rectangle(struct ivi_layout_surface *ivisurf,
prop->source_width = width;
prop->source_height = height;
ivisurf->event_mask |= IVI_NOTIFICATION_SOURCE_RECT;
if (ivisurf->prop.source_x != x || ivisurf->prop.source_y != y ||
ivisurf->prop.source_width != width ||
ivisurf->prop.source_height != height)
ivisurf->event_mask |= IVI_NOTIFICATION_SOURCE_RECT;
else
ivisurf->event_mask &= ~IVI_NOTIFICATION_SOURCE_RECT;
return IVI_SUCCEEDED;
}