// configure surface to wxh dimensions
s->set_configuration(w, h);
+ // set source reactangle, even if we should not need to set it.
+ s->set_source_rectangle(0, 0, w, h);
// set destination to the display rectangle
s->set_destination_rectangle(x, y, w, h);
- // XXX: visibility should be determined independently of our
- // layer + geometry setup.
- s->set_visibility(surface_id == (unsigned)this->layers.main_surface ? 1 : 0);
+ // XXX: The main_surface will be visible regardless
+ s->set_visibility(
+ surface_id == static_cast<unsigned>(this->layers.main_surface) ? 1 : 0);
this->controller->layers[layer_id]->add_surface(s.get());
logdebug("Surface %u now on layer %u with rect { %d, %d, %d, %d }",
auto rname = this->id_alloc[drawing_name];
if (!rname) {
// name does not exist yet, allocate surface id...
- // XXX: how to allocate surface IDs?
- // * allocate by running a counter for each layer?
- // * allocate IDs globally, i.e. do not have layers contain
- // ID ranges (only define the surfaces on the layer by
- // role?)
auto id = int(this->id_alloc(drawing_name));
this->layers.add_surface(id, lid.value());
char const *drawing_name) {
logdebug("%s drawing_name %s", __func__, drawing_name);
auto r = this->app->activate_surface(drawing_name);
- if (r) {
+ if (r != nullptr) {
return Err<json_object *>(r);
}
return Ok(json_object_new_object());
binding_api::result_type binding_api::demo_activate_surface(
uint32_t surfaceid) {
char const *e = this->app->activate_surface(surfaceid);
- if (e) {
+ if (e != nullptr) {
return Err<json_object *>(e);
}
return Ok(json_object_new_object());