forked from ports/contrib
60 lines
1.8 KiB
Diff
60 lines
1.8 KiB
Diff
From 648d869e4ff69f121da97484a0fd553b005ca751 Mon Sep 17 00:00:00 2001
|
|
From: Christian Dywan <christian@twotoasts.de>
|
|
Date: Wed, 21 Sep 2011 21:50:51 +0000
|
|
Subject: Use DOM API to get selected text in WebKitGTK+ 1.5.1
|
|
|
|
Fixes: https://bugs.launchpad.net/midori/+bug/799603
|
|
---
|
|
diff --git a/midori/midori-view.c b/midori/midori-view.c
|
|
index 0d7a96e..e426e7f 100644
|
|
--- a/midori/midori-view.c
|
|
+++ b/midori/midori-view.c
|
|
@@ -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
|
|
--
|
|
cgit
|