bugfix: source margins when toggling log browser
Running the tests now uglily resizes the window for a second or two.
This commit is contained in:
parent
0f02efd8cc
commit
69f4062020
|
@ -322,7 +322,10 @@ function source.keychord_pressed(chord, key)
|
|||
--? print('C-l')
|
||||
Show_log_browser_side = not Show_log_browser_side
|
||||
if Show_log_browser_side then
|
||||
App.screen.width = Log_browser_state.right + Margin_right
|
||||
App.screen.width = math.min(Display_width, App.screen.width*2)
|
||||
Editor_state.right = App.screen.width/2 - Margin_right
|
||||
Log_browser_state.left = App.screen.width/2 + Margin_left
|
||||
Log_browser_state.right = App.screen.width - Margin_right
|
||||
else
|
||||
App.screen.width = Editor_state.right + Margin_right
|
||||
end
|
||||
|
|
|
@ -21,6 +21,7 @@ end
|
|||
function test_show_log_browser_side()
|
||||
io.write('\ntest_show_log_browser_side')
|
||||
App.screen.init{width=300, height=300}
|
||||
Display_width = App.screen.width
|
||||
Current_app = 'source'
|
||||
Editor_state = edit.initialize_test_state()
|
||||
Editor_state.filename = 'foo'
|
||||
|
@ -35,6 +36,66 @@ function test_show_log_browser_side()
|
|||
check(Show_log_browser_side, 'F - test_show_log_browser_side')
|
||||
end
|
||||
|
||||
function test_show_log_browser_side_doubles_window_width_if_possible()
|
||||
io.write('\ntest_show_log_browser_side_doubles_window_width_if_possible')
|
||||
-- initialize screen dimensions to half width
|
||||
App.screen.init{width=300, height=300}
|
||||
Display_width = App.screen.width*2
|
||||
-- initialize source app with left side occupying entire window (half the display)
|
||||
Current_app = 'source'
|
||||
Editor_state = edit.initialize_test_state()
|
||||
Editor_state.filename = 'foo'
|
||||
Editor_state.left = Margin_left
|
||||
Editor_state.right = App.screen.width - Margin_right
|
||||
local old_editor_right = Editor_state.right
|
||||
Text.redraw_all(Editor_state)
|
||||
Log_browser_state = edit.initialize_test_state()
|
||||
-- log browser has some arbitrary margins
|
||||
Log_browser_state.left = 200 + Margin_left
|
||||
Log_browser_state.right = 400
|
||||
Text.redraw_all(Log_browser_state)
|
||||
log_browser.parse(Log_browser_state)
|
||||
-- display log browser
|
||||
App.wait_fake_time(0.1)
|
||||
App.run_after_keychord('C-l')
|
||||
-- window width is doubled
|
||||
check_eq(App.screen.width, 600, 'F - test_show_log_browser_side_doubles_window_width_if_possible/display:width')
|
||||
-- left side margins are unchanged
|
||||
check_eq(Editor_state.left, Margin_left, 'F - test_show_log_browser_side_doubles_window_width_if_possible/edit:left')
|
||||
check_eq(Editor_state.right, old_editor_right, 'F - test_show_log_browser_side_doubles_window_width_if_possible/edit:right')
|
||||
-- log browser margins are adjusted
|
||||
check_eq(Log_browser_state.left, App.screen.width/2 + Margin_left, 'F - test_show_log_browser_side_doubles_window_width_if_possible/log:left')
|
||||
check_eq(Log_browser_state.right, App.screen.width - Margin_right, 'F - test_show_log_browser_side_doubles_window_width_if_possible/log:right')
|
||||
end
|
||||
|
||||
function test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width()
|
||||
io.write('\ntest_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width')
|
||||
-- initialize screen dimensions and indicate that it is maximized
|
||||
App.screen.init{width=300, height=300}
|
||||
Display_width = 300
|
||||
-- initialize source app with left side occupying more than half the display
|
||||
Current_app = 'source'
|
||||
Editor_state = edit.initialize_test_state()
|
||||
Editor_state.filename = 'foo'
|
||||
Editor_state.left = Margin_left
|
||||
Editor_state.right = 200
|
||||
Text.redraw_all(Editor_state)
|
||||
Log_browser_state = edit.initialize_test_state()
|
||||
-- log browser has some arbitrary margins
|
||||
Log_browser_state.left = 200 + Margin_left
|
||||
Log_browser_state.right = 400
|
||||
Text.redraw_all(Log_browser_state)
|
||||
log_browser.parse(Log_browser_state)
|
||||
-- display log browser
|
||||
App.wait_fake_time(0.1)
|
||||
App.run_after_keychord('C-l')
|
||||
-- margins are now adjusted
|
||||
check_eq(Editor_state.left, Margin_left, 'F - test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width/edit:left')
|
||||
check_eq(Editor_state.right, App.screen.width/2 - Margin_right, 'F - test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width/edit:right')
|
||||
check_eq(Log_browser_state.left, App.screen.width/2 + Margin_left, 'F - test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width/log:left')
|
||||
check_eq(Log_browser_state.right, App.screen.width - Margin_right, 'F - test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width/log:right')
|
||||
end
|
||||
|
||||
function test_drop_file()
|
||||
io.write('\ntest_drop_file')
|
||||
App.screen.init{width=Editor_state.left+300, height=300}
|
||||
|
|
Loading…
Reference in New Issue