diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-07-20 19:37:27 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-07-21 10:28:07 +1000 |
commit | c2ed3d8bd6e2ec12f2ce70d7e106c09a7078e91f (patch) | |
tree | a1b879569d663c4b95c49985a877b87628dfb10f /sway/input | |
parent | a2b2146f7fb8d5e868880daff9484145a68ab4a3 (diff) | |
download | sway-c2ed3d8bd6e2ec12f2ce70d7e106c09a7078e91f.tar.xz |
Implement force_display_urgency_hint
The directive sets the timeout before an urgent view becomes normal
again after switching to it from another workspace.
Also:
* When an xwayland surface removes the urgent hint while the timer is
active, we now ignore the request. This happens as soon as the view
receives focus, so it was effectively making the timer pointless.
* The timeout is now only applied when switching to it from another
workspace.
Diffstat (limited to 'sway/input')
-rw-r--r-- | sway/input/seat.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c index eadf3b26..816429d3 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c @@ -679,12 +679,14 @@ void seat_set_focus_warp(struct sway_seat *seat, // If urgent, start a timer to unset it if (container && container->type == C_VIEW && + last_workspace && last_workspace != new_workspace && view_is_urgent(container->sway_view) && + config->urgent_timeout > 0 && !container->sway_view->urgent_timer) { struct sway_view *view = container->sway_view; view->urgent_timer = wl_event_loop_add_timer(server.wl_event_loop, handle_urgent_timeout, view); - wl_event_source_timer_update(view->urgent_timer, 1000); + wl_event_source_timer_update(view->urgent_timer, config->urgent_timeout); } // If we've focused a floating container, bring it to the front. |