diff options
Diffstat (limited to 'sway/input/seat.c')
-rw-r--r-- | sway/input/seat.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c index 69bee47e..c747eafc 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -734,7 +734,7 @@ void seat_set_focus_warp(struct sway_seat *seat, struct sway_node *node, | |||
734 | 734 | ||
735 | // If we've focused a floating container, bring it to the front. | 735 | // If we've focused a floating container, bring it to the front. |
736 | // We do this by putting it at the end of the floating list. | 736 | // We do this by putting it at the end of the floating list. |
737 | if (container) { | 737 | if (container && config->raise_floating) { |
738 | struct sway_container *floater = container; | 738 | struct sway_container *floater = container; |
739 | while (floater->parent) { | 739 | while (floater->parent) { |
740 | floater = floater->parent; | 740 | floater = floater->parent; |
@@ -1017,6 +1017,19 @@ void seat_begin_down(struct sway_seat *seat, struct sway_container *con, | |||
1017 | seat->op_ref_con_lx = sx; | 1017 | seat->op_ref_con_lx = sx; |
1018 | seat->op_ref_con_ly = sy; | 1018 | seat->op_ref_con_ly = sy; |
1019 | seat->op_moved = false; | 1019 | seat->op_moved = false; |
1020 | |||
1021 | // If we've focused a floating container, bring it to the front. | ||
1022 | // We do this by putting it at the end of the floating list. | ||
1023 | if (con && !config->raise_floating) { | ||
1024 | struct sway_container *floater = con; | ||
1025 | while (floater->parent) { | ||
1026 | floater = floater->parent; | ||
1027 | } | ||
1028 | if (container_is_floating(floater)) { | ||
1029 | list_move_to_end(floater->workspace->floating, floater); | ||
1030 | node_set_dirty(&floater->workspace->node); | ||
1031 | } | ||
1032 | } | ||
1020 | } | 1033 | } |
1021 | 1034 | ||
1022 | void seat_begin_move_floating(struct sway_seat *seat, | 1035 | void seat_begin_move_floating(struct sway_seat *seat, |