aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-05-17 21:49:21 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-05-17 21:49:21 +0800
commitea1a5fca456b891f8bb9ab248ad65651b66b54b2 (patch)
tree9619f2f9631aac471da3f8b24dd30908335627c9 /widgets
parentc20b1701e81473504f1d67f6e7387a6f1e5fb856 (diff)
parent99ebc23e0860ef5baf1f169803d751db70e2aa32 (diff)
downloadgsoc2013-evolution-ea1a5fca456b891f8bb9ab248ad65651b66b54b2.tar.gz
gsoc2013-evolution-ea1a5fca456b891f8bb9ab248ad65651b66b54b2.tar.zst
gsoc2013-evolution-ea1a5fca456b891f8bb9ab248ad65651b66b54b2.zip
Merge branch 'gnome-2-30' into express2
Diffstat (limited to 'widgets')
-rw-r--r--widgets/misc/e-attachment-tree-view.c7
-rw-r--r--widgets/misc/e-attachment-view.c19
-rw-r--r--widgets/table/e-table-item.c22
3 files changed, 30 insertions, 18 deletions
diff --git a/widgets/misc/e-attachment-tree-view.c b/widgets/misc/e-attachment-tree-view.c
index 42876e4bfb..5729a68069 100644
--- a/widgets/misc/e-attachment-tree-view.c
+++ b/widgets/misc/e-attachment-tree-view.c
@@ -100,15 +100,18 @@ attachment_tree_view_render_size (GtkTreeViewColumn *column,
GtkTreeModel *model,
GtkTreeIter *iter)
{
- gchar *display_size;
+ gchar *display_size = NULL;
gint column_id;
guint64 size;
column_id = E_ATTACHMENT_STORE_COLUMN_SIZE;
gtk_tree_model_get (model, iter, column_id, &size, -1);
- display_size = g_format_size_for_display ((goffset) size);
+ if (size > 0)
+ display_size = g_format_size_for_display ((goffset) size);
+
g_object_set (renderer, "text", display_size, NULL);
+
g_free (display_size);
}
diff --git a/widgets/misc/e-attachment-view.c b/widgets/misc/e-attachment-view.c
index 9725604865..5a5db57e07 100644
--- a/widgets/misc/e-attachment-view.c
+++ b/widgets/misc/e-attachment-view.c
@@ -826,7 +826,6 @@ e_attachment_view_init (EAttachmentView *view)
attachment_view_init_handlers (view);
e_attachment_view_drag_source_set (view);
- e_attachment_view_drag_dest_set (view);
/* Connect built-in drag and drop handlers. */
@@ -927,6 +926,11 @@ e_attachment_view_set_editable (EAttachmentView *view,
priv = e_attachment_view_get_private (view);
priv->editable = editable;
+ if (editable)
+ e_attachment_view_drag_dest_set (view);
+ else
+ e_attachment_view_drag_dest_unset (view);
+
g_object_notify (G_OBJECT (view), "editable");
}
@@ -1315,6 +1319,11 @@ e_attachment_view_drag_begin (EAttachmentView *view,
{
g_return_if_fail (E_IS_ATTACHMENT_VIEW (view));
g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+
+ /* Prevent the user from dragging and dropping to
+ * the same attachment view, which would duplicate
+ * the attachment. */
+ e_attachment_view_drag_dest_unset (view);
}
void
@@ -1323,6 +1332,10 @@ e_attachment_view_drag_end (EAttachmentView *view,
{
g_return_if_fail (E_IS_ATTACHMENT_VIEW (view));
g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+
+ /* Restore the previous drag destination state. */
+ if (e_attachment_view_get_editable (view))
+ e_attachment_view_drag_dest_set (view);
}
static void
@@ -1465,10 +1478,6 @@ e_attachment_view_drag_drop (EAttachmentView *view,
g_return_val_if_fail (E_IS_ATTACHMENT_VIEW (view), FALSE);
g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
- /* Disallow drops if we're not editable. */
- if (!e_attachment_view_get_editable (view))
- return FALSE;
-
return TRUE;
}
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c
index 22a0848d7f..1bc3a08dc5 100644
--- a/widgets/table/e-table-item.c
+++ b/widgets/table/e-table-item.c
@@ -749,14 +749,14 @@ eti_get_height (ETableItem *eti)
return 0;
if (eti->uniform_row_height) {
- gint row_height = eti_row_height(eti, -1);
+ gint row_height = ETI_ROW_HEIGHT(eti, -1);
return ((row_height + height_extra) * rows + height_extra);
} else {
gint height;
gint row;
if (eti->length_threshold != -1) {
if (rows > eti->length_threshold) {
- gint row_height = eti_row_height(eti, 0);
+ gint row_height = ETI_ROW_HEIGHT(eti, 0);
if (eti->height_cache) {
height = 0;
for (row = 0; row < rows; row++) {
@@ -768,7 +768,7 @@ eti_get_height (ETableItem *eti)
height += eti->height_cache[row] + height_extra;
}
} else
- height = (eti_row_height (eti, 0) + height_extra) * rows;
+ height = (ETI_ROW_HEIGHT (eti, 0) + height_extra) * rows;
/*
* 1 pixel at the top
@@ -779,7 +779,7 @@ eti_get_height (ETableItem *eti)
height = height_extra;
for (row = 0; row < rows; row++)
- height += eti_row_height (eti, row) + height_extra;
+ height += ETI_ROW_HEIGHT (eti, row) + height_extra;
return height;
}
@@ -817,12 +817,12 @@ e_table_item_row_diff (ETableItem *eti, gint start_row, gint end_row)
end_row = eti->rows;
if (eti->uniform_row_height) {
- return ((end_row - start_row) * (eti_row_height(eti, -1) + height_extra));
+ return ((end_row - start_row) * (ETI_ROW_HEIGHT(eti, -1) + height_extra));
} else {
gint row, total;
total = 0;
for (row = start_row; row < end_row; row++)
- total += eti_row_height (eti, row) + height_extra;
+ total += ETI_ROW_HEIGHT (eti, row) + height_extra;
return total;
}
@@ -1788,11 +1788,11 @@ eti_draw (GnomeCanvasItem *item, GdkDrawable *drawable, gint x, gint y, gint wid
* Compute row span.
*/
if (eti->uniform_row_height) {
- first_row = (y - floor (eti_base.y) - height_extra) / (eti_row_height (eti, -1) + height_extra);
- last_row = (y + height - floor (eti_base.y) ) / (eti_row_height (eti, -1) + height_extra) + 1;
+ first_row = (y - floor (eti_base.y) - height_extra) / (ETI_ROW_HEIGHT (eti, -1) + height_extra);
+ last_row = (y + height - floor (eti_base.y) ) / (ETI_ROW_HEIGHT (eti, -1) + height_extra) + 1;
if (first_row > last_row)
goto exit;
- y_offset = floor (eti_base.y) - y + height_extra + first_row * (eti_row_height (eti, -1) + height_extra);
+ y_offset = floor (eti_base.y) - y + height_extra + first_row * (ETI_ROW_HEIGHT (eti, -1) + height_extra);
if (first_row < 0)
first_row = 0;
if (last_row > eti->rows)
@@ -2077,8 +2077,8 @@ find_cell (ETableItem *eti, gdouble x, gdouble y, gint *view_col_res, gint *view
if (eti->uniform_row_height) {
if (y < height_extra)
return FALSE;
- row = (y - height_extra) / (eti_row_height (eti, -1) + height_extra);
- y1 = row * (eti_row_height (eti, -1) + height_extra) + height_extra;
+ row = (y - height_extra) / (ETI_ROW_HEIGHT (eti, -1) + height_extra);
+ y1 = row * (ETI_ROW_HEIGHT (eti, -1) + height_extra) + height_extra;
if (row >= eti->rows)
return FALSE;
} else {