mirror of
https://github.com/labwc/labwc.git
synced 2025-10-31 22:25:34 -04:00
seat: refactor seat_focus_surface()
This commit is contained in:
parent
f752610e0b
commit
9342b2b414
4 changed files with 10 additions and 14 deletions
|
|
@ -240,7 +240,7 @@ void keyboard_init(struct seat *seat);
|
||||||
|
|
||||||
void seat_init(struct server *server);
|
void seat_init(struct server *server);
|
||||||
void seat_finish(struct server *server);
|
void seat_finish(struct server *server);
|
||||||
void seat_focus_surface(struct wlr_seat *seat, struct wlr_surface *surface);
|
void seat_focus_surface(struct seat *seat, struct wlr_surface *surface);
|
||||||
|
|
||||||
void interactive_begin(struct view *view, enum cursor_mode mode,
|
void interactive_begin(struct view *view, enum cursor_mode mode,
|
||||||
uint32_t edges);
|
uint32_t edges);
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ void
|
||||||
desktop_focus_view(struct seat *seat, struct view *view)
|
desktop_focus_view(struct seat *seat, struct view *view)
|
||||||
{
|
{
|
||||||
if (!view) {
|
if (!view) {
|
||||||
seat_focus_surface(seat->seat, NULL);
|
seat_focus_surface(seat, NULL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (view->minimized) {
|
if (view->minimized) {
|
||||||
|
|
@ -87,7 +87,7 @@ desktop_focus_view(struct seat *seat, struct view *view)
|
||||||
}
|
}
|
||||||
move_to_front(view);
|
move_to_front(view);
|
||||||
set_activated(view->surface, true);
|
set_activated(view->surface, true);
|
||||||
seat_focus_surface(seat->seat, view->surface);
|
seat_focus_surface(seat, view->surface);
|
||||||
move_xwayland_sub_views_to_front(view);
|
move_xwayland_sub_views_to_front(view);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
11
src/seat.c
11
src/seat.c
|
|
@ -2,8 +2,6 @@
|
||||||
#include <wlr/util/log.h>
|
#include <wlr/util/log.h>
|
||||||
#include "labwc.h"
|
#include "labwc.h"
|
||||||
|
|
||||||
static struct seat *current_seat;
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
input_device_destroy(struct wl_listener *listener, void *data)
|
input_device_destroy(struct wl_listener *listener, void *data)
|
||||||
{
|
{
|
||||||
|
|
@ -80,7 +78,6 @@ seat_init(struct server *server)
|
||||||
wlr_log(WLR_ERROR, "cannot allocate seat");
|
wlr_log(WLR_ERROR, "cannot allocate seat");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
current_seat = seat;
|
|
||||||
|
|
||||||
wl_list_init(&seat->inputs);
|
wl_list_init(&seat->inputs);
|
||||||
seat->new_input.notify = new_input_notify;
|
seat->new_input.notify = new_input_notify;
|
||||||
|
|
@ -118,13 +115,13 @@ seat_finish(struct server *server)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
seat_focus_surface(struct wlr_seat *seat, struct wlr_surface *surface)
|
seat_focus_surface(struct seat *seat, struct wlr_surface *surface)
|
||||||
{
|
{
|
||||||
if (!surface) {
|
if (!surface) {
|
||||||
wlr_seat_keyboard_notify_clear_focus(seat);
|
wlr_seat_keyboard_notify_clear_focus(seat->seat);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
struct wlr_keyboard *kb = ¤t_seat->keyboard_group->keyboard;
|
struct wlr_keyboard *kb = &seat->keyboard_group->keyboard;
|
||||||
wlr_seat_keyboard_notify_enter(seat, surface, kb->keycodes,
|
wlr_seat_keyboard_notify_enter(seat->seat, surface, kb->keycodes,
|
||||||
kb->num_keycodes, &kb->modifiers);
|
kb->num_keycodes, &kb->modifiers);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,7 @@ unmanaged_handle_map(struct wl_listener *listener, void *data)
|
||||||
unmanaged->ly = xsurface->y;
|
unmanaged->ly = xsurface->y;
|
||||||
|
|
||||||
if (wlr_xwayland_or_surface_wants_focus(xsurface)) {
|
if (wlr_xwayland_or_surface_wants_focus(xsurface)) {
|
||||||
struct wlr_seat *seat = unmanaged->server->seat.seat;
|
seat_focus_surface(&unmanaged->server->seat, xsurface->surface);
|
||||||
seat_focus_surface(seat, xsurface->surface);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -52,8 +51,8 @@ unmanaged_handle_unmap(struct wl_listener *listener, void *data)
|
||||||
wl_list_remove(&unmanaged->link);
|
wl_list_remove(&unmanaged->link);
|
||||||
wl_list_remove(&unmanaged->commit.link);
|
wl_list_remove(&unmanaged->commit.link);
|
||||||
|
|
||||||
struct wlr_seat *seat = unmanaged->server->seat.seat;
|
struct seat *seat = &unmanaged->server->seat;
|
||||||
if (seat->keyboard_state.focused_surface == xsurface->surface) {
|
if (seat->seat->keyboard_state.focused_surface == xsurface->surface) {
|
||||||
struct xwayland_unmanaged *u;
|
struct xwayland_unmanaged *u;
|
||||||
struct wl_list *list = &unmanaged->server->unmanaged_surfaces;
|
struct wl_list *list = &unmanaged->server->unmanaged_surfaces;
|
||||||
wl_list_for_each (u, list, link) {
|
wl_list_for_each (u, list, link) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue