mirror of
https://github.com/swaywm/sway.git
synced 2025-11-22 06:59:48 -05:00
sway: add bindgesture command
Co-authored-by: Michael Weiser <michael.weiser@gmx.de>
This commit is contained in:
parent
a535ed310f
commit
cab2189aa6
17 changed files with 1188 additions and 87 deletions
|
|
@ -106,6 +106,7 @@ sway_cmd cmd_exec_process;
|
|||
sway_cmd cmd_assign;
|
||||
sway_cmd cmd_bar;
|
||||
sway_cmd cmd_bindcode;
|
||||
sway_cmd cmd_bindgesture;
|
||||
sway_cmd cmd_bindswitch;
|
||||
sway_cmd cmd_bindsym;
|
||||
sway_cmd cmd_border;
|
||||
|
|
@ -191,6 +192,7 @@ sway_cmd cmd_titlebar_border_thickness;
|
|||
sway_cmd cmd_titlebar_padding;
|
||||
sway_cmd cmd_unbindcode;
|
||||
sway_cmd cmd_unbindswitch;
|
||||
sway_cmd cmd_unbindgesture;
|
||||
sway_cmd cmd_unbindsym;
|
||||
sway_cmd cmd_unmark;
|
||||
sway_cmd cmd_urgent;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include <xkbcommon/xkbcommon.h>
|
||||
#include <xf86drmMode.h>
|
||||
#include "../include/config.h"
|
||||
#include "gesture.h"
|
||||
#include "list.h"
|
||||
#include "swaynag.h"
|
||||
#include "tree/container.h"
|
||||
|
|
@ -32,7 +33,8 @@ enum binding_input_type {
|
|||
BINDING_KEYSYM,
|
||||
BINDING_MOUSECODE,
|
||||
BINDING_MOUSESYM,
|
||||
BINDING_SWITCH
|
||||
BINDING_SWITCH, // dummy, only used to call seat_execute_command
|
||||
BINDING_GESTURE // dummy, only used to call seat_execute_command
|
||||
};
|
||||
|
||||
enum binding_flags {
|
||||
|
|
@ -45,6 +47,7 @@ enum binding_flags {
|
|||
BINDING_RELOAD = 1 << 6, // switch only; (re)trigger binding on reload
|
||||
BINDING_INHIBITED = 1 << 7, // keyboard only: ignore shortcut inhibitor
|
||||
BINDING_NOREPEAT = 1 << 8, // keyboard only; do not trigger when repeating a held key
|
||||
BINDING_EXACT = 1 << 9, // gesture only; only trigger on exact match
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -78,6 +81,16 @@ struct sway_switch_binding {
|
|||
char *command;
|
||||
};
|
||||
|
||||
/**
|
||||
* A gesture binding and an associated command.
|
||||
*/
|
||||
struct sway_gesture_binding {
|
||||
char *input;
|
||||
uint32_t flags;
|
||||
struct gesture gesture;
|
||||
char *command;
|
||||
};
|
||||
|
||||
/**
|
||||
* Focus on window activation.
|
||||
*/
|
||||
|
|
@ -97,6 +110,7 @@ struct sway_mode {
|
|||
list_t *keycode_bindings;
|
||||
list_t *mouse_bindings;
|
||||
list_t *switch_bindings;
|
||||
list_t *gesture_bindings;
|
||||
bool pango;
|
||||
};
|
||||
|
||||
|
|
@ -689,6 +703,8 @@ void free_sway_binding(struct sway_binding *sb);
|
|||
|
||||
void free_switch_binding(struct sway_switch_binding *binding);
|
||||
|
||||
void free_gesture_binding(struct sway_gesture_binding *binding);
|
||||
|
||||
void seat_execute_command(struct sway_seat *seat, struct sway_binding *binding);
|
||||
|
||||
void load_swaybar(struct bar_config *bar);
|
||||
|
|
|
|||
|
|
@ -36,14 +36,14 @@ struct sway_cursor {
|
|||
bool active_confine_requires_warp;
|
||||
|
||||
struct wlr_pointer_gestures_v1 *pointer_gestures;
|
||||
struct wl_listener hold_begin;
|
||||
struct wl_listener hold_end;
|
||||
struct wl_listener pinch_begin;
|
||||
struct wl_listener pinch_update;
|
||||
struct wl_listener pinch_end;
|
||||
struct wl_listener swipe_begin;
|
||||
struct wl_listener swipe_update;
|
||||
struct wl_listener swipe_end;
|
||||
struct wl_listener hold_begin;
|
||||
struct wl_listener hold_end;
|
||||
|
||||
struct wl_listener motion;
|
||||
struct wl_listener motion_absolute;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,22 @@ struct sway_seatop_impl {
|
|||
void (*pointer_motion)(struct sway_seat *seat, uint32_t time_msec);
|
||||
void (*pointer_axis)(struct sway_seat *seat,
|
||||
struct wlr_pointer_axis_event *event);
|
||||
void (*hold_begin)(struct sway_seat *seat,
|
||||
struct wlr_pointer_hold_begin_event *event);
|
||||
void (*hold_end)(struct sway_seat *seat,
|
||||
struct wlr_pointer_hold_end_event *event);
|
||||
void (*pinch_begin)(struct sway_seat *seat,
|
||||
struct wlr_pointer_pinch_begin_event *event);
|
||||
void (*pinch_update)(struct sway_seat *seat,
|
||||
struct wlr_pointer_pinch_update_event *event);
|
||||
void (*pinch_end)(struct sway_seat *seat,
|
||||
struct wlr_pointer_pinch_end_event *event);
|
||||
void (*swipe_begin)(struct sway_seat *seat,
|
||||
struct wlr_pointer_swipe_begin_event *event);
|
||||
void (*swipe_update)(struct sway_seat *seat,
|
||||
struct wlr_pointer_swipe_update_event *event);
|
||||
void (*swipe_end)(struct sway_seat *seat,
|
||||
struct wlr_pointer_swipe_end_event *event);
|
||||
void (*rebase)(struct sway_seat *seat, uint32_t time_msec);
|
||||
void (*tablet_tool_motion)(struct sway_seat *seat,
|
||||
struct sway_tablet_tool *tool, uint32_t time_msec);
|
||||
|
|
@ -287,6 +303,25 @@ void seatop_tablet_tool_tip(struct sway_seat *seat,
|
|||
void seatop_tablet_tool_motion(struct sway_seat *seat,
|
||||
struct sway_tablet_tool *tool, uint32_t time_msec);
|
||||
|
||||
void seatop_hold_begin(struct sway_seat *seat,
|
||||
struct wlr_pointer_hold_begin_event *event);
|
||||
void seatop_hold_end(struct sway_seat *seat,
|
||||
struct wlr_pointer_hold_end_event *event);
|
||||
|
||||
void seatop_pinch_begin(struct sway_seat *seat,
|
||||
struct wlr_pointer_pinch_begin_event *event);
|
||||
void seatop_pinch_update(struct sway_seat *seat,
|
||||
struct wlr_pointer_pinch_update_event *event);
|
||||
void seatop_pinch_end(struct sway_seat *seat,
|
||||
struct wlr_pointer_pinch_end_event *event);
|
||||
|
||||
void seatop_swipe_begin(struct sway_seat *seat,
|
||||
struct wlr_pointer_swipe_begin_event *event);
|
||||
void seatop_swipe_update(struct sway_seat *seat,
|
||||
struct wlr_pointer_swipe_update_event *event);
|
||||
void seatop_swipe_end(struct sway_seat *seat,
|
||||
struct wlr_pointer_swipe_end_event *event);
|
||||
|
||||
void seatop_rebase(struct sway_seat *seat, uint32_t time_msec);
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue