Enable default behavior of the browser when shift/ctrl-click task links (e.g. open in new window/tab)

pull/45/merge
Thomas Bruederli 12 years ago
parent 275728ab05
commit e30500643f

@ -1087,7 +1087,7 @@ class rcube_output_html extends rcube_output
// make valid href to specific buttons // make valid href to specific buttons
if (in_array($attrib['command'], rcmail::$main_tasks)) { if (in_array($attrib['command'], rcmail::$main_tasks)) {
$attrib['href'] = $this->app->url(array('task' => $attrib['command'])); $attrib['href'] = $this->app->url(array('task' => $attrib['command']));
$attrib['onclick'] = sprintf("%s.command('switch-task','%s',null,event); return false", rcmail::JS_OBJECT_NAME, $attrib['command']); $attrib['onclick'] = sprintf("return %s.command('switch-task','%s',this,event)", rcmail::JS_OBJECT_NAME, $attrib['command']);
} }
else if ($attrib['task'] && in_array($attrib['task'], rcmail::$main_tasks)) { else if ($attrib['task'] && in_array($attrib['task'], rcmail::$main_tasks)) {
$attrib['href'] = $this->app->url(array('action' => $attrib['command'], 'task' => $attrib['task'])); $attrib['href'] = $this->app->url(array('action' => $attrib['command'], 'task' => $attrib['task']));

@ -507,6 +507,11 @@ function rcube_webmail()
if (this.busy) if (this.busy)
return false; return false;
// let the browser handle this click (shift/ctrl usually opens the link in a new window/tab)
if ((obj && (obj.href.indexOf(location.href) < 0)) && rcube_event.get_modifier(event)) {
return true;
}
// command not supported or allowed // command not supported or allowed
if (!this.commands[command]) { if (!this.commands[command]) {
// pass command to parent window // pass command to parent window
@ -562,7 +567,7 @@ function rcube_webmail()
break; break;
case 'about': case 'about':
location.href = '?_task=settings&_action=about'; this.redirect('?_task=settings&_action=about', false);
break; break;
case 'permaurl': case 'permaurl':

Loading…
Cancel
Save