diff --git a/egui/src/containers/window.rs b/egui/src/containers/window.rs index 2162367e7aa1..3b382ce0b185 100644 --- a/egui/src/containers/window.rs +++ b/egui/src/containers/window.rs @@ -533,6 +533,10 @@ fn interact( fn move_and_resize_window(ctx: &Context, window_interaction: &WindowInteraction) -> Option { window_interaction.set_cursor(ctx); + // only use primary clicks as window interaction + if !ctx.input().pointer.button_down(PointerButton::Primary) { + return None; + } let pointer_pos = ctx.input().pointer.interact_pos()?; let mut rect = window_interaction.start_rect; // prevent drift @@ -586,7 +590,7 @@ fn window_interaction( if window_interaction.is_none() { if let Some(hover_window_interaction) = resize_hover(ctx, possible, area_layer_id, rect) { hover_window_interaction.set_cursor(ctx); - if ctx.input().pointer.any_pressed() && ctx.input().pointer.any_down() { + if ctx.input().pointer.any_pressed() && ctx.input().pointer.button_down(PointerButton::Primary) { ctx.memory().interaction.drag_id = Some(id); ctx.memory().interaction.drag_is_window = true; window_interaction = Some(hover_window_interaction); diff --git a/egui/src/context.rs b/egui/src/context.rs index bc1dcbf772f5..f2b5e46ba045 100644 --- a/egui/src/context.rs +++ b/egui/src/context.rs @@ -247,7 +247,7 @@ impl CtxRef { // the slider will steal the drag away from the window. // This is needed because we do window interaction first (to prevent frame delay), // and then do content layout. - if sense.drag + if sense.drag && self.input().pointer.button_down(PointerButton::Primary) && (memory.interaction.drag_id.is_none() || memory.interaction.drag_is_window) {