aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/e-mail-attachment-bar.c4
-rw-r--r--mail/e-mail-reader.c4
-rw-r--r--mail/em-composer-utils.c6
-rw-r--r--mail/em-filter-folder-element.c4
-rw-r--r--mail/em-filter-rule.c7
-rw-r--r--mail/em-folder-properties.c8
-rw-r--r--mail/em-folder-selector.c19
-rw-r--r--mail/em-folder-tree.c44
-rw-r--r--mail/em-format-html-display.c17
-rw-r--r--mail/em-subscribe-editor.c9
-rw-r--r--mail/em-utils.c95
-rw-r--r--mail/mail-send-recv.c19
-rw-r--r--mail/mail-vfolder.c44
-rw-r--r--mail/message-list.c59
14 files changed, 209 insertions, 130 deletions
diff --git a/mail/e-mail-attachment-bar.c b/mail/e-mail-attachment-bar.c
index 88198438b7..0ffe287306 100644
--- a/mail/e-mail-attachment-bar.c
+++ b/mail/e-mail-attachment-bar.c
@@ -322,11 +322,7 @@ mail_attachment_bar_size_request (GtkWidget *widget,
* get a sizable gap between the headers and body when this
* widget is invisible. Once we finally move to WebKit,
* remove this. */
-#if GTK_CHECK_VERSION(2,19,7)
if (!gtk_widget_get_visible (widget)) {
-#else
- if (!GTK_WIDGET_VISIBLE (widget)) {
-#endif
requisition->width = 0;
requisition->height = 0;
return;
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index 684b97c085..eb1c7f298d 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -1926,11 +1926,7 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader)
widget = GTK_WIDGET (EM_FORMAT_HTML (html_display)->html);
-#if GTK_CHECK_VERSION(2,19,7)
html_display_visible = gtk_widget_get_mapped (widget);
-#else
- html_display_visible = GTK_WIDGET_MAPPED (widget);
-#endif
selected_uid_changed = g_strcmp0 (cursor_uid, format_uid);
if (html_display_visible && selected_uid_changed) {
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index c9a8a30c78..ffa053712f 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -809,10 +809,8 @@ em_utils_compose_new_message_with_mailto (const gchar *url, const gchar *fromuri
composer_set_no_change (composer, TRUE, url == NULL);
- if (!e_msg_composer_get_lite ()) {
- gtk_widget_show ((GtkWidget *) composer);
- gdk_window_raise (((GtkWidget *) composer)->window);
- }
+ if (!e_msg_composer_get_lite ())
+ gtk_window_present (GTK_WINDOW (composer));
return composer;
}
diff --git a/mail/em-filter-folder-element.c b/mail/em-filter-folder-element.c
index 3b80e0da77..f4584c65b1 100644
--- a/mail/em-filter-folder-element.c
+++ b/mail/em-filter-folder-element.c
@@ -230,6 +230,7 @@ xml_decode(EFilterElement *fe, xmlNodePtr node)
static void
folder_selected(EMFolderSelectionButton *button, EMFilterFolderElement *ff)
{
+ GtkWidget *toplevel;
const gchar *uri;
uri = em_folder_selection_button_get_selection(button);
@@ -240,7 +241,8 @@ folder_selected(EMFolderSelectionButton *button, EMFilterFolderElement *ff)
else
ff->uri = uri != NULL ? em_uri_from_camel (uri) : NULL;
- gdk_window_raise(GTK_WIDGET(gtk_widget_get_ancestor(GTK_WIDGET(button), GTK_TYPE_WINDOW))->window);
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (button));
+ gtk_window_present (GTK_WINDOW (toplevel));
}
static GtkWidget *
diff --git a/mail/em-filter-rule.c b/mail/em-filter-rule.c
index 41a6ba6640..ce73d2024f 100644
--- a/mail/em-filter-rule.c
+++ b/mail/em-filter-rule.c
@@ -503,9 +503,12 @@ more_parts(GtkWidget *button, struct _rule_data *data)
GtkAdjustment *adjustment;
adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (w));
- if (adjustment)
- gtk_adjustment_set_value (adjustment, adjustment->upper);
+ if (adjustment) {
+ gdouble upper;
+ upper = gtk_adjustment_get_upper (adjustment);
+ gtk_adjustment_set_value (adjustment, upper);
+ }
}
}
}
diff --git a/mail/em-folder-properties.c b/mail/em-folder-properties.c
index e02f039ee2..f3f41165c5 100644
--- a/mail/em-folder-properties.c
+++ b/mail/em-folder-properties.c
@@ -288,6 +288,7 @@ emfp_dialog_got_folder_quota (CamelFolder *folder,
gpointer data)
{
GtkWidget *dialog, *w;
+ GtkWidget *content_area;
struct _prop_data *prop_data;
GSList *l;
gint32 count, i,deleted;
@@ -396,8 +397,11 @@ emfp_dialog_got_folder_quota (CamelFolder *folder,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
gtk_window_set_default_size ((GtkWindow *) dialog, 192, 160);
+
gtk_widget_ensure_style (dialog);
- gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *) dialog)->vbox, 12);
+
+ content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
+ gtk_container_set_border_width (GTK_CONTAINER (content_area), 12);
/** @HookPoint-EMConfig: Folder Properties Window
* @Id: org.gnome.evolution.mail.folderConfig
@@ -418,7 +422,7 @@ emfp_dialog_got_folder_quota (CamelFolder *folder,
e_config_set_target((EConfig *)ec, (EConfigTarget *)target);
w = e_config_create_widget((EConfig *)ec);
- gtk_box_pack_start ((GtkBox *) ((GtkDialog *) dialog)->vbox, w, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (content_area), w, TRUE, TRUE, 0);
/* we do 'apply on ok' ... since instant apply may apply some very long running tasks */
diff --git a/mail/em-folder-selector.c b/mail/em-folder-selector.c
index 8ba323c135..089daf4d44 100644
--- a/mail/em-folder-selector.c
+++ b/mail/em-folder-selector.c
@@ -131,7 +131,7 @@ emfs_create_name_changed (GtkEntry *entry, EMFolderSelector *emfs)
const gchar *text = NULL;
gboolean active;
- if (emfs->name_entry->text_length > 0)
+ if (gtk_entry_get_text_length (emfs->name_entry) > 0)
text = gtk_entry_get_text (emfs->name_entry);
path = em_folder_tree_get_selected_uri(emfs->emft);
@@ -159,14 +159,16 @@ folder_activated_cb (EMFolderTree *emft, const gchar *path, const gchar *uri, EM
void
em_folder_selector_construct (EMFolderSelector *emfs, EMFolderTree *emft, guint32 flags, const gchar *title, const gchar *text, const gchar *oklabel)
{
+ GtkWidget *container;
GtkWidget *widget;
gtk_window_set_default_size (GTK_WINDOW (emfs), 350, 300);
gtk_window_set_title (GTK_WINDOW (emfs), title);
gtk_container_set_border_width (GTK_CONTAINER (emfs), 6);
- gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (emfs)->vbox), 6);
- gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (emfs)->vbox), 6);
+ container = gtk_dialog_get_content_area (GTK_DIALOG (emfs));
+ gtk_box_set_spacing (GTK_BOX (container), 6);
+ gtk_container_set_border_width (GTK_CONTAINER (container), 6);
emfs->flags = flags;
if (flags & EM_FOLDER_SELECTOR_CAN_CREATE) {
@@ -186,8 +188,7 @@ em_folder_selector_construct (EMFolderSelector *emfs, EMFolderTree *emft, guint3
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (
GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_IN);
- gtk_box_pack_end (
- GTK_BOX (GTK_DIALOG (emfs)->vbox), widget, TRUE, TRUE, 6);
+ gtk_box_pack_end (GTK_BOX (container), widget, TRUE, TRUE, 6);
gtk_widget_show (widget);
emfs->emft = emft;
@@ -202,7 +203,7 @@ em_folder_selector_construct (EMFolderSelector *emfs, EMFolderTree *emft, guint3
gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT);
gtk_widget_show (widget);
- gtk_box_pack_end (GTK_BOX (GTK_DIALOG (emfs)->vbox), widget, FALSE, TRUE, 6);
+ gtk_box_pack_end (GTK_BOX (container), widget, FALSE, TRUE, 6);
}
gtk_widget_grab_focus ((GtkWidget *) emfs->emft);
@@ -229,7 +230,7 @@ em_folder_selector_new (GtkWindow *parent,
static void
emfs_create_name_activate (GtkEntry *entry, EMFolderSelector *emfs)
{
- if (emfs->name_entry->text_length > 0) {
+ if (gtk_entry_get_text_length (emfs->name_entry) > 0) {
gchar *path;
const gchar *text;
@@ -251,6 +252,7 @@ em_folder_selector_create_new (GtkWindow *parent,
{
EMFolderSelector *emfs;
GtkWidget *hbox, *w;
+ GtkWidget *container;
/* remove the CREATE flag if it is there since that's the
* whole purpose of this dialog */
@@ -272,7 +274,8 @@ em_folder_selector_create_new (GtkWindow *parent,
gtk_box_pack_start ((GtkBox *) hbox, (GtkWidget *) emfs->name_entry, TRUE, FALSE, 6);
gtk_widget_show_all (hbox);
- gtk_box_pack_start ((GtkBox *) ((GtkDialog *) emfs)->vbox, hbox, FALSE, TRUE, 0);
+ container = gtk_dialog_get_content_area (GTK_DIALOG (emfs));
+ gtk_box_pack_start (GTK_BOX (container), hbox, FALSE, TRUE, 0);
gtk_widget_grab_focus ((GtkWidget *) emfs->name_entry);
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index badb6f8117..7a8f7be744 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -1457,10 +1457,13 @@ static void
folder_tree_drop_folder(struct _DragDataReceivedAsync *m)
{
CamelFolder *src;
+ const guchar *data;
- d(printf(" * Drop folder '%s' onto '%s'\n", m->selection->data, m->full_name));
+ data = gtk_selection_data_get_data (m->selection);
- if (!(src = mail_tool_uri_to_folder((gchar *)m->selection->data, 0, &m->base.ex)))
+ d(printf(" * Drop folder '%s' onto '%s'\n", data, m->full_name));
+
+ if (!(src = mail_tool_uri_to_folder((gchar *)data, 0, &m->base.ex)))
return;
em_folder_utils_copy_folders(src->parent_store, src->full_name, m->store, m->full_name?m->full_name:"", m->move);
@@ -1471,10 +1474,13 @@ static gchar *
folder_tree_drop_async__desc (struct _DragDataReceivedAsync *m)
{
CamelURL *url;
+ const guchar *data;
gchar *buf;
+ data = gtk_selection_data_get_data (m->selection);
+
if (m->info == DND_DROP_TYPE_FOLDER) {
- url = camel_url_new ((gchar *)m->selection->data, NULL);
+ url = camel_url_new ((gchar *)data, NULL);
if (m->move)
buf = g_strdup_printf (_("Moving folder %s"), url->fragment ? url->fragment : url->path + 1);
@@ -1532,9 +1538,7 @@ folder_tree_drop_async__free (struct _DragDataReceivedAsync *m)
g_object_unref(m->context);
camel_object_unref(m->store);
g_free(m->full_name);
-
- g_free(m->selection->data);
- g_free(m->selection);
+ gtk_selection_data_free (m->selection);
}
static MailMsgInfo folder_tree_drop_async_info = {
@@ -1572,7 +1576,12 @@ tree_drag_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint
return;
/* this means we are receiving no data */
- if (!selection->data || selection->length == -1) {
+ if (gtk_selection_data_get_data (selection) == NULL) {
+ gtk_drag_finish(context, FALSE, FALSE, GDK_CURRENT_TIME);
+ return;
+ }
+
+ if (gtk_selection_data_get_length (selection) == -1) {
gtk_drag_finish(context, FALSE, FALSE, GDK_CURRENT_TIME);
return;
}
@@ -1604,10 +1613,7 @@ tree_drag_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint
m->info = info;
/* need to copy, goes away once we exit */
- m->selection = g_malloc0(sizeof(*m->selection));
- m->selection->data = g_malloc(selection->length);
- memcpy(m->selection->data, selection->data, selection->length);
- m->selection->length = selection->length;
+ m->selection = gtk_selection_data_copy (selection);
tree_drag_data_action(m);
}
@@ -1898,12 +1904,14 @@ tree_drag_leave (GtkWidget *widget, GdkDragContext *context, guint time, EMFolde
static gboolean
tree_autoscroll (EMFolderTree *folder_tree)
{
- GtkAdjustment *vadjustment;
+ GtkAdjustment *adjustment;
GtkTreeView *tree_view;
GdkRectangle rect;
GdkWindow *window;
gint offset, y;
- gfloat value;
+ gdouble page_size;
+ gdouble upper;
+ gdouble value;
/* get the y pointer position relative to the treeview */
tree_view = GTK_TREE_VIEW (folder_tree);
@@ -1923,10 +1931,14 @@ tree_autoscroll (EMFolderTree *folder_tree)
return TRUE;
}
- vadjustment = gtk_tree_view_get_vadjustment (tree_view);
+ adjustment = gtk_tree_view_get_vadjustment (tree_view);
+
+ page_size = gtk_adjustment_get_value (adjustment);
+ upper = gtk_adjustment_get_value (adjustment);
+ value = gtk_adjustment_get_value (adjustment);
- value = CLAMP (vadjustment->value + offset, 0.0, vadjustment->upper - vadjustment->page_size);
- gtk_adjustment_set_value (vadjustment, value);
+ value = CLAMP (value + offset, 0.0, upper - page_size);
+ gtk_adjustment_set_value (adjustment, value);
return TRUE;
}
diff --git a/mail/em-format-html-display.c b/mail/em-format-html-display.c
index d32ee8dd9f..54a768ec59 100644
--- a/mail/em-format-html-display.c
+++ b/mail/em-format-html-display.c
@@ -874,13 +874,15 @@ efhd_bar_resize (EMFormatHTML *efh,
GtkAllocation *event)
{
EMFormatHTMLDisplayPrivate *priv;
+ GtkAllocation allocation;
GtkWidget *widget;
gint width;
priv = EM_FORMAT_HTML_DISPLAY_GET_PRIVATE (efh);
widget = GTK_WIDGET (efh->html);
- width = widget->allocation.width - 12;
+ gtk_widget_get_allocation (widget, &allocation);
+ width = allocation.width - 12;
if (width > 0) {
widget = priv->attachment_view;
@@ -940,11 +942,7 @@ efhd_optional_button_show (GtkWidget *widget, GtkWidget *w)
{
GtkWidget *label = g_object_get_data (G_OBJECT (widget), "text-label");
-#if GTK_CHECK_VERSION(2,19,7)
if (gtk_widget_get_visible (w)) {
-#else
- if (GTK_WIDGET_VISIBLE (w)) {
-#endif
gtk_widget_hide (w);
gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("View _Unformatted"));
} else {
@@ -956,7 +954,10 @@ efhd_optional_button_show (GtkWidget *widget, GtkWidget *w)
static void
efhd_resize (GtkWidget *w, GtkAllocation *event, EMFormatHTML *efh)
{
- gtk_widget_set_size_request (w, ((GtkWidget *)efh->html)->allocation.width-48, 250);
+ GtkAllocation allocation;
+
+ gtk_widget_get_allocation (GTK_WIDGET (efh->html), &allocation);
+ gtk_widget_set_size_request (w, allocation.width - 48, 250);
}
/* optional render attachment button callback */
@@ -967,6 +968,7 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
GtkWidget *hbox, *vbox, *button, *mainbox, *scroll, *label, *img;
AtkObject *a11y;
GtkWidget *view;
+ GtkAllocation allocation;
GtkTextBuffer *buffer;
/* FIXME: handle default shown case */
@@ -1035,7 +1037,8 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
gtk_box_pack_start(GTK_BOX (vbox), scroll, TRUE, TRUE, 6);
gtk_widget_show (GTK_WIDGET(view));
- gtk_widget_set_size_request (scroll, (GTK_WIDGET (efh->html))->allocation.width - 48, 250);
+ gtk_widget_get_allocation (GTK_WIDGET (efh->html), &allocation);
+ gtk_widget_set_size_request (scroll, allocation.width - 48, 250);
g_signal_connect (scroll, "size_allocate", G_CALLBACK(efhd_resize), efh);
gtk_widget_show (scroll);
diff --git a/mail/em-subscribe-editor.c b/mail/em-subscribe-editor.c
index 6485af4e2f..068d74c1d6 100644
--- a/mail/em-subscribe-editor.c
+++ b/mail/em-subscribe-editor.c
@@ -808,6 +808,7 @@ em_subscribe_editor_new(void)
EIterator *iter;
GtkBuilder *builder;
GtkWidget *w;
+ GtkWidget *container;
GtkCellRenderer *cell;
GtkListStore *store;
GtkTreeIter gtiter;
@@ -823,8 +824,12 @@ em_subscribe_editor_new(void)
g_signal_connect(se->dialog, "destroy", G_CALLBACK(sub_editor_destroy), se);
gtk_widget_ensure_style ((GtkWidget *)se->dialog);
- gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)se->dialog)->action_area, 12);
- gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)se->dialog)->vbox, 0);
+
+ container = gtk_dialog_get_action_area (GTK_DIALOG (se->dialog));
+ gtk_container_set_border_width (GTK_CONTAINER (container), 12);
+
+ container = gtk_dialog_get_content_area (GTK_DIALOG (se->dialog));
+ gtk_container_set_border_width (GTK_CONTAINER (container), 0);
se->vbox = e_builder_get_widget(builder, "tree_box");
diff --git a/mail/em-utils.c b/mail/em-utils.c
index ff4487c2d4..ae6f01e7ea 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -131,6 +131,7 @@ gboolean
em_utils_prompt_user(GtkWindow *parent, const gchar *promptkey, const gchar *tag, ...)
{
GtkWidget *mbox, *check = NULL;
+ GtkWidget *container;
va_list ap;
gint button;
GConfClient *gconf = mail_config_get_gconf_client();
@@ -150,7 +151,8 @@ em_utils_prompt_user(GtkWindow *parent, const gchar *promptkey, const gchar *tag
if (promptkey) {
check = gtk_check_button_new_with_mnemonic (_("_Do not show this message again."));
gtk_container_set_border_width((GtkContainer *)check, 12);
- gtk_box_pack_start ((GtkBox *)((GtkDialog *) mbox)->vbox, check, TRUE, TRUE, 0);
+ container = gtk_dialog_get_content_area (GTK_DIALOG (mbox));
+ gtk_box_pack_start (GTK_BOX (container), check, TRUE, TRUE, 0);
gtk_widget_show (check);
}
@@ -279,7 +281,7 @@ em_utils_edit_filters (GtkWidget *parent)
EMFilterContext *fc;
if (filter_editor) {
- gdk_window_raise (GTK_WIDGET (filter_editor)->window);
+ gtk_window_present (GTK_WINDOW (filter_editor));
return;
}
@@ -636,19 +638,23 @@ void
em_utils_selection_set_mailbox(GtkSelectionData *data, CamelFolder *folder, GPtrArray *uids)
{
CamelStream *stream;
+ GdkAtom target;
+
+ target = gtk_selection_data_get_target (data);
stream = camel_stream_mem_new();
if (em_utils_write_messages_to_stream(folder, uids, stream) == 0)
- gtk_selection_data_set(data, data->target, 8,
- ((CamelStreamMem *)stream)->buffer->data,
- ((CamelStreamMem *)stream)->buffer->len);
+ gtk_selection_data_set(
+ data, target, 8,
+ ((CamelStreamMem *)stream)->buffer->data,
+ ((CamelStreamMem *)stream)->buffer->len);
camel_object_unref(stream);
}
/**
* em_utils_selection_get_mailbox:
- * @data: selection data
+ * @selection_data: selection data
* @folder:
*
* Receive a mailbox selection/dnd
@@ -657,39 +663,53 @@ em_utils_selection_set_mailbox(GtkSelectionData *data, CamelFolder *folder, GPtr
* FIXME: Exceptions?
**/
void
-em_utils_selection_get_mailbox(GtkSelectionData *data, CamelFolder *folder)
+em_utils_selection_get_mailbox (GtkSelectionData *selection_data,
+ CamelFolder *folder)
{
CamelStream *stream;
+ const guchar *data;
+ gint length;
+
+ data = gtk_selection_data_get_data (selection_data);
+ length = gtk_selection_data_get_length (selection_data);
- if (data->data == NULL || data->length == -1)
+ if (data == NULL || length == -1)
return;
/* TODO: a stream mem with read-only access to existing data? */
/* NB: Although copying would let us run this async ... which it should */
- stream = (CamelStream *)camel_stream_mem_new_with_buffer((gchar *)data->data, data->length);
+ stream = (CamelStream *)
+ camel_stream_mem_new_with_buffer ((gchar *) data, length);
em_utils_read_messages_from_stream(folder, stream);
camel_object_unref(stream);
}
/**
* em_utils_selection_get_message:
- * @data:
+ * @selection_data:
* @folder:
*
* get a message/rfc822 data.
**/
void
-em_utils_selection_get_message(GtkSelectionData *data, CamelFolder *folder)
+em_utils_selection_get_message (GtkSelectionData *selection_data,
+ CamelFolder *folder)
{
CamelStream *stream;
CamelException *ex;
CamelMimeMessage *msg;
+ const guchar *data;
+ gint length;
+
+ data = gtk_selection_data_get_data (selection_data);
+ length = gtk_selection_data_get_length (selection_data);
- if (data->data == NULL || data->length == -1)
+ if (data == NULL || length == -1)
return;
ex = camel_exception_new();
- stream = (CamelStream *)camel_stream_mem_new_with_buffer((gchar *)data->data, data->length);
+ stream = (CamelStream *)
+ camel_stream_mem_new_with_buffer ((gchar *)data, length);
msg = camel_mime_message_new();
if (camel_data_wrapper_construct_from_stream((CamelDataWrapper *)msg, stream) == 0)
camel_folder_append_message(folder, msg, NULL, NULL, ex);
@@ -700,7 +720,7 @@ em_utils_selection_get_message(GtkSelectionData *data, CamelFolder *folder)
/**
* em_utils_selection_set_uidlist:
- * @data: selection data
+ * @selection_data: selection data
* @uri:
* @uids:
*
@@ -709,9 +729,12 @@ em_utils_selection_get_message(GtkSelectionData *data, CamelFolder *folder)
* FIXME: be nice if this could take a folder argument rather than uri
**/
void
-em_utils_selection_set_uidlist(GtkSelectionData *data, const gchar *uri, GPtrArray *uids)
+em_utils_selection_set_uidlist (GtkSelectionData *selection_data,
+ const gchar *uri,
+ GPtrArray *uids)
{
GByteArray *array = g_byte_array_new();
+ GdkAtom target;
gint i;
/* format: "uri\0uid1\0uid2\0uid3\0...\0uidn\0" */
@@ -721,7 +744,9 @@ em_utils_selection_set_uidlist(GtkSelectionData *data, const gchar *uri, GPtrArr
for (i=0; i<uids->len; i++)
g_byte_array_append(array, uids->pdata[i], strlen(uids->pdata[i])+1);
- gtk_selection_data_set(data, data->target, 8, array->data, array->len);
+ target = gtk_selection_data_get_target (selection_data);
+ gtk_selection_data_set (
+ selection_data, target, 8, array->data, array->len);
g_byte_array_free(array, TRUE);
}
@@ -735,27 +760,37 @@ em_utils_selection_set_uidlist(GtkSelectionData *data, const gchar *uri, GPtrArr
* Warning: Could take some time to run.
**/
void
-em_utils_selection_get_uidlist(GtkSelectionData *data, CamelFolder *dest, gint move, CamelException *ex)
+em_utils_selection_get_uidlist (GtkSelectionData *selection_data,
+ CamelFolder *dest,
+ gint move,
+ CamelException *ex)
{
/* format: "uri\0uid1\0uid2\0uid3\0...\0uidn" */
gchar *inptr, *inend;
GPtrArray *uids;
CamelFolder *folder;
+ const guchar *data;
+ gint length;
+
+ g_return_if_fail (selection_data != NULL);
- if (data == NULL || data->data == NULL || data->length == -1)
+ data = gtk_selection_data_get_data (selection_data);
+ length = gtk_selection_data_get_length (selection_data);
+
+ if (data == NULL || length == -1)
return;
uids = g_ptr_array_new();
- inptr = (gchar *)data->data;
- inend = (gchar *)(data->data + data->length);
+ inptr = (gchar *) data;
+ inend = (gchar *) (data + length);
while (inptr < inend) {
gchar *start = inptr;
while (inptr < inend && *inptr)
inptr++;
- if (start > (gchar *)data->data)
+ if (start > (gchar *) data)
g_ptr_array_add(uids, g_strndup(start, inptr-start));
inptr++;
@@ -766,7 +801,7 @@ em_utils_selection_get_uidlist(GtkSelectionData *data, CamelFolder *dest, gint m
return;
}
- folder = mail_tool_uri_to_folder((gchar *)data->data, 0, ex);
+ folder = mail_tool_uri_to_folder((gchar *) data, 0, ex);
if (folder) {
camel_folder_transfer_messages_to(folder, uids, dest, NULL, move, ex);
camel_object_unref(folder);
@@ -832,8 +867,10 @@ em_utils_selection_set_urilist(GtkSelectionData *data, CamelFolder *folder, GPtr
if (em_utils_write_messages_to_stream(folder, uids, fstream) == 0) {
/* terminate with \r\n to be compliant with the spec */
gchar *uri_crlf = g_strconcat(uri, "\r\n", NULL);
+ GdkAtom target;
- gtk_selection_data_set(data, data->target, 8, (guchar *)uri_crlf, strlen(uri_crlf));
+ target = gtk_selection_data_get_target (data);
+ gtk_selection_data_set(data, target, 8, (guchar *)uri_crlf, strlen(uri_crlf));
g_free(uri_crlf);
}
@@ -855,17 +892,23 @@ em_utils_selection_set_urilist(GtkSelectionData *data, CamelFolder *folder, GPtr
* automatically cleaned up when the application quits.
**/
void
-em_utils_selection_get_urilist(GtkSelectionData *data, CamelFolder *folder)
+em_utils_selection_get_urilist (GtkSelectionData *selection_data,
+ CamelFolder *folder)
{
CamelStream *stream;
CamelURL *url;
gint fd, i, res = 0;
gchar *tmp, **uris;
+ const guchar *data;
+ gint length;
d(printf(" * drop uri list\n"));
- tmp = g_strndup((gchar *)data->data, data->length);
- uris = g_strsplit(tmp, "\n", 0);
+ data = gtk_selection_data_get_data (selection_data);
+ length = gtk_selection_data_get_length (selection_data);
+
+ tmp = g_strndup ((gchar *) data, length);
+ uris = g_strsplit (tmp, "\n", 0);
g_free(tmp);
for (i=0;res == 0 && uris[i];i++) {
g_strstrip(uris[i]);
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 4ffe4fd7a5..ffce0912d5 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -409,6 +409,7 @@ build_dialog (GtkWindow *parent,
gint row, num_sources;
GList *list = NULL;
struct _send_data *data;
+ GtkWidget *container;
GtkWidget *send_icon;
GtkWidget *recv_icon;
GtkWidget *scrolled_window;
@@ -433,8 +434,12 @@ build_dialog (GtkWindow *parent,
GTK_WINDOW (send_recv_dialog));
gtk_widget_ensure_style ((GtkWidget *)gd);
- gtk_container_set_border_width ((GtkContainer *)gd->vbox, 0);
- gtk_container_set_border_width ((GtkContainer *)gd->action_area, 6);
+
+ container = gtk_dialog_get_action_area (gd);
+ gtk_container_set_border_width (GTK_CONTAINER (container), 6);
+
+ container = gtk_dialog_get_content_area (gd);
+ gtk_container_set_border_width (GTK_CONTAINER (container), 0);
cancel_button = gtk_button_new_with_mnemonic (_("Cancel _All"));
gtk_button_set_image (
@@ -477,10 +482,11 @@ build_dialog (GtkWindow *parent,
GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ container = gtk_dialog_get_content_area (gd);
gtk_scrolled_window_add_with_viewport (
GTK_SCROLLED_WINDOW (scrolled_window), table);
gtk_box_pack_start (
- GTK_BOX (gd->vbox), scrolled_window, TRUE, TRUE, 0);
+ GTK_BOX (container), scrolled_window, TRUE, TRUE, 0);
gtk_widget_show (scrolled_window);
/* must bet setup after send_recv_dialog as it may re-trigger send-recv button */
@@ -972,13 +978,8 @@ mail_send_receive (GtkWindow *parent)
GList *scan;
if (send_recv_dialog != NULL) {
-#if GTK_CHECK_VERSION(2,19,7)
if (parent != NULL && gtk_widget_get_realized (send_recv_dialog)) {
-#else
- if (parent != NULL && GTK_WIDGET_REALIZED (send_recv_dialog)) {
-#endif
- gdk_window_show (send_recv_dialog->window);
- gdk_window_raise (send_recv_dialog->window);
+ gtk_window_present (GTK_WINDOW (send_recv_dialog));
}
return send_recv_dialog;
}
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index 700baedbe0..5f0f0c8a72 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -1175,6 +1175,7 @@ vfolder_edit_rule(const gchar *uri)
{
GtkWidget *w;
GtkDialog *gd;
+ GtkWidget *container;
EFilterRule *rule, *newrule;
CamelURL *url;
@@ -1186,19 +1187,21 @@ vfolder_edit_rule(const gchar *uri)
w = e_filter_rule_get_widget((EFilterRule *)newrule, (ERuleContext *)context);
- gd = (GtkDialog *)gtk_dialog_new_with_buttons(_("Edit Search Folder"), NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK,
- GTK_RESPONSE_OK,
- NULL);
+ gd = (GtkDialog *)gtk_dialog_new_with_buttons(
+ _("Edit Search Folder"), NULL,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+
gtk_container_set_border_width (GTK_CONTAINER (gd), 6);
- gtk_box_set_spacing ((GtkBox *) gd->vbox, 6);
+
+ container = gtk_dialog_get_content_area (gd);
+ gtk_box_set_spacing (GTK_BOX (container), 6);
+
gtk_dialog_set_default_response(gd, GTK_RESPONSE_OK);
g_object_set(gd, "allow_shrink", FALSE, "allow_grow", TRUE, NULL);
gtk_window_set_default_size (GTK_WINDOW (gd), 500, 500);
- gtk_box_pack_start((GtkBox *)gd->vbox, w, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (container), w, TRUE, TRUE, 0);
gtk_widget_show((GtkWidget *)gd);
g_object_set_data_full(G_OBJECT(gd), "rule", newrule, (GDestroyNotify)g_object_unref);
g_object_set_data_full(G_OBJECT(gd), "orig", rule, (GDestroyNotify)g_object_unref);
@@ -1282,26 +1285,29 @@ vfolder_gui_add_rule(EMVFolderRule *rule)
{
GtkWidget *w;
GtkDialog *gd;
+ GtkWidget *container;
/* this should be done before we call this function */
vfolder_load_storage ();
w = e_filter_rule_get_widget((EFilterRule *)rule, (ERuleContext *)context);
- gd = (GtkDialog *)gtk_dialog_new_with_buttons(_("New Search Folder"),
- NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK,
- GTK_RESPONSE_OK,
- NULL);
+ gd = (GtkDialog *)gtk_dialog_new_with_buttons (
+ _("New Search Folder"),
+ NULL,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+
gtk_dialog_set_default_response(gd, GTK_RESPONSE_OK);
gtk_container_set_border_width (GTK_CONTAINER (gd), 6);
- gtk_box_set_spacing ((GtkBox *) gd->vbox, 6);
+
+ container = gtk_dialog_get_content_area (gd);
+ gtk_box_set_spacing (GTK_BOX (container), 6);
+
g_object_set(gd, "allow_shrink", FALSE, "allow_grow", TRUE, NULL);
gtk_window_set_default_size (GTK_WINDOW (gd), 500, 500);
- gtk_box_pack_start((GtkBox *)gd->vbox, w, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX (container), w, TRUE, TRUE, 0);
gtk_widget_show((GtkWidget *)gd);
g_object_set_data_full(G_OBJECT(gd), "rule", rule, (GDestroyNotify)g_object_unref);
g_signal_connect(rule, "changed", G_CALLBACK (new_rule_changed_cb), gd);
diff --git a/mail/message-list.c b/mail/message-list.c
index 2ea7836120..8662999704 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -2027,14 +2027,22 @@ ml_selection_clear_event(GtkWidget *widget, GdkEventSelection *event, MessageLis
}
static void
-ml_selection_received(GtkWidget *widget, GtkSelectionData *data, guint time, MessageList *ml)
+ml_selection_received (GtkWidget *widget,
+ GtkSelectionData *selection_data,
+ guint time,
+ MessageList *ml)
{
- if (data->target != gdk_atom_intern ("x-uid-list", FALSE)) {
+ GdkAtom target;
+
+ target = gtk_selection_data_get_target (selection_data);
+
+ if (target != gdk_atom_intern ("x-uid-list", FALSE)) {
d(printf("Unknown selection received by message-list\n"));
return;
}
- em_utils_selection_get_uidlist(data, ml->folder, FALSE, NULL);
+ em_utils_selection_get_uidlist (
+ selection_data, ml->folder, FALSE, NULL);
}
static void
@@ -2125,11 +2133,9 @@ ml_drop_async_done (struct _drop_msg *m)
static void
ml_drop_async_free (struct _drop_msg *m)
{
- g_object_unref(m->context);
- camel_object_unref(m->folder);
-
- g_free(m->selection->data);
- g_free(m->selection);
+ g_object_unref (m->context);
+ camel_object_unref (m->folder);
+ gtk_selection_data_free (m->selection);
}
static MailMsgInfo ml_drop_async_info = {
@@ -2148,15 +2154,27 @@ ml_drop_action(struct _drop_msg *m)
}
static void
-ml_tree_drag_data_received (ETree *tree, gint row, ETreePath path, gint col,
- GdkDragContext *context, gint x, gint y,
- GtkSelectionData *data, guint info,
- guint time, MessageList *ml)
+ml_tree_drag_data_received (ETree *tree,
+ gint row,
+ ETreePath path,
+ gint col,
+ GdkDragContext *context,
+ gint x,
+ gint y,
+ GtkSelectionData *selection_data,
+ guint info,
+ guint time,
+ MessageList *ml)
{
struct _drop_msg *m;
- /* this means we are receiving no data */
- if (!ml->folder || data->data == NULL || data->length == -1)
+ if (ml->folder == NULL)
+ return;
+
+ if (gtk_selection_data_get_data (selection_data) == NULL)
+ return;
+
+ if (gtk_selection_data_get_length (selection_data) == -1)
return;
m = mail_msg_new(&ml_drop_async_info);
@@ -2168,10 +2186,7 @@ ml_tree_drag_data_received (ETree *tree, gint row, ETreePath path, gint col,
m->info = info;
/* need to copy, goes away once we exit */
- m->selection = g_malloc0(sizeof(*m->selection));
- m->selection->data = g_malloc(data->length);
- memcpy(m->selection->data, data->data, data->length);
- m->selection->length = data->length;
+ m->selection = gtk_selection_data_copy (selection_data);
ml_drop_action(m);
}
@@ -4407,11 +4422,7 @@ regen_list_done (struct _regen_list_msg *m)
}
}
-#if GTK_CHECK_VERSION(2,19,7)
if (gtk_widget_get_visible (GTK_WIDGET (m->ml))) {
-#else
- if (GTK_WIDGET_VISIBLE (GTK_WIDGET (m->ml))) {
-#endif
if (e_tree_row_count (E_TREE (m->ml)) <= 0) {
/* space is used to indicate no search too */
if (m->ml->search && *m->ml->search && strcmp (m->ml->search, " ") != 0)
@@ -4576,11 +4587,7 @@ mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, Ca
}
if (e_tree_row_count (E_TREE (ml)) <= 0) {
-#if GTK_CHECK_VERSION(2,19,7)
if (gtk_widget_get_visible (GTK_WIDGET (ml))) {
-#else
- if (GTK_WIDGET_VISIBLE (GTK_WIDGET (ml))) {
-#endif
/* there is some info why the message list is empty, let it be something useful */
gchar *txt = g_strconcat (_("Generating message list"), "..." , NULL);