mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 21:00:03 -04:00
Remove viewport_id and parent_viewport_id from Window::show arguments because can be accessed from Context::get_viewport_id and Context::get_parent_viewport_id
This commit is contained in:
@@ -434,7 +434,7 @@ impl<'open> Window<'open> {
|
||||
pub fn show<R>(
|
||||
self,
|
||||
ctx: &Context,
|
||||
add_contents: impl FnOnce(&mut Ui, u64, u64) -> R,
|
||||
add_contents: impl FnOnce(&mut Ui) -> R,
|
||||
) -> Option<InnerResponse<Option<R>>> {
|
||||
self.show_dyn(ctx, Box::new(add_contents))
|
||||
}
|
||||
@@ -442,7 +442,7 @@ impl<'open> Window<'open> {
|
||||
fn show_dyn<'a, R>(
|
||||
self,
|
||||
ctx: &Context,
|
||||
add_contents: Box<dyn FnOnce(&mut Ui, u64, u64) -> R + 'a>,
|
||||
add_contents: Box<dyn FnOnce(&mut Ui) -> R + 'a>,
|
||||
) -> Option<InnerResponse<Option<R>>> {
|
||||
let Window {
|
||||
title,
|
||||
@@ -662,17 +662,9 @@ impl<'open> Window<'open> {
|
||||
}
|
||||
|
||||
if scroll.has_any_bar() {
|
||||
scroll
|
||||
.show(ui, |ui| {
|
||||
add_contents(
|
||||
ui,
|
||||
viewport_id,
|
||||
parent_viewport_id,
|
||||
)
|
||||
})
|
||||
.inner
|
||||
scroll.show(ui, |ui| add_contents(ui)).inner
|
||||
} else {
|
||||
add_contents(ui, viewport_id, parent_viewport_id)
|
||||
add_contents(ui)
|
||||
}
|
||||
})
|
||||
})
|
||||
@@ -854,9 +846,9 @@ impl<'open> Window<'open> {
|
||||
}
|
||||
|
||||
if scroll.has_any_bar() {
|
||||
scroll.show(ui, |ui| add_contents(ui, 0, 0)).inner
|
||||
scroll.show(ui, |ui| add_contents(ui)).inner
|
||||
} else {
|
||||
add_contents(ui, 0, 0)
|
||||
add_contents(ui)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
@@ -417,7 +417,7 @@ impl EguiWindows {
|
||||
egui::Window::new("🔧 Settings")
|
||||
.open(settings)
|
||||
.vscroll(true)
|
||||
.show(ctx, move |ui, _, _| {
|
||||
.show(ctx, move |ui| {
|
||||
tmp_ctx.settings_ui(ui);
|
||||
});
|
||||
|
||||
@@ -425,7 +425,7 @@ impl EguiWindows {
|
||||
egui::Window::new("🔍 Inspection")
|
||||
.open(inspection)
|
||||
.vscroll(true)
|
||||
.show(ctx, move |ui, _, _| {
|
||||
.show(ctx, move |ui| {
|
||||
tmp_ctx.inspection_ui(ui);
|
||||
});
|
||||
|
||||
@@ -433,7 +433,7 @@ impl EguiWindows {
|
||||
egui::Window::new("📝 Memory")
|
||||
.open(memory)
|
||||
.resizable(false)
|
||||
.show(ctx, move |ui, _, _| {
|
||||
.show(ctx, move |ui| {
|
||||
tmp_ctx.memory_ui(ui);
|
||||
});
|
||||
|
||||
@@ -442,7 +442,7 @@ impl EguiWindows {
|
||||
.open(output_events)
|
||||
.resizable(true)
|
||||
.default_width(520.0)
|
||||
.show(ctx, move |ui, _, _| {
|
||||
.show(ctx, move |ui| {
|
||||
ui.label(
|
||||
"Recent output events from egui. \
|
||||
These are emitted when you interact with widgets, or move focus between them with TAB. \
|
||||
|
||||
@@ -475,7 +475,7 @@ impl WrapApp {
|
||||
let dropped_files = self.dropped_files.clone();
|
||||
egui::Window::new("Dropped files")
|
||||
.open(&mut open)
|
||||
.show(ctx, move |ui, _, _| {
|
||||
.show(ctx, move |ui| {
|
||||
let dropped_files = &*dropped_files.read().unwrap();
|
||||
for file in dropped_files {
|
||||
let mut info = if let Some(path) = &file.path {
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -9,12 +9,10 @@ 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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,12 +41,10 @@ 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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,7 +135,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);
|
||||
});
|
||||
@@ -236,7 +232,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);
|
||||
});
|
||||
@@ -357,7 +353,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);
|
||||
});
|
||||
@@ -438,7 +434,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| {
|
||||
@@ -452,7 +448,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.",
|
||||
);
|
||||
@@ -465,7 +461,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();
|
||||
@@ -481,7 +477,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();
|
||||
@@ -495,7 +491,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));
|
||||
@@ -506,7 +502,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());
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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)
|
||||
});
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ impl eframe::App for MyApp {
|
||||
egui::Window::new("Do you want to quit?")
|
||||
.collapsible(false)
|
||||
.resizable(false)
|
||||
.show(ctx, move |ui, _, _| {
|
||||
.show(ctx, move |ui| {
|
||||
ui.horizontal(|ui| {
|
||||
if ui.button("Cancel").clicked() {
|
||||
data.write().unwrap().show_confirmation_dialog = false;
|
||||
|
||||
@@ -53,7 +53,7 @@ impl ThreadState {
|
||||
let title = self.data.read().unwrap().title.clone();
|
||||
egui::Window::new(title)
|
||||
.default_pos(pos)
|
||||
.show(ctx, move |ui, _, _| {
|
||||
.show(ctx, move |ui| {
|
||||
let data = &mut *clone.data.write().unwrap();
|
||||
ui.horizontal(|ui| {
|
||||
ui.label("Your name: ");
|
||||
@@ -147,10 +147,11 @@ impl eframe::App for MyApp {
|
||||
return;
|
||||
}
|
||||
let data = self.data.clone();
|
||||
egui::Window::new("Main thread").show(ctx, move |ui, _, parent_id| {
|
||||
egui::Window::new("Main thread").show(ctx, move |ui| {
|
||||
if ui.button("Spawn another thread").clicked() {
|
||||
data.write().unwrap().spawn_thread();
|
||||
ui.ctx().request_repaint_viewport(parent_id);
|
||||
ui.ctx()
|
||||
.request_repaint_viewport(ui.ctx().get_parent_viewport_id());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -61,15 +61,16 @@ fn main() {
|
||||
}
|
||||
|
||||
egui::CollapsingHeader::new("Show Test1").show(ui, |ui| {
|
||||
egui::Window::new("Test1").embedded(&mut embedded1).show(
|
||||
ctx,
|
||||
|ui, id, parent_id| {
|
||||
egui::Window::new("Test1")
|
||||
.embedded(&mut embedded1)
|
||||
.show(ctx, |ui| {
|
||||
ui.label(format!("Frame: {}", ui.ctx().frame_nr()));
|
||||
let mut embedded = ui.data_mut(|data| {
|
||||
*data.get_temp_mut_or(Id::new("Test1").with("_is_embedded"), true)
|
||||
});
|
||||
if ui.checkbox(&mut embedded, "Should embedd?").clicked() {
|
||||
ui.ctx().request_repaint_viewport(parent_id);
|
||||
ui.ctx()
|
||||
.request_repaint_viewport(ui.ctx().get_parent_viewport_id());
|
||||
}
|
||||
ui.data_mut(|data| {
|
||||
data.insert_persisted(Id::new("Test1").with("_embedded"), embedded)
|
||||
@@ -84,8 +85,11 @@ fn main() {
|
||||
ctx.get_viewport_id()
|
||||
));
|
||||
if ui.button("Drag").is_pointer_button_down_on() {
|
||||
if id != parent_id {
|
||||
ctx.viewport_command(id, egui::window::ViewportCommand::Drag)
|
||||
if ctx.get_viewport_id() != ctx.get_parent_viewport_id() {
|
||||
ctx.viewport_command(
|
||||
ctx.get_viewport_id(),
|
||||
egui::window::ViewportCommand::Drag,
|
||||
)
|
||||
} else {
|
||||
ctx.memory_mut(|mem| {
|
||||
mem.set_dragged_id(
|
||||
@@ -94,17 +98,17 @@ fn main() {
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
egui::CollapsingHeader::new("Shout Test2").show(ui, |ui| {
|
||||
egui::Window::new("Test2").show(ctx, move |ui, id, parent_id| {
|
||||
egui::Window::new("Test2").show(ctx, move |ui| {
|
||||
ui.label(format!("Frame: {}", ui.ctx().frame_nr()));
|
||||
let mut embedded = ui.data_mut(|data| {
|
||||
*data.get_temp_mut_or(Id::new("Test2").with("_embedded"), true)
|
||||
});
|
||||
if ui.checkbox(&mut embedded, "Should embedd?").clicked() {
|
||||
ui.ctx().request_repaint_viewport(parent_id);
|
||||
ui.ctx()
|
||||
.request_repaint_viewport(ui.ctx().get_parent_viewport_id());
|
||||
}
|
||||
ui.data_mut(|data| {
|
||||
data.insert_persisted(Id::new("Test2").with("_embedded"), embedded)
|
||||
@@ -119,18 +123,22 @@ fn main() {
|
||||
));
|
||||
|
||||
if ui.button("Drag").is_pointer_button_down_on() {
|
||||
ctx.viewport_command(id, egui::window::ViewportCommand::Drag)
|
||||
ctx.viewport_command(
|
||||
ctx.get_viewport_id(),
|
||||
egui::window::ViewportCommand::Drag,
|
||||
)
|
||||
}
|
||||
});
|
||||
});
|
||||
egui::CollapsingHeader::new("Shout Test3").show(ui, |ui| {
|
||||
egui::Window::new("Test3").show(ctx, move |ui, id, parent_id| {
|
||||
egui::Window::new("Test3").show(ctx, move |ui| {
|
||||
ui.label(format!("Frame: {}", ui.ctx().frame_nr()));
|
||||
let mut embedded = ui.data_mut(|data| {
|
||||
*data.get_temp_mut_or(Id::new("Test3").with("_embedded"), true)
|
||||
});
|
||||
if ui.checkbox(&mut embedded, "Should embedd?").clicked() {
|
||||
ui.ctx().request_repaint_viewport(parent_id);
|
||||
ui.ctx()
|
||||
.request_repaint_viewport(ui.ctx().get_parent_viewport_id());
|
||||
}
|
||||
ui.data_mut(|data| {
|
||||
data.insert_persisted(Id::new("Test3").with("_embedded"), embedded)
|
||||
@@ -142,7 +150,10 @@ fn main() {
|
||||
));
|
||||
|
||||
if ui.button("Drag").is_pointer_button_down_on() {
|
||||
ctx.viewport_command(id, egui::window::ViewportCommand::Drag)
|
||||
ctx.viewport_command(
|
||||
ctx.get_viewport_id(),
|
||||
egui::window::ViewportCommand::Drag,
|
||||
)
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user