Skip to main content

DockingInteractionSettings

Struct DockingInteractionSettings 

Source
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: Px

Drag activation threshold for docking tab drags (window-local logical pixels).

§split_handle_hit_thickness: Px

Split handle hit thickness (window-local logical pixels).

Dear ImGui exposes this concept as Style.DockingSeparatorSize (scaled).

§split_handle_gap: Px

Split 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.
§viewport_context_menu_drag_threshold: Px

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.

§suppress_context_menu_during_viewport_capture: bool

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: f32

Scale factor for the inner docking hint pad geometry (1.0 matches current ImGui-parity).

§dock_hint_scale_outer: f32

Scale factor for the outer docking hint pad geometry (1.0 matches current ImGui-parity).

§transparent_payload_during_follow: bool

Optional 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: bool

Optional 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: f32

Alpha multiplier for the tear-off payload window while following the cursor.

ImGui uses 0.50 for ConfigDockingTransparentPayload.

Trait Implementations§

Source§

impl Clone for DockingInteractionSettings

Source§

fn clone(&self) -> DockingInteractionSettings

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DockingInteractionSettings

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DockingInteractionSettings

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for DockingInteractionSettings

Source§

fn eq(&self, other: &DockingInteractionSettings) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for DockingInteractionSettings

Source§

impl StructuralPartialEq for DockingInteractionSettings

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.