magnifique
This commit is contained in:
@@ -5,7 +5,7 @@ use client_network::{
|
|||||||
};
|
};
|
||||||
use crossbeam_channel::{Receiver, Sender};
|
use crossbeam_channel::{Receiver, Sender};
|
||||||
use egui::{
|
use egui::{
|
||||||
Align, CentralPanel, CollapsingHeader, Color32, Context, CornerRadius, Frame, Layout,
|
Align, CentralPanel, CollapsingHeader, Color32, Context, CornerRadius, Frame, Id, Layout,
|
||||||
ProgressBar, Response, ScrollArea, SidePanel, Stroke, TopBottomPanel, Ui, Vec2,
|
ProgressBar, Response, ScrollArea, SidePanel, Stroke, TopBottomPanel, Ui, Vec2,
|
||||||
ViewportCommand,
|
ViewportCommand,
|
||||||
};
|
};
|
||||||
@@ -372,8 +372,28 @@ impl eframe::App for P2PClientApp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if self.show_choose_server_window {
|
if self.show_choose_server_window {
|
||||||
|
let full_rect = ctx.input(|i| i.screen_rect());
|
||||||
|
let modal_size = egui::vec2(400.0, 160.0);
|
||||||
|
let modal_pos = (full_rect.center() - modal_size * 0.5).to_vec2();
|
||||||
|
|
||||||
|
// 1) blocker (background order) — captures input except modal area
|
||||||
|
egui::Area::new(Id::new("modal_blocker_bg"))
|
||||||
|
.order(egui::Order::Background)
|
||||||
|
.show(ctx, |ui| {
|
||||||
|
let painter = ui.painter();
|
||||||
|
painter.rect_filled(full_rect, 0.0, egui::Color32::from_black_alpha(160));
|
||||||
|
|
||||||
|
// create an interactable that covers the full rect so clicks are eaten
|
||||||
|
// but leave the modal rect uncovered by marking it non-interactive below.
|
||||||
|
let sense = egui::Sense::click_and_drag();
|
||||||
|
ui.allocate_exact_size(full_rect.size(), sense);
|
||||||
|
});
|
||||||
egui::Window::new("Choose the server")
|
egui::Window::new("Choose the server")
|
||||||
.resizable(false)
|
.resizable(false)
|
||||||
|
.collapsible(false)
|
||||||
|
.title_bar(true)
|
||||||
|
.anchor(egui::Align2::CENTER_CENTER, egui::Vec2::ZERO)
|
||||||
|
.fixed_size(modal_size)
|
||||||
.show(ctx, |ui| {
|
.show(ctx, |ui| {
|
||||||
ScrollArea::vertical()
|
ScrollArea::vertical()
|
||||||
.auto_shrink([false; 2])
|
.auto_shrink([false; 2])
|
||||||
|
|||||||
Reference in New Issue
Block a user