aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/user_help.in.html23
-rw-r--r--dw/fltkplatform.cc5
-rw-r--r--dw/fltkplatform.hh22
-rw-r--r--dw/layout.hh24
-rw-r--r--dw/platform.hh22
-rw-r--r--dw/selection.cc3
-rw-r--r--src/menu.cc4
-rw-r--r--src/uicmd.cc10
-rw-r--r--src/uicmd.hh4
9 files changed, 96 insertions, 21 deletions
diff --git a/doc/user_help.in.html b/doc/user_help.in.html
index 9fba7770..48b39669 100644
--- a/doc/user_help.in.html
+++ b/doc/user_help.in.html
@@ -241,16 +241,27 @@ ESC.
<h3 id="copy-and-paste">Copy and paste</h3>
<p>
-To copy some text just hold down the left mouse button and move to select the
-area to copy. To paste, go to the target application and press the middle mouse
-button.
+Dillo uses the Primary and Clipboard selections to copy and paste text. The
+Primary selection captures text that gets selected as soon as the left button is
+released, while to copy it in the Clipboard selection it requires the usual
+Ctrl+C and Ctrl+V shortcut.
+<p>
+To copy some text in the Primary selection just hold down the left mouse button
+and move to select the area to copy. To paste, go to the target application and
+press the middle mouse button. Currently it is not possible to copy the
+selection to the Clipboard via Ctrl+C.
<p>
If you want to select more than one screen, hold the mouse left button down and
scroll with PgUp, PgDn or the arrow keys.
-<P>
-If you want to paste an URL into Dillo, do it on the "clear-URL"
-button (the "X" next to the <a href="#location-bar">location bar</a>).
<p>
+When a link is copied from the context menu, it is placed both in the Primary
+and Clipboard selections, so you can paste the URL with the middle click or with
+Ctrl+V.
+<p>
+If you want to paste an URL into Dillo from the Primary selection, do it on the
+"clear-URL" button (the "X" next to the <a href="#location-bar">location
+bar</a>) and the URL will be opened as well. You can also paste the URL using
+the Clipboard by using the Ctrl+V shortcut then pressing Enter to visit it.
<h3 id="zoom">Zoom</h3>
<p>
diff --git a/dw/fltkplatform.cc b/dw/fltkplatform.cc
index 21c0866a..5551a80c 100644
--- a/dw/fltkplatform.cc
+++ b/dw/fltkplatform.cc
@@ -2,6 +2,7 @@
* Dillo Widget
*
* Copyright 2005-2007 Sebastian Geerken <sgeerken@dillo.org>
+ * Copyright 2025 Rodrigo Arias Mallo <rodarima@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -700,9 +701,9 @@ core::style::Tooltip *FltkPlatform::createTooltip (const char *text)
return FltkTooltip::create (text);
}
-void FltkPlatform::copySelection(const char *text)
+void FltkPlatform::copySelection(const char *text, int destination)
{
- Fl::copy(text, strlen(text), 0);
+ Fl::copy(text, strlen(text), destination);
}
core::Imgbuf *FltkPlatform::createImgbuf (core::Imgbuf::Type type,
diff --git a/dw/fltkplatform.hh b/dw/fltkplatform.hh
index 60dca7f2..f1b68b0a 100644
--- a/dw/fltkplatform.hh
+++ b/dw/fltkplatform.hh
@@ -1,3 +1,23 @@
+/*
+ * Dillo Widget
+ *
+ * Copyright 2005-2007 Sebastian Geerken <sgeerken@dillo.org>
+ * Copyright 2025 Rodrigo Arias Mallo <rodarima@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
#ifndef __DW_FLTKPLATFORM_HH__
#define __DW_FLTKPLATFORM_HH__
@@ -174,7 +194,7 @@ public:
core::Imgbuf *createImgbuf (core::Imgbuf::Type type, int width, int height,
double gamma);
- void copySelection(const char *text);
+ void copySelection(const char *text, int destination);
core::ui::ResourceFactory *getResourceFactory ();
diff --git a/dw/layout.hh b/dw/layout.hh
index 08360e19..36f433b5 100644
--- a/dw/layout.hh
+++ b/dw/layout.hh
@@ -1,3 +1,23 @@
+/*
+ * Dillo Widget
+ *
+ * Copyright 2005-2007 Sebastian Geerken <sgeerken@dillo.org>
+ * Copyright 2025 Rodrigo Arias Mallo <rodarima@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
#ifndef __DW_LAYOUT_HH__
#define __DW_LAYOUT_HH__
@@ -413,9 +433,9 @@ public:
return platform->createImgbuf (type, width, height, gamma);
}
- inline void copySelection(const char *text)
+ inline void copySelection(const char *text, int destination)
{
- platform->copySelection(text);
+ platform->copySelection(text, destination);
}
inline ui::ResourceFactory *getResourceFactory ()
diff --git a/dw/platform.hh b/dw/platform.hh
index 5270098b..9d90c9df 100644
--- a/dw/platform.hh
+++ b/dw/platform.hh
@@ -1,3 +1,23 @@
+/*
+ * Dillo Widget
+ *
+ * Copyright 2005-2013 Sebastian Geerken <sgeerken@dillo.org>
+ * Copyright 2025 Rodrigo Arias Mallo <rodarima@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
#ifndef __DW_PLATFORM_HH__
#define __DW_PLATFORM_HH__
@@ -158,7 +178,7 @@ public:
/**
* \brief Copy selected text (0-terminated).
*/
- virtual void copySelection(const char *text) = 0;
+ virtual void copySelection(const char *text, int destination) = 0;
/**
* ...
diff --git a/dw/selection.cc b/dw/selection.cc
index a69eb82a..899fad69 100644
--- a/dw/selection.cc
+++ b/dw/selection.cc
@@ -2,6 +2,7 @@
* Dillo Widget
*
* Copyright 2005-2007 Sebastian Geerken <sgeerken@dillo.org>
+ * Copyright 2025 Rodrigo Arias Mallo <rodarima@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -494,7 +495,7 @@ void SelectionState::copy()
delete i;
}
- layout->copySelection(strbuf.getChars());
+ layout->copySelection(strbuf.getChars(), 0);
}
}
diff --git a/src/menu.cc b/src/menu.cc
index 0a33e0ce..cc2245bf 100644
--- a/src/menu.cc
+++ b/src/menu.cc
@@ -2,7 +2,7 @@
* File: menu.cc
*
* Copyright (C) 2005-2007 Jorge Arellano Cid <jcid@dillo.org>
- * Copyright (C) 2024 Rodrigo Arias Mallo <rodarima@gmail.com>
+ * Copyright (C) 2024-2025 Rodrigo Arias Mallo <rodarima@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -89,7 +89,7 @@ static void Menu_copy_urlstr_cb(Fl_Widget*, void *user_data)
{
if (user_data) {
DilloUrl *url = (DilloUrl *)user_data ;
- a_UIcmd_copy_urlstr(popup_bw, URL_STR(url));
+ a_UIcmd_copy_urlstr(popup_bw, URL_STR(url), 2);
}
}
diff --git a/src/uicmd.cc b/src/uicmd.cc
index 06333d0c..a2c21311 100644
--- a/src/uicmd.cc
+++ b/src/uicmd.cc
@@ -2,7 +2,7 @@
* File: uicmd.cc
*
* Copyright (C) 2005-2011 Jorge Arellano Cid <jcid@dillo.org>
- * Copyright (C) 2024 Rodrigo Arias Mallo <rodarima@gmail.com>
+ * Copyright (C) 2024-2025 Rodrigo Arias Mallo <rodarima@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1317,12 +1317,14 @@ void a_UIcmd_file_popup(void *vbw, void *v_wid)
}
/*
- * Copy url string to paste buffer
+ * Copy url string to paste buffer.
+ *
+ * For destination use: 0=primary, 1=clipboard, 2=both
*/
-void a_UIcmd_copy_urlstr(BrowserWindow *bw, const char *urlstr)
+void a_UIcmd_copy_urlstr(BrowserWindow *bw, const char *urlstr, int destination)
{
Layout *layout = (Layout*)bw->render_layout;
- layout->copySelection(urlstr);
+ layout->copySelection(urlstr, destination);
}
/*
diff --git a/src/uicmd.hh b/src/uicmd.hh
index b69b50db..54b8750b 100644
--- a/src/uicmd.hh
+++ b/src/uicmd.hh
@@ -2,7 +2,7 @@
* File: uicmd.cc
*
* Copyright (C) 2005-2011 Jorge Arellano Cid <jcid@dillo.org>
- * Copyright (C) 2024 Rodrigo Arias Mallo <rodarima@gmail.com>
+ * Copyright (C) 2024-2025 Rodrigo Arias Mallo <rodarima@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -67,7 +67,7 @@ void a_UIcmd_image_popup(void *vbw, const DilloUrl *url, bool_t loaded_img,
void a_UIcmd_form_popup(void *vbw, const DilloUrl *url, void *vform,
bool_t showing_hiddens);
void a_UIcmd_file_popup(void *vbw, void *v_wid);
-void a_UIcmd_copy_urlstr(BrowserWindow *bw, const char *urlstr);
+void a_UIcmd_copy_urlstr(BrowserWindow *bw, const char *urlstr, int destination);
void a_UIcmd_view_page_source(BrowserWindow *bw, const DilloUrl *url);
void a_UIcmd_view_page_bugs(void *vbw);
void a_UIcmd_bugmeter_popup(void *vbw);