From c31a54788e70312c7c5d047b3f3f4be31541be51 Mon Sep 17 00:00:00 2001 From: François Revel Date: Wed, 8 Oct 2008 20:08:54 +0000 Subject: Add clipboard support. Works mostly. svn path=/trunk/netsurf/; revision=5507 --- beos/beos_scaffolding.cpp | 14 ++++++++++++++ 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(); } -- cgit v1.2.3