diff options
-rw-r--r-- | beos/beos_scaffolding.cpp | 14 | ||||
-rw-r--r-- | beos/beos_window.cpp | 8 |
2 files changed, 20 insertions, 2 deletions
diff --git a/beos/beos_scaffolding.cpp b/beos/beos_scaffolding.cpp index e0b3af943..1e132e15f 100644 --- a/beos/beos_scaffolding.cpp +++ b/beos/beos_scaffolding.cpp @@ -46,6 +46,7 @@ extern "C" { #include "desktop/netsurf.h" #include "desktop/plotters.h" #include "desktop/options.h" +#include "desktop/selection.h" #include "desktop/textinput.h" #include "render/box.h" #include "render/font.h" @@ -429,6 +430,19 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m browser_window_go(bw, url.String(), 0, true); break; } + case B_COPY: + gui_copy_to_clipboard(bw->sel); + break; + case B_CUT: + browser_window_key_press(bw, 24); + break; + case B_PASTE: + gui_paste_from_clipboard(scaffold->top_level, 0, 0); + break; + case B_SELECT_ALL: + LOG(("Selecting all text")); + selection_select_all(bw->sel); + break; case BROWSER_NAVIGATE_BACK: case 'back': if (!history_back_available(bw->history)) diff --git a/beos/beos_window.cpp b/beos/beos_window.cpp index da1b5ef85..b30a80453 100644 --- a/beos/beos_window.cpp +++ b/beos/beos_window.cpp @@ -141,7 +141,10 @@ NSBrowserFrameView::MessageReceived(BMessage *message) switch (message->what) { case B_SIMPLE_DATA: case B_REFS_RECEIVED: - message->PrintToStream(); + case B_COPY: + case B_CUT: + case B_PASTE: + case B_SELECT_ALL: //case B_MOUSE_WHEEL_CHANGED: // messages for top-level case 'back': @@ -229,6 +232,7 @@ NSBrowserFrameView::MessageReceived(BMessage *message) nsbeos_pipe_message_top(message, NULL, fGuiWindow->scaffold); break; default: + message->PrintToStream(); BView::MessageReceived(message); } } @@ -1778,7 +1782,7 @@ bool gui_commit_clipboard(void) if (clip) { clip->AddData("text/plain", B_MIME_TYPE, current_selection.String(), - current_selection.Length() + 1); + current_selection.Length()); gui_empty_clipboard(); be_clipboard->Commit(); } |