MCPcopy Create free account
hub / github.com/HandBrake/HandBrake / ghb_dialog_run

Function ghb_dialog_run

gtk/src/util.c:74–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72}
73
74int ghb_dialog_run (GtkDialog *dialog)
75{
76 RunInfo ri = { NULL, GTK_RESPONSE_NONE, NULL, FALSE };
77 gboolean was_modal;
78 gulong response_handler;
79 gulong unmap_handler;
80 gulong destroy_handler;
81
82 g_return_val_if_fail(GTK_IS_DIALOG(dialog), -1);
83
84 g_object_ref(dialog);
85
86 was_modal = gtk_window_get_modal(GTK_WINDOW(dialog));
87 if (!was_modal)
88 gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
89
90 if (!gtk_widget_get_visible(GTK_WIDGET(dialog)))
91 gtk_widget_set_visible(GTK_WIDGET(dialog), TRUE);
92
93 response_handler = g_signal_connect(dialog,
94 "response",
95 G_CALLBACK(run_response_handler),
96 &ri);
97
98 unmap_handler = g_signal_connect(dialog,
99 "unmap",
100 G_CALLBACK(run_unmap_handler),
101 &ri);
102
103 destroy_handler = g_signal_connect(dialog,
104 "destroy",
105 G_CALLBACK(run_destroy_handler),
106 &ri);
107
108 ri.loop = g_main_loop_new(NULL, FALSE);
109
110 g_main_loop_run(ri.loop);
111
112 g_main_loop_unref(ri.loop);
113
114 ri.loop = NULL;
115
116 if (!ri.destroyed)
117 {
118 if (!was_modal)
119 gtk_window_set_modal(GTK_WINDOW(dialog), FALSE);
120
121 g_signal_handler_disconnect(dialog, response_handler);
122 g_signal_handler_disconnect(dialog, unmap_handler);
123 g_signal_handler_disconnect(dialog, destroy_handler);
124 }
125
126 g_object_unref(dialog);
127
128 return ri.response_id;
129}
130
131void

Callers 1

ghb_question_dialog_runFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected