Automatically float xwayland windows

This commit is contained in:
emersion 2018-06-18 22:49:28 +01:00
parent 202ee51150
commit cda66e9a26
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
7 changed files with 116 additions and 26 deletions

View file

@ -11,7 +11,7 @@
#include <wlr/types/wlr_xdg_shell.h>
#include <wlr/render/wlr_renderer.h>
// TODO WLR: make Xwayland optional
#include <wlr/xwayland.h>
#include "sway/xwayland.h"
struct sway_server {
struct wl_display *wl_display;
@ -37,12 +37,9 @@ struct sway_server {
struct wlr_xdg_shell *xdg_shell;
struct wl_listener xdg_shell_surface;
struct wlr_xwayland *xwayland;
struct wlr_xcursor_manager *xcursor_manager;
struct sway_xwayland xwayland;
struct wl_listener xwayland_surface;
struct wlr_wl_shell *wl_shell;
struct wl_listener wl_shell_surface;
struct wl_listener xwayland_ready;
};
struct sway_server server;

25
include/sway/xwayland.h Normal file
View file

@ -0,0 +1,25 @@
#ifndef SWAY_XWAYLAND_H
#define SWAY_XWAYLAND_H
#include <wlr/xwayland.h>
#include <xcb/xproto.h>
enum atom_name {
NET_WM_WINDOW_TYPE_DIALOG,
NET_WM_WINDOW_TYPE_UTILITY,
NET_WM_WINDOW_TYPE_TOOLBAR,
NET_WM_WINDOW_TYPE_SPLASH,
NET_WM_STATE_MODAL,
ATOM_LAST,
};
struct sway_xwayland {
struct wlr_xwayland *wlr_xwayland;
struct wlr_xcursor_manager *xcursor_manager;
xcb_atom_t atoms[ATOM_LAST];
};
void handle_xwayland_ready(struct wl_listener *listener, void *data);
#endif