~ubuntu-branches/ubuntu/quantal/gnumeric/quantal

« back to all changes in this revision

Viewing changes to src/clipboard.c

  • Committer: Bazaar Package Importer
  • Author(s): Gauvain Pocentek
  • Date: 2009-06-07 11:10:47 UTC
  • mfrom: (1.1.19 upstream) (2.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090607111047-l3rtbzfjxvmi1kx0
Tags: 1.9.8-1ubuntu1
* Merge from debian unstable, remaining changes:
  - Promoted gnumeric-doc to Recommends in gnumeric package for help to be
    installed automatically
  - gnumeric-gtk is a transitional package
  - gnumeric conflicts with gnumeric-gtk << 1.8.3-3ubuntu1
  - call initltool-update in po*
  - remove psiconv support (psiconv is in universe):
    o debian/control: remove B-D on libpsiconv-dev
    o debian/rules: don't pass --with-psiconv to ./configure

Show diffs side-by-side

added added

removed removed

Lines of Context:
138
138
                        gnm_expr_new_constant (value_dup (dst->value)),
139
139
                        op,
140
140
                        gnm_expr_new_constant (value_dup (src->val)));
 
141
                GnmExprTop const *texpr = gnm_expr_top_new (expr);
141
142
 
142
143
                eval_pos_init_cell (&pos, dst);
143
144
                pos.dep = NULL; /* no dynamic deps */
144
 
                value = gnm_expr_eval (expr, &pos,
145
 
                                       GNM_EXPR_EVAL_SCALAR_NON_EMPTY);
146
 
                gnm_expr_free (expr);
 
145
                value = gnm_expr_top_eval (texpr, &pos,
 
146
                                           GNM_EXPR_EVAL_SCALAR_NON_EMPTY);
 
147
                gnm_expr_top_unref (texpr);
147
148
                gnm_cell_set_value (dst, value);
148
149
        }
149
150
}
270
271
        SheetObject *dst;
271
272
        SheetObjectAnchor tmp;
272
273
 
273
 
        sheet_object_anchor_assign (&tmp, sheet_object_get_anchor (src));
 
274
        tmp = *sheet_object_get_anchor (src);
274
275
        if (G_OBJECT_TYPE (src) == CELL_COMMENT_TYPE) {
275
276
                if ((pt->paste_flags & PASTE_COMMENTS) &&
276
277
                    (pt->paste_flags & PASTE_IGNORE_COMMENTS_AT_ORIGIN &&
287
288
                GnmCellPos origin;
288
289
                origin.col = 0;
289
290
                origin.row = 0;
290
 
                range_transpose (&tmp.cell_bound, &origin);
 
291
                range_transpose (&tmp.cell_bound, pt->sheet, &origin);
291
292
        }
292
 
        range_translate (&tmp.cell_bound, left, top);
 
293
        range_translate (&tmp.cell_bound, pt->sheet, left, top);
293
294
        sheet_object_set_anchor (dst, &tmp);
294
295
        sheet_object_set_sheet (dst, pt->sheet);
295
296
        g_object_unref (dst);
494
495
                                                x = tmp.start.col; tmp.start.col = tmp.start.row;  tmp.start.row = x;
495
496
                                                x = tmp.end.col; tmp.end.col = tmp.end.row;  tmp.end.row = x;
496
497
                                        }
497
 
                                        if (!range_translate (&tmp, left, top))
 
498
                                        if (!range_translate (&tmp, pt->sheet, left, top))
498
499
                                                gnm_sheet_merge_add (pt->sheet, &tmp, TRUE, cc);
499
500
                                }
500
501
                        }
564
565
{
565
566
        SheetObject *dst = sheet_object_dup (src);
566
567
        if (dst != NULL) {
567
 
                SheetObjectAnchor tmp;
568
 
                sheet_object_anchor_assign (&tmp, sheet_object_get_anchor (src));
569
 
                range_translate (&tmp.cell_bound, - cr->base.col, - cr->base.row);
 
568
                SheetObjectAnchor tmp = *sheet_object_get_anchor (src);
 
569
                range_translate (&tmp.cell_bound, sheet_object_get_sheet (src),
 
570
                                 - cr->base.col, - cr->base.row);
570
571
                sheet_object_set_anchor (dst, &tmp);
571
572
                cr->objects = g_slist_prepend (cr->objects, dst);
572
573
        }
591
592
        cr->base = r->start;
592
593
        cr->cols = range_width (r);
593
594
        cr->rows = range_height (r);
594
 
        cr->rows = range_height (r);
595
595
        cr->col_state = colrow_get_states (sheet,
596
596
                TRUE,  r->start.col, r->end.col);
597
597
        cr->row_state = colrow_get_states (sheet,
610
610
        merged = gnm_sheet_merge_get_overlap (sheet, r);
611
611
        for (ptr = merged ; ptr != NULL ; ptr = ptr->next) {
612
612
                GnmRange *tmp = range_dup (ptr->data);
613
 
                range_translate (tmp, -r->start.col, -r->start.row);
 
613
                range_translate (tmp, sheet, -r->start.col, -r->start.row);
614
614
                cr->merged = g_slist_prepend (cr->merged, tmp);
615
615
        }
616
616
        g_slist_free (merged);
687
687
                        g_object_set_data (G_OBJECT (so),  "pt-height-at-copy",
688
688
                                GUINT_TO_POINTER (h));
689
689
 
690
 
                        sheet_object_anchor_assign (&tmp_anchor, anchor);
 
690
                        tmp_anchor = *anchor;
691
691
                        r = &tmp_anchor.cell_bound;
692
 
                        range_translate (r,
 
692
                        range_translate (r, sheet,
693
693
                                -MIN (r->start.col, r->end.col),
694
694
                                -MIN (r->start.row, r->end.row));
695
695
                        sheet_object_set_anchor (so, &tmp_anchor);
839
839
 
840
840
        for (ptr = cr->objects; ptr != NULL ; ptr = ptr->next)
841
841
                sheet_object_invalidate_sheet (ptr->data, sheet);
 
842
 
 
843
        if (cr->origin_sheet == sheet)
 
844
                cr->origin_sheet = NULL;
842
845
}
843
846
 
844
847
static void
1038
1041
cb_cell_copy_pool_leak (gpointer data, G_GNUC_UNUSED gpointer user)
1039
1042
{
1040
1043
        GnmCellCopy const *cc = data;
1041
 
        g_printerr ("Leaking cell copy at %p.\n", cc);
 
1044
        g_printerr ("Leaking cell copy at %p.\n", (void *)cc);
1042
1045
}
1043
1046
#endif
1044
1047