diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-10-18 21:20:00 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-10-20 13:11:43 +1000 |
commit | c006717910e5f30ca65645f701541dfa176c1392 (patch) | |
tree | c64452b7f2fe6ab481ad90c424cb14bcb0328eda /sway/desktop/layer_shell.c | |
parent | Merge pull request #2872 from RyanDwyer/cursor-rebase (diff) | |
download | sway-c006717910e5f30ca65645f701541dfa176c1392.tar.gz sway-c006717910e5f30ca65645f701541dfa176c1392.tar.zst sway-c006717910e5f30ca65645f701541dfa176c1392.zip |
Minor refactor of input manager
The input manager is a singleton object. Passing the sway_input_manager
argument to each of its functions is unnecessary, while removing the
argument makes it obvious to the caller that it's a singleton. This
patch removes the argument and makes the input manager use server.input
instead.
On a similar note:
* sway_input_manager.server is removed in favour of using the server
global.
* seat.input is removed because it can get it from server.input.
Due to a circular dependency, creating seat0 is now done directly in
server_init rather than in input_manager_create. This is because
creating seats must be done after server.input is set.
Lastly, it now stores the default seat name using a constant and removes
a second reference to seat0 (in input_manager_get_default_seat).
Diffstat (limited to 'sway/desktop/layer_shell.c')
-rw-r--r-- | sway/desktop/layer_shell.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sway/desktop/layer_shell.c b/sway/desktop/layer_shell.c index 269864d4..cabb07f5 100644 --- a/sway/desktop/layer_shell.c +++ b/sway/desktop/layer_shell.c | |||
@@ -211,7 +211,7 @@ void arrange_layers(struct sway_output *output) { | |||
211 | } | 211 | } |
212 | 212 | ||
213 | struct sway_seat *seat; | 213 | struct sway_seat *seat; |
214 | wl_list_for_each(seat, &input_manager->seats, link) { | 214 | wl_list_for_each(seat, &server.input->seats, link) { |
215 | seat_set_focus_layer(seat, topmost ? topmost->layer_surface : NULL); | 215 | seat_set_focus_layer(seat, topmost ? topmost->layer_surface : NULL); |
216 | } | 216 | } |
217 | } | 217 | } |
@@ -241,7 +241,7 @@ static void handle_output_destroy(struct wl_listener *listener, void *data) { | |||
241 | wl_container_of(listener, sway_layer, output_destroy); | 241 | wl_container_of(listener, sway_layer, output_destroy); |
242 | // Determine if this layer is being used by an exclusive client. If it is, | 242 | // Determine if this layer is being used by an exclusive client. If it is, |
243 | // try and find another layer owned by this client to pass focus to. | 243 | // try and find another layer owned by this client to pass focus to. |
244 | struct sway_seat *seat = input_manager_get_default_seat(input_manager); | 244 | struct sway_seat *seat = input_manager_get_default_seat(); |
245 | struct wl_client *client = | 245 | struct wl_client *client = |
246 | wl_resource_get_client(sway_layer->layer_surface->resource); | 246 | wl_resource_get_client(sway_layer->layer_surface->resource); |
247 | bool set_focus = seat->exclusive_client == client; | 247 | bool set_focus = seat->exclusive_client == client; |
@@ -299,7 +299,7 @@ static void unmap(struct sway_layer_surface *sway_layer) { | |||
299 | output_damage_surface(output, sway_layer->geo.x, sway_layer->geo.y, | 299 | output_damage_surface(output, sway_layer->geo.x, sway_layer->geo.y, |
300 | sway_layer->layer_surface->surface, true); | 300 | sway_layer->layer_surface->surface, true); |
301 | 301 | ||
302 | struct sway_seat *seat = input_manager_current_seat(input_manager); | 302 | struct sway_seat *seat = input_manager_current_seat(); |
303 | if (seat->focused_layer == sway_layer->layer_surface) { | 303 | if (seat->focused_layer == sway_layer->layer_surface) { |
304 | seat_set_focus_layer(seat, NULL); | 304 | seat_set_focus_layer(seat, NULL); |
305 | } | 305 | } |
@@ -370,7 +370,7 @@ void handle_layer_shell_surface(struct wl_listener *listener, void *data) { | |||
370 | if (!layer_surface->output) { | 370 | if (!layer_surface->output) { |
371 | // Assign last active output | 371 | // Assign last active output |
372 | struct sway_output *output = NULL; | 372 | struct sway_output *output = NULL; |
373 | struct sway_seat *seat = input_manager_get_default_seat(input_manager); | 373 | struct sway_seat *seat = input_manager_get_default_seat(); |
374 | if (seat) { | 374 | if (seat) { |
375 | struct sway_workspace *ws = seat_get_focused_workspace(seat); | 375 | struct sway_workspace *ws = seat_get_focused_workspace(seat); |
376 | 376 | ||