Skip to content

Commit

Permalink
LibWeb: Insert newlines at <br> and block boundaries in copied text :^)
Browse files Browse the repository at this point in the history
To make the plain text we copy out from LibWeb look at least somewhat
like its original form, let's insert newlines at <br> elements and when
we exit a block-level element.

This is far from perfect, but seems to work pretty okay.
  • Loading branch information
awesomekling committed Jul 3, 2020
1 parent f7ef6c6 commit ccdaa1b
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Libraries/LibWeb/PageView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
#include <LibWeb/Frame/EventHandler.h>
#include <LibWeb/Frame/Frame.h>
#include <LibWeb/Layout/LayoutDocument.h>
#include <LibWeb/Layout/LayoutBreak.h>
#include <LibWeb/Layout/LayoutNode.h>
#include <LibWeb/Layout/LayoutText.h>
#include <LibWeb/Loader/ResourceLoader.h>
Expand Down Expand Up @@ -141,6 +142,9 @@ String PageView::selected_text() const
while (layout_node && layout_node != selection.end().layout_node) {
if (is<LayoutText>(*layout_node))
builder.append(to<LayoutText>(*layout_node).text_for_rendering());
else if (is<LayoutBreak>(*layout_node) || is<LayoutBlock>(*layout_node))
builder.append('\n');

layout_node = layout_node->next_in_pre_order();
}

Expand Down

0 comments on commit ccdaa1b

Please sign in to comment.