aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-09-29 17:25:58 -0400
committerGitHub <noreply@github.com>2017-09-29 17:25:58 -0400
commita48dedba3dfe93a68a2c7cd80ab896a15d84884f (patch)
tree70f57212464eb5c68c7b822df58ea6ed580e6eea /include
parent285a109d416c9bcdc0c47dfb1b9ce4e474cd34dd (diff)
parent4ccb83bf33bbf531eef7fbd20e80146562fcae64 (diff)
Merge pull request #170 from emersion/xwayland
Improve xwayland, batch 2
Diffstat (limited to 'include')
-rw-r--r--include/rootston/view.h1
-rw-r--r--include/wlr/types/wlr_wl_shell.h2
-rw-r--r--include/wlr/xwayland.h32
3 files changed, 34 insertions, 1 deletions
diff --git a/include/rootston/view.h b/include/rootston/view.h
index da3b189d..2bd71104 100644
--- a/include/rootston/view.h
+++ b/include/rootston/view.h
@@ -31,6 +31,7 @@ struct roots_xwayland_surface {
struct roots_view *view;
// TODO: Maybe destroy listener should go in roots_view
struct wl_listener destroy;
+ struct wl_listener request_configure;
};
enum roots_view_type {
diff --git a/include/wlr/types/wlr_wl_shell.h b/include/wlr/types/wlr_wl_shell.h
index 0b18a131..0db99989 100644
--- a/include/wlr/types/wlr_wl_shell.h
+++ b/include/wlr/types/wlr_wl_shell.h
@@ -106,7 +106,7 @@ void wlr_wl_shell_destroy(struct wlr_wl_shell *wlr_wl_shell);
void wlr_wl_shell_surface_ping(struct wlr_wl_shell_surface *surface);
void wlr_wl_shell_surface_configure(struct wlr_wl_shell_surface *surface,
- uint32_t edges, int32_t width, int32_t height);
+ enum wl_shell_surface_resize edges, int32_t width, int32_t height);
void wlr_wl_shell_surface_popup_done(struct wlr_wl_shell_surface *surface);
#endif
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
index 2b9d4e81..43133567 100644
--- a/include/wlr/xwayland.h
+++ b/include/wlr/xwayland.h
@@ -40,17 +40,49 @@ struct wlr_xwayland_surface {
uint16_t width, height;
bool override_redirect;
+ char *title;
+ char *class;
+ char *instance;
+ struct wlr_xwayland_surface *parent;
+ list_t *state; // list of xcb_atom_t
+ pid_t pid;
+
+ xcb_atom_t *window_type;
+ size_t window_type_len;
+
+ xcb_atom_t *protocols;
+ size_t protocols_len;
+
struct {
struct wl_signal destroy;
+
+ struct wl_signal request_configure;
+
+ struct wl_signal set_title;
+ struct wl_signal set_class;
+ struct wl_signal set_parent;
+ struct wl_signal set_state;
+ struct wl_signal set_pid;
+ struct wl_signal set_window_type;
} events;
void *data;
};
+struct wlr_xwayland_surface_configure_event {
+ struct wlr_xwayland_surface *surface;
+ int16_t x, y;
+ uint16_t width, height;
+};
+
void wlr_xwayland_destroy(struct wlr_xwayland *wlr_xwayland);
struct wlr_xwayland *wlr_xwayland_create(struct wl_display *wl_display,
struct wlr_compositor *compositor);
void wlr_xwayland_surface_activate(struct wlr_xwayland *wlr_xwayland,
struct wlr_xwayland_surface *surface);
+void wlr_xwayland_surface_configure(struct wlr_xwayland *wlr_xwayland,
+ struct wlr_xwayland_surface *surface);
+void wlr_xwayland_surface_close(struct wlr_xwayland *wlr_xwayland,
+ struct wlr_xwayland_surface *surface);
#endif