Fixed dnd with scrolled positioning
authordanigm <dani@danigm.net>
Wed, 7 Apr 2010 17:40:53 +0000 (17:40 +0000)
committerdanigm <danigm@aa302d1f-72b1-406a-902b-8593ca2b2744>
Wed, 7 Apr 2010 17:40:53 +0000 (17:40 +0000)
From: danigm <dani@danigm.net>

git-svn-id: https://forja.rediris.es/svn/cusl4-tbo@113 aa302d1f-72b1-406a-902b-8593ca2b2744

src/dnd.c
src/ui-toolbar.c

index aa847cc..97beb59 100644 (file)
--- a/src/dnd.c
+++ b/src/dnd.c
@@ -17,6 +17,7 @@ drag_data_received_handl (GtkWidget *widget,
                           guint time,
                           TboWindow *tbo)
 {
+    GtkAdjustment *adj;
     float zoom = tbo_drawing_get_zoom ();
     glong   *_idata;
     gchar   *_sdata;
@@ -44,8 +45,11 @@ drag_data_received_handl (GtkWidget *widget,
                 _sdata = (gchar*)selection_data->data;
 
                 Frame *frame = get_frame_view ();
-                int rx = tbo_frame_get_base_x (x / zoom);
-                int ry = tbo_frame_get_base_y (y / zoom);
+                adj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (tbo->dw_scroll));
+                int rx = tbo_frame_get_base_x ((x + gtk_adjustment_get_value(adj)) / zoom);
+                adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (tbo->dw_scroll));
+                int ry = tbo_frame_get_base_y ((y + gtk_adjustment_get_value(adj)) / zoom);
+
                 SVGImage *svgimage = tbo_svgimage_new_width_params (rx, ry, 0, 0, _sdata);
                 update_drawing (tbo);
                 tbo_frame_add_obj (frame, svgimage);
index cf629ad..367e469 100644 (file)
@@ -86,7 +86,8 @@ set_current_tab_page (TboWindow *tbo, gboolean setit)
     nth = tbo_comic_page_index (tbo->comic);
     if (setit)
         gtk_notebook_set_current_page (GTK_NOTEBOOK (tbo->notebook), nth);
-    tbo->drawing = gtk_bin_get_child (GTK_BIN (gtk_notebook_get_nth_page (GTK_NOTEBOOK (tbo->notebook), nth)));
+    tbo->dw_scroll = gtk_notebook_get_nth_page (GTK_NOTEBOOK (tbo->notebook), nth);
+    tbo->drawing = gtk_bin_get_child (GTK_BIN (tbo->dw_scroll));
     set_frame_view (NULL);
     set_selected_tool (NONE, tbo);
 }