qulogic/pidgin

Avoid some asserts with WBFO.

2012-06-06, Elliott Sales de Andrade
87c277f64c4e
Parents 3dc4b2cdba7f
Children 35de4c169b1a
Avoid some asserts with WBFO.
--- a/pidgin/gtkwebview.c Tue Jun 05 23:59:36 2012 +0000
+++ b/pidgin/gtkwebview.c Wed Jun 06 01:55:02 2012 +0000
@@ -315,8 +315,8 @@
{
GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview);
WebKitDOMDocument *dom;
- WebKitDOMDOMWindow *win = NULL;
- WebKitDOMDOMSelection *sel;
+ WebKitDOMDOMWindow *win;
+ WebKitDOMDOMSelection *sel = NULL;
WebKitDOMRange *range = NULL;
dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
@@ -324,7 +324,8 @@
if (priv->edit.wbfo) {
win = webkit_dom_document_get_default_view(dom);
sel = webkit_dom_dom_window_get_selection(win);
- range = webkit_dom_dom_selection_get_range_at(sel, 0, NULL);
+ if (webkit_dom_dom_selection_get_range_count(sel) > 0)
+ range = webkit_dom_dom_selection_get_range_at(sel, 0, NULL);
webkit_web_view_select_all(WEBKIT_WEB_VIEW(webview));
}
@@ -333,9 +334,12 @@
priv->edit.block_changed = FALSE;
if (priv->edit.wbfo) {
- sel = webkit_dom_dom_window_get_selection(win);
- webkit_dom_dom_selection_remove_all_ranges(sel);
- webkit_dom_dom_selection_add_range(sel, range);
+ if (range) {
+ webkit_dom_dom_selection_remove_all_ranges(sel);
+ webkit_dom_dom_selection_add_range(sel, range);
+ } else {
+ webkit_dom_dom_selection_collapse_to_end(sel, NULL);
+ }
}
}