forked from mirror/dwl
allow NULL surface with client in focus functions
This commit is contained in:
parent
33b0236858
commit
2c134faa40
1 changed files with 4 additions and 1 deletions
5
dwl.c
5
dwl.c
|
@ -465,7 +465,7 @@ focusclient(Client *c, struct wlr_surface *surface, int lift)
|
||||||
{
|
{
|
||||||
if (c) {
|
if (c) {
|
||||||
/* assert(VISIBLEON(c, c->mon)); ? */
|
/* assert(VISIBLEON(c, c->mon)); ? */
|
||||||
/* If no surface provided, use the client's xdg_surface */
|
/* Use top level surface if nothing more specific given */
|
||||||
if (!surface)
|
if (!surface)
|
||||||
surface = c->xdg_surface->surface;
|
surface = c->xdg_surface->surface;
|
||||||
/* Focus the correct monitor as well */
|
/* Focus the correct monitor as well */
|
||||||
|
@ -763,6 +763,9 @@ void
|
||||||
pointerfocus(Client *c, struct wlr_surface *surface, double sx, double sy,
|
pointerfocus(Client *c, struct wlr_surface *surface, double sx, double sy,
|
||||||
uint32_t time)
|
uint32_t time)
|
||||||
{
|
{
|
||||||
|
/* Use top level surface if nothing more specific given */
|
||||||
|
if (c && !surface)
|
||||||
|
surface = c->xdg_surface->surface;
|
||||||
/* If surface is already focused, only notify of motion */
|
/* If surface is already focused, only notify of motion */
|
||||||
if (surface && surface == seat->pointer_state.focused_surface) {
|
if (surface && surface == seat->pointer_state.focused_surface) {
|
||||||
wlr_seat_pointer_notify_motion(seat, time, sx, sy);
|
wlr_seat_pointer_notify_motion(seat, time, sx, sy);
|
||||||
|
|
Loading…
Reference in a new issue