bugfix: source margins when toggling log browser

[?]
Sep 17, 2022, 5:29 PM
ENENSZLKCCS7XILJUHIJUQPBOI6VK74YPHBFWPBXAHHHTHT2D3UQC

Dependencies

Change contents

  • edit in source_tests.lua at line 24
    [6.135]
    [2.8]
    Display_width = App.screen.width
  • edit in source_tests.lua at line 39
    [3.148162]
    [3.148162]
    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
  • replacement in source.lua at line 325
    [3.176389][3.176389:176453]()
    App.screen.width = Log_browser_state.right + Margin_right
    [3.176389]
    [3.176453]
    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