| 545 "destroy", |
545 "destroy", |
| 546 G_CALLBACK(ui_destroy_userdata), |
546 G_CALLBACK(ui_destroy_userdata), |
| 547 event); |
547 event); |
| 548 |
548 |
| 549 g_signal_connect(dialog, "response", G_CALLBACK(dialog_response), event); |
549 g_signal_connect(dialog, "response", G_CALLBACK(dialog_response), event); |
| 550 adw_dialog_present(dialog, parent->widget); |
550 adw_dialog_present(dialog, parent ? parent->widget : NULL); |
| 551 |
551 |
| 552 if(entry) { |
552 if(entry) { |
| 553 gtk_entry_grab_focus_without_selecting(GTK_ENTRY(entry)); |
553 gtk_entry_grab_focus_without_selecting(GTK_ENTRY(entry)); |
| 554 } |
554 } |
| 555 } |
555 } |
| 557 |
557 |
| 558 static void ui_dialog_response (GtkDialog* self, gint response_id, gpointer user_data) { |
558 static void ui_dialog_response (GtkDialog* self, gint response_id, gpointer user_data) { |
| 559 UiEventData *data = user_data; |
559 UiEventData *data = user_data; |
| 560 UiEvent evt; |
560 UiEvent evt; |
| 561 evt.obj = data->obj; |
561 evt.obj = data->obj; |
| 562 evt.document = evt.obj->ctx->document; |
562 if(evt.obj) { |
| 563 evt.window = evt.obj->window; |
563 evt.document = evt.obj->ctx->document; |
| |
564 evt.window = evt.obj->window; |
| |
565 } else { |
| |
566 evt.document = NULL; |
| |
567 evt.window = NULL; |
| |
568 } |
| |
569 |
| 564 evt.eventdata = NULL; |
570 evt.eventdata = NULL; |
| 565 evt.intval = 0; |
571 evt.intval = 0; |
| 566 |
572 |
| 567 if(data->customdata) { |
573 if(data->customdata) { |
| 568 GtkWidget *entry = data->customdata; |
574 GtkWidget *entry = data->customdata; |