pub struct DockingInteractionSettings {
pub drag_inversion: DockDragInversionSettings,
pub tab_drag_threshold: Px,
pub split_handle_hit_thickness: Px,
pub split_handle_gap: Px,
pub viewport_context_menu_drag_threshold: Px,
pub suppress_context_menu_during_viewport_capture: bool,
pub dock_hint_scale_inner: f32,
pub dock_hint_scale_outer: f32,
pub transparent_payload_during_follow: bool,
pub follow_window_during_drag: bool,
pub transparent_payload_alpha: f32,
}Fields§
§drag_inversion: DockDragInversionSettings§tab_drag_threshold: PxDrag activation threshold for docking tab drags (window-local logical pixels).
split_handle_hit_thickness: PxSplit handle hit thickness (window-local logical pixels).
Dear ImGui exposes this concept as Style.DockingSeparatorSize (scaled).
split_handle_gap: PxSplit handle gap between panels (window-local logical pixels).
This is kept as an explicit knob because it affects both:
- the computed panel rects, and
- the split handle centers/hit rects.
Drag distance threshold for suppressing viewport right-click context menus (screen px).
Docking forwards viewport pointer input via Effect::ViewportInput and uses pointer capture
to keep delivering events when the cursor leaves the viewport bounds.
For editor-like viewports, it is common to support both:
- right-click context menus (when the pointer does not move), and
- right-drag navigation (orbit/pan) without a context menu on release.
When this value is exceeded during a right-button viewport capture, docking will suppress
bubbling on the matching PointerUp so context-menu primitives upstream do not trigger.
When true, suppress bubbling of secondary right-click events while a viewport capture session is active (e.g. during a left-drag marquee).
dock_hint_scale_inner: f32Scale factor for the inner docking hint pad geometry (1.0 matches current ImGui-parity).
dock_hint_scale_outer: f32Scale factor for the outer docking hint pad geometry (1.0 matches current ImGui-parity).
transparent_payload_during_follow: boolOptional ImGui-style “transparent payload” behavior when a dock tear-off window is following the cursor.
When enabled, the runner may:
- make the dock-floating OS window semi-transparent, and
- ignore mouse events for it (“NoInputs”), so hovered-window selection can “peek behind” the moving window in overlap cases.
Default is false to keep multi-window behavior conservative across platforms/backends.
follow_window_during_drag: boolOptional ImGui-style “follow window” behavior during docking drags.
When enabled, docking interactions may request the runner to treat certain dock drags as a “move the OS window” gesture (while still allowing cross-window hover/drop routing).
This is intentionally conservative by default: runners vary in how reliable it is to move OS windows at high frequency, and the UX depends on also supporting “peek behind the moving window” hover semantics.
transparent_payload_alpha: f32Alpha multiplier for the tear-off payload window while following the cursor.
ImGui uses 0.50 for ConfigDockingTransparentPayload.
Trait Implementations§
Source§impl Clone for DockingInteractionSettings
impl Clone for DockingInteractionSettings
Source§fn clone(&self) -> DockingInteractionSettings
fn clone(&self) -> DockingInteractionSettings
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more