Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 15 additions & 10 deletions src/list.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,21 +67,26 @@ list_activate_cb (GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter)
{
if (options.list_data.dclick_action)
if (event->state & GDK_CONTROL_MASK)
{
/* FIXME: check this under gtk-3.0 */
if (event->state & GDK_CONTROL_MASK)
{
if (options.plug == -1)
yad_exit (options.data.def_resp);
}
else
return FALSE;
/* CTRL+ENTER: always exit with def_resp (--response value) */
if (options.plug == -1)
yad_exit (options.data.def_resp);
return TRUE;
}
else if (options.list_data.dclick_action)
{
/* ENTER with dclick_action: let double-click handler process it */
return FALSE;
}
else
{
/* ENTER without dclick_action: use enter_resp if set, else def_resp */
if (options.plug == -1)
yad_exit (options.data.def_resp);
{
gint resp = (options.data.enter_resp >= 0) ? options.data.enter_resp : options.data.def_resp;
yad_exit (resp);
}
}

return TRUE;
Expand Down
3 changes: 3 additions & 0 deletions src/option.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,8 @@ static GOptionEntry general_options[] = {
N_("Always print result"), NULL },
{ "response", 0, 0, G_OPTION_ARG_INT, &options.data.def_resp,
N_("Set default return code"), N_("NUMBER") },
{ "enter-response", 0, 0, G_OPTION_ARG_INT, &options.data.enter_resp,
N_("Set return code for Enter key (defaults to --response value)"), N_("NUMBER") },
{ "selectable-labels", 0, 0, G_OPTION_ARG_NONE, &options.data.selectable_labels,
N_("Dialog text can be selected"), NULL },
{ "keep-icon-size", 0, 0, G_OPTION_ARG_NONE, &options.data.keep_icon_size,
Expand Down Expand Up @@ -1685,6 +1687,7 @@ yad_options_init (void)
options.data.selectable_labels = FALSE;
options.data.keep_icon_size = FALSE;
options.data.def_resp = YAD_RESPONSE_OK;
options.data.enter_resp = -1; /* -1 means use def_resp, for backward compatibility */
options.data.use_interp = FALSE;
options.data.interp = "bash -c \"%s\"";
#ifndef STANDALONE
Expand Down
1 change: 1 addition & 0 deletions src/yad.h
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ typedef struct {
gboolean keep_icon_size;
GtkButtonBoxStyle buttons_layout;
gint def_resp;
gint enter_resp;
gboolean use_interp;
gchar *interp;
gchar *uri_handler;
Expand Down