mirror of
https://github.com/swaywm/sway.git
synced 2025-11-19 06:59:52 -05:00
floating/tiling move + floating resize cleaned and fixed
This commit is contained in:
parent
232940f813
commit
e139de0857
6 changed files with 454 additions and 136 deletions
|
|
@ -17,6 +17,7 @@ void press_key(keycode key);
|
|||
// unsets a key as pressed
|
||||
void release_key(keycode key);
|
||||
|
||||
|
||||
/* Pointer state */
|
||||
|
||||
enum pointer_values {
|
||||
|
|
@ -27,9 +28,40 @@ enum pointer_values {
|
|||
M_SCROLL_DOWN = 276,
|
||||
};
|
||||
|
||||
enum pointer_mode {
|
||||
// Target
|
||||
M_FLOATING = 1 << 0,
|
||||
M_TILING = 1 << 1,
|
||||
// Action
|
||||
M_DRAGGING = 1 << 2,
|
||||
M_RESIZING = 1 << 3,
|
||||
};
|
||||
|
||||
extern struct pointer_state {
|
||||
bool l_held;
|
||||
bool r_held;
|
||||
// mouse clicks
|
||||
bool l_held : 1;
|
||||
bool r_held : 1;
|
||||
|
||||
// scroll wheel
|
||||
bool s_held : 1;
|
||||
bool s_up : 1;
|
||||
bool s_down :1;
|
||||
|
||||
// pointer position
|
||||
struct mouse_origin{
|
||||
int x, y;
|
||||
} origin;
|
||||
struct {
|
||||
int x, y;
|
||||
} delta;
|
||||
|
||||
// view pointer is over
|
||||
swayc_t *view;
|
||||
|
||||
// Pointer mode
|
||||
int mode;
|
||||
|
||||
// OLD
|
||||
struct pointer_floating {
|
||||
bool drag;
|
||||
bool resize;
|
||||
|
|
@ -53,6 +85,16 @@ extern struct pointer_state {
|
|||
} lock;
|
||||
} pointer_state;
|
||||
|
||||
// on button release unset mode depending on the button.
|
||||
// on button press set mode conditionally depending on the button
|
||||
void pointer_mode_set(uint32_t button, bool condition);
|
||||
|
||||
// Update mode in mouse motion
|
||||
void pointer_mode_update(void);
|
||||
|
||||
// Reset mode on any keypress;
|
||||
void pointer_mode_reset(void);
|
||||
|
||||
void start_floating(swayc_t *view);
|
||||
void reset_floating(swayc_t *view);
|
||||
void input_init(void);
|
||||
|
|
|
|||
|
|
@ -19,10 +19,12 @@ void add_floating(swayc_t *ws, swayc_t *child);
|
|||
swayc_t *add_sibling(swayc_t *sibling, swayc_t *child);
|
||||
swayc_t *replace_child(swayc_t *child, swayc_t *new_child);
|
||||
swayc_t *remove_child(swayc_t *child);
|
||||
void swap_container(swayc_t *a, swayc_t *b);
|
||||
|
||||
void move_container(swayc_t* container,swayc_t* root,enum movement_direction direction);
|
||||
|
||||
// Layout
|
||||
void update_geometry(swayc_t *view);
|
||||
void arrange_windows(swayc_t *container, double width, double height);
|
||||
|
||||
swayc_t *get_focused_container(swayc_t *parent);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue