summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp71
1 files changed, 44 insertions, 27 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp
index 918d316c0..60b5fb853 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp
@@ -20,7 +20,7 @@
#include "config.h"
#include "WebKitHitTestResult.h"
-#include "WebHitTestResult.h"
+#include "WebHitTestResultData.h"
#include "WebKitHitTestResultPrivate.h"
#include <glib/gi18n-lib.h>
#include <wtf/text/CString.h>
@@ -221,39 +221,36 @@ static void webkit_hit_test_result_class_init(WebKitHitTestResultClass* hitTestR
paramFlags));
}
-WebKitHitTestResult* webkitHitTestResultCreate(WebHitTestResult* hitTestResult)
+WebKitHitTestResult* webkitHitTestResultCreate(const WebHitTestResultData& hitTestResult)
{
unsigned context = WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT;
- const String& linkURL = hitTestResult->absoluteLinkURL();
- if (!linkURL.isEmpty())
+ if (!hitTestResult.absoluteLinkURL.isEmpty())
context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK;
- const String& imageURL = hitTestResult->absoluteImageURL();
- if (!imageURL.isEmpty())
+ if (!hitTestResult.absoluteImageURL.isEmpty())
context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE;
- const String& mediaURL = hitTestResult->absoluteMediaURL();
- if (!mediaURL.isEmpty())
+ if (!hitTestResult.absoluteMediaURL.isEmpty())
context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA;
- if (hitTestResult->isContentEditable())
+ if (hitTestResult.isContentEditable)
context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE;
- if (hitTestResult->isScrollbar())
+ if (hitTestResult.isScrollbar)
context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_SCROLLBAR;
- const String& linkTitle = hitTestResult->linkTitle();
- const String& linkLabel = hitTestResult->linkLabel();
+ if (hitTestResult.isSelected)
+ context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION;
return WEBKIT_HIT_TEST_RESULT(g_object_new(WEBKIT_TYPE_HIT_TEST_RESULT,
- "context", context,
- "link-uri", !linkURL.isEmpty() ? linkURL.utf8().data() : 0,
- "image-uri", !imageURL.isEmpty() ? imageURL.utf8().data() : 0,
- "media-uri", !mediaURL.isEmpty() ? mediaURL.utf8().data() : 0,
- "link-title", !linkTitle.isEmpty() ? linkTitle.utf8().data() : 0,
- "link-label", !linkLabel.isEmpty() ? linkLabel.utf8().data() : 0,
- NULL));
+ "context", context,
+ "link-uri", context & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK ? hitTestResult.absoluteLinkURL.utf8().data() : nullptr,
+ "image-uri", context & WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE ? hitTestResult.absoluteImageURL.utf8().data() : nullptr,
+ "media-uri", context & WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA ? hitTestResult.absoluteMediaURL.utf8().data() : nullptr,
+ "link-title", !hitTestResult.linkTitle.isEmpty() ? hitTestResult.linkTitle.utf8().data() : nullptr,
+ "link-label", !hitTestResult.linkLabel.isEmpty() ? hitTestResult.linkLabel.utf8().data() : nullptr,
+ nullptr));
}
static bool stringIsEqualToCString(const String& string, const CString& cString)
@@ -261,16 +258,17 @@ static bool stringIsEqualToCString(const String& string, const CString& cString)
return ((string.isEmpty() && cString.isNull()) || (string.utf8() == cString));
}
-bool webkitHitTestResultCompare(WebKitHitTestResult* hitTestResult, WebHitTestResult* webHitTestResult)
+bool webkitHitTestResultCompare(WebKitHitTestResult* hitTestResult, const WebHitTestResultData& webHitTestResult)
{
WebKitHitTestResultPrivate* priv = hitTestResult->priv;
- return webHitTestResult->isContentEditable() == webkit_hit_test_result_context_is_editable(hitTestResult)
- && webHitTestResult->isScrollbar() == webkit_hit_test_result_context_is_scrollbar(hitTestResult)
- && stringIsEqualToCString(webHitTestResult->absoluteLinkURL(), priv->linkURI)
- && stringIsEqualToCString(webHitTestResult->linkTitle(), priv->linkTitle)
- && stringIsEqualToCString(webHitTestResult->linkLabel(), priv->linkLabel)
- && stringIsEqualToCString(webHitTestResult->absoluteImageURL(), priv->imageURI)
- && stringIsEqualToCString(webHitTestResult->absoluteMediaURL(), priv->mediaURI);
+ return webHitTestResult.isContentEditable == webkit_hit_test_result_context_is_editable(hitTestResult)
+ && webHitTestResult.isScrollbar == webkit_hit_test_result_context_is_scrollbar(hitTestResult)
+ && webHitTestResult.isSelected == webkit_hit_test_result_context_is_selection(hitTestResult)
+ && stringIsEqualToCString(webHitTestResult.absoluteLinkURL, priv->linkURI)
+ && stringIsEqualToCString(webHitTestResult.linkTitle, priv->linkTitle)
+ && stringIsEqualToCString(webHitTestResult.linkLabel, priv->linkLabel)
+ && stringIsEqualToCString(webHitTestResult.absoluteImageURL, priv->imageURI)
+ && stringIsEqualToCString(webHitTestResult.absoluteMediaURL, priv->mediaURI);
}
/**
@@ -357,6 +355,25 @@ gboolean webkit_hit_test_result_context_is_editable(WebKitHitTestResult* hitTest
}
/**
+ * webkit_hit_test_result_context_is_selection:
+ * @hit_test_result: a #WebKitHitTestResult
+ *
+ * Gets whether %WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION flag is present in
+ * #WebKitHitTestResult:context.
+ *
+ * Returns: %TRUE if there's a selected element at the coordinates of the @hit_test_result,
+ * or %FALSE otherwise
+ *
+ * Since: 2.8
+ */
+gboolean webkit_hit_test_result_context_is_selection(WebKitHitTestResult* hitTestResult)
+{
+ g_return_val_if_fail(WEBKIT_IS_HIT_TEST_RESULT(hitTestResult), FALSE);
+
+ return hitTestResult->priv->context & WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION;
+}
+
+/**
* webkit_hit_test_result_get_link_uri:
* @hit_test_result: a #WebKitHitTestResult
*