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>
|
#include <sys/utsname.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !WEBKIT_CHECK_VERSION (1, 5, 1)
|
||||||
/* This is unstable API, so we need to declare it */
|
/* This is unstable API, so we need to declare it */
|
||||||
gchar*
|
gchar*
|
||||||
webkit_web_view_get_selected_text (WebKitWebView* web_view);
|
webkit_web_view_get_selected_text (WebKitWebView* web_view);
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_view_construct_web_view (MidoriView* view);
|
midori_view_construct_web_view (MidoriView* view);
|
||||||
|
@ -4167,10 +4169,33 @@ midori_view_get_link_uri (MidoriView* view)
|
||||||
gboolean
|
gboolean
|
||||||
midori_view_has_selection (MidoriView* view)
|
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);
|
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 (
|
katze_assign (view->selected_text, webkit_web_view_get_selected_text (
|
||||||
WEBKIT_WEB_VIEW (view->web_view)));
|
WEBKIT_WEB_VIEW (view->web_view)));
|
||||||
|
#endif
|
||||||
|
|
||||||
if (view->selected_text && *view->selected_text)
|
if (view->selected_text && *view->selected_text)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue