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 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for DockingInteractionSettings
Source§impl Debug for DockingInteractionSettings
impl Debug for DockingInteractionSettings
Source§impl Default for DockingInteractionSettings
impl Default for DockingInteractionSettings
Source§impl PartialEq for DockingInteractionSettings
impl PartialEq for DockingInteractionSettings
Source§fn eq(&self, other: &DockingInteractionSettings) -> bool
fn eq(&self, other: &DockingInteractionSettings) -> bool
self and other values to be equal, and is used by ==.