Fix urgent timer logic and remove unnecessary header includes

master
Ryan Dwyer 6 years ago
parent c2ed3d8bd6
commit 37b33f92e8

@ -1,10 +1,5 @@
#include "log.h"
#include "sway/commands.h" #include "sway/commands.h"
#include "sway/config.h" #include "sway/config.h"
#include "sway/tree/arrange.h"
#include "sway/tree/container.h"
#include "sway/tree/view.h"
#include "sway/tree/layout.h"
struct cmd_results *cmd_force_display_urgency_hint(int argc, char **argv) { struct cmd_results *cmd_force_display_urgency_hint(int argc, char **argv) {
struct cmd_results *error = NULL; struct cmd_results *error = NULL;

@ -677,16 +677,20 @@ void seat_set_focus_warp(struct sway_seat *seat,
} }
} }
// If urgent, start a timer to unset it // If urgent, either unset the urgency or start a timer to unset it
if (container && container->type == C_VIEW && if (container && container->type == C_VIEW &&
last_workspace && last_workspace != new_workspace &&
view_is_urgent(container->sway_view) && view_is_urgent(container->sway_view) &&
config->urgent_timeout > 0 &&
!container->sway_view->urgent_timer) { !container->sway_view->urgent_timer) {
struct sway_view *view = container->sway_view; struct sway_view *view = container->sway_view;
if (last_workspace && last_workspace != new_workspace &&
config->urgent_timeout > 0) {
view->urgent_timer = wl_event_loop_add_timer(server.wl_event_loop, view->urgent_timer = wl_event_loop_add_timer(server.wl_event_loop,
handle_urgent_timeout, view); handle_urgent_timeout, view);
wl_event_source_timer_update(view->urgent_timer, config->urgent_timeout); wl_event_source_timer_update(view->urgent_timer,
config->urgent_timeout);
} else {
view_set_urgent(view, false);
}
} }
// If we've focused a floating container, bring it to the front. // If we've focused a floating container, bring it to the front.

Loading…
Cancel
Save