Commit Graph

516 Commits

Author SHA1 Message Date
Window Maker 27b59ca388 decompose wl_backend.c: extract wl_xdg_activation.c 2026-06-02 16:11:42 +02:00
Window Maker 52182fcbec decompose wl_backend.c: extract wl_text_input.c 2026-06-02 16:10:42 +02:00
Window Maker 84a2be36c3 decompose wl_backend.c: extract wl_output_mgmt.c 2026-06-02 16:09:42 +02:00
Window Maker e3a8c5d74b decompose wl_backend.c: extract wl_output.c 2026-06-02 16:07:34 +02:00
Window Maker 053ed4e6b3 decompose wl_backend.c: extract wl_xdg.c 2026-06-02 16:05:18 +02:00
Window Maker ac4aa4fe4d decompose wl_backend.c: extract wl_popup.c 2026-06-02 16:01:22 +02:00
Window Maker c46adc93c5 decompose wl_backend.c: extract wl_xwayland.c 2026-06-02 15:53:48 +02:00
Window Maker 5a2faa765a decompose wl_backend.c: extract wl_dock.c 2026-06-02 15:49:44 +02:00
Window Maker 698d4dfba7 decompose wl_backend.c: extract wl_input_fwd.c + make pointer button/frame/axis non-static 2026-06-02 15:47:08 +02:00
Window Maker a1a23099ba decompose wl_backend.c: extract wl_keyboard.c 2026-06-02 15:43:44 +02:00
Window Maker 6df031f834 decompose wl_backend.c: extract wl_grab.c 2026-06-02 15:42:02 +02:00
Window Maker b06e9417ca decompose wl_backend.c: extract wl_pointer_focus.c 2026-06-02 15:39:19 +02:00
Window Maker 2e22c290ac decompose wl_backend.c: extract wl_pointer_motion.c 2026-06-02 14:35:02 +02:00
Window Maker 28fb61668f decompose wl_backend.c: extract wl_dragicon.c 2026-06-02 14:30:57 +02:00
Window Maker 7b02d32a02 decompose wl_backend.c: extract wl_grabstate.c 2026-06-02 14:26:30 +02:00
Window Maker 9f69f7930d decompose wl_backend.c: extract wl_grabs.c 2026-06-02 14:25:01 +02:00
Window Maker e19562a07c decompose wl_backend.c: extract wl_dnd.c 2026-06-02 14:22:24 +02:00
Window Maker f6cf67cb39 decompose wl_backend.c: extract wl_clipboard.c 2026-06-02 14:15:10 +02:00
Window Maker 5fd0eda8d2 decompose wl_backend.c: extract wl_stubs.c (noop stubs + vtable) 2026-06-02 12:40:56 +02:00
Window Maker dceb0cf55b decompose wl_backend.c: extract wl_xdisplay.c 2026-06-02 12:12:22 +02:00
Window Maker bce1aaa62c decompose wl_backend.c: extract wl_wings.c 2026-06-02 12:06:16 +02:00
Window Maker 5e5e4dbd02 decompose wl_backend.c: extract wl_shm.c 2026-06-02 12:03:25 +02:00
Window Maker e1c221948c decompose wl_backend.c: extract wl_screen.c 2026-06-02 12:01:06 +02:00
Window Maker 89668f0202 decompose wl_backend.c: extract wl_focus.c 2026-06-02 11:59:38 +02:00
Window Maker 6044c6418b decompose wl_backend.c: extract wl_events.c 2026-06-02 11:58:23 +02:00
Window Maker a9a3f0ff1d decompose wl_backend.c: extract wl_extensions.c 2026-06-02 11:49:35 +02:00
Window Maker c60c20bf49 decompose wl_backend.c: extract wl_fakeleader.c 2026-06-02 11:08:52 +02:00
Window Maker db0db065a1 decompose wl_backend.c: extract wl_badge.c 2026-06-02 11:07:56 +02:00
Window Maker 0878f6946d decompose wl_backend.c: extract wl_xkb.c 2026-06-02 11:06:53 +02:00
Window Maker ba7b7de898 decompose wl_backend.c: extract wl_signalfd.c 2026-06-02 10:45:56 +02:00
Window Maker 33f686c79f decompose wl_backend.c: extract wl_atom.c 2026-06-02 10:42:28 +02:00
Window Maker e47b44ccd0 decompose wl_backend.c: extract wl_framebuf.c 2026-06-02 10:41:30 +02:00
Window Maker 861ae10c8f decompose wl_backend.c: extract wl_icccm.c 2026-06-02 10:36:07 +02:00
Window Maker cbc9fa5a84 decompose wl_backend.c: extract wl_client.c 2026-06-02 10:28:48 +02:00
Window Maker 36cdc48f23 decompose wl_backend.c: extract wl_props.c 2026-06-02 10:25:02 +02:00
Window Maker 273589092d decompose wl_backend.c: extract wl_window.c (window map/unmap/move/resize/border/clear) 2026-06-02 10:18:57 +02:00
Window Maker b9450d16ad remove corrupted extraction files not yet building 2026-06-02 10:07:29 +02:00
Window Maker 5175cf880c decompose wl_backend.c: extract event, stacking, overlay modules 2026-06-02 10:07:10 +02:00
Window Maker 758623269b extract context from wl_backend 2026-05-31 12:34:04 +02:00
Window Maker 5173cbbdd5 fix: skip view-absolute position sync for reparented frame_bufs 2026-05-31 10:04:21 +02:00
Window Maker 654f24d8f8 fix: remove duplicate fake_leader check that short-circuited WINGs view reparent 2026-05-31 10:00:19 +02:00
Window Maker 59088e2f86 fix: realize dialog panel before client_reparent so WMWidgetXID returns a valid view ID 2026-05-30 15:45:09 +02:00
Window Maker c968c0b6f9 fix: offset dialog content below titlebar (frame top_width) 2026-05-30 15:40:48 +02:00
Window Maker dcfc4f44f4 fix: exit dialog content not visible at correct position — reparent fake_leader tree into frame tree 2026-05-30 15:39:07 +02:00
Window Maker d95d2c007c fix: exit dialog not visible on Wayland — preserve frame_buf parent on backing resize 2026-05-30 15:33:10 +02:00
Window Maker 86f7510a13 fix: non-responsive WINGs widgets on Wayland (overlapping sibling views + cascade compositing) 2026-05-30 15:29:04 +02:00
Ollie 6e902db869 fix: refresh pointer focus before delivering button event on Wayland
wlr_seat_pointer_notify_button delivers to the surface that currently has pointer focus. If the last wl_update_pointer_focus call was during a motion event that targeted a different area (e.g., titlebar), the XWayland client surface might not have focus when the user clicks on its content area. Added wl_update_pointer_focus call before wlr_seat_pointer_notify_button in handle_pointer_button to ensure pointer focus is always current.
2026-05-30 13:37:15 +02:00
Ollie 2eef17de24 fix: slider page-click uses event->u.motion.x/y instead of button.x/y on Wayland
WMEButton and WMEMotion are separate structs in the WMEvent union with different field layouts — u.motion.x is at a different memory offset than u.button.x. The WME_BUTTON_PRESS handler in wslider.c was calling valueForMousePoint(sPtr, event->u.motion.x, event->u.motion.y) which reads uninitialized memory on Wayland (memset zero = 0). On X11 this happened to work because the X11 event translator writes to both union members. Fix: changed all event->u.motion.x/y references to event->u.button.x/y in the WME_BUTTON_PRESS case.
2026-05-30 13:31:50 +02:00
Ollie e417682ed4 fix: event coordinates must be relative to WINGs target view, not toplevel
W_FindViewAtPoint finds the correct child view (slider, checkbox, etc.) but does not adjust event coordinates. The WMEvent x/y were set relative to the top-level WINGs view (fb->x, fb->y origin), while widget event handlers (getSliderPart, valueForMousePoint, etc.) expect coordinates relative to the widget view itself. Fixed by computing the accumulated offset from the target view up to the toplevel and subtracting it from the event coordinates. Applied to both handle_pointer_button and handle_pointer_motion.
2026-05-30 13:28:35 +02:00
Ollie 0342794845 fix: slider drag not working — motion events missing WINGs view target on Wayland
handle_pointer_motion enqueued WME_MOTION events with target=NULL. On button press, handle_pointer_button correctly resolves the WINGs child view (slider) via W_FindViewAtPoint and sets _view_target, so the slider receives the press and sets dragging=1. But subsequent motion events had NULL target, so WMHandleEvent routed them to the top-level view instead of the slider view — the slider never received WME_MOTION during drag. Fix: add W_FindViewAtPoint resolution in handle_pointer_motion, matching the button press logic.
2026-05-30 12:49:59 +02:00