1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-01 22:30:03 -04:00

Fix mouse input

Now on Context.create_viewport in the render function will we have viewport_id and parent_viewport_id
New problem if a windows is fucused and we interact with other window the first event will be send to the last window that was focused
This commit is contained in:
Konkitoman
2023-07-24 14:24:30 +03:00
parent 3a1d9f2e21
commit 4d883b8217
36 changed files with 261 additions and 173 deletions

View File

@@ -12,7 +12,7 @@ impl super::Demo for About {
egui::Window::new(self.name())
.default_width(320.0)
.open(open)
.show(ctx, |ui| {
.show(ctx, |ui, _, _| {
use super::View as _;
Self::default().ui(ui);
});

View File

@@ -40,7 +40,7 @@ impl super::Demo for CodeEditor {
egui::Window::new(self.name())
.open(open)
.default_height(500.0)
.show(ctx, move |ui| clone.clone().ui(ui));
.show(ctx, move |ui, _, _| clone.clone().ui(ui));
}
}

View File

@@ -84,7 +84,7 @@ impl super::Demo for CodeExample {
.default_size([800.0, 400.0])
.vscroll(false)
.hscroll(true)
.show(ctx, move |ui| clone.clone().ui(ui));
.show(ctx, move |ui, _, _| clone.clone().ui(ui));
}
}

View File

@@ -70,7 +70,7 @@ impl super::Demo for ContextMenus {
.vscroll(false)
.resizable(false)
.open(open)
.show(ctx, move |ui| clone.clone().ui(ui));
.show(ctx, move |ui, _, _| clone.clone().ui(ui));
}
}

View File

@@ -16,7 +16,7 @@ impl super::Demo for DancingStrings {
.open(open)
.default_size(vec2(512.0, 256.0))
.vscroll(false)
.show(ctx, |ui| Self::default().ui(ui));
.show(ctx, |ui, _, _| Self::default().ui(ui));
}
}

View File

@@ -202,7 +202,7 @@ impl DemoWindows {
.open(&mut about_is_open)
.resizable(false)
.collapsible(false)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
let close = close.clone();
clone.data.write().unwrap().about.ui(ui);
ui.add_space(12.0);

View File

@@ -120,7 +120,7 @@ impl super::Demo for DragAndDropDemo {
.default_size(vec2(256.0, 256.0))
.vscroll(false)
.resizable(false)
.show(ctx, move |ui| clone.clone().ui(ui));
.show(ctx, move |ui, _, _| clone.clone().ui(ui));
}
}

View File

@@ -32,7 +32,7 @@ impl super::Demo for FontBook {
let clone = self.clone();
egui::Window::new(self.name())
.open(open)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});

View File

@@ -12,7 +12,7 @@ impl super::Demo for Highlighting {
egui::Window::new(self.name())
.default_width(320.0)
.open(open)
.show(ctx, |ui| {
.show(ctx, |ui, _, _| {
use super::View as _;
Self::default().ui(ui);
});

View File

@@ -92,7 +92,7 @@ impl super::Demo for LayoutTest {
egui::Window::new(self.name())
.open(open)
.resizable(false)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});

View File

@@ -62,7 +62,7 @@ impl Demo for MiscDemoWindow {
.open(open)
.vscroll(true)
.hscroll(true)
.show(ctx, move |ui| clone.clone().ui(ui));
.show(ctx, move |ui, _, _| clone.clone().ui(ui));
}
}

View File

@@ -39,7 +39,7 @@ impl super::Demo for MultiTouch {
.open(open)
.default_size(vec2(512.0, 512.0))
.resizable(true)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});

View File

@@ -166,7 +166,7 @@ impl super::Demo for PaintBezier {
.vscroll(false)
.resizable(false)
.default_size([300.0, 350.0])
.show(ctx, move |ui| clone.clone().ui(ui));
.show(ctx, move |ui, _, _| clone.clone().ui(ui));
}
}

View File

@@ -94,7 +94,7 @@ impl super::Demo for Painting {
.open(open)
.default_size(vec2(512.0, 512.0))
.vscroll(false)
.show(ctx, move |ui| clone.clone().ui(ui));
.show(ctx, move |ui, _, _| clone.clone().ui(ui));
}
}

View File

@@ -68,7 +68,7 @@ impl super::Demo for PlotDemo {
.open(open)
.default_size(vec2(400.0, 400.0))
.vscroll(false)
.show(ctx, move |ui| clone.clone().ui(ui));
.show(ctx, move |ui, _, _| clone.clone().ui(ui));
}
}

View File

@@ -50,7 +50,7 @@ impl super::Demo for Scrolling {
egui::Window::new(self.name())
.open(open)
.resizable(false)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});

View File

@@ -63,7 +63,7 @@ impl super::Demo for Sliders {
egui::Window::new(self.name())
.open(open)
.resizable(false)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});

View File

@@ -16,7 +16,7 @@ impl super::Demo for StripDemo {
.open(open)
.resizable(true)
.default_width(400.0)
.show(ctx, |ui| {
.show(ctx, |ui, _, _| {
use super::View as _;
Self::default().ui(ui);
});

View File

@@ -49,7 +49,7 @@ impl super::Demo for TableDemo {
.open(open)
.resizable(true)
.default_width(400.0)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});

View File

@@ -9,10 +9,12 @@ impl super::Demo for CursorTest {
}
fn show(&mut self, ctx: &egui::Context, open: &mut bool) {
egui::Window::new(self.name()).open(open).show(ctx, |ui| {
use super::View as _;
Self::default().ui(ui);
});
egui::Window::new(self.name())
.open(open)
.show(ctx, |ui, _, _| {
use super::View as _;
Self::default().ui(ui);
});
}
}
@@ -41,10 +43,12 @@ impl super::Demo for IdTest {
}
fn show(&mut self, ctx: &egui::Context, open: &mut bool) {
egui::Window::new(self.name()).open(open).show(ctx, |ui| {
use super::View as _;
Self::default().ui(ui);
});
egui::Window::new(self.name())
.open(open)
.show(ctx, |ui, _, _| {
use super::View as _;
Self::default().ui(ui);
});
}
}
@@ -135,7 +139,7 @@ impl super::Demo for ManualLayoutTest {
egui::Window::new(self.name())
.resizable(false)
.open(open)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});
@@ -232,7 +236,7 @@ impl super::Demo for TableTest {
let clone = self.clone();
egui::Window::new(self.name())
.open(open)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});
@@ -353,7 +357,7 @@ impl super::Demo for InputTest {
egui::Window::new(self.name())
.open(open)
.resizable(false)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});
@@ -434,7 +438,7 @@ impl super::Demo for WindowResizeTest {
Window::new("↔ auto-sized")
.open(open)
.auto_sized()
.show(ctx, |ui| {
.show(ctx, |ui, _, _| {
ui.label("This window will auto-size based on its contents.");
ui.heading("Resize this area:");
Resize::default().show(ui, |ui| {
@@ -448,7 +452,7 @@ impl super::Demo for WindowResizeTest {
.vscroll(true)
.resizable(true)
.default_height(300.0)
.show(ctx, |ui| {
.show(ctx, |ui, _, _| {
ui.label(
"This window is resizable and has a scroll area. You can shrink it to any size.",
);
@@ -461,7 +465,7 @@ impl super::Demo for WindowResizeTest {
.vscroll(false)
.resizable(true)
.default_height(300.0)
.show(ctx, |ui| {
.show(ctx, |ui, _, _| {
ui.label("This window is resizable but has no built-in scroll area.");
ui.label("However, we have a sub-region with a scroll bar:");
ui.separator();
@@ -477,7 +481,7 @@ impl super::Demo for WindowResizeTest {
.open(open)
.vscroll(false)
.resizable(true)
.show(ctx, |ui| {
.show(ctx, |ui, _, _| {
ui.label("This window is resizable but has no scroll area. This means it can only be resized to a size where all the contents is visible.");
ui.label("egui will not clip the contents of a window, nor add whitespace to it.");
ui.separator();
@@ -491,7 +495,7 @@ impl super::Demo for WindowResizeTest {
.vscroll(false)
.resizable(true)
.default_height(300.0)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
ui.label("Shows how you can fill an area with a widget.");
let mut text = clone.text.write().unwrap();
ui.add_sized(ui.available_size(), TextEdit::multiline(&mut *text));
@@ -502,7 +506,7 @@ impl super::Demo for WindowResizeTest {
.vscroll(false)
.resizable(true)
.default_size([250.0, 150.0])
.show(ctx, |ui| {
.show(ctx, |ui, _, _| {
ui.label("This window has empty space that fills up the available space, preventing auto-shrink.");
ui.allocate_space(ui.available_size());
});

View File

@@ -32,7 +32,7 @@ impl super::Demo for TextEdit {
egui::Window::new(self.name())
.open(open)
.resizable(false)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});

View File

@@ -63,7 +63,7 @@ impl super::Demo for WidgetGallery {
.open(open)
.resizable(true)
.default_width(280.0)
.show(ctx, move |ui| {
.show(ctx, move |ui, _, _| {
use super::View as _;
clone.clone().ui(ui);
});

View File

@@ -83,7 +83,7 @@ impl super::Demo for WindowOptions {
window = window.anchor(anchor, anchor_offset);
}
let clone = self.clone();
window.show(ctx, move |ui| {
window.show(ctx, move |ui, _, _| {
let mut clone = clone.clone();
clone.ui(ui)
});

View File

@@ -14,7 +14,7 @@ impl super::Demo for WindowWithPanels {
.default_height(400.0)
.vscroll(false)
.open(open);
window.show(ctx, |ui| Self {}.ui(ui));
window.show(ctx, |ui, _, _| Self {}.ui(ui));
}
}