Focus view before running criteria when mapping

This commit is contained in:
Ryan Dwyer 2018-07-16 22:27:11 +10:00
parent fc2484095a
commit e2f28c023c

View file

@ -504,15 +504,13 @@ void view_execute_criteria(struct sway_view *view) {
} }
wlr_log(WLR_DEBUG, "for_window '%s' matches view %p, cmd: '%s'", wlr_log(WLR_DEBUG, "for_window '%s' matches view %p, cmd: '%s'",
criteria->raw, view, criteria->cmdlist); criteria->raw, view, criteria->cmdlist);
seat_set_focus(seat, view->swayc);
list_add(view->executed_criteria, criteria); list_add(view->executed_criteria, criteria);
struct cmd_results *res = execute_command(criteria->cmdlist, NULL); struct cmd_results *res = execute_command(criteria->cmdlist, NULL);
if (res->status != CMD_SUCCESS) { if (res->status != CMD_SUCCESS) {
wlr_log(WLR_ERROR, "Command '%s' failed: %s", res->input, res->error); wlr_log(WLR_ERROR, "Command '%s' failed: %s", res->input, res->error);
} }
free_cmd_results(res); free_cmd_results(res);
// view must be focused for commands to affect it,
// so always refocus in-between command lists
seat_set_focus(seat, view->swayc);
} }
list_free(criterias); list_free(criterias);
seat_set_focus(seat, prior_focus); seat_set_focus(seat, prior_focus);