aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGustavo Noronha Silva <gns@gnome.org>2009-12-18 20:17:25 +0800
committerGustavo Noronha Silva <gns@gnome.org>2009-12-18 20:17:25 +0800
commitb6102135d673197eecdc6497d6153d00f6b75301 (patch)
tree5b322f4366a7abde6a9b73285e215f47058f84bb /src
parentb46e4176e430872a3d47d0b41d0694a2ea121c5e (diff)
downloadgsoc2013-epiphany-b6102135d673197eecdc6497d6153d00f6b75301.tar
gsoc2013-epiphany-b6102135d673197eecdc6497d6153d00f6b75301.tar.gz
gsoc2013-epiphany-b6102135d673197eecdc6497d6153d00f6b75301.tar.bz2
gsoc2013-epiphany-b6102135d673197eecdc6497d6153d00f6b75301.tar.lz
gsoc2013-epiphany-b6102135d673197eecdc6497d6153d00f6b75301.tar.xz
gsoc2013-epiphany-b6102135d673197eecdc6497d6153d00f6b75301.tar.zst
gsoc2013-epiphany-b6102135d673197eecdc6497d6153d00f6b75301.zip
Restore download on shift-click functionality
Diffstat (limited to 'src')
-rw-r--r--src/ephy-window.c45
1 files changed, 20 insertions, 25 deletions
diff --git a/src/ephy-window.c b/src/ephy-window.c
index d614f4730..91b163ed1 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -35,6 +35,7 @@
#include "eel-gconf-extensions.h"
#include "ephy-prefs.h"
#include "ephy-embed-prefs.h"
+#include "ephy-embed-utils.h"
#include "ephy-zoom.h"
#include "ephy-debug.h"
#include "ephy-file-helpers.h"
@@ -2271,37 +2272,32 @@ show_embed_popup (EphyWindow *window,
}
}
-#if 0
static gboolean
save_property_url (EphyEmbed *embed,
- EphyEmbedEvent *event,
- const char *property,
- const char *key)
+ GdkEventButton *gdk_event,
+ WebKitHitTestResult *hit_test_result,
+ const char *property)
{
const char *location;
- const GValue *value;
- EphyEmbedPersist *persist;
-
- value = ephy_embed_event_get_property (event, property);
- location = g_value_get_string (value);
+ GValue value = { 0, };
+ EphyEmbedEvent *event = ephy_embed_event_new (gdk_event, hit_test_result);
+ gboolean retval;
- if (!ephy_embed_utils_address_has_web_scheme (location)) return FALSE;
+ ephy_embed_event_get_property (event, property, &value);
+ location = g_value_get_string (&value);
- persist = EPHY_EMBED_PERSIST
- (g_object_new (EPHY_TYPE_EMBED_PERSIST, NULL));
+ LOG ("Location: %s", location);
- ephy_embed_persist_set_embed (persist, embed);
- ephy_embed_persist_set_flags (persist, 0);
- ephy_embed_persist_set_persist_key (persist, key);
- ephy_embed_persist_set_source (persist, location);
+ retval = ephy_embed_utils_address_has_web_scheme (location);
- ephy_embed_persist_save (persist);
+ if (retval)
+ ephy_embed_auto_download_url (embed, location);
- g_object_unref (G_OBJECT(persist));
+ g_value_unset (&value);
+ g_object_unref (event);
- return TRUE;
+ return retval;
}
-#endif
typedef struct
{
@@ -2354,7 +2350,6 @@ ephy_window_dom_mouse_click_cb (WebKitWebView *view,
modifier = event->state;
g_object_get (hit_test_result, "context", &context, NULL);
- g_object_unref (hit_test_result);
LOG ("ephy_window_dom_mouse_click_cb: button %d, context %d, modifier %d (%d:%d)",
button, context, modifier, (int)event->x, (int)event->y);
@@ -2376,20 +2371,19 @@ ephy_window_dom_mouse_click_cb (WebKitWebView *view,
|| (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE));
is_input = (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE) != 0;
-#if 0
/* shift+click saves the link target */
if (is_link && is_left_click && with_shift)
{
- handled = save_property_url (embed, event, "link", CONF_STATE_SAVE_DIR);
+ handled = save_property_url (EPHY_GET_EMBED_FROM_EPHY_WEB_VIEW (view), event, hit_test_result, "link-uri");
}
/* shift+click saves the non-link image
* Note: pressing enter to submit a form synthesizes a mouse click event
*/
else if (is_image && is_left_click && with_shift && !is_input)
{
- handled = save_property_url (embed, event, "image", CONF_STATE_SAVE_IMAGE_DIR);
+ handled = save_property_url (EPHY_GET_EMBED_FROM_EPHY_WEB_VIEW (view), event, hit_test_result, "image-uri");
}
-#endif
+
/* middle click opens the selection url */
if (is_middle_clickable && is_middle_click && middle_click_opens)
{
@@ -2423,6 +2417,7 @@ ephy_window_dom_mouse_click_cb (WebKitWebView *view,
handled = FALSE;
}
+ g_object_unref (hit_test_result);
return handled;
}