summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-02-27 23:27:42 +0100
committerRobin Gareus <robin@gareus.org>2020-02-27 23:27:42 +0100
commit8710a2d9432469909eb51d0644f2f25133240dbb (patch)
tree5f0c9e1663df050249152ec48f75dfa554ce56f2 /gtk2_ardour
parente5c819956a95a1dc9dee8f805dc55757dc51233d (diff)
Dialog default to cancel (#7915)
There are various ways to cancel a dialog. Only checking for RESPONSE_CANCEL is not sufficient. e.g. Esc causes a delete-event. * Gtk::RESPONSE_CLOSE * Gtk::RESPONSE_REJECT * Gtk::RESPONSE_DELETE_EVENT * Gtk::RESPONSE_CANCEL * Gtk::RESPONSE_NO Among others this fixes "Clicking session > open, then hitting ESC opens the currently selected folder and session"
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui_engine.cc1
-rw-r--r--gtk2_ardour/ardour_ui_session.cc15
-rw-r--r--gtk2_ardour/ardour_ui_video.cc7
-rw-r--r--gtk2_ardour/editor_ops.cc23
-rw-r--r--gtk2_ardour/editor_pt_import.cc60
-rw-r--r--gtk2_ardour/editor_route_groups.cc15
-rw-r--r--gtk2_ardour/processor_box.cc1
-rw-r--r--gtk2_ardour/session_import_dialog.cc10
-rw-r--r--gtk2_ardour/utils.cc1
-rw-r--r--gtk2_ardour/utils_videotl.cc7
10 files changed, 76 insertions, 64 deletions
diff --git a/gtk2_ardour/ardour_ui_engine.cc b/gtk2_ardour/ardour_ui_engine.cc
index 5d3d06b2cc..8a39fb90fd 100644
--- a/gtk2_ardour/ardour_ui_engine.cc
+++ b/gtk2_ardour/ardour_ui_engine.cc
@@ -104,7 +104,6 @@ ARDOUR_UI::audioengine_became_silent ()
exit (EXIT_SUCCESS);
break;
- case Gtk::RESPONSE_CANCEL:
default:
/* don't reset, save session and exit */
break;
diff --git a/gtk2_ardour/ardour_ui_session.cc b/gtk2_ardour/ardour_ui_session.cc
index dc1019ed5b..42214fac6c 100644
--- a/gtk2_ardour/ardour_ui_session.cc
+++ b/gtk2_ardour/ardour_ui_session.cc
@@ -857,10 +857,10 @@ If you still wish to proceed, please use the\n\n\
save_as_dialog->hide ();
switch (response) {
- case Gtk::RESPONSE_OK:
- break;
- default:
- return;
+ case Gtk::RESPONSE_OK:
+ break;
+ default:
+ return;
}
@@ -1055,8 +1055,11 @@ ARDOUR_UI::open_session ()
int response = open_session_selector.run();
open_session_selector.hide ();
- if (response == Gtk::RESPONSE_CANCEL) {
- return;
+ switch (response) {
+ case Gtk::RESPONSE_ACCEPT:
+ break;
+ default:
+ return;
}
string session_path = open_session_selector.get_filename();
diff --git a/gtk2_ardour/ardour_ui_video.cc b/gtk2_ardour/ardour_ui_video.cc
index 37418f6cae..a1c832582d 100644
--- a/gtk2_ardour/ardour_ui_video.cc
+++ b/gtk2_ardour/ardour_ui_video.cc
@@ -77,8 +77,11 @@ ARDOUR_UI::stop_video_server (bool ask_confirm)
confirm.add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
confirm.add_button (_("Yes, Stop It"), Gtk::RESPONSE_ACCEPT);
confirm.show_all ();
- if (confirm.run() == RESPONSE_CANCEL) {
- return;
+ switch (confirm.run()) {
+ case RESPONSE_ACCEPT:
+ break;
+ default:
+ return;
}
}
delete video_server_process;
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 0ffae1ca5d..8ee35ca4db 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -4017,10 +4017,10 @@ Editor::freeze_route ()
int response = d.run ();
switch (response) {
- case Gtk::RESPONSE_CANCEL:
- return;
- default:
- break;
+ case Gtk::RESPONSE_OK:
+ break;
+ default:
+ return;
}
}
@@ -5759,8 +5759,11 @@ Editor::insert_patch_change (bool from_context)
Evoral::PatchChange<Temporal::Beats> empty (Temporal::Beats(), 0, 0, 0);
PatchChangeDialog d (0, _session, empty, first->instrument_info(), Gtk::Stock::ADD);
- if (d.run() == RESPONSE_CANCEL) {
- return;
+ switch (d.run()) {
+ case Gtk::RESPONSE_ACCEPT:
+ break;
+ default:
+ return;
}
for (RegionSelection::iterator i = rs.begin (); i != rs.end(); ++i) {
@@ -7324,8 +7327,12 @@ Editor::close_region_gaps ()
dialog.add_button (_("Ok"), RESPONSE_ACCEPT);
dialog.show_all ();
- if (dialog.run () == RESPONSE_CANCEL) {
- return;
+ switch (dialog.run ()) {
+ case Gtk::RESPONSE_ACCEPT:
+ case Gtk::RESPONSE_OK:
+ break;
+ default:
+ return;
}
samplepos_t crossfade_len = spin_crossfade.get_value();
diff --git a/gtk2_ardour/editor_pt_import.cc b/gtk2_ardour/editor_pt_import.cc
index a6d635aaf2..befa5488af 100644
--- a/gtk2_ardour/editor_pt_import.cc
+++ b/gtk2_ardour/editor_pt_import.cc
@@ -87,39 +87,33 @@ Editor::external_pt_dialog ()
PTImportSelector dialog (import_ptf);
dialog.set_session (_session);
- while (true) {
- int result = dialog.run ();
-
- if (result == Gtk::RESPONSE_ACCEPT) {
-
- import_pt_status.all_done = false;
-
- ImportProgressWindow ipw (&import_pt_status, _("PT Import"), _("Cancel Import"));
- pthread_create_and_store ("import_pt", &import_pt_status.thread, _import_pt_thread, this);
- pthread_detach (import_pt_status.thread);
-
- ipw.show();
-
- while (!import_pt_status.all_done) {
- gtk_main_iteration ();
- }
-
- // wait for thread to terminate
- while (!import_pt_status.done) {
- gtk_main_iteration ();
- }
-
- if (import_pt_status.cancel) {
- MessageDialog msg (_("PT import may have missing files, check session log for details"));
- msg.run ();
- } else {
- MessageDialog msg (_("PT import complete!"));
- msg.run ();
- }
- break;
- } else if (result == Gtk::RESPONSE_CANCEL) {
- break;
- }
+ if (dialog.run () != Gtk::RESPONSE_ACCEPT) {
+ return;
+ }
+
+ import_pt_status.all_done = false;
+
+ ImportProgressWindow ipw (&import_pt_status, _("PT Import"), _("Cancel Import"));
+ pthread_create_and_store ("import_pt", &import_pt_status.thread, _import_pt_thread, this);
+ pthread_detach (import_pt_status.thread);
+
+ ipw.show();
+
+ while (!import_pt_status.all_done) {
+ gtk_main_iteration ();
+ }
+
+ // wait for thread to terminate
+ while (!import_pt_status.done) {
+ gtk_main_iteration ();
+ }
+
+ if (import_pt_status.cancel) {
+ MessageDialog msg (_("PT import may have missing files, check session log for details"));
+ msg.run ();
+ } else {
+ MessageDialog msg (_("PT import complete!"));
+ msg.run ();
}
}
diff --git a/gtk2_ardour/editor_route_groups.cc b/gtk2_ardour/editor_route_groups.cc
index 57a39cc1cb..73d65de171 100644
--- a/gtk2_ardour/editor_route_groups.cc
+++ b/gtk2_ardour/editor_route_groups.cc
@@ -273,16 +273,13 @@ EditorRouteGroups::button_press_event (GdkEventButton* ev)
color_dialog.get_colorsel()->set_current_color (c);
switch (color_dialog.run()) {
- case RESPONSE_CANCEL:
- break;
- case RESPONSE_ACCEPT:
- c = color_dialog.get_colorsel()->get_current_color();
- GroupTabs::set_group_color (group, gdk_color_to_rgba (c));
- break;
-
- default:
- break;
+ case RESPONSE_ACCEPT:
+ c = color_dialog.get_colorsel()->get_current_color();
+ GroupTabs::set_group_color (group, gdk_color_to_rgba (c));
+ break;
+ default:
+ break;
}
color_dialog.hide ();
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index 9eed52b889..8abd1e5d18 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -349,6 +349,7 @@ ProcessorEntry::drag_data_get (Glib::RefPtr<Gdk::DragContext> const, Gtk::Select
_plugin_preset_pointer->_preset.valid = false;
switch (d.run ()) {
+ default:
case Gtk::RESPONSE_CANCEL:
data.set (data.get_target(), 8, NULL, 0);
return true;
diff --git a/gtk2_ardour/session_import_dialog.cc b/gtk2_ardour/session_import_dialog.cc
index 00567da2ca..4c0727b57e 100644
--- a/gtk2_ardour/session_import_dialog.cc
+++ b/gtk2_ardour/session_import_dialog.cc
@@ -236,9 +236,13 @@ SessionImportDialog::update (string path)
// Prompt user for verification
string txt = _("This will select all elements of this type!");
ArdourMessageDialog msg (txt, false, MESSAGE_QUESTION, BUTTONS_OK_CANCEL, true);
- if (msg.run() == RESPONSE_CANCEL) {
- (*cell)[sb_cols.queued] = false;
- return;
+ switch (msg.run()) {
+ case Gtk::RESPONSE_ACCEPT:
+ case Gtk::RESPONSE_OK:
+ break;
+ default:
+ (*cell)[sb_cols.queued] = false;
+ return;
}
}
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index e122052799..daae7d3843 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -853,7 +853,6 @@ ARDOUR_UI_UTILS::overwrite_file_dialog (Gtk::Window& parent, string title, strin
switch (dialog.run()) {
case RESPONSE_ACCEPT:
return true;
- case RESPONSE_CANCEL:
default:
return false;
}
diff --git a/gtk2_ardour/utils_videotl.cc b/gtk2_ardour/utils_videotl.cc
index 36f10b8410..894eaaea40 100644
--- a/gtk2_ardour/utils_videotl.cc
+++ b/gtk2_ardour/utils_videotl.cc
@@ -70,7 +70,12 @@ VideoUtils::confirm_video_outfn (Gtk::Window& parent, std::string outfn, std::st
confirm.add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
confirm.add_button (_("Continue"), Gtk::RESPONSE_ACCEPT);
confirm.show_all ();
- if (confirm.run() == RESPONSE_CANCEL) { return false; }
+ switch (confirm.run ()) {
+ case Gtk::RESPONSE_ACCEPT:
+ break;
+ default:
+ return false;
+ }
}
if (Glib::file_test(outfn, Glib::FILE_TEST_EXISTS)) {