aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-01-13attach-mode: implement after <N>Orfeas6-19/+74
2024-01-12Root: use Output.PendingState for fallbackIsaac Freund3-48/+41
Using the same type for these has the potential to simplify some future code.
2024-01-11river: fix -log-level filteringIsaac Freund1-31/+35
This has been broken since the Zig 0.11.0 upgrade it seems.
2024-01-11Keyboard: don't send enter before keymap eventIsaac Freund1-0/+16
It's unclear if this is technically a violation of the protocol or not, but it makes little sense to do this and many clients in the wild crash if wl_keyboard.enter is sent before wl_keyboard.keymap.
2024-01-11Keyboard: check translated keysyms for mappingsIsaac Freund2-25/+68
If our current approch without xkbcommon translation does not match any mapping on a key event attempt to match the translated keysym as well. This makes e.g. the keypad number keys (e.g. KP_1) work intuitively as they may require translation with numlock active. The reason we stopped doing this in I7c02ebcbc was due to layout where e.g. Super+Shift+Space is translated as Space with the Shift modifier consumed, thereby conflicting with a separate mapping for Super+Space. This should not be a issue anymore though as we now only run a maximum of one mapping per key event and we attemt to match mappings without xkbcommon translation before attempting with translation.
2024-01-10river: log version during startupIsaac Freund1-1/+1
2024-01-09Root: fix stack order on restore from 0 outputsIsaac Freund1-1/+1
2024-01-09Root: remove unneeded fallback.inflight listsIsaac Freund2-25/+19
2024-01-07Seat: fix potential crash in handleMapping()Isaac Freund1-10/+23
I haven't actually managed to reproduce a crash here yet but I feel much more comfortable about this code with this change.
2024-01-07keyboard-groups: use globber for identifier matchingLeon Henrik Plickat4-19/+41
2024-01-06Keyboard: fix mapping XF86ScreenSaverIsaac Freund2-0/+20
2024-01-06river: re-add wl_drm support for nowIsaac Freund2-0/+6
It seems to be a bit too early to drop support for this legacy protocol. Xwayland apparently still relies on it for hardware acceleration as do fairly recent mesa versions still in widespread use.
2024-01-06Cursor: Focus follows cursor focuses empty outputsWouter van Heijst1-0/+3
When `focus-follows-cursor` is set and the cursor moves onto an output where no views are present on the currently visible tags, focus the output itself instead of an individual view. This is useful e.g. when you want to spawn a terminal on your empty monitor or switch it to a different tag. Previously such changes would happen to the monitor on which you previous focus was, despite the cursor being somewhere else.
2024-01-05Output: fix possible crash on destroyIsaac Freund1-1/+2
2024-01-05Keyboard: delete some uneeded codeIsaac Freund2-21/+1
2024-01-04Cursor: clean up cursor theme loadingIsaac Freund3-26/+9
wlroots will now load xcursor themes at the correct scale automatically based on the scale of the outputs where ther cursors are displayed. Also make the error handling a bit more robust.
2024-01-04river: Implement cursor_shape_v1MaxVerevkin3-0/+24
2024-01-04Cursor: actually set xcursor_nameMaxVerevkin1-3/+8
2024-01-04Keyboard: Add new keyboards to groups if matchedLeon Henrik Plickat1-1/+11
Previously new keyboards would not be added to already existing keyboard groups on (re-)connect. Only during the creation of the groups themselves were devices added to them. This meant that only keyboards connected during startup - before the init is executed - would work with groups in a typical river session.
2024-01-04xdg-activation: fix race with transaction systemIsaac Freund1-1/+1
This code could allows the view to be focused and urgent at the same time if the request to activate the view is received just after the pending focus has been set but before the transaction completes.
2024-01-03linux-dmabuf: send better per-surface feedbackIsaac Freund2-1/+4
This commit leverages the new wlr_scene helper to send custom feedback per surface rather than using the same default feedback for every surface. This should allow direct scanout to work more reliably with multiple outputs for example.
2024-01-03river: drop support for wl_drmIsaac Freund2-1/+6
wl_drm is a legacy interface superseded by the linux-dmabuf protocol. All clients should migrate. This commit drops support for the protocol which should help find whatever problematic clients are left in the wild. If it turns out that this is too soon we can easily keep supporting wl_drm for a little while longer as wlroots has not yet dropped support for it.
2024-01-03river: Implement fractional_scale_v1MaxVerevkin2-0/+1
2024-01-03XdgToplevel: fix frame perfection on unmapIsaac Freund1-13/+13
It looks like the old workaround for this wlroots API wart is no longer sufficient for wlroots 0.17.
2024-01-01Keyboard: clarify keypress routing logicIsaac Freund2-36/+32
2024-01-01TextInput: fix consecutive enable requestsIsaac Freund1-3/+8
The wording of the text-input-v3 protocol is quite confusing here but I'm pretty sure this is now correct.
2024-01-01TextInput/InputRelay: style nitsIsaac Freund4-118/+126
There should be no functional changes in this commit
2024-01-01TextInput: handle multiple text inputs correctlyIsaac Freund4-62/+62
The protocol states that we must send enter and leave to all text input objects if the client has created multiple. Only one text input is allowed to be activated by the client per seat however.
2024-01-01TextInput: remove pending_focused_surfaceIsaac Freund4-57/+16
This state doesn't need to exist, just get the focus from the Seat.
2024-01-01input-method: address nitspraschke1-3/+6
2024-01-01input-method: check that the input method is active when committingpraschke2-3/+7
2024-01-01input-method: send text-input enter event after all leave eventspraschke1-5/+12
2024-01-01input-method: setKeyboard already sends modifierspraschke1-3/+1
2024-01-01river: Implement input_method and text_inputpraschke6-3/+456
2024-01-01build: require at least wlroots 0.17.1Isaac Freund5-4/+10
There are enough bugs fixed in 0.17.1 which are relevant to river that I think it's worthwhile to refuse to compile against 0.17.1.
2024-01-01output-management: work around wlroots crashIsaac Freund2-0/+11
2024-01-01output-management: fix output config applicationIsaac Freund2-36/+38
Currently wlr-output-management config application is broken since the pre 0.17 code relied on the (now removed) output enable/disable event to be emitted as part of the state application. The old code was pretty smelly and hard to understand, I'm glad the upstream improvements pushed river's code in this directions.
2023-12-29gamma-control: track wlroots 0.17 changesIsaac Freund4-33/+80
2023-12-06deps: update to lastest zig-wlrootsIsaac Freund3-30/+22
This fixes a few issues with the XwaylandSurface bindings
2023-12-05build: fix comment on scanner.generate() versionsIsaac Freund1-2/+5
2023-12-05ci: fix arch and alpineIsaac Freund2-2/+4
2023-12-05Output: fix initial commit for wayland backendIsaac Freund1-6/+25
Also add some more logging
2023-12-05Root: fix faulty assertion, cleanupIsaac Freund2-12/+11
Thanks to tiosgz for prompting me to look at this more closely. There doesn't seem to be any compelling reason to use the wlr_scene_output_layout helper, it's simpler to just make the two necessary SceneOutput.setPosition() calls manually. This will hopefully be refactored down to a single call eventually as well.
2023-12-05Output: fix regression of initial mode logicIsaac Freund1-12/+22
This logic that looked pointless to me while doing the wlroots 0.17 upgrade is in fact important as tiosgz helpfully pointed out. It was added back in bc610c8b to address an issue. Hopefully the new comments stop me from trying to break it again :)
2023-12-05SceneNodeData: fix fromNode()Isaac Freund1-4/+8
This currently fails to check the node passed and skips directly to the parent.
2023-12-01build: update to wlroots 0.17Isaac Freund21-273/+237
2023-11-17session-lock: fix pointer focus handling on mapIsaac Freund2-9/+27
2023-11-14Cursor: fix high polling rate resize regressionIsaac Freund1-14/+24
The previous commit ended up clamping the accumulated f64 offset to an integer every frame, losing any sub-pixel cursor motions. This has been known to cause problems with high polling rate mice in the past. Return to the same approve the move cursor mode uses to solve this and accumulate a separate sub-pixel delta.
2023-11-13Cursor: clamp cursor movement to resize boundsIsaac Freund1-0/+4
Currently resizing a window allows moving the invisible "internal" cursor infinitely far off screen despite the fact that the window is bounded by the size constraints of the client and by the output dimensions. This means that attempting to resize past these bounds in one dimension will result in the "internal" cursor being far out of bounds and will require an equal movement in the opposite direction in order to continue resizing. Exposing this implementation detail of an invisible "internal" cursor separate from the rendered cursor is of course bad, so clamp it to the bounds of the resize.
2023-11-09View: handle map while no outputs are availableIsaac Freund2-20/+46
Currently views which are mapped while no outputs are available can never actually get rendered because they have 0 tags and are stuck in the hidden stack. This commit fixes this and they should now be restored when a new output becomes available.