diff options
-rw-r--r-- | desktop/browser.c | 7 | ||||
-rw-r--r-- | desktop/selection.c | 6 |
2 files changed, 4 insertions, 9 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index 827896835..cc19ccdc0 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -292,7 +292,6 @@ struct browser_window *browser_window_create(const char *url, bw->focus = bw; bw->sel = selection_create(); - selection_set_browser_window(bw->sel, bw); /* gui window */ /* from the front end's pov, it clones the top level browser window, @@ -1683,10 +1682,6 @@ void browser_window_mouse_track(struct browser_window *bw, browser_window_mouse_drag_end(bw, mouse, x, y); } - if (bw->drag_type != DRAGGING_NONE) { - selection_set_browser_window(bw->sel, bw); - } - if (bw->drag_type == DRAGGING_FRAME) { browser_window_resize_frame(bw, bw->x0 + x, bw->y0 + y); } else if (bw->drag_type == DRAGGING_PAGE_SCROLL) { @@ -1741,8 +1736,6 @@ void browser_window_mouse_click(struct browser_window *bw, top = browser_window_get_root(bw); top->focus = bw; - selection_set_browser_window(bw->sel, bw); - switch (content_get_type(c)) { case CONTENT_HTML: case CONTENT_TEXTPLAIN: diff --git a/desktop/selection.c b/desktop/selection.c index 17e97c7fc..24502ac47 100644 --- a/desktop/selection.c +++ b/desktop/selection.c @@ -279,8 +279,8 @@ bool selection_click(struct selection *s, browser_mouse_state mouse, int pos = -1; /* 0 = inside selection, 1 = after it */ struct browser_window *top; - assert(s->bw); - top = browser_window_get_root(s->bw); + if (s->bw == NULL) + return false; /* not our problem */ if (!SAME_SPACE(s, idx)) return false; /* not our problem */ @@ -294,6 +294,8 @@ bool selection_click(struct selection *s, browser_mouse_state mouse, } } + top = browser_window_get_root(s->bw); + if (!pos && ((mouse & BROWSER_MOUSE_DRAG_1) || (modkeys && (mouse & BROWSER_MOUSE_DRAG_2)))) { |