summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2020-05-20 23:17:48 +0100
committerVincent Sanders <vince@kyllikki.org>2020-05-20 23:17:48 +0100
commit4cef0f955c3be33344361f84d600bccf1b28ce75 (patch)
tree222d27faab4fa078d183d1771b818c4a6448f5bb /desktop
parent2f672279014bb6ef2f7b9f346c58d20c7604bad9 (diff)
downloadnetsurf-4cef0f955c3be33344361f84d600bccf1b28ce75.tar.gz
netsurf-4cef0f955c3be33344361f84d600bccf1b28ce75.tar.bz2
pass the browser window to selection click handler
this means the content handlers do not have to provide a separate method to extract their browser window and it can simply be passed in.
Diffstat (limited to 'desktop')
-rw-r--r--desktop/selection.c18
-rw-r--r--desktop/selection.h3
2 files changed, 4 insertions, 17 deletions
diff --git a/desktop/selection.c b/desktop/selection.c
index 4bbcda9a7..47d51f83e 100644
--- a/desktop/selection.c
+++ b/desktop/selection.c
@@ -78,21 +78,6 @@ typedef bool (*seln_traverse_handler)(const char *text, size_t length,
/**
- * Get the browser window containing the content a selection object belongs to.
- *
- * \param s selection object
- * \return the browser window
- */
-static struct browser_window * selection_get_browser_window(struct selection *s)
-{
- if (s->is_html)
- return html_get_browser_window(s->c);
- else
- return textplain_get_browser_window(s->c);
-}
-
-
-/**
* Label each text box in the given box subtree with its position
* in a textual representation of the content.
*
@@ -691,13 +676,14 @@ selection_init(struct selection *s,
/* exported interface documented in desktop/selection.h */
bool
selection_click(struct selection *s,
+ struct browser_window *top,
browser_mouse_state mouse,
unsigned idx)
{
browser_mouse_state modkeys =
(mouse & (BROWSER_MOUSE_MOD_1 | BROWSER_MOUSE_MOD_2));
int pos = -1; /* 0 = inside selection, 1 = after it */
- struct browser_window *top = selection_get_browser_window(s);
+
top = browser_window_get_root(top);
if (selection_defined(s)) {
diff --git a/desktop/selection.h b/desktop/selection.h
index ca0d19fe9..cfaf59baf 100644
--- a/desktop/selection.h
+++ b/desktop/selection.h
@@ -28,6 +28,7 @@
#include "content/handlers/css/utils.h"
struct box;
+struct browser_window;
typedef enum {
DRAG_NONE,
@@ -166,7 +167,7 @@ void selection_set_position(struct selection *s, unsigned start, unsigned end);
* \param idx byte offset within textual representation
* \return true iff the click has been handled by the selection code
*/
-bool selection_click(struct selection *s, browser_mouse_state mouse, unsigned idx);
+bool selection_click(struct selection *s, struct browser_window *top, browser_mouse_state mouse, unsigned idx);
/**
* Handles movements related to the selection, eg. dragging of start and