Commit e8bd745b7d6d5e436f4b7e26dd79f162d91ea478
1 parent
a2439a5b
Exists in
master
and in
1 other branch
Small adjustment in popup dialog.
Showing
1 changed file
with
17 additions
and
4 deletions
Show diff stats
src/dialogs/popups.c
... | ... | @@ -47,14 +47,19 @@ |
47 | 47 | // https://developer.gnome.org/hig/stable/dialogs.html.en |
48 | 48 | // https://developer.gnome.org/hig/stable/visual-layout.html.en |
49 | 49 | |
50 | + // For some reason we can't pass 'null' to gtk_message_dialog_new_with_markup!! | |
50 | 51 | g_return_val_if_fail(GTK_IS_WIDGET(widget),GTK_RESPONSE_NONE); |
51 | 52 | |
52 | 53 | // Check if the dialog is enabled |
53 | - gboolean allow_disabling = (popup->name && GTK_IS_V3270(widget)); | |
54 | + gboolean allow_disabling = FALSE; | |
55 | + | |
56 | + if(widget && GTK_IS_WIDGET(widget)) { | |
57 | + allow_disabling = (popup->name && GTK_IS_V3270(widget)); | |
58 | + } | |
54 | 59 | |
55 | 60 | debug("%s: name=%s allow-disabling: %s", __FUNCTION__, popup->name, allow_disabling ? "Yes" : "No"); |
56 | 61 | |
57 | - if(allow_disabling) { | |
62 | + if(widget && allow_disabling) { | |
58 | 63 | |
59 | 64 | GtkResponseType response = 0; |
60 | 65 | |
... | ... | @@ -109,11 +114,19 @@ |
109 | 114 | |
110 | 115 | }; |
111 | 116 | |
117 | + // Get toplevel | |
118 | + GtkDialogFlags flags = 0; | |
119 | + GtkWindow *window = NULL; | |
120 | + if(widget) { | |
121 | + flags = GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT; | |
122 | + window = GTK_WINDOW(gtk_widget_get_toplevel(widget)); | |
123 | + } | |
124 | + | |
112 | 125 | // Create dialog |
113 | 126 | GtkWidget * dialog = |
114 | 127 | gtk_message_dialog_new_with_markup( |
115 | - GTK_WINDOW(gtk_widget_get_toplevel(widget)), | |
116 | - GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT, | |
128 | + window, | |
129 | + flags, | |
117 | 130 | settings[popup->type].type, |
118 | 131 | GTK_BUTTONS_NONE, |
119 | 132 | (popup->body ? "<b><big>%s</big></b>" : "%s"), | ... | ... |