mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-20 06:59:42 -05:00
Merge branch 'master' into modifier-fixes
This commit is contained in:
commit
43896af90f
41 changed files with 765 additions and 103 deletions
|
|
@ -15,7 +15,7 @@ struct wlr_drm_crtc;
|
|||
// Used to provide atomic or legacy DRM functions
|
||||
struct wlr_drm_interface {
|
||||
// Enable or disable DPMS for connector
|
||||
void (*conn_enable)(struct wlr_drm_backend *drm,
|
||||
bool (*conn_enable)(struct wlr_drm_backend *drm,
|
||||
struct wlr_drm_connector *conn, bool enable);
|
||||
// Pageflip on crtc. If mode is non-NULL perform a full modeset using it.
|
||||
bool (*crtc_pageflip)(struct wlr_drm_backend *drm,
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
struct roots_output_config {
|
||||
char *name;
|
||||
bool enable;
|
||||
enum wl_output_transform transform;
|
||||
int x, y;
|
||||
float scale;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include <wlr/types/wlr_primary_selection.h>
|
||||
#include <wlr/types/wlr_screenshooter.h>
|
||||
#include <wlr/types/wlr_list.h>
|
||||
#include <wlr/types/wlr_idle.h>
|
||||
#include "rootston/view.h"
|
||||
#include "rootston/config.h"
|
||||
|
||||
|
|
@ -44,6 +45,7 @@ struct roots_desktop {
|
|||
struct wlr_screenshooter *screenshooter;
|
||||
struct wlr_server_decoration_manager *server_decoration_manager;
|
||||
struct wlr_primary_selection_device_manager *primary_selection_device_manager;
|
||||
struct wlr_idle *idle;
|
||||
|
||||
struct wl_listener output_add;
|
||||
struct wl_listener output_remove;
|
||||
|
|
|
|||
|
|
@ -11,8 +11,12 @@
|
|||
/**
|
||||
* Creates a new wlr_wl_backend. This backend will be created with no outputs;
|
||||
* you must use wlr_wl_output_create to add them.
|
||||
*
|
||||
* The `remote` argument is the name of the host compositor wayland socket. Set
|
||||
* to NULL for the default behaviour (WAYLAND_DISPLAY env variable or wayland-0
|
||||
* default)
|
||||
*/
|
||||
struct wlr_backend *wlr_wl_backend_create(struct wl_display *display);
|
||||
struct wlr_backend *wlr_wl_backend_create(struct wl_display *display, const char *remote);
|
||||
|
||||
/**
|
||||
* Adds a new output to this backend. You may remove outputs by destroying them.
|
||||
|
|
|
|||
|
|
@ -26,14 +26,11 @@ struct wlr_output_impl {
|
|||
};
|
||||
|
||||
void wlr_output_init(struct wlr_output *output, struct wlr_backend *backend,
|
||||
const struct wlr_output_impl *impl);
|
||||
void wlr_output_free(struct wlr_output *output);
|
||||
const struct wlr_output_impl *impl, struct wl_display *display);
|
||||
void wlr_output_update_mode(struct wlr_output *output,
|
||||
struct wlr_output_mode *mode);
|
||||
void wlr_output_update_custom_mode(struct wlr_output *output, int32_t width,
|
||||
int32_t height, int32_t refresh);
|
||||
struct wl_global *wlr_output_create_global(struct wlr_output *wlr_output,
|
||||
struct wl_display *display);
|
||||
void wlr_output_destroy_global(struct wlr_output *wlr_output);
|
||||
void wlr_output_update_enabled(struct wlr_output *output, bool enabled);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
51
include/wlr/types/wlr_idle.h
Normal file
51
include/wlr/types/wlr_idle.h
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#ifndef WLR_TYPES_WLR_IDLE_H
|
||||
#define WLR_TYPES_WLR_IDLE_H
|
||||
|
||||
#include <wayland-server.h>
|
||||
#include <wlr/types/wlr_seat.h>
|
||||
|
||||
/**
|
||||
* Idle protocol is used to create timers which will notify the client when the
|
||||
* compositor does not receive any input for a given time(in milliseconds). Also
|
||||
* the client will be notify when the timer receve an activity notify and already
|
||||
* was in idle state. Besides this, the client is able to simulate user activity
|
||||
* which will reset the timers and at any time can destroy the timer.
|
||||
*/
|
||||
|
||||
|
||||
struct wlr_idle {
|
||||
struct wl_global *wl_global;
|
||||
struct wl_list idle_timers; // wlr_idle_timeout::link
|
||||
struct wl_event_loop *event_loop;
|
||||
|
||||
struct wl_listener display_destroy;
|
||||
struct wl_signal activity_notify;
|
||||
|
||||
void *data;
|
||||
};
|
||||
|
||||
struct wlr_idle_timeout {
|
||||
struct wl_resource *resource;
|
||||
struct wl_list link;
|
||||
struct wlr_seat *seat;
|
||||
|
||||
struct wl_event_source *idle_source;
|
||||
bool idle_state;
|
||||
uint32_t timeout; // milliseconds
|
||||
|
||||
struct wl_listener input_listener;
|
||||
struct wl_listener seat_destroy;
|
||||
|
||||
void *data;
|
||||
};
|
||||
|
||||
struct wlr_idle *wlr_idle_create(struct wl_display *display);
|
||||
|
||||
void wlr_idle_destroy(struct wlr_idle *idle);
|
||||
|
||||
/**
|
||||
* Send notification to restart all timers for the given seat. Called by
|
||||
* compositor when there is an user activity event on that seat.
|
||||
*/
|
||||
void wlr_idle_notify_activity(struct wlr_idle *idle, struct wlr_seat *seat);
|
||||
#endif
|
||||
|
|
@ -36,19 +36,19 @@ struct wlr_output_impl;
|
|||
struct wlr_output {
|
||||
const struct wlr_output_impl *impl;
|
||||
struct wlr_backend *backend;
|
||||
struct wl_display *display;
|
||||
|
||||
struct wl_global *wl_global;
|
||||
struct wl_list wl_resources;
|
||||
|
||||
uint32_t flags;
|
||||
char name[16];
|
||||
char make[48];
|
||||
char model[16];
|
||||
char serial[16];
|
||||
float scale;
|
||||
int32_t width, height;
|
||||
int32_t refresh; // mHz
|
||||
int32_t phys_width, phys_height; // mm
|
||||
|
||||
bool enabled;
|
||||
float scale;
|
||||
enum wl_output_subpixel subpixel;
|
||||
enum wl_output_transform transform;
|
||||
bool needs_swap;
|
||||
|
|
@ -58,11 +58,14 @@ struct wlr_output {
|
|||
// Note: some backends may have zero modes
|
||||
struct wl_list modes;
|
||||
struct wlr_output_mode *current_mode;
|
||||
int32_t width, height;
|
||||
int32_t refresh; // mHz
|
||||
|
||||
struct {
|
||||
struct wl_signal frame;
|
||||
struct wl_signal swap_buffers;
|
||||
struct wl_signal resolution;
|
||||
struct wl_signal enable;
|
||||
struct wl_signal mode;
|
||||
struct wl_signal scale;
|
||||
struct wl_signal transform;
|
||||
struct wl_signal destroy;
|
||||
|
|
|
|||
|
|
@ -98,9 +98,12 @@ struct wlr_xwayland_surface {
|
|||
char *title;
|
||||
char *class;
|
||||
char *instance;
|
||||
struct wlr_xwayland_surface *parent;
|
||||
pid_t pid;
|
||||
|
||||
struct wl_list children; // wlr_xwayland_surface::parent_link
|
||||
struct wlr_xwayland_surface *parent;
|
||||
struct wl_list parent_link; // wlr_xwayland_surface::children
|
||||
|
||||
xcb_atom_t *window_type;
|
||||
size_t window_type_len;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue