fix multi-dpi scaling

This commit is contained in:
Devin J. Pohly 2020-04-25 01:18:28 -05:00
parent 9b9ef0bae5
commit 6cad698517
2 changed files with 11 additions and 11 deletions

View File

@ -77,17 +77,13 @@ user-level service manager like s6 or `systemd --user`.
dwl is a work in progress, and it has not yet reached its feature goals in a dwl is a work in progress, and it has not yet reached its feature goals in a
number of ways: number of ways:
- Features not yet implemented: - Urgent/attention/focus-request
- xdg-shell popups - Normal/selected/urgent border colors
- Urgent/attention/focus-request - layer-shell
- Normal/selected/urgent border colors - Statusbar support (built-in or external)
- layer-shell - Damage tracking
- Statusbar support (built-in or external) - Fullscreen/fixed windows (or whatever the Wayland analogues are)
- Damage tracking - XWayland
- Fullscreen/fixed windows (or whatever the Wayland analogues are)
- XWayland
- HiDPI works, but multi-DPI is not as nice as sway, depending on the scale
factors involved. Perhaps scaling filters are needed?
## Acknowledgements ## Acknowledgements

4
dwl.c
View File

@ -633,6 +633,8 @@ maprequest(struct wl_listener *listener, void *data)
wl_list_insert(&clients, &c->link); wl_list_insert(&clients, &c->link);
wl_list_insert(&fstack, &c->flink); wl_list_insert(&fstack, &c->flink);
wl_list_insert(&stack, &c->slink); wl_list_insert(&stack, &c->slink);
/* XXX should check all outputs, also needs a send_leave counterpart */
wlr_surface_send_enter(c->xdg_surface->surface, c->mon->wlr_output);
keyboardfocus(c, NULL); keyboardfocus(c, NULL);
} }
@ -1033,6 +1035,8 @@ sendmon(Client *c, Monitor *m)
if (c->mon == m) if (c->mon == m)
return; return;
c->mon = m; c->mon = m;
/* XXX should check all outputs, also needs a send_leave counterpart */
wlr_surface_send_enter(c->xdg_surface->surface, c->mon->wlr_output);
c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */ c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */
if (c == selclient()) if (c == selclient())