[epiphany-extensions] gestures: update to Epiphany master
- From: Diego Escalante Urrelo <diegoe src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [epiphany-extensions] gestures: update to Epiphany master
- Date: Fri, 22 Jan 2010 17:48:36 +0000 (UTC)
commit 508cac59a3b72ae522141e634ee3d8f3779cb887
Author: Diego Escalante Urrelo <descalante igalia com>
Date: Fri Jan 22 10:36:06 2010 -0500
gestures: update to Epiphany master
Bug #563099
extensions/gestures/ephy-gesture.c | 30 +++++--------------------
extensions/gestures/ephy-gesture.h | 4 +-
extensions/gestures/ephy-gestures-extension.c | 29 +++++++++++++++---------
3 files changed, 26 insertions(+), 37 deletions(-)
---
diff --git a/extensions/gestures/ephy-gesture.c b/extensions/gestures/ephy-gesture.c
index b4137c1..2c73056 100644
--- a/extensions/gestures/ephy-gesture.c
+++ b/extensions/gestures/ephy-gesture.c
@@ -40,7 +40,7 @@
struct _EphyGesturePrivate
{
GtkWidget *window;
- EphyEmbedEvent *event;
+ GdkEventButton *event;
GdkCursor *cursor;
GtkAction *current_action;
guint timeout_id;
@@ -353,9 +353,6 @@ ephy_gesture_get_property (GObject *object,
switch (prop_id)
{
- case PROP_EVENT:
- g_value_set_object (value, priv->event);
- break;
case PROP_WINDOW:
g_value_set_object (value, priv->window);
break;
@@ -385,15 +382,6 @@ ephy_gesture_class_init (EphyGestureClass *klass)
G_TYPE_STRING);
g_object_class_install_property (object_class,
- PROP_EVENT,
- g_param_spec_object ("event",
- "Event",
- "Event",
- G_TYPE_OBJECT,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property (object_class,
PROP_WINDOW,
g_param_spec_object ("window",
"Window",
@@ -411,7 +399,7 @@ ephy_gesture_get_window (EphyGesture *gesture)
return gesture->priv->window;
}
-EphyEmbedEvent *
+GdkEventButton *
ephy_gesture_get_event (EphyGesture *gesture)
{
EphyGesturePrivate *priv;
@@ -425,20 +413,14 @@ ephy_gesture_get_event (EphyGesture *gesture)
void
ephy_gesture_set_event (EphyGesture *gesture,
- EphyEmbedEvent *event)
+ GdkEventButton *event)
{
EphyGesturePrivate *priv;
g_return_if_fail (EPHY_IS_GESTURE (gesture));
priv = gesture->priv;
-
- if (priv->event != NULL)
- {
- g_object_unref (priv->event);
- }
-
- priv->event = event != NULL ? g_object_ref (event) : NULL;
+ priv->event = event;
}
static gboolean
@@ -463,7 +445,7 @@ ephy_gesture_activate (EphyGesture *gesture,
{
/* Fall back to normal click */
EphyEmbed *embed;
- EphyEmbedEvent *event;
+ GdkEventButton *event;
gint handled = FALSE;
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window));
@@ -472,7 +454,7 @@ ephy_gesture_activate (EphyGesture *gesture,
event = ephy_gesture_get_event (gesture);
g_return_if_fail (EPHY_IS_EMBED_EVENT (event));
- g_signal_emit_by_name (embed, "ge_dom_mouse_click", event,
+ g_signal_emit_by_name (embed, "button-press-event", event,
&handled);
}
else
diff --git a/extensions/gestures/ephy-gesture.h b/extensions/gestures/ephy-gesture.h
index e575911..fa18cdf 100644
--- a/extensions/gestures/ephy-gesture.h
+++ b/extensions/gestures/ephy-gesture.h
@@ -69,10 +69,10 @@ gboolean ephy_gesture_start (EphyGesture *gesture);
void ephy_gesture_stop (EphyGesture *gesture,
guint32 time);
-EphyEmbedEvent *ephy_gesture_get_event (EphyGesture *gesture);
+GdkEventButton *ephy_gesture_get_event (EphyGesture *gesture);
void ephy_gesture_set_event (EphyGesture *gesture,
- EphyEmbedEvent *event);
+ GdkEventButton *event);
void ephy_gesture_activate (EphyGesture *gesture,
const char *path);
diff --git a/extensions/gestures/ephy-gestures-extension.c b/extensions/gestures/ephy-gestures-extension.c
index 4ce556a..3fc2b6c 100644
--- a/extensions/gestures/ephy-gestures-extension.c
+++ b/extensions/gestures/ephy-gestures-extension.c
@@ -269,17 +269,20 @@ ensure_gesture (EphyGesturesExtension *extension,
}
static gboolean
-dom_mouse_down_cb (EphyEmbed *embed,
- EphyEmbedEvent *event,
+dom_mouse_down_cb (EphyWebView *view,
+ GdkEventButton *event,
EphyGesturesExtension *extension)
{
- EphyEmbedEventContext context;
- guint button;
- gint handled = FALSE;
- EphyWindow *window;
+ EphyEmbed *embed;
GtkWidget *toplevel;
+ EphyWindow *window;
gboolean ppv_mode;
+ guint button;
+ WebKitHitTestResult *hit_test;
+ guint context;
+ gint handled = FALSE;
+ embed = EPHY_EMBED (EPHY_GET_EMBED_FROM_EPHY_WEB_VIEW (GTK_WIDGET (view)));
g_return_val_if_fail (EPHY_IS_EMBED (embed), handled);
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (embed));
@@ -292,12 +295,15 @@ dom_mouse_down_cb (EphyEmbed *embed,
g_object_get (window, "is-print-preview", &ppv_mode, NULL);
if (ppv_mode) return handled;
- button = ephy_embed_event_get_button (event);
- context = ephy_embed_event_get_context (event);
+ button = event->button;
+ hit_test = webkit_web_view_get_hit_test_result (WEBKIT_WEB_VIEW (view), event);
+
+ g_object_get (hit_test, "context", &context, NULL);
+ g_object_unref (hit_test);
if (button == 2 &&
- !((context & EPHY_EMBED_CONTEXT_INPUT) ||
- (context & EPHY_EMBED_CONTEXT_LINK)))
+ !((context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE) ||
+ (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK)))
{
EphyGesture *gesture;
@@ -328,7 +334,8 @@ impl_attach_tab (EphyExtension *extension,
{
LOG ("Attach tab");
- g_signal_connect (embed, "ge_dom_mouse_down",
+ g_signal_connect (ephy_embed_get_web_view (embed),
+ "button-press-event",
G_CALLBACK (dom_mouse_down_cb), extension);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]