Use DOM API to get selected text in WebKitGTK+ 1.5.1
Fixes: https://bugs.launchpad.net/midori/+bug/799603
This commit is contained in:
parent
24604a3db6
commit
648d869e4f
1 changed files with 25 additions and 0 deletions
|
@ -39,9 +39,11 @@
|
|||
#include <sys/utsname.h>
|
||||
#endif
|
||||
|
||||
#if !WEBKIT_CHECK_VERSION (1, 5, 1)
|
||||
/* This is unstable API, so we need to declare it */
|
||||
gchar*
|
||||
webkit_web_view_get_selected_text (WebKitWebView* web_view);
|
||||
#endif
|
||||
|
||||
static void
|
||||
midori_view_construct_web_view (MidoriView* view);
|
||||
|
@ -4167,10 +4169,33 @@ midori_view_get_link_uri (MidoriView* view)
|
|||
gboolean
|
||||
midori_view_has_selection (MidoriView* view)
|
||||
{
|
||||
#if WEBKIT_CHECK_VERSION (1, 5, 1)
|
||||
WebKitDOMDocument* doc;
|
||||
WebKitDOMDOMWindow* window;
|
||||
WebKitDOMDOMSelection* selection;
|
||||
WebKitDOMRange* range;
|
||||
#endif
|
||||
|
||||
g_return_val_if_fail (MIDORI_IS_VIEW (view), FALSE);
|
||||
|
||||
|
||||
#if WEBKIT_CHECK_VERSION (1, 5, 1)
|
||||
doc = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (view->web_view));
|
||||
window = webkit_dom_document_get_default_view (doc);
|
||||
selection = webkit_dom_dom_window_get_selection (window);
|
||||
if (selection == NULL)
|
||||
return FALSE;
|
||||
|
||||
range = webkit_dom_dom_selection_get_range_at (selection, 0, NULL);
|
||||
if (range == NULL)
|
||||
return FALSE;
|
||||
|
||||
katze_assign (view->selected_text, webkit_dom_range_get_text (range));
|
||||
#else
|
||||
katze_assign (view->selected_text, webkit_web_view_get_selected_text (
|
||||
WEBKIT_WEB_VIEW (view->web_view)));
|
||||
#endif
|
||||
|
||||
if (view->selected_text && *view->selected_text)
|
||||
return TRUE;
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue