Callbacks registered via display_set_output_configure_handler() are
promised to be called when we know the current mode for the output. If
the following order of events happens:
1. toytoolkit binds to a wl_output global
2. application registers an output configure handler
3. the wl_output.mode events are received
Then in step 2 we would call the callback with uninitialised output
informations, giving it a 0x0 size.
To avoid such race, do not call the callback from
display_set_output_configure_handler() if the output has 0x0 size.
The wl_output.mode event will be received later, and that will trigger
the right call to the callback.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
if (!handler)
return;
- wl_list_for_each(output, &display->output_list, link)
+ wl_list_for_each(output, &display->output_list, link) {
+ if (output->allocation.width == 0 &&
+ output->allocation.height == 0)
+ continue;
+
(*display->output_configure_handler)(output,
display->user_data);
+ }
}
void