fix-dnd-really.patch
src/libaudgui/list.cc | ||
---|---|---|
615 | 615 |
{ |
616 | 616 |
const GtkTargetEntry target = {(char *) cbs->data_type, 0, 0}; |
617 | 617 | |
618 |
/* these both need to be called even for the source-only case, else |
|
619 |
* GTK's default settings prevent dragging multiple items */ |
|
620 |
gtk_drag_source_set (list, GDK_BUTTON1_MASK, & target, 1, GDK_ACTION_COPY); |
|
621 |
gtk_drag_dest_set (list, (GtkDestDefaults) 0, & target, 1, GDK_ACTION_COPY); |
|
622 | ||
623 | 618 |
if (MODEL_HAS_CB (model, get_data)) |
619 |
{ |
|
620 |
gtk_drag_source_set (list, GDK_BUTTON1_MASK, & target, 1, GDK_ACTION_COPY); |
|
624 | 621 |
g_signal_connect (list, "drag-data-get", (GCallback) drag_data_get, model); |
622 |
} |
|
623 | ||
625 | 624 |
if (MODEL_HAS_CB (model, receive_data)) |
625 |
{ |
|
626 |
gtk_drag_dest_set (list, (GtkDestDefaults) 0, & target, 1, GDK_ACTION_COPY); |
|
626 | 627 |
g_signal_connect (list, "drag-data-received", (GCallback) drag_data_received, model); |
628 |
} |
|
627 | 629 | |
628 | 630 |
supports_drag = true; |
629 | 631 |
} |
630 |
- |
src/libaudgui/list.cc | ||
---|---|---|
343 | 343 |
g_signal_stop_emission_by_name (widget, "drag-begin"); |
344 | 344 | |
345 | 345 |
model->dragging = true; |
346 | ||
347 |
/* If button_press_cb preserved a multiple selection, tell button_release_cb |
|
348 |
* not to clear it. */ |
|
349 |
model->frozen = false; |
|
346 | 350 |
} |
347 | 351 | |
348 | 352 |
static void drag_end (GtkWidget * widget, GdkDragContext * context, |
... | ... | |
426 | 430 |
{ |
427 | 431 |
g_signal_stop_emission_by_name (widget, "drag-motion"); |
428 | 432 | |
429 |
/* If button_press_cb preserved a multiple selection, tell button_release_cb |
|
430 |
* not to clear it. */ |
|
431 |
model->frozen = false; |
|
432 | ||
433 | 433 |
if (model->dragging && MODEL_HAS_CB (model, shift_rows)) |
434 | 434 |
gdk_drag_status (context, GDK_ACTION_MOVE, time); /* dragging within same list */ |
435 | 435 |
else if (MODEL_HAS_CB (model, data_type) && MODEL_HAS_CB (model, receive_data)) |
436 |
- |