Struct smithay_client_toolkit::data_device::DndAction [−][src]
pub struct DndAction { /* fields omitted */ }
drag and drop actions
This is a bitmask of the available/preferred actions in a drag-and-drop operation.
In the compositor, the selected action is a result of matching the actions offered by the source and destination sides. “action” events with a “none” action will be sent to both source and destination if there is no match. All further checks will effectively happen on (source actions ∩ destination actions).
In addition, compositors may also pick different actions in reaction to key modifiers being pressed. One common design that is used in major toolkits (and the behavior recommended for compositors) is:
- If no modifiers are pressed, the first match (in bit order) will be used.
- Pressing Shift selects “move”, if enabled in the mask.
- Pressing Control selects “copy”, if enabled in the mask.
Behavior beyond that is considered implementation-dependent. Compositors may for example bind other modifiers (like Alt/Meta) or drags initiated with other buttons than BTN_LEFT to specific actions (e.g. “ask”).
Implementations
impl DndAction
[src]
impl DndAction
[src]pub fn from_bits(bits: u32) -> Option<DndAction>
[src]
pub fn from_bits(bits: u32) -> Option<DndAction>
[src]Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
pub const fn from_bits_truncate(bits: u32) -> DndAction
[src]
pub const fn from_bits_truncate(bits: u32) -> DndAction
[src]Convert from underlying bit representation, dropping any bits that do not correspond to flags.
pub const unsafe fn from_bits_unchecked(bits: u32) -> DndAction
[src]
pub const unsafe fn from_bits_unchecked(bits: u32) -> DndAction
[src]Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
pub const fn intersects(&self, other: DndAction) -> bool
[src]
pub const fn intersects(&self, other: DndAction) -> bool
[src]Returns true
if there are flags common to both self
and other
.
Trait Implementations
impl BitAndAssign<DndAction> for DndAction
[src]
impl BitAndAssign<DndAction> for DndAction
[src]pub fn bitand_assign(&mut self, other: DndAction)
[src]
pub fn bitand_assign(&mut self, other: DndAction)
[src]Disables all flags disabled in the set.
impl BitOrAssign<DndAction> for DndAction
[src]
impl BitOrAssign<DndAction> for DndAction
[src]pub fn bitor_assign(&mut self, other: DndAction)
[src]
pub fn bitor_assign(&mut self, other: DndAction)
[src]Adds the set of flags.
impl BitXorAssign<DndAction> for DndAction
[src]
impl BitXorAssign<DndAction> for DndAction
[src]pub fn bitxor_assign(&mut self, other: DndAction)
[src]
pub fn bitxor_assign(&mut self, other: DndAction)
[src]Toggles the set of flags.
impl Extend<DndAction> for DndAction
[src]
impl Extend<DndAction> for DndAction
[src]pub fn extend<T>(&mut self, iterator: T) where
T: IntoIterator<Item = DndAction>,
[src]
pub fn extend<T>(&mut self, iterator: T) where
T: IntoIterator<Item = DndAction>,
[src]Extends a collection with the contents of an iterator. Read more
fn extend_one(&mut self, item: A)
[src]
fn extend_one(&mut self, item: A)
[src]extend_one
)Extends a collection with exactly one element.
fn extend_reserve(&mut self, additional: usize)
[src]
fn extend_reserve(&mut self, additional: usize)
[src]extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
impl FromIterator<DndAction> for DndAction
[src]
impl FromIterator<DndAction> for DndAction
[src]impl Ord for DndAction
[src]
impl Ord for DndAction
[src]impl PartialOrd<DndAction> for DndAction
[src]
impl PartialOrd<DndAction> for DndAction
[src]pub fn partial_cmp(&self, other: &DndAction) -> Option<Ordering>
[src]
pub fn partial_cmp(&self, other: &DndAction) -> Option<Ordering>
[src]This method returns an ordering between self
and other
values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than (for self
and other
) and is used by the <
operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl SubAssign<DndAction> for DndAction
[src]
impl SubAssign<DndAction> for DndAction
[src]pub fn sub_assign(&mut self, other: DndAction)
[src]
pub fn sub_assign(&mut self, other: DndAction)
[src]Disables all flags enabled in the set.
impl Copy for DndAction
[src]
impl Eq for DndAction
[src]
impl StructuralEq for DndAction
[src]
impl StructuralPartialEq for DndAction
[src]
Auto Trait Implementations
impl RefUnwindSafe for DndAction
impl Send for DndAction
impl Sync for DndAction
impl Unpin for DndAction
impl UnwindSafe for DndAction
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more