settings: make initial slave screen focus optional
This commit is contained in:
@@ -411,6 +411,8 @@
|
|||||||
##
|
##
|
||||||
#startup_slave_screen = ""
|
#startup_slave_screen = ""
|
||||||
#
|
#
|
||||||
|
#startup_slave_screen_focus = no
|
||||||
|
#
|
||||||
##
|
##
|
||||||
## Default width of locked screen (in %).
|
## Default width of locked screen (in %).
|
||||||
## Acceptable values are from 20 to 80.
|
## Acceptable values are from 20 to 80.
|
||||||
|
|||||||
@@ -263,6 +263,9 @@ Screen that has to be displayed at start (playlist by default).
|
|||||||
.B startup_slave_screen = SCREEN_NAME
|
.B startup_slave_screen = SCREEN_NAME
|
||||||
Slave screen that has to be displayed at start (nothing by default).
|
Slave screen that has to be displayed at start (nothing by default).
|
||||||
.TP
|
.TP
|
||||||
|
.B startup_slave_screen_focus = yes/no
|
||||||
|
If set to yes, slave screen will be the active one after startup. Otherwise master screen will be.
|
||||||
|
.TP
|
||||||
.B locked_screen_width_part = 20-80
|
.B locked_screen_width_part = 20-80
|
||||||
If you want to lock a screen, ncmpcpp asks for % of locked screen's width to be reserved before that and provides a default value, which is the one you can set here.
|
If you want to lock a screen, ncmpcpp asks for % of locked screen's width to be reserved before that and provides a default value, which is the one you can set here.
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
@@ -144,10 +144,16 @@ int main(int argc, char **argv)
|
|||||||
// lock current screen and go to the slave one if applicable
|
// lock current screen and go to the slave one if applicable
|
||||||
if (Config.startup_slave_screen_type)
|
if (Config.startup_slave_screen_type)
|
||||||
{
|
{
|
||||||
auto slave_screen = *Config.startup_slave_screen_type;
|
auto slave_screen_type = *Config.startup_slave_screen_type;
|
||||||
bool screen_locked = myScreen->lock();
|
bool screen_locked = myScreen->lock();
|
||||||
if (screen_locked && slave_screen != myScreen->type())
|
if (screen_locked && slave_screen_type != myScreen->type())
|
||||||
toScreen(slave_screen)->switchTo();
|
{
|
||||||
|
auto slave_screen = toScreen(slave_screen_type);
|
||||||
|
assert(slave_screen != nullptr);
|
||||||
|
slave_screen->switchTo();
|
||||||
|
if (!Config.startup_slave_screen_focus)
|
||||||
|
Actions::get(Actions::Type::MasterScreen).execute();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// local variables
|
// local variables
|
||||||
|
|||||||
@@ -546,6 +546,9 @@ bool Configuration::read(const std::vector<std::string> &config_paths, bool igno
|
|||||||
}
|
}
|
||||||
}, defaults_to(startup_slave_screen_type, boost::none)
|
}, defaults_to(startup_slave_screen_type, boost::none)
|
||||||
));
|
));
|
||||||
|
p.add("startup_slave_screen_focus", yes_no(
|
||||||
|
startup_slave_screen_focus, false
|
||||||
|
));
|
||||||
p.add("locked_screen_width_part", assign_default<double>(
|
p.add("locked_screen_width_part", assign_default<double>(
|
||||||
locked_screen_width_part, 50.0, [](double v) {
|
locked_screen_width_part, 50.0, [](double v) {
|
||||||
return v / 100;
|
return v / 100;
|
||||||
|
|||||||
@@ -165,6 +165,7 @@ struct Configuration
|
|||||||
bool ask_for_locked_screen_width_part;
|
bool ask_for_locked_screen_width_part;
|
||||||
bool allow_for_physical_item_deletion;
|
bool allow_for_physical_item_deletion;
|
||||||
bool progressbar_boldness;
|
bool progressbar_boldness;
|
||||||
|
bool startup_slave_screen_focus;
|
||||||
|
|
||||||
unsigned mpd_connection_timeout;
|
unsigned mpd_connection_timeout;
|
||||||
unsigned crossfade_time;
|
unsigned crossfade_time;
|
||||||
|
|||||||
Reference in New Issue
Block a user