mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-15 06:59:43 -05:00
Add first try to add wl_shell to rootston
This commit is contained in:
parent
1ddda91b1b
commit
ed9a43c213
6 changed files with 97 additions and 3 deletions
|
|
@ -67,7 +67,6 @@ struct roots_desktop *desktop_create(struct roots_server *server,
|
|||
desktop->layout = wlr_output_layout_create();
|
||||
desktop->compositor = wlr_compositor_create(
|
||||
server->wl_display, server->renderer);
|
||||
desktop->wl_shell = wlr_wl_shell_create(server->wl_display);
|
||||
|
||||
wlr_cursor_attach_output_layout(server->input->cursor, desktop->layout);
|
||||
wlr_cursor_map_to_region(server->input->cursor, config->cursor.mapped_box);
|
||||
|
|
@ -79,6 +78,11 @@ struct roots_desktop *desktop_create(struct roots_server *server,
|
|||
&desktop->xdg_shell_v6_surface);
|
||||
desktop->xdg_shell_v6_surface.notify = handle_xdg_shell_v6_surface;
|
||||
|
||||
desktop->wl_shell = wlr_wl_shell_create(server->wl_display);
|
||||
wl_signal_add(&desktop->wl_shell->events.new_surface,
|
||||
&desktop->wl_shell_surface);
|
||||
desktop->wl_shell_surface.notify = handle_wl_shell_surface;
|
||||
|
||||
desktop->gamma_control_manager = wlr_gamma_control_manager_create(
|
||||
server->wl_display);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ executable(
|
|||
'main.c',
|
||||
'output.c',
|
||||
'pointer.c',
|
||||
'xdg_shell_v6.c'
|
||||
'xdg_shell_v6.c',
|
||||
'wl_shell.c'
|
||||
], dependencies: wlroots
|
||||
)
|
||||
|
|
|
|||
20
rootston/wl_shell.c
Normal file
20
rootston/wl_shell.c
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <wayland-server.h>
|
||||
#include <wlr/types/wlr_box.h>
|
||||
#include <wlr/types/wlr_surface.h>
|
||||
#include <wlr/types/wlr_wl_shell.h>
|
||||
#include <wlr/util/log.h>
|
||||
#include "rootston/desktop.h"
|
||||
#include "rootston/server.h"
|
||||
#include "rootston/input.h"
|
||||
|
||||
void handle_wl_shell_surface(struct wl_listener *listener, void *data) {
|
||||
struct roots_desktop *desktop =
|
||||
wl_container_of(listener, desktop, wl_shell_surface);
|
||||
|
||||
struct wlr_wl_shell_surface *surface = data;
|
||||
wlr_log(L_DEBUG, "new wl_shell surface");
|
||||
wlr_wl_shell_surface_ping(surface);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue