settings: make initial slave screen focus optional

master
Andrzej Rybczak 11 years ago
parent 7d5c5cb20e
commit 043e309e24
  1. 2
      doc/config
  2. 3
      doc/ncmpcpp.1
  3. 12
      src/ncmpcpp.cpp
  4. 3
      src/settings.cpp
  5. 1
      src/settings.h

@ -411,6 +411,8 @@
##
#startup_slave_screen = ""
#
#startup_slave_screen_focus = no
#
##
## Default width of locked screen (in %).
## 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
Slave screen that has to be displayed at start (nothing by default).
.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
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

@ -144,10 +144,16 @@ int main(int argc, char **argv)
// lock current screen and go to the slave one if applicable
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();
if (screen_locked && slave_screen != myScreen->type())
toScreen(slave_screen)->switchTo();
if (screen_locked && slave_screen_type != myScreen->type())
{
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

@ -546,6 +546,9 @@ bool Configuration::read(const std::vector<std::string> &config_paths, bool igno
}
}, 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>(
locked_screen_width_part, 50.0, [](double v) {
return v / 100;

@ -165,6 +165,7 @@ struct Configuration
bool ask_for_locked_screen_width_part;
bool allow_for_physical_item_deletion;
bool progressbar_boldness;
bool startup_slave_screen_focus;
unsigned mpd_connection_timeout;
unsigned crossfade_time;

Loading…
Cancel
Save