call xdg surface map when creating a surface for visible internal windows

if windows are created during startup, they will attempt to show themselves
before xdg surface operations are available, leading to a scenario where they
will never successfully map themselves. if the elm win object is visible, this
indicates a mapped internal window, so directly call the map function at this
time to make the window visible
This commit is contained in:
Mike Blumenkrantz 2016-01-19 13:43:06 -05:00
parent 092c834c5e
commit d52fffeec9
1 changed files with 5 additions and 1 deletions

View File

@ -1165,6 +1165,9 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, struct wl_resource *resour
ec->border.changed = ec->changes.border = !ec->borderless;
ec->netwm.type = E_WINDOW_TYPE_NORMAL;
ec->comp_data->set_win_type = EINA_TRUE;
if (ec->internal_elm_win && evas_object_visible_get(ec->internal_elm_win))
_e_xdg_shell_surface_map(surface_resource);
}
static void
@ -1272,7 +1275,8 @@ _e_xdg_shell_cb_popup_get(struct wl_client *client, struct wl_resource *resource
cdata->popup.x = x;
cdata->popup.y = y;
}
if (ec->internal_elm_win && evas_object_visible_get(ec->internal_elm_win))
_e_xdg_shell_surface_map(surface_resource);
}
static void