summaryrefslogtreecommitdiffstats
path: root/sway/tree/view.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/tree/view.c')
-rw-r--r--sway/tree/view.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 1a98c5f2..6bd0ef67 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -280,6 +280,29 @@ void view_set_activated(struct sway_view *view, bool activated) {
280 } 280 }
281} 281}
282 282
283void view_request_activate(struct sway_view *view) {
284 struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE);
285 struct sway_seat *seat = input_manager_current_seat(input_manager);
286
287 switch (config->focus_on_window_activation) {
288 case FOWA_SMART:
289 if (workspace_is_visible(ws)) {
290 seat_set_focus(seat, view->swayc);
291 } else {
292 view_set_urgent(view, true);
293 }
294 break;
295 case FOWA_URGENT:
296 view_set_urgent(view, true);
297 break;
298 case FOWA_FOCUS:
299 seat_set_focus(seat, view->swayc);
300 break;
301 case FOWA_NONE:
302 break;
303 }
304}
305
283void view_set_tiled(struct sway_view *view, bool tiled) { 306void view_set_tiled(struct sway_view *view, bool tiled) {
284 if (!tiled) { 307 if (!tiled) {
285 view->using_csd = true; 308 view->using_csd = true;