cursor: move unhide and timeout retrieval into separate functions

The unhide and timeout retrieval functions are needed in a later commit. No
functional changes.
This commit is contained in:
Rouven Czerwinski 2019-01-07 13:19:47 +01:00 committed by Brian Ashworth
parent bd59602711
commit fde900861a
2 changed files with 25 additions and 12 deletions

View file

@ -61,6 +61,8 @@ struct sway_cursor *sway_cursor_create(struct sway_seat *seat);
void cursor_rebase(struct sway_cursor *cursor); void cursor_rebase(struct sway_cursor *cursor);
void cursor_handle_activity(struct sway_cursor *cursor); void cursor_handle_activity(struct sway_cursor *cursor);
void cursor_unhide(struct sway_cursor *cursor);
int cursor_get_timeout(struct sway_cursor *cursor);
/** /**
* Like cursor_rebase, but also allows focus to change when the cursor enters a * Like cursor_rebase, but also allows focus to change when the cursor enters a

View file

@ -621,7 +621,7 @@ static int hide_notify(void *data) {
return 1; return 1;
} }
void cursor_handle_activity(struct sway_cursor *cursor) { int cursor_get_timeout(struct sway_cursor *cursor){
struct seat_config *sc = seat_get_config(cursor->seat); struct seat_config *sc = seat_get_config(cursor->seat);
if (!sc) { if (!sc) {
sc = seat_get_config_by_name("*"); sc = seat_get_config_by_name("*");
@ -630,20 +630,31 @@ void cursor_handle_activity(struct sway_cursor *cursor) {
if (timeout < 0) { if (timeout < 0) {
timeout = 0; timeout = 0;
} }
wl_event_source_timer_update(cursor->hide_source, timeout); return timeout;
}
void cursor_handle_activity(struct sway_cursor *cursor) {
wl_event_source_timer_update(
cursor->hide_source, cursor_get_timeout(cursor));
wlr_idle_notify_activity(server.idle, cursor->seat->wlr_seat); wlr_idle_notify_activity(server.idle, cursor->seat->wlr_seat);
if (cursor->hidden) { if (cursor->hidden) {
cursor->hidden = false; cursor_unhide(cursor);
if (cursor->image_surface) { }
cursor_set_image_surface(cursor, cursor->image_surface, }
cursor->hotspot_x, cursor->hotspot_y,
cursor->image_client); void cursor_unhide(struct sway_cursor *cursor) {
} else { cursor->hidden = false;
const char *image = cursor->image; if (cursor->image_surface) {
cursor->image = NULL; cursor_set_image_surface(cursor,
cursor_set_image(cursor, image, cursor->image_client); cursor->image_surface,
} cursor->hotspot_x,
cursor->hotspot_y,
cursor->image_client);
} else {
const char *image = cursor->image;
cursor->image = NULL;
cursor_set_image(cursor, image, cursor->image_client);
} }
} }