#define E_DESKTOP_SHELL_INTERN_H
#include "e_compositor_intern.h"
+#include "e_client_intern.h"
#include <stdbool.h>
#include <wayland-server.h>
void e_desktop_surface_unmap(E_Desktop_Surface *surface);
E_Desktop_Toplevel *e_desktop_toplevel_try_from_surface(E_Surface *e_surface);
+E_Client *e_desktop_toplevel_ec_get(E_Desktop_Toplevel *toplevel);
bool e_desktop_toplevel_is_fullscreen(E_Desktop_Toplevel *toplevel);
bool e_desktop_toplevel_is_maximized(E_Desktop_Toplevel *toplevel);
bool e_desktop_toplevel_is_activated(E_Desktop_Toplevel *toplevel);
-#include "e_compositor_intern.h"
-#include "e_desktop_shell_intern.h"
+#include "e_desktop_xdg_shell_v6_intern.h"
#include "e_desktop_shell_private.h"
-#include "e_client_intern.h"
+#include "e_compositor_intern.h"
#include <stdbool.h>
#include <libds/surface.h>
#define LOG(f, x...) INF("XDG6 <LOG> " f, ##x)
typedef struct _E_Desktop_Xdg_Shell_V6 E_Desktop_Xdg_Shell_V6;
-typedef struct _E_Desktop_Xdg_Toplevel_V6 E_Desktop_Xdg_Toplevel_V6;
struct _E_Desktop_Xdg_Shell_V6
{
struct _E_Desktop_Xdg_Toplevel_V6
{
struct ds_xdg_toplevel_v6 *ds_toplevel;
- E_Client *ec;
E_Desktop_Toplevel *toplevel;
E_Desktop_Surface_Interface impl;
return EINA_TRUE;
}
-EINTERN E_Client *
-e_desktop_xdg_shell_v6_xdg_surface_ec_get(struct wl_resource *resource)
+EINTERN E_Desktop_Xdg_Toplevel_V6 *
+e_desktop_xdg_toplevel_v6_from_shell_surface_resource(struct wl_resource *shell_surface_resource)
{
- E_Desktop_Xdg_Toplevel_V6 *toplevel;
-
- toplevel = _toplevel_from_shell_surface_resource(resource);
- if (!toplevel)
- {
- ERR("No E_Desktop_Xdg_Toplevel_V6 in wl_resource");
- return NULL;
- }
+ return _toplevel_from_shell_surface_resource(shell_surface_resource);
+}
- return toplevel->ec;
+EINTERN E_Desktop_Toplevel *
+e_desktop_xdg_toplevel_v6_desktop_toplevel_get(E_Desktop_Xdg_Toplevel_V6 *toplevel)
+{
+ return toplevel->toplevel;
}
static void
_toplevel_desktop_surface_interface_init(&toplevel->impl);
toplevel->ds_toplevel = ds_xdg_surface->toplevel;
- toplevel->ec = e_surface_ec_get(surface);
toplevel->toplevel = e_desktop_toplevel_create(surface, &toplevel->impl, ds_xdg_surface->resource);
_toplevel_init(toplevel);
_toplevel_listener_init(toplevel);
- ELOGF("XDG6", "Created E_Desktop_Xdg_Toplevel_V6(%p)", toplevel->ec, toplevel);
+ ELOGF("XDG6", "Created E_Desktop_Xdg_Toplevel_V6(%p)", e_surface_ec_get(surface), toplevel);
}
static void
toplevel = wl_container_of(listener, toplevel, destroy);
- ELOGF("XDG6", "Destroy E_Desktop_Xdg_Toplevel_V6(%p)", toplevel->ec, toplevel);
+ LOG("Destroy E_Desktop_Xdg_Toplevel_V6(%p)", toplevel);
_toplevel_listener_finish(toplevel);
free(toplevel);