Issue-ID: config-andminor startup improvement

Signed-off-by: Alexander Mohr <git@mohr.io>
This commit is contained in:
Alexander Mohr 2025-05-07 18:38:10 +02:00
parent 4f4bd116f9
commit d9c53a3acf
3 changed files with 20 additions and 13 deletions

View file

@ -43,7 +43,7 @@ pub enum WrapMode {
Inherit, Inherit,
} }
#[derive(Clone, Debug, Serialize, Deserialize)] #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
pub enum SortOrder { pub enum SortOrder {
Default, Default,
Alphabetical, Alphabetical,

View file

@ -566,13 +566,17 @@ fn build_ui<T, P>(
let animate_cfg = config.clone(); let animate_cfg = config.clone();
let animate_window = ui_elements.window.clone(); let animate_window = ui_elements.window.clone();
timeout_add_local(Duration::from_millis(5), move || { // timeout_add_local(Duration::from_millis(1), move || {
if !animate_window.is_active() { // if !animate_window.is_active() {
return ControlFlow::Continue; // return ControlFlow::Continue;
} // }
animate_window.set_opacity(1.0); // animate_window.set_opacity(1.0);
window_show_resize(&animate_cfg.clone(), &animate_window); // window_show_resize(&animate_cfg.clone(), &animate_window);
ControlFlow::Break // ControlFlow::Break
// });
animate_window.connect_is_active_notify(move |w| {
w.set_opacity(1.0);
window_show_resize(&animate_cfg.clone(), w);
}); });
// hide the fact that we are starting with a small window // hide the fact that we are starting with a small window
@ -1206,6 +1210,10 @@ fn set_menu_visibility_for_search<T: Clone>(
config: &Config, config: &Config,
search_ignored_words: Option<&Vec<Regex>>, search_ignored_words: Option<&Vec<Regex>>,
) { ) {
if config.sort_order() == SortOrder::Default {
return;
}
{ {
if query.is_empty() { if query.is_empty() {
for (fb, menu_item) in items.iter_mut() { for (fb, menu_item) in items.iter_mut() {

View file

@ -589,20 +589,19 @@ struct DMenuProvider {
impl DMenuProvider { impl DMenuProvider {
fn new(sort_order: &SortOrder) -> Result<DMenuProvider, Error> { fn new(sort_order: &SortOrder) -> Result<DMenuProvider, Error> {
log::debug!("parsing stdin");
let mut input = String::new(); let mut input = String::new();
io::stdin() io::stdin()
.read_to_string(&mut input) .read_to_string(&mut input)
.map_err(|_| Error::StdInReadFail)?; .expect("Failed to read from stdin");
let mut items: Vec<MenuItem<String>> = input let mut items: Vec<MenuItem<String>> = input
.lines() .lines()
.map(String::from)
.map(|s| MenuItem::new(s.clone(), None, None, vec![], None, 0.0, None))
.rev() .rev()
.map(|s| MenuItem::new(s.to_string(), None, None, vec![], None, 0.0, None))
.collect(); .collect();
log::debug!("parsed stdin");
gui::apply_sort(&mut items, sort_order); gui::apply_sort(&mut items, sort_order);
Ok(Self { items }) Ok(Self { items })
} }
} }