mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-24 06:59:45 -05:00
Merge branch 'master' into laggy-move-resize
This commit is contained in:
commit
27937add76
63 changed files with 2229 additions and 1163 deletions
|
|
@ -2,12 +2,12 @@
|
|||
#define _ROOTSTON_CONFIG_H
|
||||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/types/wlr_input_device.h>
|
||||
#include <wlr/types/wlr_cursor.h>
|
||||
|
||||
struct output_config {
|
||||
struct roots_output_config {
|
||||
char *name;
|
||||
enum wl_output_transform transform;
|
||||
int x, y;
|
||||
int scale;
|
||||
struct wl_list link;
|
||||
struct {
|
||||
int width, height;
|
||||
|
|
@ -15,14 +15,15 @@ struct output_config {
|
|||
} mode;
|
||||
};
|
||||
|
||||
struct device_config {
|
||||
struct roots_device_config {
|
||||
char *name;
|
||||
char *mapped_output;
|
||||
struct wlr_box *mapped_box;
|
||||
char *seat;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct binding_config {
|
||||
struct roots_binding_config {
|
||||
uint32_t modifiers;
|
||||
xkb_keysym_t *keysyms;
|
||||
size_t keysyms_len;
|
||||
|
|
@ -30,7 +31,7 @@ struct binding_config {
|
|||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct keyboard_config {
|
||||
struct roots_keyboard_config {
|
||||
char *name;
|
||||
uint32_t meta_key;
|
||||
char *rules;
|
||||
|
|
@ -43,7 +44,7 @@ struct keyboard_config {
|
|||
|
||||
struct roots_config {
|
||||
bool xwayland;
|
||||
// TODO: Multiple cursors, multiseat
|
||||
|
||||
struct {
|
||||
char *mapped_output;
|
||||
struct wlr_box *mapped_box;
|
||||
|
|
@ -57,29 +58,37 @@ struct roots_config {
|
|||
char *startup_cmd;
|
||||
};
|
||||
|
||||
struct roots_config *parse_args(int argc, char *argv[]);
|
||||
/**
|
||||
* Create a roots config from the given command line arguments. Command line
|
||||
* arguments can specify the location of the config file. If it is not
|
||||
* specified, the default location will be used.
|
||||
*/
|
||||
struct roots_config *roots_config_create_from_args(int argc, char *argv[]);
|
||||
|
||||
/**
|
||||
* Destroy the config and free its resources.
|
||||
*/
|
||||
void roots_config_destroy(struct roots_config *config);
|
||||
|
||||
/**
|
||||
* Get configuration for the output. If the output is not configured, returns
|
||||
* NULL.
|
||||
*/
|
||||
struct output_config *config_get_output(struct roots_config *config,
|
||||
struct roots_output_config *roots_config_get_output(struct roots_config *config,
|
||||
struct wlr_output *output);
|
||||
|
||||
/**
|
||||
* Get configuration for the device. If the device is not configured, returns
|
||||
* NULL.
|
||||
*/
|
||||
struct device_config *config_get_device(struct roots_config *config,
|
||||
struct roots_device_config *roots_config_get_device(struct roots_config *config,
|
||||
struct wlr_input_device *device);
|
||||
|
||||
/**
|
||||
* Get configuration for the keyboard. If the keyboard is not configured,
|
||||
* returns NULL. A NULL device returns the default config for keyboards.
|
||||
*/
|
||||
struct keyboard_config *config_get_keyboard(struct roots_config *config,
|
||||
struct wlr_input_device *device);
|
||||
struct roots_keyboard_config *roots_config_get_keyboard(
|
||||
struct roots_config *config, struct wlr_input_device *device);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
103
include/rootston/cursor.h
Normal file
103
include/rootston/cursor.h
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
#ifndef _ROOTSTON_CURSOR_H
|
||||
#define _ROOTSTON_CURSOR_H
|
||||
|
||||
#include "rootston/seat.h"
|
||||
|
||||
enum roots_cursor_mode {
|
||||
ROOTS_CURSOR_PASSTHROUGH = 0,
|
||||
ROOTS_CURSOR_MOVE = 1,
|
||||
ROOTS_CURSOR_RESIZE = 2,
|
||||
ROOTS_CURSOR_ROTATE = 3,
|
||||
};
|
||||
|
||||
enum roots_cursor_resize_edge {
|
||||
ROOTS_CURSOR_RESIZE_EDGE_TOP = 1,
|
||||
ROOTS_CURSOR_RESIZE_EDGE_BOTTOM = 2,
|
||||
ROOTS_CURSOR_RESIZE_EDGE_LEFT = 4,
|
||||
ROOTS_CURSOR_RESIZE_EDGE_RIGHT = 8,
|
||||
};
|
||||
|
||||
struct roots_input_event {
|
||||
uint32_t serial;
|
||||
struct wlr_cursor *cursor;
|
||||
struct wlr_input_device *device;
|
||||
};
|
||||
|
||||
struct roots_cursor {
|
||||
struct roots_seat *seat;
|
||||
struct wlr_cursor *cursor;
|
||||
|
||||
enum roots_cursor_mode mode;
|
||||
|
||||
// state from input (review if this is necessary)
|
||||
struct wlr_xcursor_manager *xcursor_manager;
|
||||
struct wlr_seat *wl_seat;
|
||||
struct wl_client *cursor_client;
|
||||
int offs_x, offs_y;
|
||||
int view_x, view_y, view_width, view_height;
|
||||
float view_rotation;
|
||||
uint32_t resize_edges;
|
||||
// Ring buffer of input events that could trigger move/resize/rotate
|
||||
int input_events_idx;
|
||||
struct wl_list touch_points;
|
||||
struct roots_input_event input_events[16];
|
||||
|
||||
struct wl_listener motion;
|
||||
struct wl_listener motion_absolute;
|
||||
struct wl_listener button;
|
||||
struct wl_listener axis;
|
||||
|
||||
struct wl_listener touch_down;
|
||||
struct wl_listener touch_up;
|
||||
struct wl_listener touch_motion;
|
||||
|
||||
struct wl_listener tool_axis;
|
||||
struct wl_listener tool_tip;
|
||||
|
||||
struct wl_listener pointer_grab_begin;
|
||||
struct wl_listener pointer_grab_end;
|
||||
|
||||
struct wl_listener request_set_cursor;
|
||||
};
|
||||
|
||||
struct roots_cursor *roots_cursor_create(struct roots_seat *seat);
|
||||
|
||||
void roots_cursor_destroy(struct roots_cursor *cursor);
|
||||
|
||||
void roots_cursor_handle_motion(struct roots_cursor *cursor,
|
||||
struct wlr_event_pointer_motion *event);
|
||||
|
||||
void roots_cursor_handle_motion_absolute(struct roots_cursor *cursor,
|
||||
struct wlr_event_pointer_motion_absolute *event);
|
||||
|
||||
void roots_cursor_handle_button(struct roots_cursor *cursor,
|
||||
struct wlr_event_pointer_button *event);
|
||||
|
||||
void roots_cursor_handle_axis(struct roots_cursor *cursor,
|
||||
struct wlr_event_pointer_axis *event);
|
||||
|
||||
void roots_cursor_handle_touch_down(struct roots_cursor *cursor,
|
||||
struct wlr_event_touch_down *event);
|
||||
|
||||
void roots_cursor_handle_touch_up(struct roots_cursor *cursor,
|
||||
struct wlr_event_touch_up *event);
|
||||
|
||||
void roots_cursor_handle_touch_motion(struct roots_cursor *cursor,
|
||||
struct wlr_event_touch_motion *event);
|
||||
|
||||
void roots_cursor_handle_tool_axis(struct roots_cursor *cursor,
|
||||
struct wlr_event_tablet_tool_axis *event);
|
||||
|
||||
void roots_cursor_handle_tool_tip(struct roots_cursor *cursor,
|
||||
struct wlr_event_tablet_tool_tip *event);
|
||||
|
||||
void roots_cursor_handle_request_set_cursor(struct roots_cursor *cursor,
|
||||
struct wlr_seat_pointer_request_set_cursor_event *event);
|
||||
|
||||
void roots_cursor_handle_pointer_grab_begin(struct roots_cursor *cursor,
|
||||
struct wlr_seat_pointer_grab *grab);
|
||||
|
||||
void roots_cursor_handle_pointer_grab_end(struct roots_cursor *cursor,
|
||||
struct wlr_seat_pointer_grab *grab);
|
||||
|
||||
#endif
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
#include <wlr/types/wlr_compositor.h>
|
||||
#include <wlr/types/wlr_wl_shell.h>
|
||||
#include <wlr/types/wlr_xdg_shell_v6.h>
|
||||
#include <wlr/types/wlr_xcursor_manager.h>
|
||||
#include <wlr/types/wlr_gamma_control.h>
|
||||
#include <wlr/types/wlr_screenshooter.h>
|
||||
#include <wlr/types/wlr_list.h>
|
||||
|
|
@ -31,6 +32,7 @@ struct roots_desktop {
|
|||
struct roots_config *config;
|
||||
|
||||
struct wlr_output_layout *layout;
|
||||
struct wlr_xcursor_manager *xcursor_manager;
|
||||
|
||||
struct wlr_compositor *compositor;
|
||||
struct wlr_wl_shell *wl_shell;
|
||||
|
|
|
|||
|
|
@ -1,171 +1,31 @@
|
|||
#ifndef _ROOTSTON_INPUT_H
|
||||
#define _ROOTSTON_INPUT_H
|
||||
#include <xkbcommon/xkbcommon.h>
|
||||
#include <wayland-server.h>
|
||||
#include <wlr/types/wlr_input_device.h>
|
||||
#include <wlr/types/wlr_cursor.h>
|
||||
#include <wlr/types/wlr_seat.h>
|
||||
#include <wlr/xcursor.h>
|
||||
#include "rootston/cursor.h"
|
||||
#include "rootston/config.h"
|
||||
#include "rootston/view.h"
|
||||
#include "rootston/server.h"
|
||||
|
||||
#define ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP 32
|
||||
|
||||
struct roots_keyboard {
|
||||
struct roots_input *input;
|
||||
struct wlr_input_device *device;
|
||||
struct wl_listener key;
|
||||
struct wl_listener modifiers;
|
||||
struct wl_list link;
|
||||
|
||||
xkb_keysym_t pressed_keysyms[ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP];
|
||||
};
|
||||
|
||||
struct roots_pointer {
|
||||
struct roots_input *input;
|
||||
struct wlr_input_device *device;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct roots_touch {
|
||||
struct roots_input *input;
|
||||
struct wlr_input_device *device;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
// TODO: tablet pad
|
||||
struct roots_tablet_tool {
|
||||
struct roots_input *input;
|
||||
struct wlr_input_device *device;
|
||||
struct wl_listener axis;
|
||||
struct wl_listener proximity;
|
||||
struct wl_listener tip;
|
||||
struct wl_listener button;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
enum roots_cursor_mode {
|
||||
ROOTS_CURSOR_PASSTHROUGH = 0,
|
||||
ROOTS_CURSOR_MOVE = 1,
|
||||
ROOTS_CURSOR_RESIZE = 2,
|
||||
ROOTS_CURSOR_ROTATE = 3,
|
||||
};
|
||||
|
||||
enum roots_cursor_resize_edge {
|
||||
ROOTS_CURSOR_RESIZE_EDGE_TOP = 1,
|
||||
ROOTS_CURSOR_RESIZE_EDGE_BOTTOM = 2,
|
||||
ROOTS_CURSOR_RESIZE_EDGE_LEFT = 4,
|
||||
ROOTS_CURSOR_RESIZE_EDGE_RIGHT = 8,
|
||||
};
|
||||
|
||||
struct roots_input_event {
|
||||
uint32_t serial;
|
||||
struct wlr_cursor *cursor;
|
||||
struct wlr_input_device *device;
|
||||
};
|
||||
|
||||
struct roots_drag_icon {
|
||||
struct wlr_surface *surface;
|
||||
struct wl_list link; // roots_input::drag_icons
|
||||
bool mapped;
|
||||
|
||||
int32_t sx;
|
||||
int32_t sy;
|
||||
|
||||
struct wl_listener surface_destroy;
|
||||
struct wl_listener surface_commit;
|
||||
};
|
||||
|
||||
struct roots_touch_point {
|
||||
struct roots_touch *device;
|
||||
int32_t slot;
|
||||
double x, y;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct roots_input {
|
||||
struct roots_config *config;
|
||||
struct roots_server *server;
|
||||
|
||||
// TODO: multiseat, multicursor
|
||||
struct wlr_cursor *cursor;
|
||||
struct wlr_xcursor_theme *xcursor_theme;
|
||||
struct wlr_seat *wl_seat;
|
||||
struct wl_list drag_icons;
|
||||
struct wl_client *cursor_client;
|
||||
|
||||
enum roots_cursor_mode mode;
|
||||
struct roots_view *active_view;
|
||||
int offs_x, offs_y;
|
||||
int view_x, view_y, view_width, view_height;
|
||||
float view_rotation;
|
||||
uint32_t resize_edges;
|
||||
|
||||
// Ring buffer of input events that could trigger move/resize/rotate
|
||||
int input_events_idx;
|
||||
struct roots_input_event input_events[16];
|
||||
|
||||
struct wl_list keyboards;
|
||||
struct wl_list pointers;
|
||||
struct wl_list touch;
|
||||
struct wl_list tablet_tools;
|
||||
|
||||
struct wl_listener input_add;
|
||||
struct wl_listener input_remove;
|
||||
|
||||
struct wl_listener cursor_motion;
|
||||
struct wl_listener cursor_motion_absolute;
|
||||
struct wl_listener cursor_button;
|
||||
struct wl_listener cursor_axis;
|
||||
|
||||
struct wl_listener cursor_touch_down;
|
||||
struct wl_listener cursor_touch_up;
|
||||
struct wl_listener cursor_touch_motion;
|
||||
|
||||
struct wl_listener cursor_tool_axis;
|
||||
struct wl_listener cursor_tool_tip;
|
||||
|
||||
struct wl_listener pointer_grab_begin;
|
||||
struct wl_list touch_points;
|
||||
|
||||
struct wl_listener pointer_grab_end;
|
||||
|
||||
struct wl_listener request_set_cursor;
|
||||
struct wl_list seats;
|
||||
};
|
||||
|
||||
struct roots_input *input_create(struct roots_server *server,
|
||||
struct roots_config *config);
|
||||
void input_destroy(struct roots_input *input);
|
||||
|
||||
void pointer_add(struct wlr_input_device *device, struct roots_input *input);
|
||||
void pointer_remove(struct wlr_input_device *device, struct roots_input *input);
|
||||
void keyboard_add(struct wlr_input_device *device, struct roots_input *input);
|
||||
void keyboard_remove(struct wlr_input_device *device, struct roots_input *input);
|
||||
void touch_add(struct wlr_input_device *device, struct roots_input *input);
|
||||
void touch_remove(struct wlr_input_device *device, struct roots_input *input);
|
||||
void tablet_tool_add(struct wlr_input_device *device, struct roots_input *input);
|
||||
void tablet_tool_remove(struct wlr_input_device *device, struct roots_input *input);
|
||||
struct roots_seat *input_seat_from_wlr_seat(struct roots_input *input,
|
||||
struct wlr_seat *seat);
|
||||
|
||||
void cursor_initialize(struct roots_input *input);
|
||||
void cursor_load_config(struct roots_config *config,
|
||||
struct wlr_cursor *cursor,
|
||||
struct roots_input *input,
|
||||
struct roots_desktop *desktop);
|
||||
const struct roots_input_event *get_input_event(struct roots_input *input,
|
||||
uint32_t serial);
|
||||
void view_begin_move(struct roots_input *input, struct wlr_cursor *cursor,
|
||||
struct roots_view *view);
|
||||
void view_begin_resize(struct roots_input *input, struct wlr_cursor *cursor,
|
||||
struct roots_view *view, uint32_t edges);
|
||||
|
||||
struct wlr_xcursor *get_default_xcursor(struct wlr_xcursor_theme *theme);
|
||||
struct wlr_xcursor *get_move_xcursor(struct wlr_xcursor_theme *theme);
|
||||
struct wlr_xcursor *get_resize_xcursor(struct wlr_xcursor_theme *theme,
|
||||
uint32_t edges);
|
||||
struct wlr_xcursor *get_rotate_xcursor(struct wlr_xcursor_theme *theme);
|
||||
|
||||
void set_view_focus(struct roots_input *input, struct roots_desktop *desktop,
|
||||
struct roots_view *view);
|
||||
bool input_view_has_focus(struct roots_input *input, struct roots_view *view);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
33
include/rootston/keyboard.h
Normal file
33
include/rootston/keyboard.h
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
#ifndef _ROOTSTON_KEYBOARD_H
|
||||
#define _ROOTSTON_KEYBOARD_H
|
||||
|
||||
#include <xkbcommon/xkbcommon.h>
|
||||
#include "rootston/input.h"
|
||||
|
||||
#define ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP 32
|
||||
|
||||
struct roots_keyboard {
|
||||
struct roots_input *input;
|
||||
struct roots_seat *seat;
|
||||
struct wlr_input_device *device;
|
||||
struct roots_keyboard_config *config;
|
||||
struct wl_list link;
|
||||
|
||||
struct wl_listener keyboard_key;
|
||||
struct wl_listener keyboard_modifiers;
|
||||
|
||||
xkb_keysym_t pressed_keysyms_translated[ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP];
|
||||
xkb_keysym_t pressed_keysyms_raw[ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP];
|
||||
};
|
||||
|
||||
struct roots_keyboard *roots_keyboard_create(struct wlr_input_device *device,
|
||||
struct roots_input *input);
|
||||
|
||||
void roots_keyboard_destroy(struct roots_keyboard *keyboard);
|
||||
|
||||
void roots_keyboard_handle_key(struct roots_keyboard *keyboard,
|
||||
struct wlr_event_keyboard_key *event);
|
||||
|
||||
void roots_keyboard_handle_modifiers(struct roots_keyboard *r_keyboard);
|
||||
|
||||
#endif
|
||||
88
include/rootston/seat.h
Normal file
88
include/rootston/seat.h
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
#ifndef _ROOTSTON_SEAT_H
|
||||
#define _ROOTSTON_SEAT_H
|
||||
#include <wayland-server.h>
|
||||
#include "rootston/input.h"
|
||||
#include "rootston/keyboard.h"
|
||||
|
||||
struct roots_drag_icon {
|
||||
struct wlr_surface *surface;
|
||||
struct wl_list link; // roots_seat::drag_icons
|
||||
bool mapped;
|
||||
|
||||
int32_t sx;
|
||||
int32_t sy;
|
||||
|
||||
struct wl_listener surface_destroy;
|
||||
struct wl_listener surface_commit;
|
||||
};
|
||||
|
||||
struct roots_seat {
|
||||
struct roots_input *input;
|
||||
struct wlr_seat *seat;
|
||||
struct roots_cursor *cursor;
|
||||
struct wl_list link;
|
||||
struct wl_list drag_icons;
|
||||
|
||||
struct roots_view *focus;
|
||||
|
||||
struct wl_list keyboards;
|
||||
struct wl_list pointers;
|
||||
struct wl_list touch;
|
||||
struct wl_list tablet_tools;
|
||||
};
|
||||
|
||||
struct roots_pointer {
|
||||
struct roots_seat *seat;
|
||||
struct wlr_input_device *device;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct roots_touch {
|
||||
struct roots_seat *seat;
|
||||
struct wlr_input_device *device;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct roots_touch_point {
|
||||
struct roots_touch *device;
|
||||
int32_t slot;
|
||||
double x, y;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct roots_tablet_tool {
|
||||
struct roots_seat *seat;
|
||||
struct wlr_input_device *device;
|
||||
struct wl_listener axis;
|
||||
struct wl_listener proximity;
|
||||
struct wl_listener tip;
|
||||
struct wl_listener button;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct roots_seat *roots_seat_create(struct roots_input *input, char *name);
|
||||
|
||||
void roots_seat_destroy(struct roots_seat *seat);
|
||||
|
||||
void roots_seat_add_device(struct roots_seat *seat,
|
||||
struct wlr_input_device *device);
|
||||
|
||||
void roots_seat_remove_device(struct roots_seat *seat,
|
||||
struct wlr_input_device *device);
|
||||
|
||||
void roots_seat_configure_cursor(struct roots_seat *seat);
|
||||
|
||||
void roots_seat_configure_xcursor(struct roots_seat *seat);
|
||||
|
||||
bool roots_seat_has_meta_pressed(struct roots_seat *seat);
|
||||
|
||||
void roots_seat_focus_view(struct roots_seat *seat, struct roots_view *view);
|
||||
|
||||
void roots_seat_begin_move(struct roots_seat *seat, struct roots_view *view);
|
||||
|
||||
void roots_seat_begin_resize(struct roots_seat *seat, struct roots_view *view,
|
||||
uint32_t edges);
|
||||
|
||||
void roots_seat_begin_rotate(struct roots_seat *seat, struct roots_view *view);
|
||||
|
||||
#endif
|
||||
|
|
@ -11,9 +11,10 @@ struct roots_wl_shell_surface {
|
|||
|
||||
// TODO: Maybe destroy listener should go in roots_view
|
||||
struct wl_listener destroy;
|
||||
struct wl_listener ping_timeout;
|
||||
struct wl_listener request_move;
|
||||
struct wl_listener request_resize;
|
||||
struct wl_listener request_set_maximized;
|
||||
struct wl_listener set_state;
|
||||
|
||||
struct wl_listener surface_commit;
|
||||
};
|
||||
|
|
@ -26,6 +27,7 @@ struct roots_xdg_surface_v6 {
|
|||
struct wl_listener destroy;
|
||||
struct wl_listener request_move;
|
||||
struct wl_listener request_resize;
|
||||
struct wl_listener request_maximize;
|
||||
|
||||
struct {
|
||||
bool needs_move;
|
||||
|
|
@ -42,6 +44,7 @@ struct roots_xwayland_surface {
|
|||
struct wl_listener request_configure;
|
||||
struct wl_listener request_move;
|
||||
struct wl_listener request_resize;
|
||||
struct wl_listener request_maximize;
|
||||
struct wl_listener map_notify;
|
||||
struct wl_listener unmap_notify;
|
||||
};
|
||||
|
|
@ -54,8 +57,17 @@ enum roots_view_type {
|
|||
|
||||
struct roots_view {
|
||||
struct roots_desktop *desktop;
|
||||
|
||||
double x, y;
|
||||
float rotation;
|
||||
|
||||
bool maximized;
|
||||
struct {
|
||||
double x, y;
|
||||
uint32_t width, height;
|
||||
float rotation;
|
||||
} saved;
|
||||
|
||||
// TODO: Something for roots-enforced width/height
|
||||
enum roots_view_type type;
|
||||
union {
|
||||
|
|
@ -73,25 +85,28 @@ struct roots_view {
|
|||
#endif
|
||||
};
|
||||
struct wlr_surface *wlr_surface;
|
||||
|
||||
// TODO: This would probably be better as a field that's updated on a
|
||||
// configure event from the xdg_shell
|
||||
// If not then this should follow the typical type/impl pattern we use
|
||||
// elsewhere
|
||||
void (*get_size)(struct roots_view *view, struct wlr_box *box);
|
||||
void (*get_size)(const struct roots_view *view, struct wlr_box *box);
|
||||
void (*activate)(struct roots_view *view, bool active);
|
||||
void (*move)(struct roots_view *view, double x, double y);
|
||||
void (*resize)(struct roots_view *view, uint32_t width, uint32_t height);
|
||||
void (*move_resize)(struct roots_view *view, double x, double y,
|
||||
uint32_t width, uint32_t height);
|
||||
void (*maximize)(struct roots_view *view, bool maximized);
|
||||
void (*close)(struct roots_view *view);
|
||||
};
|
||||
|
||||
void view_get_size(struct roots_view *view, struct wlr_box *box);
|
||||
void view_get_box(const struct roots_view *view, struct wlr_box *box);
|
||||
void view_activate(struct roots_view *view, bool active);
|
||||
void view_move(struct roots_view *view, double x, double y);
|
||||
void view_resize(struct roots_view *view, uint32_t width, uint32_t height);
|
||||
void view_move_resize(struct roots_view *view, double x, double y,
|
||||
uint32_t width, uint32_t height);
|
||||
void view_maximize(struct roots_view *view, bool maximized);
|
||||
void view_close(struct roots_view *view);
|
||||
bool view_center(struct roots_view *view);
|
||||
void view_setup(struct roots_view *view);
|
||||
|
|
|
|||
14
include/rootston/xcursor.h
Normal file
14
include/rootston/xcursor.h
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#ifndef _ROOTSTON_XCURSOR_H
|
||||
#define _ROOTSTON_XCURSOR_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define ROOTS_XCURSOR_SIZE 16
|
||||
|
||||
#define ROOTS_XCURSOR_DEFAULT "left_ptr"
|
||||
#define ROOTS_XCURSOR_MOVE "grabbing"
|
||||
#define ROOTS_XCURSOR_ROTATE "grabbing"
|
||||
|
||||
const char *roots_xcursor_get_resize_name(uint32_t edges);
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue