surface->iface = NULL;
surface->surface = NULL;
e_shell_e_client_destroy(surface->ec);
+ surface->ec = NULL;
}
static E_Desktop_Surface *
EINTERN void
e_desktop_toplevel_title_set(E_Desktop_Toplevel *toplevel, const char *title)
{
+ if (!toplevel->surface.ec)
+ return;
+
ELOGF("TOPLEVEL", "Set title: %s", toplevel->surface.ec, title ?: "(null)");
e_shell_e_client_name_title_set(toplevel->surface.ec, title, title);
}
EINTERN void
e_desktop_toplevel_app_id_set(E_Desktop_Toplevel *toplevel, const char *app_id)
{
+ if (!toplevel->surface.ec)
+ return;
+
ELOGF("TOPLEVEL", "Set app_id: %s", toplevel->surface.ec, app_id ?: "(null)");
e_shell_e_client_app_id_set(toplevel->surface.ec, app_id);
}
{
E_Client *epc = NULL;
+ if (!toplevel->surface.ec)
+ return;
+
if (parent)
epc = parent->surface.ec;
EINTERN void
e_desktop_toplevel_interactive_move_begin(E_Desktop_Toplevel *toplevel, struct wl_resource *seat_resource)
{
+ if (!toplevel->surface.ec)
+ return;
+
ELOGF("TOPLEVEL", "Begin interactive move: seat_resource(%p)", toplevel->surface.ec, seat_resource);
e_shell_e_client_interactive_move(toplevel->surface.ec, seat_resource);
}
EINTERN void
e_desktop_toplevel_interactive_resize_begin(E_Desktop_Toplevel *toplevel, struct wl_resource *toplevel_resource, struct wl_resource *seat_resource, int32_t edges)
{
+ if (!toplevel->surface.ec)
+ return;
+
ELOGF("TOPLEVEL", "Begin interactive resize: seat_resource(%p), edges(%d)", toplevel->surface.ec, seat_resource, edges);
e_shell_e_client_interactive_resize(toplevel->surface.ec, toplevel_resource, seat_resource, edges);
}
{
E_Client *ec = toplevel->surface.ec;
+ if (!ec)
+ return;
+
ELOGF("TOPLEVEL", "Request fullscreen: lock_user_fullscreen(%d)", ec, ec->lock_user_fullscreen);
if (ec->lock_user_fullscreen)
{
E_Client *ec = toplevel->surface.ec;
+ if (!ec)
+ return;
+
ELOGF("TOPLEVEL", "Request unfullscreen: lock_user_fullscreen(%d)", ec, ec->lock_user_fullscreen);
if (ec->lock_user_fullscreen)
e_desktop_toplevel_maximize_request(E_Desktop_Toplevel *toplevel)
{
E_Client *ec = toplevel->surface.ec;
- E_Maximize max = ec->maximize_type | E_MAXIMIZE_BOTH;
+
+ if (!ec)
+ return;
ELOGF("TOPLEVEL", "Request maximize: lock_user_maximize(%d)", ec, ec->lock_user_maximize);
return;
e_client_layout_apply(ec, EINA_FALSE);
- e_client_maximize(ec, max);
+ e_client_maximize(ec, (ec->maximize_type | E_MAXIMIZE_BOTH));
}
EINTERN void
{
E_Client *ec = toplevel->surface.ec;
+ if (!ec)
+ return;
+
ELOGF("TOPLEVEL", "Request unmaximize", ec);
e_client_layout_apply(ec, EINA_FALSE);
{
E_Client *ec = toplevel->surface.ec;
+ if (!ec)
+ return;
+
ELOGF("TOPLEVEL", "Request minimize: lock_client_iconify(%d)", ec, ec->lock_client_iconify);
if (ec->lock_client_iconify)
{
E_Client *ec = toplevel->surface.ec;
+ if (!ec)
+ return;
+
if ((ec->comp_data->shell.window.x == x) &&
(ec->comp_data->shell.window.y == y) &&
(ec->comp_data->shell.window.w == width) &&
{
E_Client *ec = toplevel->surface.ec;
+ if (!ec)
+ return;
+
if ((ec->icccm.min_w == width) &&
(ec->icccm.min_h == height))
return;
{
E_Client *ec = toplevel->surface.ec;
+ if (!ec)
+ return;
+
if ((ec->icccm.max_w == width) &&
(ec->icccm.max_h == height))
return;
EINTERN bool
e_desktop_toplevel_is_fullscreen(E_Desktop_Toplevel *toplevel)
{
+ if (!toplevel->surface.ec)
+ return false;
+
return toplevel->surface.ec->fullscreen;
}
EINTERN bool
e_desktop_toplevel_is_maximized(E_Desktop_Toplevel *toplevel)
{
+ if (!toplevel->surface.ec)
+ return false;
+
return !!toplevel->surface.ec->maximized;
}
EINTERN bool
e_desktop_toplevel_is_activated(E_Desktop_Toplevel *toplevel)
{
+ if (!toplevel->surface.ec)
+ return false;
+
return toplevel->surface.ec == e_client_focused_get();
}
EINTERN void
e_desktop_toplevel_fullscreen_size_get(E_Desktop_Toplevel *toplevel, int32_t *width, int32_t *height)
{
+ if (!toplevel->surface.ec)
+ return;
+
e_client_base_output_resolution_useful_geometry_get(toplevel->surface.ec, NULL, NULL, width, height);
}
EINTERN void
e_desktop_toplevel_maximized_size_get(E_Desktop_Toplevel *toplevel, int32_t *width, int32_t *height)
{
+ if (!toplevel->surface.ec)
+ return;
+
e_client_maximized_geometry_get(toplevel->surface.ec, NULL, NULL, width, height);
}