diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2008-04-08 12:40:05 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2008-04-08 12:40:05 +0000 |
commit | 84cd9a655f42642b3e6084e0844e6ca0d1da1a2e (patch) | |
tree | 74854e5a7b4961141670c7f46b01831dbb7a3e7e /desktop | |
parent | 90e061c6a9cd8c762df0609406a9e4fac8e305c3 (diff) | |
download | netsurf-84cd9a655f42642b3e6084e0844e6ca0d1da1a2e.tar.gz netsurf-84cd9a655f42642b3e6084e0844e6ca0d1da1a2e.tar.bz2 |
Improve click handling in text inputs.
svn path=/trunk/netsurf/; revision=4087
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser.c | 6 | ||||
-rw-r--r-- | desktop/selection.c | 6 |
2 files changed, 7 insertions, 5 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index ccc68a92f..3d8119262 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -1446,6 +1446,8 @@ void browser_window_mouse_action_html(struct browser_window *bw, } else status = c->status_message; } + else if (mouse & BROWSER_MOUSE_CLICK_1) + selection_clear(bw->sel, true); break; case GADGET_TEXTBOX: case GADGET_PASSWORD: @@ -1461,7 +1463,7 @@ void browser_window_mouse_action_html(struct browser_window *bw, x - gadget_box_x, y - gadget_box_y); } - else if (text_box) { + if (text_box) { int pixel_offset; size_t idx; @@ -1482,6 +1484,8 @@ void browser_window_mouse_action_html(struct browser_window *bw, if (selection_dragging(bw->sel)) bw->drag_type = DRAGGING_SELECTION; } + else if (mouse & BROWSER_MOUSE_CLICK_1) + selection_clear(bw->sel, true); break; case GADGET_HIDDEN: /* not possible: no box generated */ diff --git a/desktop/selection.c b/desktop/selection.c index 168d28673..9dd58ce4f 100644 --- a/desktop/selection.c +++ b/desktop/selection.c @@ -49,8 +49,6 @@ * or wholly without the textarea/input box. */ -#define IS_TEXT(box) ((box)->text && !(box)->object) - #define IS_INPUT(box) ((box) && (box)->gadget && \ ((box)->gadget->type == GADGET_TEXTAREA || (box)->gadget->type == GADGET_TEXTBOX)) @@ -223,7 +221,7 @@ unsigned selection_label_subtree(struct box *box, unsigned idx) box->byte_offset = idx; - if (box->text && !box->object) + if (box->text) idx += box->length + box->space; while (child) { @@ -847,7 +845,7 @@ struct box *get_box(struct box *b, unsigned offset, int *pidx) { struct box *child = b->children; - if (b->text && !b->object) { + if (b->text) { if (offset >= b->byte_offset && offset < b->byte_offset + b->length + b->space) { |