Code

turns out, all these synthesize_events were not necessary at all - they just fired...
[inkscape.git] / src / interface.cpp
index 5de76aff170a9bfc6dacf880730887e0e9c825d0..3ff25c8fbf03ba213148e8124c010a12b268852c 100644 (file)
@@ -1005,23 +1005,25 @@ sp_ui_drag_data_received(GtkWidget *widget,
                     sp_desktop_apply_css_recursive( item, css, true );
                     item->updateRepr();
 
-                    if ( data->length > 12 ) {
+                    if ( data->length > 14 ) {
+                        int flags = dataVals[4];
+
                         // piggie-backed palette entry info
-                        int index = dataVals[4];
+                        int index = dataVals[5];
                         Glib::ustring palName;
-                        for ( int i = 0; i < dataVals[5]; i++ ) {
-                            palName += (gunichar)dataVals[6+i];
+                        for ( int i = 0; i < dataVals[6]; i++ ) {
+                            palName += (gunichar)dataVals[7+i];
                         }
 
                         // Now hook in a magic tag of some sort.
-                        if ( !palName.empty() ) {
+                        if ( !palName.empty() && (flags & 1) ) {
                             gchar* str = g_strdup_printf("%d|", index);
                             palName.insert( 0, str );
                             g_free(str);
                             str = 0;
 
                             sp_object_setAttribute( SP_OBJECT(item),
-                                                    (drag_context->action != GDK_ACTION_MOVE) ? "HOTFill":"HOTStroke",
+                                                    (drag_context->action != GDK_ACTION_MOVE) ? "inkscape:x-fill-tag":"inkscape:x-stroke-tag",
                                                     palName.c_str(),
                                                     false );
                             item->updateRepr();