diff options
Diffstat (limited to 'mail/message-list.c')
-rw-r--r-- | mail/message-list.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/mail/message-list.c b/mail/message-list.c index 288b4a5420..9046b69894 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -117,10 +117,15 @@ struct _MessageListPrivate { gboolean thread_latest; gboolean any_row_changed; /* save state before regen list when this is set to true */ + + GtkTargetList *copy_target_list; + GtkTargetList *paste_target_list; }; enum { PROP_0, + PROP_COPY_TARGET_LIST, + PROP_PASTE_TARGET_LIST, PROP_SHELL_BACKEND }; @@ -2295,6 +2300,7 @@ static void message_list_init (MessageList *message_list) { MessageListPrivate *p; + GtkTargetList *target_list; GdkAtom matom; message_list->priv = MESSAGE_LIST_GET_PRIVATE (message_list); @@ -2336,6 +2342,14 @@ message_list_init (MessageList *message_list) g_signal_connect(p->invisible, "selection_get", G_CALLBACK(ml_selection_get), message_list); g_signal_connect(p->invisible, "selection_clear_event", G_CALLBACK(ml_selection_clear_event), message_list); g_signal_connect(p->invisible, "selection_received", G_CALLBACK(ml_selection_received), message_list); + + /* FIXME This is currently unused. */ + target_list = gtk_target_list_new (NULL, 0); + message_list->priv->copy_target_list = target_list; + + /* FIXME This is currently unused. */ + target_list = gtk_target_list_new (NULL, 0); + message_list->priv->paste_target_list = target_list; } static void @@ -2418,6 +2432,18 @@ message_list_get_property (GObject *object, GParamSpec *pspec) { switch (property_id) { + case PROP_COPY_TARGET_LIST: + g_value_set_boxed ( + value, message_list_get_copy_target_list ( + MESSAGE_LIST (object))); + return; + + case PROP_PASTE_TARGET_LIST: + g_value_set_boxed ( + value, message_list_get_paste_target_list ( + MESSAGE_LIST (object))); + return; + case PROP_SHELL_BACKEND: g_value_set_object ( value, message_list_get_shell_backend ( @@ -2440,6 +2466,16 @@ message_list_dispose (GObject *object) priv->shell_backend = NULL; } + if (priv->copy_target_list != NULL) { + g_object_unref (priv->copy_target_list); + priv->copy_target_list = NULL; + } + + if (priv->paste_target_list != NULL) { + g_object_unref (priv->paste_target_list); + priv->paste_target_list = NULL; + } + /* Chain up to parent's dispose() method. */ G_OBJECT_CLASS (parent_class)->dispose (object); } @@ -2533,6 +2569,18 @@ message_list_class_init (MessageListClass *class) class->message_list_built = message_list_built; + /* Inherited from ESelectableInterface */ + g_object_class_override_property ( + object_class, + PROP_COPY_TARGET_LIST, + "copy-target-list"); + + /* Inherited from ESelectableInterface */ + g_object_class_override_property ( + object_class, + PROP_PASTE_TARGET_LIST, + "paste-target-list"); + g_object_class_install_property ( object_class, PROP_SHELL_BACKEND, @@ -3614,6 +3662,22 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const g } } +GtkTargetList * +message_list_get_copy_target_list (MessageList *message_list) +{ + g_return_val_if_fail (IS_MESSAGE_LIST (message_list), NULL); + + return message_list->priv->copy_target_list; +} + +GtkTargetList * +message_list_get_paste_target_list (MessageList *message_list) +{ + g_return_val_if_fail (IS_MESSAGE_LIST (message_list), NULL); + + return message_list->priv->paste_target_list; +} + static gboolean on_cursor_activated_idle (gpointer data) { |