mirror of https://github.com/lapce/lapce.git
Merge pull request #478 from bugadani/events
Propagate events to hidden if necessary, remove some boxes
This commit is contained in:
commit
c3c123b50a
|
@ -134,7 +134,7 @@ pub fn new(
|
|||
Self {
|
||||
widget_id,
|
||||
split: WidgetPod::new(split),
|
||||
header: WidgetPod::new(header.boxed()),
|
||||
header: WidgetPod::new(header),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -177,7 +177,10 @@ pub struct PanelSection {
|
|||
#[allow(dead_code)]
|
||||
widget_id: WidgetId,
|
||||
header: Option<WidgetPod<LapceTabData, Box<dyn Widget<LapceTabData>>>>,
|
||||
content: WidgetPod<LapceTabData, Box<dyn Widget<LapceTabData>>>,
|
||||
content: WidgetPod<
|
||||
LapceTabData,
|
||||
LapceScrollNew<LapceTabData, Box<dyn Widget<LapceTabData>>>,
|
||||
>,
|
||||
}
|
||||
|
||||
impl PanelSection {
|
||||
|
@ -186,7 +189,7 @@ pub fn new(
|
|||
header: Option<Box<dyn Widget<LapceTabData>>>,
|
||||
content: Box<dyn Widget<LapceTabData>>,
|
||||
) -> Self {
|
||||
let content = LapceScrollNew::new(content).vertical().boxed();
|
||||
let content = LapceScrollNew::new(content).vertical();
|
||||
Self {
|
||||
widget_id,
|
||||
header: header.map(WidgetPod::new),
|
||||
|
|
|
@ -83,21 +83,18 @@ pub struct LapceSettingsPanel {
|
|||
switcher_rect: Rect,
|
||||
switcher_line_height: f64,
|
||||
close_rect: Rect,
|
||||
children: Vec<WidgetPod<LapceTabData, Box<dyn Widget<LapceTabData>>>>,
|
||||
children: Vec<WidgetPod<LapceTabData, LapceSplitNew>>,
|
||||
}
|
||||
|
||||
impl LapceSettingsPanel {
|
||||
pub fn new(data: &LapceTabData) -> Self {
|
||||
let children = vec![
|
||||
WidgetPod::new(Box::new(LapceSettings::new_split(
|
||||
LapceSettingsKind::Core,
|
||||
data,
|
||||
)) as Box<dyn Widget<_>>),
|
||||
WidgetPod::new(Box::new(LapceSettings::new_split(
|
||||
WidgetPod::new(LapceSettings::new_split(LapceSettingsKind::Core, data)),
|
||||
WidgetPod::new(LapceSettings::new_split(
|
||||
LapceSettingsKind::Editor,
|
||||
data,
|
||||
))),
|
||||
WidgetPod::new(Box::new(LapceKeymap::new_split(data))),
|
||||
)),
|
||||
WidgetPod::new(LapceKeymap::new_split(data)),
|
||||
];
|
||||
Self {
|
||||
widget_id: data.settings.panel_widget_id,
|
||||
|
@ -158,7 +155,7 @@ fn event(
|
|||
data: &mut LapceTabData,
|
||||
env: &Env,
|
||||
) {
|
||||
if !data.settings.shown {
|
||||
if !data.settings.shown && !event.should_propagate_to_hidden() {
|
||||
return;
|
||||
}
|
||||
match event {
|
||||
|
@ -237,6 +234,9 @@ fn lifecycle(
|
|||
data: &LapceTabData,
|
||||
env: &Env,
|
||||
) {
|
||||
if !data.settings.shown && !event.should_propagate_to_hidden() {
|
||||
return;
|
||||
}
|
||||
for child in self.children.iter_mut() {
|
||||
child.lifecycle(ctx, event, data, env);
|
||||
}
|
||||
|
|
|
@ -984,7 +984,7 @@ fn event(
|
|||
self.main_split.event(ctx, event, data, env);
|
||||
self.status.event(ctx, event, data, env);
|
||||
for (_, panel) in data.panels.clone().iter() {
|
||||
if panel.is_shown() {
|
||||
if panel.is_shown() || event.should_propagate_to_hidden() {
|
||||
self.panels
|
||||
.get_mut(&panel.active)
|
||||
.unwrap()
|
||||
|
|
Loading…
Reference in New Issue