diff --git a/src/dialogs/popups.c b/src/dialogs/popups.c
index e79e74b..f56d417 100644
--- a/src/dialogs/popups.c
+++ b/src/dialogs/popups.c
@@ -43,17 +43,16 @@
// Check if the dialog is enabled
if(popup->name && GTK_IS_V3270(widget)) {
- GtkResponseType response = GTK_RESPONSE_NONE;
+ GtkResponseType response = GTK_RESPONSE_DELETE_EVENT;
v3270_signal_emit(
widget,
V3270_SIGNAL_LOAD_POPUP_RESPONSE,
popup->name,
- response,
&response
);
- if(response != GTK_RESPONSE_NONE)
+ if((response != GTK_RESPONSE_NONE) && (response != GTK_RESPONSE_DELETE_EVENT))
return response;
}
@@ -104,7 +103,8 @@
GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
settings[popup->type].type,
GTK_BUTTONS_NONE,
- "%s",popup->summary
+ (popup->body ? "%s" : "%s"),
+ popup->summary
);
if(popup->body) {
@@ -239,14 +239,15 @@
GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_NONE,
- "%s",
- summary
+ (body ? "%s" : "%s"),
+ summary
);
if(body)
- gtk_message_dialog_format_secondary_markup(GTK_MESSAGE_DIALOG(dialog),"%s",body);
+ gtk_message_dialog_format_secondary_markup(GTK_MESSAGE_DIALOG(dialog),"%s",body);
- gtk_window_set_title(GTK_WINDOW(dialog),title);
+ if(title)
+ gtk_window_set_title(GTK_WINDOW(dialog),title);
// Set check button
GtkWidget * dont_ask = gtk_check_button_new_with_label(_("Don't ask again"));
diff --git a/src/selection/linux/paste.c b/src/selection/linux/paste.c
index f015af7..6abf292 100644
--- a/src/selection/linux/paste.c
+++ b/src/selection/linux/paste.c
@@ -108,6 +108,8 @@ static void formatted_received(GtkClipboard *clipboard, GtkSelectionData *select
if(!v3270_set_from_data_block(terminal, selection))
{
debug("%s: Can't paste data",__FUNCTION__);
+
+
if(
v3270_popup_toggleable_dialog(
widget,
diff --git a/src/terminal/marshal b/src/terminal/marshal
index 775bfc7..2282811 100644
--- a/src/terminal/marshal
+++ b/src/terminal/marshal
@@ -6,7 +6,7 @@ VOID:POINTER
VOID:VOID,POINTER,POINTER
VOID:VOID,UINT,POINTER
BOOLEAN:UINT,ENUM
-UINT:POINTER,UINT
+UINT:POINTER
BOOLEAN:POINTER,UINT
VOID:VOID,BOOLEAN
BOOLEAN:VOID,BOOLEAN,BOOLEAN,POINTER
diff --git a/src/terminal/widget.c b/src/terminal/widget.c
index 00ea4a6..5358aa2 100644
--- a/src/terminal/widget.c
+++ b/src/terminal/widget.c
@@ -201,8 +201,8 @@ static void finalize(GObject *object) {
G_OBJECT_CLASS(v3270_parent_class)->finalize(object);
}
- static GtkResponseType load_popup_response(v3270 G_GNUC_UNUSED(*widget), const gchar G_GNUC_UNUSED(*popup_name), GtkResponseType response) {
- return response;
+ static GtkResponseType load_popup_response(v3270 G_GNUC_UNUSED(*widget), const gchar G_GNUC_UNUSED(*popup_name)) {
+ return GTK_RESPONSE_DELETE_EVENT;
}
static gboolean save_popup_response(v3270 G_GNUC_UNUSED(*widget), const gchar G_GNUC_UNUSED(*popup_name), GtkResponseType G_GNUC_UNUSED(response)) {
@@ -481,8 +481,8 @@ static void v3270_class_init(v3270Class *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (v3270Class, load_popup_response),
NULL, NULL,
- v3270_UINT__POINTER_UINT,
- G_TYPE_UINT, 2, G_TYPE_POINTER, G_TYPE_UINT);
+ v3270_UINT__POINTER,
+ G_TYPE_UINT, 1, G_TYPE_POINTER);
v3270_widget_signal[V3270_SIGNAL_SAVE_POPUP_RESPONSE] =
g_signal_new( I_("save-popup-response"),
diff --git a/v3270.cbp b/v3270.cbp
index 44bb931..d0b1f4c 100644
--- a/v3270.cbp
+++ b/v3270.cbp
@@ -361,6 +361,7 @@
+
--
libgit2 0.21.2