aboutsummaryrefslogtreecommitdiffstats
path: root/sway/input_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/input_state.c')
-rw-r--r--sway/input_state.c33
1 files changed, 15 insertions, 18 deletions
diff --git a/sway/input_state.c b/sway/input_state.c
index 68df17de..04aafd37 100644
--- a/sway/input_state.c
+++ b/sway/input_state.c
@@ -202,13 +202,13 @@ static void reset_initial_sibling(void) {
202 pointer_state.mode = 0; 202 pointer_state.mode = 0;
203} 203}
204 204
205void pointer_position_set(struct wlc_point *new_origin, bool force_focus) { 205void pointer_position_set(double new_x, double new_y, bool force_focus) {
206 struct wlc_point origin; 206 double x, y;
207 wlc_pointer_get_position(&origin); 207 wlc_pointer_get_position_v2(&x, &y);
208 pointer_state.delta.x = new_origin->x - origin.x; 208 pointer_state.delta.x = new_x - x;
209 pointer_state.delta.y = new_origin->y - origin.y; 209 pointer_state.delta.y = new_y - y;
210 210
211 wlc_pointer_set_position(new_origin); 211 wlc_pointer_set_position_v2(new_x, new_y);
212 212
213 // Update view under pointer 213 // Update view under pointer
214 swayc_t *prev_view = pointer_state.view; 214 swayc_t *prev_view = pointer_state.view;
@@ -226,10 +226,7 @@ void pointer_position_set(struct wlc_point *new_origin, bool force_focus) {
226} 226}
227 227
228void center_pointer_on(swayc_t *view) { 228void center_pointer_on(swayc_t *view) {
229 struct wlc_point new_origin; 229 pointer_position_set(view->x + view->width/2, view->y + view->height/2, true);
230 new_origin.x = view->x + view->width/2;
231 new_origin.y = view->y + view->height/2;
232 pointer_position_set(&new_origin, true);
233} 230}
234 231
235// Mode set left/right click 232// Mode set left/right click
@@ -269,10 +266,10 @@ static void pointer_mode_set_resizing(void) {
269 int midway_x = initial.ptr->x + initial.ptr->width/2; 266 int midway_x = initial.ptr->x + initial.ptr->width/2;
270 int midway_y = initial.ptr->y + initial.ptr->height/2; 267 int midway_y = initial.ptr->y + initial.ptr->height/2;
271 268
272 struct wlc_point origin; 269 double x, y;
273 wlc_pointer_get_position(&origin); 270 wlc_pointer_get_position_v2(&x, &y);
274 lock.left = origin.x > midway_x; 271 lock.left = x > midway_x;
275 lock.top = origin.y > midway_y; 272 lock.top = y > midway_y;
276 273
277 if (initial.ptr->is_floating) { 274 if (initial.ptr->is_floating) {
278 pointer_state.mode = M_RESIZING | M_FLOATING; 275 pointer_state.mode = M_RESIZING | M_FLOATING;
@@ -346,10 +343,10 @@ void pointer_mode_update(void) {
346 pointer_state.mode = 0; 343 pointer_state.mode = 0;
347 return; 344 return;
348 } 345 }
349 struct wlc_point origin; 346 double x, y;
350 wlc_pointer_get_position(&origin); 347 wlc_pointer_get_position_v2(&x, &y);
351 int dx = origin.x; 348 int dx = x;
352 int dy = origin.y; 349 int dy = y;
353 350
354 switch (pointer_state.mode) { 351 switch (pointer_state.mode) {
355 case M_FLOATING | M_DRAGGING: 352 case M_FLOATING | M_DRAGGING: