#include <assert.h>
#include <string.h>
+#include <libweston/config-parser.h>
#include <libweston/libweston.h>
#include <libweston-desktop/libweston-desktop.h>
ivi_layout_init(struct ivi_compositor *ivi, struct ivi_output *output)
{
bool use_default_area = true;
+ struct weston_config_section *section = output->config;
+ char *t;
+
+ weston_config_section_get_string(section, "activation-area", &t, NULL);
+ if (t) {
+ if (output->area_activation.width == 0 &&
+ output->area_activation.height == 0 &&
+ output->area_activation.x == 0 &&
+ output->area_activation.y == 0) {
+ weston_log("WARNING: activation-area set in "
+ "configuration file, but yet applied!\n");
+ if (parse_activation_area(t, output) < 0)
+ weston_log("Invalid activation-area \"%s\" for output %s\n",
+ t, output->name);
+ } else {
+ weston_log("WARNING: activation-area detected in ini file, "
+ "but agl_shell override detected!\n");
+ if (parse_activation_area(t, output) < 0)
+ weston_log("Invalid activation-area \"%s\" for output %s\n",
+ t, output->name);
+ }
+ }
+ free(t);
ivi_background_init(ivi, output);
return;
}
- if (!surf->ivi->activate_by_default) {
- weston_log("Refusing to activate surface role %d, app_id %s\n",
- surf->role, app_id);
+ if (!surf->ivi->activate_by_default &&
+ (!surf->xwayland.is_set && !is_shell_surface_xwayland(surf))) {
+ weston_log("Refusing to activate surface role %d, app_id %s, type %s\n",
+ surf->role, app_id,
+ is_shell_surface_xwayland(surf) ?
+ "xwayland" : "regular");
if (!weston_desktop_surface_get_maximized(dsurf) ||
geom.width != r_output->area.width ||
*/
weston_log("Surface no app_id, role %s activating by default\n",
ivi_layout_get_surface_role_name(surf));
- ivi_layout_activate_by_surf(r_output, surf);
+ if (surf->xwayland.is_set || is_shell_surface_xwayland(surf)) {
+ ivi_layout_activate_by_surf(r_output, surf);
+ ivi_layout_activate_complete(r_output, surf);
+ } else {
+ ivi_layout_activate_by_surf(r_output, surf);
+ }
}
}