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,14 +47,19 @@ | ||
| 47 | // https://developer.gnome.org/hig/stable/dialogs.html.en | 47 | // https://developer.gnome.org/hig/stable/dialogs.html.en |
| 48 | // https://developer.gnome.org/hig/stable/visual-layout.html.en | 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 | g_return_val_if_fail(GTK_IS_WIDGET(widget),GTK_RESPONSE_NONE); | 51 | g_return_val_if_fail(GTK_IS_WIDGET(widget),GTK_RESPONSE_NONE); |
| 51 | 52 | ||
| 52 | // Check if the dialog is enabled | 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 | debug("%s: name=%s allow-disabling: %s", __FUNCTION__, popup->name, allow_disabling ? "Yes" : "No"); | 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 | GtkResponseType response = 0; | 64 | GtkResponseType response = 0; |
| 60 | 65 | ||
| @@ -109,11 +114,19 @@ | @@ -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 | // Create dialog | 125 | // Create dialog |
| 113 | GtkWidget * dialog = | 126 | GtkWidget * dialog = |
| 114 | gtk_message_dialog_new_with_markup( | 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 | settings[popup->type].type, | 130 | settings[popup->type].type, |
| 118 | GTK_BUTTONS_NONE, | 131 | GTK_BUTTONS_NONE, |
| 119 | (popup->body ? "<b><big>%s</big></b>" : "%s"), | 132 | (popup->body ? "<b><big>%s</big></b>" : "%s"), |