diff options
author | Christian Dywan <christian@twotoasts.de> | 2019-02-28 19:40:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-28 19:40:28 +0100 |
commit | b6241c3186dee5da6ea6a294969ba31ad314de65 (patch) | |
tree | 78e6e48b0664c8dbaaebb1f76752516efa8487ed /core/tab.vala | |
parent | 72e39eef9f65ad3f47a51cd2fa6e6e4acccbcc89 (diff) | |
download | midori-git-b6241c3186dee5da6ea6a294969ba31ad314de65.tar.gz |
Use a dialog to handle script confirm/ prompt (#279)
The WebKit API can't cope with asynchronously updating the result.
Fixes: #276
Diffstat (limited to 'core/tab.vala')
-rw-r--r-- | core/tab.vala | 29 |
1 files changed, 6 insertions, 23 deletions
diff --git a/core/tab.vala b/core/tab.vala index fd574827..815c5be5 100644 --- a/core/tab.vala +++ b/core/tab.vala @@ -37,8 +37,6 @@ namespace Midori { [GtkChild] Gtk.Label message; [GtkChild] - Gtk.Entry entry; - [GtkChild] Gtk.Button confirm; construct { @@ -332,37 +330,22 @@ namespace Midori { } public override bool script_dialog (WebKit.ScriptDialog dialog) { - message.label = dialog.get_message (); - switch (dialog.get_dialog_type ()) { case WebKit.ScriptDialogType.ALERT: + message.label = dialog.get_message (); confirm.hide (); + popover.show (); break; case WebKit.ScriptDialogType.CONFIRM: case WebKit.ScriptDialogType.BEFORE_UNLOAD_CONFIRM: - confirm.label = _("_Confirm"); - confirm.visible = true; - popover.closed.connect (() => { - dialog.confirm_set_confirmed (false); - }); - confirm.clicked.connect (() => { - dialog.confirm_set_confirmed (true); - }); + string hostname = new Soup.URI (uri).host; + dialog.confirm_set_confirmed(((Browser)get_toplevel ()).prompt (hostname, dialog.get_message (), _("_Confirm")) != null); break; case WebKit.ScriptDialogType.PROMPT: - entry.placeholder_text = dialog.prompt_get_default_text (); - entry.visible = true; - confirm.label = _("_Confirm"); - confirm.visible = true; - popover.closed.connect (() => { - dialog.prompt_set_text (""); - }); - confirm.clicked.connect (() => { - dialog.prompt_set_text (entry.text); - }); + string hostname = new Soup.URI (uri).host; + dialog.prompt_set_text(((Browser)get_toplevel ()).prompt (hostname, dialog.get_message (), _("_Confirm"), dialog.prompt_get_default_text ())); break; } - popover.show (); return true; } |