aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/sway/commands.h2
-rw-r--r--include/sway/config.h2
-rw-r--r--include/sway/input/cursor.h9
-rw-r--r--include/sway/input/input-manager.h4
-rw-r--r--include/sway/input/seat.h86
-rw-r--r--include/sway/output.h8
-rw-r--r--include/sway/tree/container.h2
-rw-r--r--include/swaybar/bar.h1
-rw-r--r--include/swaybar/config.h2
-rw-r--r--include/swaylock/swaylock.h5
10 files changed, 89 insertions, 32 deletions
diff --git a/include/sway/commands.h b/include/sway/commands.h
index ffc18789..ec21f4e1 100644
--- a/include/sway/commands.h
+++ b/include/sway/commands.h
@@ -199,6 +199,8 @@ sway_cmd bar_cmd_id;
sway_cmd bar_cmd_position;
sway_cmd bar_cmd_separator_symbol;
sway_cmd bar_cmd_status_command;
+sway_cmd bar_cmd_status_edge_padding;
+sway_cmd bar_cmd_status_padding;
sway_cmd bar_cmd_pango_markup;
sway_cmd bar_cmd_strip_workspace_numbers;
sway_cmd bar_cmd_strip_workspace_name;
diff --git a/include/sway/config.h b/include/sway/config.h
index 29c21afe..a667984d 100644
--- a/include/sway/config.h
+++ b/include/sway/config.h
@@ -232,6 +232,8 @@ struct bar_config {
bool verbose;
struct side_gaps gaps;
pid_t pid;
+ int status_padding;
+ int status_edge_padding;
struct {
char *background;
char *statusline;
diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h
index 4636bf6b..77aa0ea1 100644
--- a/include/sway/input/cursor.h
+++ b/include/sway/input/cursor.h
@@ -50,6 +50,12 @@ struct sway_cursor {
size_t pressed_button_count;
};
+struct sway_node;
+
+struct sway_node *node_at_coords(
+ struct sway_seat *seat, double lx, double ly,
+ struct wlr_surface **surface, double *sx, double *sy);
+
void sway_cursor_destroy(struct sway_cursor *cursor);
struct sway_cursor *sway_cursor_create(struct sway_seat *seat);
@@ -74,6 +80,9 @@ void dispatch_cursor_button(struct sway_cursor *cursor,
struct wlr_input_device *device, uint32_t time_msec, uint32_t button,
enum wlr_button_state state);
+void dispatch_cursor_axis(struct sway_cursor *cursor,
+ struct wlr_event_pointer_axis *event);
+
void cursor_set_image(struct sway_cursor *cursor, const char *image,
struct wl_client *client);
diff --git a/include/sway/input/input-manager.h b/include/sway/input/input-manager.h
index 08e749dc..8e8bf1f2 100644
--- a/include/sway/input/input-manager.h
+++ b/include/sway/input/input-manager.h
@@ -37,6 +37,10 @@ void input_manager_configure_xcursor(void);
void input_manager_apply_input_config(struct input_config *input_config);
+void input_manager_reset_input(struct sway_input_device *input_device);
+
+void input_manager_reset_all_inputs();
+
void input_manager_apply_seat_config(struct seat_config *seat_config);
struct sway_seat *input_manager_get_default_seat(void);
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index a3c20346..d2f14895 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -6,6 +6,17 @@
#include <wlr/util/edges.h>
#include "sway/input/input-manager.h"
+struct sway_seat;
+
+struct sway_seatop_impl {
+ void (*motion)(struct sway_seat *seat, uint32_t time_msec);
+ void (*finish)(struct sway_seat *seat);
+ void (*abort)(struct sway_seat *seat);
+ void (*unref)(struct sway_seat *seat, struct sway_container *con);
+ void (*render)(struct sway_seat *seat, struct sway_output *output,
+ pixman_region32_t *damage);
+};
+
struct sway_seat_device {
struct sway_seat *sway_seat;
struct sway_input_device *input_device;
@@ -35,16 +46,6 @@ struct sway_drag_icon {
struct wl_listener destroy;
};
-enum sway_seat_operation {
- OP_NONE,
- OP_DOWN,
- OP_MOVE_FLOATING,
- OP_MOVE_TILING_THRESHOLD,
- OP_MOVE_TILING,
- OP_RESIZE_FLOATING,
- OP_RESIZE_TILING,
-};
-
struct sway_seat {
struct wlr_seat *wlr_seat;
struct sway_cursor *cursor;
@@ -64,19 +65,10 @@ struct sway_seat {
int32_t touch_id;
double touch_x, touch_y;
- // Operations (drag and resize)
- enum sway_seat_operation operation;
- struct sway_container *op_container;
- struct sway_node *op_target_node; // target for tiling move
- enum wlr_edges op_target_edge;
- struct wlr_box op_drop_box;
- enum wlr_edges op_resize_edge;
- uint32_t op_button;
- bool op_resize_preserve_ratio;
- double op_ref_lx, op_ref_ly; // cursor's x/y at start of op
- double op_ref_width, op_ref_height; // container's size at start of op
- double op_ref_con_lx, op_ref_con_ly; // container's x/y at start of op
- bool op_moved; // if the mouse moved during a down op
+ // Seat operations (drag and resize)
+ const struct sway_seatop_impl *seatop_impl;
+ void *seatop_data;
+ uint32_t seatop_button;
uint32_t last_button;
uint32_t last_button_serial;
@@ -100,6 +92,9 @@ void seat_add_device(struct sway_seat *seat,
void seat_configure_device(struct sway_seat *seat,
struct sway_input_device *device);
+void seat_reset_device(struct sway_seat *seat,
+ struct sway_input_device *input_device);
+
void seat_remove_device(struct sway_seat *seat,
struct sway_input_device *device);
@@ -181,32 +176,59 @@ bool seat_is_input_allowed(struct sway_seat *seat, struct wlr_surface *surface);
void drag_icon_update_position(struct sway_drag_icon *icon);
-void seat_begin_down(struct sway_seat *seat, struct sway_container *con,
- uint32_t button, double sx, double sy);
+void seatop_begin_down(struct sway_seat *seat,
+ struct sway_container *con, uint32_t button, int sx, int sy);
-void seat_begin_move_floating(struct sway_seat *seat,
+void seatop_begin_move_floating(struct sway_seat *seat,
struct sway_container *con, uint32_t button);
-void seat_begin_move_tiling_threshold(struct sway_seat *seat,
+void seatop_begin_move_tiling_threshold(struct sway_seat *seat,
struct sway_container *con, uint32_t button);
-void seat_begin_move_tiling(struct sway_seat *seat,
+void seatop_begin_move_tiling(struct sway_seat *seat,
struct sway_container *con, uint32_t button);
-void seat_begin_resize_floating(struct sway_seat *seat,
+void seatop_begin_resize_floating(struct sway_seat *seat,
struct sway_container *con, uint32_t button, enum wlr_edges edge);
-void seat_begin_resize_tiling(struct sway_seat *seat,
+void seatop_begin_resize_tiling(struct sway_seat *seat,
struct sway_container *con, uint32_t button, enum wlr_edges edge);
struct sway_container *seat_get_focus_inactive_floating(struct sway_seat *seat,
struct sway_workspace *workspace);
-void seat_end_mouse_operation(struct sway_seat *seat);
-
void seat_pointer_notify_button(struct sway_seat *seat, uint32_t time_msec,
uint32_t button, enum wlr_button_state state);
void seat_consider_warp_to_focus(struct sway_seat *seat);
+bool seat_doing_seatop(struct sway_seat *seat);
+
+void seatop_motion(struct sway_seat *seat, uint32_t time_msec);
+
+/**
+ * End a seatop and apply the affects.
+ */
+void seatop_finish(struct sway_seat *seat);
+
+/**
+ * End a seatop without applying the affects.
+ */
+void seatop_abort(struct sway_seat *seat);
+
+/**
+ * Instructs the seatop implementation to drop any references to the given
+ * container (eg. because the container is destroying).
+ * The seatop may choose to abort itself in response to this.
+ */
+void seatop_unref(struct sway_seat *seat, struct sway_container *con);
+
+/**
+ * Instructs a seatop to render anything that it needs to render
+ * (eg. dropzone for move-tiling)
+ */
+void seatop_render(struct sway_seat *seat, struct sway_output *output,
+ pixman_region32_t *damage);
+
+
#endif
diff --git a/include/sway/output.h b/include/sway/output.h
index f7c5ceba..bdf9614d 100644
--- a/include/sway/output.h
+++ b/include/sway/output.h
@@ -146,4 +146,12 @@ enum sway_container_layout output_get_default_layout(
void output_add_listeners(struct sway_output *output);
+void render_rect(struct wlr_output *wlr_output,
+ pixman_region32_t *output_damage, const struct wlr_box *_box,
+ float color[static 4]);
+
+void premultiply_alpha(float color[4], float opacity);
+
+void scale_box(struct wlr_box *box, float scale);
+
#endif
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index 1d0a0ad1..9a432cb2 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -333,4 +333,6 @@ void container_add_mark(struct sway_container *container, char *mark);
void container_update_marks_textures(struct sway_container *container);
+void container_raise_floating(struct sway_container *con);
+
#endif
diff --git a/include/swaybar/bar.h b/include/swaybar/bar.h
index e377b8de..2d9ba0d9 100644
--- a/include/swaybar/bar.h
+++ b/include/swaybar/bar.h
@@ -61,6 +61,7 @@ struct swaybar_output {
struct wl_list hotspots; // swaybar_hotspot::link
char *name;
+ char *identifier;
bool focused;
uint32_t width, height;
diff --git a/include/swaybar/config.h b/include/swaybar/config.h
index 1f6577bd..add0a1cf 100644
--- a/include/swaybar/config.h
+++ b/include/swaybar/config.h
@@ -43,6 +43,8 @@ struct swaybar_config {
struct wl_list outputs; // config_output::link
bool all_outputs;
int height;
+ int status_padding;
+ int status_edge_padding;
struct {
int top;
int right;
diff --git a/include/swaylock/swaylock.h b/include/swaylock/swaylock.h
index 18af7ab4..516a56f4 100644
--- a/include/swaylock/swaylock.h
+++ b/include/swaylock/swaylock.h
@@ -22,6 +22,7 @@ enum auth_state {
struct swaylock_colorset {
uint32_t input;
uint32_t cleared;
+ uint32_t caps_lock;
uint32_t verifying;
uint32_t wrong;
};
@@ -30,6 +31,8 @@ struct swaylock_colors {
uint32_t background;
uint32_t bs_highlight;
uint32_t key_highlight;
+ uint32_t caps_lock_bs_highlight;
+ uint32_t caps_lock_key_highlight;
uint32_t separator;
struct swaylock_colorset inside;
struct swaylock_colorset line;
@@ -45,6 +48,8 @@ struct swaylock_args {
uint32_t thickness;
bool ignore_empty;
bool show_indicator;
+ bool show_caps_lock_text;
+ bool show_caps_lock_indicator;
bool daemonize;
};