evince r3345 - in trunk: . shell
- From: carlosgc svn gnome org
- To: svn-commits-list gnome org
- Subject: evince r3345 - in trunk: . shell
- Date: Sun, 18 Jan 2009 09:41:32 +0000 (UTC)
Author: carlosgc
Date: Sun Jan 18 09:41:32 2009
New Revision: 3345
URL: http://svn.gnome.org/viewvc/evince?rev=3345&view=rev
Log:
2009-01-17 Carlos Garcia Campos <carlosgc gnome org>
* shell/ev-view.c: (ev_view_drag_data_received),
(ev_view_class_init), (ev_view_init):
* shell/ev-window.c: (ev_window_drag_data_received),
(ev_window_class_init), (ev_window_init):
Make the whole EvWindow the destination of a drag and drop
operation.
Modified:
trunk/ChangeLog
trunk/shell/ev-view.c
trunk/shell/ev-window.c
Modified: trunk/shell/ev-view.c
==============================================================================
--- trunk/shell/ev-view.c (original)
+++ trunk/shell/ev-view.c Sun Jan 18 09:41:32 2009
@@ -28,7 +28,6 @@
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
-#include "ev-application.h"
#include "ev-document-forms.h"
#include "ev-document-images.h"
#include "ev-document-links.h"
@@ -88,10 +87,6 @@
{ "UTF8_STRING", 0, TARGET_UTF8_STRING },
};
-static const GtkTargetEntry view_drop_targets[] = {
- { "text/uri-list", 0, 0 }
-};
-
static guint signals[N_SIGNALS];
typedef enum {
@@ -2793,39 +2788,6 @@
return TRUE;
}
-static void
-ev_view_drag_data_received (GtkWidget *widget,
- GdkDragContext *context,
- gint x,
- gint y,
- GtkSelectionData *selection_data,
- guint info,
- guint time)
-{
- gchar **uris;
- gint i = 0;
- GSList *uri_list = NULL;
-
- uris = gtk_selection_data_get_uris (selection_data);
- if (!uris) {
- gtk_drag_finish (context, FALSE, FALSE, time);
- return;
- }
-
- for (i = 0; uris[i]; i++) {
- uri_list = g_slist_prepend (uri_list, (gpointer) uris[i]);
- }
-
- ev_application_open_uri_list (EV_APP, uri_list,
- gtk_widget_get_screen (widget),
- 0);
- gtk_drag_finish (context, TRUE, FALSE, time);
-
- g_strfreev (uris);
- g_slist_free (uri_list);
-}
-
-
static gboolean
selection_update_idle_cb (EvView *view)
{
@@ -3977,7 +3939,6 @@
widget_class->style_set = ev_view_style_set;
widget_class->drag_data_get = ev_view_drag_data_get;
widget_class->drag_motion = ev_view_drag_motion;
- widget_class->drag_data_received = ev_view_drag_data_received;
widget_class->popup_menu = ev_view_popup_menu;
widget_class->query_tooltip = ev_view_query_tooltip;
@@ -4144,12 +4105,6 @@
gtk_layout_set_hadjustment (GTK_LAYOUT (view), NULL);
gtk_layout_set_vadjustment (GTK_LAYOUT (view), NULL);
-
- gtk_drag_dest_set (GTK_WIDGET (view),
- GTK_DEST_DEFAULT_ALL,
- view_drop_targets,
- G_N_ELEMENTS (view_drop_targets),
- GDK_ACTION_COPY);
}
/*** Callbacks ***/
Modified: trunk/shell/ev-window.c
==============================================================================
--- trunk/shell/ev-window.c (original)
+++ trunk/shell/ev-window.c Sun Jan 18 09:41:32 2009
@@ -238,6 +238,10 @@
GTK_PRINT_SETTINGS_OUTPUT_URI
};
+static const GtkTargetEntry ev_window_drop_targets[] = {
+ { "text/uri-list", 0, 0 }
+};
+
static void ev_window_update_actions (EvWindow *ev_window);
static void ev_window_sidebar_visibility_changed_cb (EvSidebar *ev_sidebar,
GParamSpec *pspec,
@@ -4684,6 +4688,40 @@
}
static void
+ev_window_drag_data_received (GtkWidget *widget,
+ GdkDragContext *context,
+ gint x,
+ gint y,
+ GtkSelectionData *selection_data,
+ guint info,
+ guint time)
+
+{
+ EvWindow *window = EV_WINDOW (widget);
+ gchar **uris;
+ gint i = 0;
+ GSList *uri_list = NULL;
+
+ uris = gtk_selection_data_get_uris (selection_data);
+ if (!uris) {
+ gtk_drag_finish (context, FALSE, FALSE, time);
+ return;
+ }
+
+ for (i = 0; uris[i]; i++) {
+ uri_list = g_slist_prepend (uri_list, (gpointer) uris[i]);
+ }
+
+ ev_application_open_uri_list (EV_APP, uri_list,
+ gtk_window_get_screen (GTK_WINDOW (window)),
+ 0);
+ gtk_drag_finish (context, TRUE, FALSE, time);
+
+ g_strfreev (uris);
+ g_slist_free (uri_list);
+}
+
+static void
ev_window_finalize (GObject *object)
{
GList *windows = ev_application_get_windows (EV_APP);
@@ -4899,6 +4937,7 @@
widget_class->screen_changed = ev_window_screen_changed;
widget_class->window_state_event = ev_window_state_event;
+ widget_class->drag_data_received = ev_window_drag_data_received;
g_type_class_add_private (g_object_class, sizeof (EvWindowPrivate));
}
@@ -6194,6 +6233,13 @@
ev_window_sizing_mode_changed_cb (EV_VIEW (ev_window->priv->view), NULL, ev_window);
ev_window_setup_action_sensitivity (ev_window);
+
+ /* Drag and Drop */
+ gtk_drag_dest_set (GTK_WIDGET (ev_window),
+ GTK_DEST_DEFAULT_ALL,
+ ev_window_drop_targets,
+ G_N_ELEMENTS (ev_window_drop_targets),
+ GDK_ACTION_COPY);
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]