932 |
{ app_ip_calc_text_tags (tx->tagtable, adj->value); } |
{ app_ip_calc_text_tags (tx->tagtable, adj->value); } |
933 |
|
|
934 |
static void |
static void |
|
_exam_replace_transcript (AppTranscript *tx, gpointer from, AppTranscript *to) |
|
|
{ |
|
|
AppTranscript *orig_to; |
|
|
g_object_get (tx, "to", &orig_to, NULL); |
|
|
|
|
|
if (orig_to == from) |
|
|
g_object_set (tx, "to", to, NULL); |
|
|
} |
|
|
|
|
|
static void |
|
935 |
exam_exemplar_changed (AppTranscript *tx) |
exam_exemplar_changed (AppTranscript *tx) |
936 |
{ |
{ |
937 |
AppTranscript *to; |
AppTranscript *to; |
964 |
if (tx->edata) { |
if (tx->edata) { |
965 |
app_exam_new (tx); |
app_exam_new (tx); |
966 |
|
|
|
// release-transcript can't work because we hold a ref-count |
|
|
// |
|
|
g_signal_connect_object |
|
|
(Whole, "replace-transcript", |
|
|
G_CALLBACK (_exam_replace_transcript), tx, G_CONNECT_SWAPPED); |
|
|
|
|
967 |
g_signal_connect (tx, "notify::to", |
g_signal_connect (tx, "notify::to", |
968 |
G_CALLBACK (exam_exemplar_changed), NULL); |
G_CALLBACK (exam_exemplar_changed), NULL); |
969 |
} |
} |