summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'desktop')
-rw-r--r--desktop/browser.c13
-rw-r--r--desktop/browser.h9
-rw-r--r--desktop/textinput.c13
3 files changed, 11 insertions, 24 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index 8728a6170..1f8a10c7a 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -633,8 +633,6 @@ nserror browser_window_callback(hlcache_handle *c,
browser_window_remove_caret(bw);
- bw->scrollbar = NULL;
-
if (bw->window)
gui_window_new_content(bw->window);
@@ -708,7 +706,6 @@ nserror browser_window_callback(hlcache_handle *c,
else if (c == bw->current_content) {
bw->current_content = NULL;
browser_window_remove_caret(bw);
- bw->scrollbar = NULL;
selection_init(bw->sel, NULL);
}
@@ -1803,6 +1800,7 @@ void browser_window_mouse_drag_end(struct browser_window *bw,
}
selection_drag_end(bw->sel);
}
+ bw->drag_type = DRAGGING_NONE;
break;
case DRAGGING_OTHER:
@@ -1810,19 +1808,14 @@ void browser_window_mouse_drag_end(struct browser_window *bw,
if (bw->visible_select_menu != NULL) {
form_select_mouse_drag_end(bw->visible_select_menu,
mouse, x, y);
- }
-
- if (bw->scrollbar != NULL) {
- html_overflow_scroll_drag_end(bw->scrollbar,
- mouse, x, y);
+ bw->drag_type = DRAGGING_NONE;
}
break;
default:
+ bw->drag_type = DRAGGING_NONE;
break;
}
-
- bw->drag_type = DRAGGING_NONE;
}
diff --git a/desktop/browser.h b/desktop/browser.h
index 8790fad1f..6ab7f5c7d 100644
--- a/desktop/browser.h
+++ b/desktop/browser.h
@@ -114,10 +114,6 @@ struct browser_window {
unsigned int drag_resize_up : 1;
unsigned int drag_resize_down : 1;
- /** Scroll capturing all mouse events, updated to any active HTML
- * scrollbar, or NULL when no scrollbar drags active */
- struct scrollbar *scrollbar;
-
/** Current fetch is download */
bool download;
@@ -198,11 +194,6 @@ struct browser_window {
int status_miss; /**< Number of times status was really updated. */
};
-struct browser_scrollbar_data {
- struct browser_window *bw;
- struct box *box;
-};
-
extern struct browser_window *current_redraw_browser;
extern bool browser_reformat_pending;
diff --git a/desktop/textinput.c b/desktop/textinput.c
index 4f5d771e3..b5163b375 100644
--- a/desktop/textinput.c
+++ b/desktop/textinput.c
@@ -37,6 +37,7 @@
#include "render/box.h"
#include "render/font.h"
#include "render/form.h"
+#include "render/html_internal.h"
#include "render/layout.h"
#include "utils/log.h"
#include "utils/talloc.h"
@@ -2168,7 +2169,7 @@ void textarea_reflow(struct browser_window *bw, struct box *textarea,
textarea->width = width;
textarea->height = height;
layout_calculate_descendant_bboxes(textarea);
- box_handle_scrollbars(bw, textarea,
+ box_handle_scrollbars(c, textarea,
box_hscrollbar_present(textarea),
box_vscrollbar_present(textarea));
}
@@ -2263,6 +2264,8 @@ bool word_right(const char *text, size_t len, size_t *poffset, size_t *pchars)
bool ensure_caret_visible(struct browser_window *bw, struct box *textarea)
{
+ html_content *html = (html_content *)
+ hlcache_handle_get_content(bw->current_content);
int cx, cy;
int scrollx, scrolly;
@@ -2302,14 +2305,14 @@ bool ensure_caret_visible(struct browser_window *bw, struct box *textarea)
return false;
if (textarea->scroll_x != NULL) {
- bw->scrollbar = textarea->scroll_x;
+ html->scrollbar = textarea->scroll_x;
scrollbar_set(textarea->scroll_x, scrollx, false);
- bw->scrollbar = NULL;
+ html->scrollbar = NULL;
}
if (textarea->scroll_y != NULL) {
- bw->scrollbar = textarea->scroll_x;
+ html->scrollbar = textarea->scroll_x;
scrollbar_set(textarea->scroll_y, scrolly, false);
- bw->scrollbar = NULL;
+ html->scrollbar = NULL;
}
return true;