fixed the key input when switching workspaces

This commit is contained in:
WanderingPenwing 2024-03-27 09:23:23 +01:00
parent f4a62c9c32
commit 358fd4c983
5 changed files with 36 additions and 5 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
/target
*.tar.gz

View file

@ -26,10 +26,6 @@ mkShell {
xorg.libX11
wayland
libxkbcommon
python3Packages.virtualenv
python3Packages.plyer
python3Packages.pygobject3
python3Packages.pillow
];
shellHook = ''

View file

@ -74,7 +74,6 @@ impl Calcifer {
..Default::default()
};
println!("zoom : {}", app_state.zoom.clone());
if app_state.zoom != 0.0 {
new.zoom = app_state.zoom;
}

View file

@ -315,6 +315,25 @@ impl Calcifer {
self.search_menu.result_selected = true;
}
if self.got_focus {
CodeEditor::default()
.id_source("code editor")
.with_rows(max(45, lines))
.with_fontsize(self.font_size)
.with_theme(self.theme)
.with_syntax(to_syntax(&current_tab.language))
.with_numlines(true)
.show(
ui,
&mut current_tab.code.clone(),
&mut current_tab.saved.clone(),
&mut current_tab.last_cursor.clone(),
&mut current_tab.scroll_offset.clone(),
override_cursor.clone(),
);
return
}
CodeEditor::default()
.id_source("code editor")
.with_rows(max(45, lines))

View file

@ -59,6 +59,9 @@ fn main() -> Result<(), eframe::Error> {
}
struct Calcifer {
focused: bool,
got_focus: bool,
selected_tab: usize,
tabs: Vec<panels::Tab>,
@ -97,6 +100,9 @@ struct Calcifer {
impl Default for Calcifer {
fn default() -> Self {
Self {
focused: true,
got_focus: false,
selected_tab: 0,
tabs: vec![panels::Tab::default()],
@ -223,6 +229,16 @@ impl eframe::App for Calcifer {
self.search_menu.initialized = !self.search_menu.visible;
}
self.got_focus = false;
if ctx.input(|i| !i.viewport().focused.unwrap_or_default()) {
self.focused = false;
} else {
if !self.focused {
self.got_focus = true;
}
self.focused = true;
}
if ctx.input(|i| i.viewport().close_requested()) {
let mut unsaved_tabs: Vec<usize> = vec![];
for (index, tab) in self.tabs.iter().enumerate() {