diff --git a/espanso-modulo/src/sys/interop/interop.h b/espanso-modulo/src/sys/interop/interop.h index 1fd0e9f..d5e1365 100644 --- a/espanso-modulo/src/sys/interop/interop.h +++ b/espanso-modulo/src/sys/interop/interop.h @@ -126,6 +126,8 @@ typedef struct WelcomeMetadata { const char *window_icon_path; const char *tray_image_path; + const int already_running; + // METHODS int (*dont_show_again_changed)(int); } WelcomeMetadata; diff --git a/espanso-modulo/src/sys/interop/mod.rs b/espanso-modulo/src/sys/interop/mod.rs index 7d8b06d..2ffa0d0 100644 --- a/espanso-modulo/src/sys/interop/mod.rs +++ b/espanso-modulo/src/sys/interop/mod.rs @@ -143,6 +143,8 @@ pub struct WelcomeMetadata { pub window_icon_path: *const c_char, pub tray_image_path: *const c_char, + pub already_running: c_int, + pub dont_show_again_changed: extern fn(c_int), } diff --git a/espanso-modulo/src/sys/welcome/mod.rs b/espanso-modulo/src/sys/welcome/mod.rs index afdf951..d5b631d 100644 --- a/espanso-modulo/src/sys/welcome/mod.rs +++ b/espanso-modulo/src/sys/welcome/mod.rs @@ -52,6 +52,7 @@ pub fn show(options: WelcomeOptions) { let welcome_metadata = WelcomeMetadata { window_icon_path: c_window_icon_path_ptr, tray_image_path: c_tray_image_path_ptr, + already_running: if options.is_already_running { 1 } else { 0 }, dont_show_again_changed, }; diff --git a/espanso-modulo/src/sys/welcome/welcome.cpp b/espanso-modulo/src/sys/welcome/welcome.cpp index ec9c863..d6c0201 100644 --- a/espanso-modulo/src/sys/welcome/welcome.cpp +++ b/espanso-modulo/src/sys/welcome/welcome.cpp @@ -64,6 +64,12 @@ DerivedWelcomeFrame::DerivedWelcomeFrame(wxWindow *parent) { this->tray_info_label->Hide(); } + + this->dont_show_checkbox->Hide(); + + if (welcome_metadata->already_running) { + this->title_label->SetLabel("Espanso is already running!"); + } } void DerivedWelcomeFrame::on_dont_show_change( wxCommandEvent& event ) { diff --git a/espanso-modulo/src/welcome/mod.rs b/espanso-modulo/src/welcome/mod.rs index 0fbae5f..4d7c2fe 100644 --- a/espanso-modulo/src/welcome/mod.rs +++ b/espanso-modulo/src/welcome/mod.rs @@ -22,6 +22,7 @@ pub use crate::sys::welcome::show; pub struct WelcomeOptions { pub window_icon_path: Option, pub tray_image_path: Option, + pub is_already_running: bool, pub handlers: WelcomeHandlers, }