~ubuntu-branches/ubuntu/jaunty/gimp/jaunty-security

« back to all changes in this revision

Viewing changes to app/widgets/gimpcontainertreeview-dnd.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2007-05-02 16:33:03 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070502163303-bvzhjzbpw8qglc4y
Tags: 2.3.16-1ubuntu1
* Resynchronized with Debian, remaining Ubuntu changes:
  - debian/rules: i18n magic.
* debian/control.in:
  - Maintainer: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
* debian/patches/02_help-message.patch,
  debian/patches/03_gimp.desktop.in.in.patch,
  debian/patches/10_dont_show_wizard.patch: updated.
* debian/patches/04_composite-signedness.patch,
  debian/patches/05_add-letter-spacing.patch: dropped, used upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* The GIMP -- an image manipulation program
 
1
/* GIMP - The GNU Image Manipulation Program
2
2
 * Copyright (C) 1995 Spencer Kimball and Peter Mattis
3
3
 *
4
4
 * gimpcontainertreeview-dnd.c
49
49
                                      GimpViewable            **return_dest,
50
50
                                      GtkTreeViewDropPosition  *return_pos)
51
51
{
52
 
  GimpViewable  *src_viewable = NULL;
53
 
  GtkTreePath   *path;
54
 
  GtkTargetList *target_list;
55
 
  GdkAtom        target_atom;
56
 
  GimpDndType    src_type;
 
52
  GimpViewable            *src_viewable  = NULL;
 
53
  GimpViewable            *dest_viewable = NULL;
 
54
  GtkTreePath             *path          = NULL;
 
55
  GtkTargetList           *target_list;
 
56
  GdkAtom                  target_atom;
 
57
  GimpDndType              src_type;
 
58
  GtkTreeViewDropPosition  drop_pos      = GTK_TREE_VIEW_DROP_BEFORE;
 
59
  GdkDragAction            drag_action   = 0;
57
60
 
58
 
  if (! gimp_container_view_get_reorderable (GIMP_CONTAINER_VIEW (tree_view)))
 
61
  if (! gimp_container_view_get_container (GIMP_CONTAINER_VIEW (tree_view)) ||
 
62
      ! gimp_container_view_get_reorderable (GIMP_CONTAINER_VIEW (tree_view)))
59
63
    goto drop_impossible;
60
64
 
61
65
  target_list = gtk_drag_dest_get_target_list (GTK_WIDGET (tree_view->view));
72
76
    case GIMP_DND_TYPE_COLOR:
73
77
    case GIMP_DND_TYPE_SVG:
74
78
    case GIMP_DND_TYPE_SVG_XML:
 
79
    case GIMP_DND_TYPE_COMPONENT:
 
80
    case GIMP_DND_TYPE_PIXBUF:
75
81
      break;
76
82
 
77
83
    default:
78
84
      {
79
 
        GtkWidget *src_widget;
80
 
 
81
 
        src_widget = gtk_drag_get_source_widget (context);
 
85
        GtkWidget *src_widget = gtk_drag_get_source_widget (context);
82
86
 
83
87
        if (! src_widget)
84
88
          goto drop_impossible;
94
98
  if (gtk_tree_view_get_path_at_pos (tree_view->view, x, y,
95
99
                                     &path, NULL, NULL, NULL))
96
100
    {
97
 
      GimpViewRenderer        *renderer;
98
 
      GimpViewable            *dest_viewable;
99
 
      GtkTreeIter              iter;
100
 
      GdkRectangle             cell_area;
101
 
      GtkTreeViewDropPosition  drop_pos;
102
 
      GdkDragAction            drag_action;
 
101
      GimpViewRenderer *renderer;
 
102
      GtkTreeIter       iter;
 
103
      GdkRectangle      cell_area;
103
104
 
104
105
      gtk_tree_model_get_iter (tree_view->model, &iter, path);
105
106
 
121
122
        {
122
123
          drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
123
124
        }
 
125
    }
124
126
 
 
127
  if (dest_viewable || tree_view->dnd_drop_to_empty)
 
128
    {
125
129
      if (GIMP_CONTAINER_TREE_VIEW_GET_CLASS (tree_view)->drop_possible (tree_view,
126
130
                                                                         src_type,
127
131
                                                                         src_viewable,
214
218
      tree_view->scroll_timeout_id = 0;
215
219
    }
216
220
 
217
 
  gtk_tree_view_unset_rows_drag_dest (tree_view->view);
 
221
  gtk_tree_view_set_drag_dest_row (tree_view->view, NULL, 0);
218
222
}
219
223
 
220
224
gboolean
272
276
    }
273
277
  else
274
278
    {
275
 
      gtk_tree_view_unset_rows_drag_dest (tree_view->view);
 
279
      gtk_tree_view_set_drag_dest_row (tree_view->view, NULL, 0);
276
280
    }
277
281
 
278
282
  /*  always return TRUE so drag_leave() is called  */
405
409
            }
406
410
          break;
407
411
 
 
412
        case GIMP_DND_TYPE_COMPONENT:
 
413
          if (tree_view_class->drop_component)
 
414
            {
 
415
              GimpImage       *image = NULL;
 
416
              GimpChannelType  component;
 
417
 
 
418
              if (tree_view->dnd_gimp)
 
419
                image = gimp_selection_data_get_component (selection_data,
 
420
                                                           tree_view->dnd_gimp,
 
421
                                                           &component);
 
422
 
 
423
              if (image)
 
424
                {
 
425
                  tree_view_class->drop_component (tree_view,
 
426
                                                   image, component,
 
427
                                                   dest_viewable, drop_pos);
 
428
 
 
429
                  success = TRUE;
 
430
                }
 
431
            }
 
432
          break;
 
433
 
 
434
        case GIMP_DND_TYPE_PIXBUF:
 
435
          if (tree_view_class->drop_pixbuf)
 
436
            {
 
437
              GdkPixbuf *pixbuf;
 
438
 
 
439
              pixbuf = gtk_selection_data_get_pixbuf (selection_data);
 
440
 
 
441
              if (pixbuf)
 
442
                {
 
443
                  tree_view_class->drop_pixbuf (tree_view,
 
444
                                                pixbuf,
 
445
                                                dest_viewable, drop_pos);
 
446
                  g_object_unref (pixbuf);
 
447
 
 
448
                  success = TRUE;
 
449
                }
 
450
            }
 
451
          break;
 
452
 
408
453
        default:
409
454
          break;
410
455
        }
433
478
      if (src_viewable == dest_viewable)
434
479
        return FALSE;
435
480
 
436
 
      src_index  = gimp_container_get_child_index (container,
437
 
                                                   GIMP_OBJECT (src_viewable));
438
 
      dest_index = gimp_container_get_child_index (container,
439
 
                                                   GIMP_OBJECT (dest_viewable));
 
481
      src_index = gimp_container_get_child_index (container,
 
482
                                                  GIMP_OBJECT (src_viewable));
 
483
 
 
484
      if (src_index == -1)
 
485
        return FALSE;
 
486
 
 
487
      if (dest_viewable)
 
488
        {
 
489
          dest_index = gimp_container_get_child_index (container,
 
490
                                                       GIMP_OBJECT (dest_viewable));
 
491
          if (dest_index == -1)
 
492
            return FALSE;
 
493
        }
440
494
 
441
495
      if (src_index == -1 || dest_index == -1)
442
496
        return FALSE;