Tags: gitbutlerapp/gitbutler
Tags
Merge pull request #11637 from gitbutlerapp/kv-branch-74 Implement non-legacy api for branch diffs
Merge pull request #11637 from gitbutlerapp/kv-branch-74 Implement non-legacy api for branch diffs
Merge pull request #11628 from gitbutlerapp/log-fetch-interval-exceeded Implements background auto-fetching for `but` commands when configured interval is exceeded
Merge pull request #11628 from gitbutlerapp/log-fetch-interval-exceeded Implements background auto-fetching for `but` commands when configured interval is exceeded
Merge pull request #11623 from gitbutlerapp/jt/unifyu Unify uncommitted file and hunk CLI IDs
feat-drag-targeted-autoscroll (#11617) * feat(drag): enable targeted auto-scroll during drag Add support for drag-triggered auto-scrolling by marking scrollable containers and only scrolling containers that the pointer is inside. Introduce a data-scrollable-for-dragging attribute on ScrollableContainer and MultiStackView so scrollable areas opt into drag scrolling. Enhance draggable.ts to: - detect explicitly marked scrollable containers (data-scrollable-for-dragging) and include them when they actually overflow, while preserving the parent-chain fallback for compatibility and nested scrolling. - add isScrollable/hasScrollableOverflow helpers to centralize overflow checks and ensure content exceeds bounds before treating an element as scrollable. - avoid scrolling multiple nested containers at once by checking that the mouse pointer lies within a container's bounding rect before applying scroll deltas. - continue to include documentElement scrolling if the page is scrollable. Expose enableDragScroll prop on the ConfigurableScrollableContainer and enable it where appropriate in StackView and MultiStackView so only intended containers participate in auto-scroll while dragging. These changes reduce unexpected simultaneous scrolling and restrict auto-scroll behavior to explicit, visible scroll targets. * feat(dragging): prefer innermost scrollable container on drag Refactor scrollable-container detection and scrolling logic during drag operations to improve correctness and avoid nested simultaneous scrolling. - Iterate NodeList with for..of and guard non-HTMLElement nodes to avoid unsafe assumptions when querying [data-scrollable-for-dragging]. - Cache visible scrollable containers as before but change scrolling decision: find the innermost scrollable element under the cursor using elementFromPoint and parent traversal, rather than iterating all cached containers. This prevents multiple nested containers from scrolling at once and targets the most specific container. - Simplify scroll delta computation to use the single selected target container and perform window scroll when the documentElement is the target. These changes improve performance and UX by reducing redundant checks and ensuring only the intended container scrolls while dragging.
feat-drag-targeted-autoscroll (#11617) * feat(drag): enable targeted auto-scroll during drag Add support for drag-triggered auto-scrolling by marking scrollable containers and only scrolling containers that the pointer is inside. Introduce a data-scrollable-for-dragging attribute on ScrollableContainer and MultiStackView so scrollable areas opt into drag scrolling. Enhance draggable.ts to: - detect explicitly marked scrollable containers (data-scrollable-for-dragging) and include them when they actually overflow, while preserving the parent-chain fallback for compatibility and nested scrolling. - add isScrollable/hasScrollableOverflow helpers to centralize overflow checks and ensure content exceeds bounds before treating an element as scrollable. - avoid scrolling multiple nested containers at once by checking that the mouse pointer lies within a container's bounding rect before applying scroll deltas. - continue to include documentElement scrolling if the page is scrollable. Expose enableDragScroll prop on the ConfigurableScrollableContainer and enable it where appropriate in StackView and MultiStackView so only intended containers participate in auto-scroll while dragging. These changes reduce unexpected simultaneous scrolling and restrict auto-scroll behavior to explicit, visible scroll targets. * feat(dragging): prefer innermost scrollable container on drag Refactor scrollable-container detection and scrolling logic during drag operations to improve correctness and avoid nested simultaneous scrolling. - Iterate NodeList with for..of and guard non-HTMLElement nodes to avoid unsafe assumptions when querying [data-scrollable-for-dragging]. - Cache visible scrollable containers as before but change scrolling decision: find the innermost scrollable element under the cursor using elementFromPoint and parent traversal, rather than iterating all cached containers. This prevents multiple nested containers from scrolling at once and targets the most specific container. - Simplify scroll delta computation to use the single selected target container and perform window scroll when the documentElement is the target. These changes improve performance and UX by reducing redundant checks and ensuring only the intended container scrolls while dragging.
Merge pull request #11590 from Byron/fix cleanup usage of assure_stable_env
Prevent dropzone-label-icon from animating when hidden (#11594) This icon was always rendered and animated for any dropzone with a label, and the lanes in the workspace have dropzones with labels. Thus, any non-empty workspace would suffer constant animations. WebkitGTK (i.e. Linux) has terrible animation performance, but even running in Chrome the CPU usage was noticable for me. By only animating the icon when it's actually visible, we save a lot of CPU cycles.
PreviousNext