feat: implement composable window snapping with dual-axis constraints and toggle-to-full behavior

Add SnapHorizontal/SnapVertical enums and SnapConstraint struct to Client for tracking snap state. Introduce layout_apply_snap_constraint() to position windows into quadrants or full axes based on stored snap flags. Extend key_snap_left/right with toggle logic that expands to full width on second press, and add new key_snap_up/down handlers for vertical snapping. Update shortcut documentation and help overlay to describe composable two-key sequences (e.g. Super+Left then Super+Up for top-left quarter).
This commit is contained in:
2025-12-28 10:21:03 +00:00
parent 64f9761116
commit ab36b7dd2c
17 changed files with 210 additions and 64 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+3 -1
View File
@@ -18,7 +18,8 @@ build/client.o: src/client.c include/client.h include/dwn.h \
/usr/include/dbus-1.0/dbus/dbus-server.h \
/usr/include/dbus-1.0/dbus/dbus-signature.h \
/usr/include/dbus-1.0/dbus/dbus-syntax.h \
/usr/include/dbus-1.0/dbus/dbus-threads.h include/layout.h
/usr/include/dbus-1.0/dbus/dbus-threads.h include/layout.h \
include/panel.h
include/client.h:
include/dwn.h:
include/atoms.h:
@@ -46,3 +47,4 @@ include/notifications.h:
/usr/include/dbus-1.0/dbus/dbus-syntax.h:
/usr/include/dbus-1.0/dbus/dbus-threads.h:
include/layout.h:
include/panel.h:
BIN
View File
Binary file not shown.
+3 -1
View File
@@ -18,7 +18,8 @@ build/keys.o: src/keys.c include/keys.h include/dwn.h include/client.h \
/usr/include/dbus-1.0/dbus/dbus-signature.h \
/usr/include/dbus-1.0/dbus/dbus-syntax.h \
/usr/include/dbus-1.0/dbus/dbus-threads.h include/news.h \
include/applauncher.h include/decorations.h include/demo.h
include/applauncher.h include/decorations.h include/demo.h \
include/layout.h
include/keys.h:
include/dwn.h:
include/client.h:
@@ -49,3 +50,4 @@ include/news.h:
include/applauncher.h:
include/decorations.h:
include/demo.h:
include/layout.h:
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.