1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-23 00:04:06 +00:00

fix: split current and initially requested minimized state (#5175)

This commit is contained in:
Mike Gelfand 2023-03-08 06:07:23 +03:00 committed by GitHub
parent 9c436d87dd
commit 20071149c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 15 deletions

View file

@ -117,7 +117,7 @@ char const* const LICENSE =
class Application::Impl
{
public:
Impl(Application& app, std::string const& config_dir, bool start_paused, bool is_iconified);
Impl(Application& app, std::string const& config_dir, bool start_paused, bool start_iconified);
~Impl() = default;
TR_DISABLE_COPY_MOVE(Impl)
@ -205,8 +205,9 @@ private:
private:
Application& app_;
std::string config_dir_;
bool start_paused_ = false;
std::string const config_dir_;
bool const start_paused_;
bool const start_iconified_;
bool is_iconified_ = false;
bool is_closing_ = false;
@ -669,7 +670,7 @@ void Application::Impl::on_activate()
/* GApplication emits an 'activate' signal when bootstrapping the primary.
* Ordinarily we handle that by presenting the main window, but if the user
* started Transmission minimized, ignore that initial signal... */
if (is_iconified_ && activation_count_ == 1)
if (start_iconified_ && activation_count_ == 1)
{
return;
}
@ -705,19 +706,19 @@ std::string get_application_id(std::string const& config_dir)
} // namespace
Application::Application(std::string const& config_dir, bool start_paused, bool is_iconified)
Application::Application(std::string const& config_dir, bool start_paused, bool start_iconified)
: Gtk::Application(get_application_id(config_dir), TR_GIO_APPLICATION_FLAGS(HANDLES_OPEN))
, impl_(std::make_unique<Impl>(*this, config_dir, start_paused, is_iconified))
, impl_(std::make_unique<Impl>(*this, config_dir, start_paused, start_iconified))
{
}
Application::~Application() = default;
Application::Impl::Impl(Application& app, std::string const& config_dir, bool start_paused, bool is_iconified)
Application::Impl::Impl(Application& app, std::string const& config_dir, bool start_paused, bool start_iconified)
: app_(app)
, config_dir_(config_dir)
, start_paused_(start_paused)
, is_iconified_(is_iconified)
, start_iconified_(start_iconified)
{
}
@ -728,7 +729,7 @@ void Application::Impl::on_core_busy(bool busy)
void Application::Impl::app_setup()
{
if (is_iconified_)
if (start_iconified_)
{
gtr_pref_flag_set(TR_KEY_show_notification_area_icon, true);
}
@ -758,7 +759,7 @@ void Application::Impl::app_setup()
update_model_once();
/* either show the window or iconify it */
if (!is_iconified_)
if (!start_iconified_)
{
wind_->show();
gtr_action_set_toggled("toggle-main-window", true);
@ -766,7 +767,6 @@ void Application::Impl::app_setup()
else
{
gtr_window_set_skip_taskbar_hint(*wind_, icon_ != nullptr);
is_iconified_ = false; // ensure that the next toggle iconifies
gtr_action_set_toggled("toggle-main-window", false);
}

View file

@ -18,7 +18,7 @@
class Application : public Gtk::Application
{
public:
Application(std::string const& config_dir, bool start_paused, bool is_iconified);
Application(std::string const& config_dir, bool start_paused, bool start_iconified);
~Application() override;
TR_DISABLE_COPY_MOVE(Application)

View file

@ -74,7 +74,7 @@ int main(int argc, char** argv)
std::string config_dir;
bool show_version = false;
bool start_paused = false;
bool is_iconified = false;
bool start_iconified = false;
/* parse the command line */
auto const config_dir_option = create_option_entry("config-dir", 'g', _("Where to look for configuration files"));
@ -85,7 +85,7 @@ int main(int argc, char** argv)
Glib::OptionGroup main_group({}, {});
main_group.add_entry_filename(config_dir_option, config_dir);
main_group.add_entry(paused_option, start_paused);
main_group.add_entry(minimized_option, is_iconified);
main_group.add_entry(minimized_option, start_iconified);
main_group.add_entry(version_option, show_version);
Glib::OptionContext option_context(_("[torrent files or urls]"));
@ -134,5 +134,5 @@ int main(int argc, char** argv)
gtr_notify_init();
/* init the application for the specified config dir */
return Application(config_dir, start_paused, is_iconified).run(argc, argv);
return Application(config_dir, start_paused, start_iconified).run(argc, argv);
}