diff options
-rw-r--r-- | sway/commands/force_display_urgency_hint.c | 5 | ||||
-rw-r--r-- | sway/input/seat.c | 16 |
2 files changed, 10 insertions, 11 deletions
diff --git a/sway/commands/force_display_urgency_hint.c b/sway/commands/force_display_urgency_hint.c index a25ffff8..5e5e2d55 100644 --- a/sway/commands/force_display_urgency_hint.c +++ b/sway/commands/force_display_urgency_hint.c | |||
@@ -1,10 +1,5 @@ | |||
1 | #include "log.h" | ||
2 | #include "sway/commands.h" | 1 | #include "sway/commands.h" |
3 | #include "sway/config.h" | 2 | #include "sway/config.h" |
4 | #include "sway/tree/arrange.h" | ||
5 | #include "sway/tree/container.h" | ||
6 | #include "sway/tree/view.h" | ||
7 | #include "sway/tree/layout.h" | ||
8 | 3 | ||
9 | struct cmd_results *cmd_force_display_urgency_hint(int argc, char **argv) { | 4 | struct cmd_results *cmd_force_display_urgency_hint(int argc, char **argv) { |
10 | struct cmd_results *error = NULL; | 5 | struct cmd_results *error = NULL; |
diff --git a/sway/input/seat.c b/sway/input/seat.c index 816429d3..e77d88a8 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -677,16 +677,20 @@ void seat_set_focus_warp(struct sway_seat *seat, | |||
677 | } | 677 | } |
678 | } | 678 | } |
679 | 679 | ||
680 | // If urgent, start a timer to unset it | 680 | // If urgent, either unset the urgency or start a timer to unset it |
681 | if (container && container->type == C_VIEW && | 681 | if (container && container->type == C_VIEW && |
682 | last_workspace && last_workspace != new_workspace && | ||
683 | view_is_urgent(container->sway_view) && | 682 | view_is_urgent(container->sway_view) && |
684 | config->urgent_timeout > 0 && | ||
685 | !container->sway_view->urgent_timer) { | 683 | !container->sway_view->urgent_timer) { |
686 | struct sway_view *view = container->sway_view; | 684 | struct sway_view *view = container->sway_view; |
687 | view->urgent_timer = wl_event_loop_add_timer(server.wl_event_loop, | 685 | if (last_workspace && last_workspace != new_workspace && |
688 | handle_urgent_timeout, view); | 686 | config->urgent_timeout > 0) { |
689 | wl_event_source_timer_update(view->urgent_timer, config->urgent_timeout); | 687 | view->urgent_timer = wl_event_loop_add_timer(server.wl_event_loop, |
688 | handle_urgent_timeout, view); | ||
689 | wl_event_source_timer_update(view->urgent_timer, | ||
690 | config->urgent_timeout); | ||
691 | } else { | ||
692 | view_set_urgent(view, false); | ||
693 | } | ||
690 | } | 694 | } |
691 | 695 | ||
692 | // If we've focused a floating container, bring it to the front. | 696 | // If we've focused a floating container, bring it to the front. |