Remove raise_floating directive

The directive controlled whether floating views should raise to the top
when the cursor is moved over it while using focus_follows_mouse. The
default was enabled, which is undesirable. For example, if you have two
floating views where one completely covers the other, the smaller one
would be inaccessible because moving the mouse over the bigger one would
raise it above the smaller one.

There is no known use case for having raise_floating enabled, so this
patch removes the directive and implements the raise_floating disabled
behaviour instead.
master
Ryan Dwyer 6 years ago
parent 75ea19c71b
commit b9b1b0e566

@ -126,7 +126,6 @@ sway_cmd cmd_floating_modifier;
sway_cmd cmd_floating_scroll;
sway_cmd cmd_focus;
sway_cmd cmd_focus_follows_mouse;
sway_cmd cmd_raise_floating;
sway_cmd cmd_focus_on_window_activation;
sway_cmd cmd_focus_wrapping;
sway_cmd cmd_font;

@ -379,7 +379,6 @@ struct sway_config {
// Flags
bool focus_follows_mouse;
bool raise_floating;
enum mouse_warping_mode mouse_warping;
enum focus_wrapping_mode focus_wrapping;
bool active;

@ -110,7 +110,6 @@ static struct cmd_handler handlers[] = {
{ "no_focus", cmd_no_focus },
{ "output", cmd_output },
{ "popup_during_fullscreen", cmd_popup_during_fullscreen },
{ "raise_floating", cmd_raise_floating },
{ "seat", cmd_seat },
{ "set", cmd_set },
{ "show_marks", cmd_show_marks },

@ -1,14 +0,0 @@
#include <string.h>
#include <strings.h>
#include "sway/commands.h"
#include "util.h"
struct cmd_results *cmd_raise_floating(int argc, char **argv) {
struct cmd_results *error = NULL;
if ((error = checkarg(argc, "raise_floating", EXPECTED_EQUAL_TO, 1))) {
return error;
}
config->raise_floating =
parse_boolean(argv[0], config->raise_floating);
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}

@ -221,7 +221,6 @@ static void config_defaults(struct sway_config *config) {
// Flags
config->focus_follows_mouse = true;
config->raise_floating = true;
config->mouse_warping = WARP_OUTPUT;
config->focus_wrapping = WRAP_YES;
config->validating = false;

@ -756,11 +756,6 @@ void seat_set_focus(struct sway_seat *seat, struct sway_node *node) {
}
}
// If we've focused a floating container, bring it to the front.
if (container && config->raise_floating) {
container_raise_floating(container);
}
if (new_output_last_ws) {
workspace_consider_destroy(new_output_last_ws);
}
@ -1010,10 +1005,7 @@ void seat_begin_down(struct sway_seat *seat, struct sway_container *con,
seat->op_ref_con_ly = sy;
seat->op_moved = false;
// In case the container was not raised by gaining focus, raise on click
if (!config->raise_floating) {
container_raise_floating(con);
}
container_raise_floating(con);
}
void seat_begin_move_floating(struct sway_seat *seat,
@ -1026,10 +1018,7 @@ void seat_begin_move_floating(struct sway_seat *seat,
seat->op_container = con;
seat->op_button = button;
// In case the container was not raised by gaining focus, raise on click
if (!config->raise_floating) {
container_raise_floating(con);
}
container_raise_floating(con);
cursor_set_image(seat->cursor, "grab", NULL);
}
@ -1064,11 +1053,8 @@ void seat_begin_resize_floating(struct sway_seat *seat,
seat->op_ref_con_ly = con->y;
seat->op_ref_width = con->width;
seat->op_ref_height = con->height;
//
// In case the container was not raised by gaining focus, raise on click
if (!config->raise_floating) {
container_raise_floating(con);
}
container_raise_floating(con);
const char *image = edge == WLR_EDGE_NONE ?
"se-resize" : wlr_xcursor_get_resize_name(edge);

@ -48,7 +48,6 @@ sway_sources = files(
'commands/floating_modifier.c',
'commands/focus.c',
'commands/focus_follows_mouse.c',
'commands/raise_floating.c',
'commands/focus_on_window_activation.c',
'commands/focus_wrapping.c',
'commands/font.c',

@ -446,11 +446,6 @@ The default colors are:
devices. A list of input device names may be obtained via *swaymsg -t
get\_inputs*.
*raise\_floating* yes|no
Controls the behaviour of floating windows. A _yes_ (the default) will
raise windows on gaining focus. A _no_ will only raise floating windows
by clicking anywhere in the window.
*seat* <seat> <seat-subcommands...>
For details on seat subcommands, see *sway-input*(5).

Loading…
Cancel
Save