mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-01-05 19:40:24 +01:00
weston-resizor: Don't add new frame callbacks every click
The frame callback added on button click re-adds itself when done, so adding a new one every click resulted in an ever increasing number of callbacks. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Acked-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
parent
bcfe397df2
commit
dc4f9deaee
1 changed files with 5 additions and 0 deletions
|
|
@ -53,6 +53,7 @@ struct resizor {
|
|||
struct spring height;
|
||||
struct wl_callback *frame_callback;
|
||||
bool pointer_locked;
|
||||
bool locked_frame_callback_registered;
|
||||
struct input *locked_input;
|
||||
float pointer_x;
|
||||
float pointer_y;
|
||||
|
|
@ -330,11 +331,15 @@ button_handler(struct widget *widget,
|
|||
handle_pointer_unlocked);
|
||||
resizor->locked_input = input;
|
||||
|
||||
if (resizor->locked_frame_callback_registered)
|
||||
return;
|
||||
|
||||
surface = window_get_wl_surface(resizor->window);
|
||||
callback = wl_surface_frame(surface);
|
||||
wl_callback_add_listener(callback,
|
||||
&locked_pointer_frame_listener,
|
||||
resizor);
|
||||
resizor->locked_frame_callback_registered = true;
|
||||
} else if (button == BTN_LEFT &&
|
||||
state == WL_POINTER_BUTTON_STATE_RELEASED) {
|
||||
input_set_pointer_image(input, CURSOR_LEFT_PTR);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue