[epiphany-extensions] gestures: update to Epiphany master



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]