bool can_calc = true;
/*In case of no prop change, this just returns*/
- if (!ivilayer->event_mask && !ivisurf->event_mask)
+ if (!ivilayer->prop.event_mask && !ivisurf->prop.event_mask)
return;
update_opacity(ivilayer, ivisurf);
ivisurf->on_layer = NULL;
wl_list_remove(&ivisurf->order.link);
wl_list_init(&ivisurf->order.link);
- ivisurf->event_mask |= IVI_NOTIFICATION_REMOVE;
+ ivisurf->prop.event_mask |= IVI_NOTIFICATION_REMOVE;
}
assert(wl_list_empty(&ivilayer->order.surface_list));
wl_list_insert(&ivilayer->order.surface_list,
&ivisurf->order.link);
ivisurf->on_layer = ivilayer;
- ivisurf->event_mask |= IVI_NOTIFICATION_ADD;
+ ivisurf->prop.event_mask |= IVI_NOTIFICATION_ADD;
}
ivilayer->order.dirty = 0;
ivilayer->on_screen = NULL;
wl_list_remove(&ivilayer->order.link);
wl_list_init(&ivilayer->order.link);
- ivilayer->event_mask |= IVI_NOTIFICATION_REMOVE;
+ ivilayer->prop.event_mask |= IVI_NOTIFICATION_REMOVE;
}
assert(wl_list_empty(&iviscrn->order.layer_list));
wl_list_insert(&iviscrn->order.layer_list,
&ivilayer->order.link);
ivilayer->on_screen = iviscrn;
- ivilayer->event_mask |= IVI_NOTIFICATION_ADD;
+ ivilayer->prop.event_mask |= IVI_NOTIFICATION_ADD;
}
iviscrn->order.dirty = 0;
send_surface_prop(struct ivi_layout_surface *ivisurf)
{
wl_signal_emit(&ivisurf->property_changed, ivisurf);
- ivisurf->event_mask = 0;
+ ivisurf->pending.prop.event_mask = 0;
}
static void
send_layer_prop(struct ivi_layout_layer *ivilayer)
{
wl_signal_emit(&ivilayer->property_changed, ivilayer);
- ivilayer->event_mask = 0;
+ ivilayer->pending.prop.event_mask = 0;
}
static void
struct ivi_layout_surface *ivisurf = NULL;
wl_list_for_each_reverse(ivilayer, &layout->layer_list, link) {
- if (ivilayer->event_mask)
+ if (ivilayer->prop.event_mask)
send_layer_prop(ivilayer);
}
wl_list_for_each_reverse(ivisurf, &layout->surface_list, link) {
- if (ivisurf->event_mask)
+ if (ivisurf->prop.event_mask)
send_surface_prop(ivisurf);
}
}
layout_listener->userdata;
((layer_property_notification_func)prop_callback->callback)
- (ivilayer, &ivilayer->prop, ivilayer->event_mask, prop_callback->data);
+ (ivilayer, &ivilayer->prop, ivilayer->prop.event_mask, prop_callback->data);
}
static void
layout_listener->userdata;
((surface_property_notification_func)prop_callback->callback)
- (ivisurf, &ivisurf->prop, ivisurf->event_mask, prop_callback->data);
-
- ivisurf->event_mask = 0;
+ (ivisurf, &ivisurf->prop, ivisurf->prop.event_mask, prop_callback->data);
}
static void
ivilayer->id_layer = id_layer;
init_layer_properties(&ivilayer->prop, width, height);
- ivilayer->event_mask = 0;
wl_list_init(&ivilayer->pending.surface_list);
wl_list_init(&ivilayer->pending.link);
prop->visibility = newVisibility;
if (ivilayer->prop.visibility != newVisibility)
- ivilayer->event_mask |= IVI_NOTIFICATION_VISIBILITY;
+ prop->event_mask |= IVI_NOTIFICATION_VISIBILITY;
else
- ivilayer->event_mask &= ~IVI_NOTIFICATION_VISIBILITY;
+ prop->event_mask &= ~IVI_NOTIFICATION_VISIBILITY;
return IVI_SUCCEEDED;
}
prop->opacity = opacity;
if (ivilayer->prop.opacity != opacity)
- ivilayer->event_mask |= IVI_NOTIFICATION_OPACITY;
+ prop->event_mask |= IVI_NOTIFICATION_OPACITY;
else
- ivilayer->event_mask &= ~IVI_NOTIFICATION_OPACITY;
+ prop->event_mask &= ~IVI_NOTIFICATION_OPACITY;
return IVI_SUCCEEDED;
}
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;
+ prop->event_mask |= IVI_NOTIFICATION_SOURCE_RECT;
else
- ivilayer->event_mask &= ~IVI_NOTIFICATION_SOURCE_RECT;
+ prop->event_mask &= ~IVI_NOTIFICATION_SOURCE_RECT;
return IVI_SUCCEEDED;
}
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;
+ prop->event_mask |= IVI_NOTIFICATION_DEST_RECT;
else
- ivilayer->event_mask &= ~IVI_NOTIFICATION_DEST_RECT;
+ prop->event_mask &= ~IVI_NOTIFICATION_DEST_RECT;
return IVI_SUCCEEDED;
}
prop->orientation = orientation;
if (ivilayer->prop.orientation != orientation)
- ivilayer->event_mask |= IVI_NOTIFICATION_ORIENTATION;
+ prop->event_mask |= IVI_NOTIFICATION_ORIENTATION;
else
- ivilayer->event_mask &= ~IVI_NOTIFICATION_ORIENTATION;
+ prop->event_mask &= ~IVI_NOTIFICATION_ORIENTATION;
return IVI_SUCCEEDED;
}
prop->visibility = newVisibility;
if (ivisurf->prop.visibility != newVisibility)
- ivisurf->event_mask |= IVI_NOTIFICATION_VISIBILITY;
+ prop->event_mask |= IVI_NOTIFICATION_VISIBILITY;
else
- ivisurf->event_mask &= ~IVI_NOTIFICATION_VISIBILITY;
+ prop->event_mask &= ~IVI_NOTIFICATION_VISIBILITY;
return IVI_SUCCEEDED;
}
prop->opacity = opacity;
if (ivisurf->prop.opacity != opacity)
- ivisurf->event_mask |= IVI_NOTIFICATION_OPACITY;
+ prop->event_mask |= IVI_NOTIFICATION_OPACITY;
else
- ivisurf->event_mask &= ~IVI_NOTIFICATION_OPACITY;
+ prop->event_mask &= ~IVI_NOTIFICATION_OPACITY;
return IVI_SUCCEEDED;
}
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;
+ prop->event_mask |= IVI_NOTIFICATION_DEST_RECT;
else
- ivisurf->event_mask &= ~IVI_NOTIFICATION_DEST_RECT;
+ prop->event_mask &= ~IVI_NOTIFICATION_DEST_RECT;
return IVI_SUCCEEDED;
}
prop->orientation = orientation;
if (ivisurf->prop.orientation != orientation)
- ivisurf->event_mask |= IVI_NOTIFICATION_ORIENTATION;
+ prop->event_mask |= IVI_NOTIFICATION_ORIENTATION;
else
- ivisurf->event_mask &= ~IVI_NOTIFICATION_ORIENTATION;
+ prop->event_mask &= ~IVI_NOTIFICATION_ORIENTATION;
return IVI_SUCCEEDED;
}
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;
+ prop->event_mask |= IVI_NOTIFICATION_SOURCE_RECT;
else
- ivisurf->event_mask &= ~IVI_NOTIFICATION_SOURCE_RECT;
+ prop->event_mask &= ~IVI_NOTIFICATION_SOURCE_RECT;
return IVI_SUCCEEDED;
}
wl_list_init(&ivisurf->transform.link);
init_surface_properties(&ivisurf->prop);
- ivisurf->event_mask = 0;
ivisurf->pending.prop = ivisurf->prop;
wl_list_init(&ivisurf->pending.link);