7 Commits
Author SHA1 Message Date
save196 fa400c5d3d don't run axis bindings when locked 2026-09-21 01:06:08 +03:00
save196 40b0ae76ae bind axis to nothing by default 2026-09-21 00:07:22 +03:00
save196 2a567195e6 don't use the xdg window geometry offset as a position
It is the offset of the visible bounds inside the surface, which is not
zero for clients that pad their surface or place subsurfaces outside it,
so floating windows were mapped offset by their client side decorations.
2026-09-20 19:53:12 +03:00
Guido Cella cc23250527 bump version to 0.10-dev 2026-09-20 12:20:09 +02:00
Guido Cella 98bea2c27f add version 0.9 to the changelog 2026-09-20 11:58:38 +02:00
Guido Cella 49837e985e change unreleased to 0.8 and update it 2026-09-20 11:58:38 +02:00
julmajustus d16036e690 Fix input_method_relay double allocation
- input_method_relay is allocated inside input_method_relay_create(), which leads the extra allocation to leak memory.
2026-09-18 22:09:39 +03:00
5 changed files with 108 additions and 20 deletions
+90 -7
View File
@@ -1,12 +1,98 @@
# Changelog
* [Unreleased](#unreleased)
* [0.9](#0.9)
* [0.8](#0.8)
* [0.7](#0.7)
* [0.6](#0.6)
* [0.5](#0.5)
## Unreleased
## 0.9
### Added
* Add axis mouse bindings ([#652][652])
* Add support for the ext-data-control protocol ([#1184][1184])
* Add support for the ext-foreign-toplevel-list protocol ([#1223][1223])
* Add support for the ext-image-copy-capture and ext-image-capture-source protocols (screensharing) ([#1218][1218], [#1223][1223], [#1224][1224])
* Add support for version 4 of the layer shell protocol (on-demand keyboard interactivity) ([#674][674])
* Add support for wlr-text-input and wlr-input-method protocols (IME) ([#1219][1219])
* Snap windows to edges when moving or resizing them ([#608][608])
[1184]: https://codeberg.org/dwl/dwl/pulls/1184
[1218]: https://codeberg.org/dwl/dwl/pulls/1218
[1219]: https://codeberg.org/dwl/dwl/pulls/1219
[1223]: https://codeberg.org/dwl/dwl/pulls/1223
[1224]: https://codeberg.org/dwl/dwl/pulls/1224
[608]: https://codeberg.org/dwl/dwl/pulls/608
[652]: https://codeberg.org/dwl/dwl/pulls/652
[674]: https://codeberg.org/dwl/dwl/pulls/674
### Changed
* Update wlroots to version 0.20 ([#1218][1218])
* Use modifier-independent key symbols in config.h keybindings ([#1075][1075])
[1075]: https://codeberg.org/dwl/dwl/pulls/1075
[1218]: https://codeberg.org/dwl/dwl/pulls/1218
### Fixed
* Apply a minimum window size of 1x1 ([#1231][1231])
* Close Xwayland submenus when changing tag or focus ([#1233][1233])
* Don't make Firefox draw rounded corners when it is opened ([#d1ebf3c][d1ebf3c])
* Don't send key release events to the wrong client ([#1108][1108])
* Fix a crash when closing mpv ([#1220][1220])
* Fix a crash when destroying an idle-inhibitor ([#1214][1214])
* Fix choppy resizing on newer wlroots ([#1280][1280])
* Fix the position of certain sub-menus in Xwayland applications ([#1232][1232])
* Keep the focused border color on the regular client when opening a layer shell surface like wmenu ([#6013835][6013835])
* Let keybindings focus and tag monitors above and below ([#5fd19fe][5fd19fe])
* Preserve asleep disabled outputs in output config ([#1198][1198])
* Respect size hints ([#4de32d2][4de32d2])
* Set seat capabilities for virtual keyboards and pointers when there is no other input device ([#99cdc9a][99cdc9a])
* Show popups in fullscreen Xwayland applications ([#1fe1b4e][1fe1b4e])
* Show the correct cursor after moving and resizing ([#8ad2c92][8ad2c92])
[1108]: https://codeberg.org/dwl/dwl/pulls/1108
[1198]: https://codeberg.org/dwl/dwl/pulls/1198
[1214]: https://codeberg.org/dwl/dwl/pulls/1214
[1220]: https://codeberg.org/dwl/dwl/pulls/1220
[1231]: https://codeberg.org/dwl/dwl/pulls/1231
[1232]: https://codeberg.org/dwl/dwl/pulls/1232
[1233]: https://codeberg.org/dwl/dwl/pulls/1233
[1280]: https://codeberg.org/dwl/dwl/pulls/1280
[1fe1b4e]: https://codeberg.org/dwl/dwl/commit/1fe1b4e
[4de32d2]: https://codeberg.org/dwl/dwl/commit/4de32d2
[5fd19fe]: https://codeberg.org/dwl/dwl/commit/5fd19fe
[6013835]: https://codeberg.org/dwl/dwl/commit/6013835
[8ad2c92]: https://codeberg.org/dwl/dwl/commit/8ad2c92
[99cdc9a]: https://codeberg.org/dwl/dwl/commit/99cdc9a
[d1ebf3c]: https://codeberg.org/dwl/dwl/commit/d1ebf3c
### Contributors
* A Frederick Christensen
* Alex Denes
* Andrea Chiavazza
* Diego Viola
* Guido Cella
* Leonardo Hernández Hernández
* Peter Hofmann
* Siva Mahadevan
* julmajustus
* klim
* save196
* sewn
* thanatos
## 0.8
### Added
* Support for the linux-drm-syncobj-v1 protocol ([wlroots!4715][wlroots!4715], [#685][685])
@@ -17,15 +103,12 @@
[646]: https://codeberg.org/dwl/dwl/pulls/646
### Changed
### Deprecated
### Removed
### Fixed
* Crash when a client is created while all outputs are disabled.
### Security
### Contributors
Most changes in this release are not listed. See the commits for details.
## 0.7
+1
View File
@@ -189,6 +189,7 @@ client_get_geometry(Client *c, struct wlr_box *geom)
}
#endif
*geom = c->surface.xdg->geometry;
geom->x = geom->y = 0;
}
static inline Client *
+4 -1
View File
@@ -172,6 +172,9 @@ static const Button buttons[] = {
};
static const Axis axes[] = {
/* example of volume control:
{ MODKEY, AxisUp, spawn, SHCMD("volume-up_EXAMPLE") },
{ MODKEY, AxisDown, spawn, SHCMD("volume-down_EXAMPLE") },
{ MODKEY, AxisDown, spawn, SHCMD("volume-down_EXAMPLE") }, */
{ 0, 0, NULL, {0} },
/* does nothing, but the array cannot be empty */
};
+1 -1
View File
@@ -1,4 +1,4 @@
_VERSION = 0.9-dev
_VERSION = 0.10-dev
VERSION = `git describe --tags --dirty 2>/dev/null || echo $(_VERSION)`
PKG_CONFIG = pkg-config
+12 -11
View File
@@ -663,16 +663,18 @@ axisnotify(struct wl_listener *listener, void *data)
wlr_idle_notifier_v1_notify_activity(idle_notifier, seat);
if (event->orientation == WL_POINTER_AXIS_VERTICAL_SCROLL)
adir = event->delta > 0 ? AxisDown : AxisUp;
else
adir = event->delta > 0 ? AxisRight : AxisLeft;
keyboard = wlr_seat_get_keyboard(seat);
mods = keyboard ? wlr_keyboard_get_modifiers(keyboard) : 0;
for (a = axes; a < END(axes); a++) {
if (CLEANMASK(mods) == CLEANMASK(a->mod) && adir == a->dir && a->func) {
a->func(&a->arg);
return;
if (!locked) {
if (event->orientation == WL_POINTER_AXIS_VERTICAL_SCROLL)
adir = event->delta > 0 ? AxisDown : AxisUp;
else
adir = event->delta > 0 ? AxisRight : AxisLeft;
keyboard = wlr_seat_get_keyboard(seat);
mods = keyboard ? wlr_keyboard_get_modifiers(keyboard) : 0;
for (a = axes; a < END(axes); a++) {
if (CLEANMASK(mods) == CLEANMASK(a->mod) && adir == a->dir && a->func) {
a->func(&a->arg);
return;
}
}
}
@@ -2814,7 +2816,6 @@ setup(void)
input_method_manager = wlr_input_method_manager_v2_create(dpy);
text_input_manager = wlr_text_input_manager_v3_create(dpy);
input_method_relay = ecalloc(1, sizeof(*input_method_relay));
input_method_relay = input_method_relay_create();
/* Make sure XWayland clients don't connect to the parent X server,