Add a timeout: delay_exit_on_zero_displays

Outputs may disappear momentarily and come back later.
To prevent i3 from exit when no output is available momentarily, add a timeout delay_exit_on_zero_displays.
This commit is contained in:
hwangcc
2015-04-03 16:16:38 +08:00
parent 1546891e6a
commit 2c77d7ceed
9 changed files with 124 additions and 9 deletions

View File

@ -365,6 +365,40 @@ is(parser_calls($config),
$expected,
'force_display_urgency_hint ok');
################################################################################
# delay_exit_on_zero_displays
################################################################################
is(parser_calls('delay_exit_on_zero_displays 300'),
"cfg_delay_exit_on_zero_displays(300)\n",
'delay_exit_on_zero_displays ok');
is(parser_calls('delay_exit_on_zero_displays 500 ms'),
"cfg_delay_exit_on_zero_displays(500)\n",
'delay_exit_on_zero_displays ok');
is(parser_calls('delay_exit_on_zero_displays 700ms'),
"cfg_delay_exit_on_zero_displays(700)\n",
'delay_exit_on_zero_displays ok');
$config = <<'EOT';
delay_exit_on_zero_displays 300
delay_exit_on_zero_displays 500 ms
delay_exit_on_zero_displays 700ms
delay_exit_on_zero_displays 700
EOT
$expected = <<'EOT';
cfg_delay_exit_on_zero_displays(300)
cfg_delay_exit_on_zero_displays(500)
cfg_delay_exit_on_zero_displays(700)
cfg_delay_exit_on_zero_displays(700)
EOT
is(parser_calls($config),
$expected,
'delay_exit_on_zero_displays ok');
################################################################################
# workspace
################################################################################
@ -437,7 +471,7 @@ client.focused #4c7899 #285577 #ffffff #2e9ef4
EOT
my $expected_all_tokens = <<'EOT';
ERROR: CONFIG: Expected one of these tokens: <end>, '#', 'set', 'bindsym', 'bindcode', 'bind', 'bar', 'font', 'mode', 'floating_minimum_size', 'floating_maximum_size', 'floating_modifier', 'default_orientation', 'workspace_layout', 'new_window', 'new_float', 'hide_edge_borders', 'for_window', 'assign', 'no_focus', 'focus_follows_mouse', 'mouse_warping', 'force_focus_wrapping', 'force_xinerama', 'force-xinerama', 'workspace_auto_back_and_forth', 'fake_outputs', 'fake-outputs', 'force_display_urgency_hint', 'focus_on_window_activation', 'show_marks', 'workspace', 'ipc_socket', 'ipc-socket', 'restart_state', 'popup_during_fullscreen', 'exec_always', 'exec', 'client.background', 'client.focused_inactive', 'client.focused', 'client.unfocused', 'client.urgent', 'client.placeholder'
ERROR: CONFIG: Expected one of these tokens: <end>, '#', 'set', 'bindsym', 'bindcode', 'bind', 'bar', 'font', 'mode', 'floating_minimum_size', 'floating_maximum_size', 'floating_modifier', 'default_orientation', 'workspace_layout', 'new_window', 'new_float', 'hide_edge_borders', 'for_window', 'assign', 'no_focus', 'focus_follows_mouse', 'mouse_warping', 'force_focus_wrapping', 'force_xinerama', 'force-xinerama', 'workspace_auto_back_and_forth', 'fake_outputs', 'fake-outputs', 'force_display_urgency_hint', 'delay_exit_on_zero_displays', 'focus_on_window_activation', 'show_marks', 'workspace', 'ipc_socket', 'ipc-socket', 'restart_state', 'popup_during_fullscreen', 'exec_always', 'exec', 'client.background', 'client.focused_inactive', 'client.focused', 'client.unfocused', 'client.urgent', 'client.placeholder'
EOT
my $expected_end = <<'EOT';