From c588d08835e3f897b6eb147ece6b5ef2312138f8 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 14 Nov 2012 07:30:23 -0500
Subject: [PATCH] Merge branch 'master' of github.com:roundcube/roundcubemail

---
 program/include/rcube_output_html.php |    2 +-
 program/include/rcube_ldap.php        |    3 ++-
 program/js/app.js                     |    7 ++++++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php
index 90ce73a..7cef255 100644
--- a/program/include/rcube_ldap.php
+++ b/program/include/rcube_ldap.php
@@ -160,7 +160,8 @@
         }
 
         // make sure LDAP_rdn field is required
-        if (!empty($this->prop['LDAP_rdn']) && !in_array($this->prop['LDAP_rdn'], $this->prop['required_fields']) && !in_array($this->prop['LDAP_rdn'], array_keys($this->prop['autovalues']))) {
+        if (!empty($this->prop['LDAP_rdn']) && !in_array($this->prop['LDAP_rdn'], $this->prop['required_fields'])
+            && !in_array($this->prop['LDAP_rdn'], array_keys((array)$this->prop['autovalues']))) {
             $this->prop['required_fields'][] = $this->prop['LDAP_rdn'];
         }
 
diff --git a/program/include/rcube_output_html.php b/program/include/rcube_output_html.php
index db947bd..ac07d58 100644
--- a/program/include/rcube_output_html.php
+++ b/program/include/rcube_output_html.php
@@ -1087,7 +1087,7 @@
             // make valid href to specific buttons
             if (in_array($attrib['command'], rcmail::$main_tasks)) {
                 $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)) {
                 $attrib['href'] = $this->app->url(array('action' => $attrib['command'], 'task' => $attrib['task']));
diff --git a/program/js/app.js b/program/js/app.js
index 0f5a60c..2a170b2 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -507,6 +507,11 @@
     if (this.busy)
       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
     if (!this.commands[command]) {
       // pass command to parent window
@@ -562,7 +567,7 @@
         break;
 
       case 'about':
-        location.href = '?_task=settings&_action=about';
+        this.redirect('?_task=settings&_action=about', false);
         break;
 
       case 'permaurl':

--
Gitblit v1.9.1