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 |
- |
|
