summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrançois Revel <mmu_man@netsurf-browser.org>2008-10-08 20:08:54 +0000
committerFrançois Revel <mmu_man@netsurf-browser.org>2008-10-08 20:08:54 +0000
commitc31a54788e70312c7c5d047b3f3f4be31541be51 (patch)
tree54bfce7b795fa010da5d6469e4801068ec72b74a
parentbc3b994817e5752f598a207d6021dc0c0496092d (diff)
downloadnetsurf-c31a54788e70312c7c5d047b3f3f4be31541be51.tar.gz
netsurf-c31a54788e70312c7c5d047b3f3f4be31541be51.tar.bz2
Add clipboard support. Works mostly.
svn path=/trunk/netsurf/; revision=5507
-rw-r--r--beos/beos_scaffolding.cpp14
-rw-r--r--beos/beos_window.cpp8
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();
}