Don't auto-focus on compose form when user has already focused somewhere manually...
authorpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Tue, 6 Sep 2005 23:58:45 +0000 (23:58 +0000)
committerpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Tue, 6 Sep 2005 23:58:45 +0000 (23:58 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@10073 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/forms.php
src/compose.php
templates/default/js/default.js

index 388ce3e..f35edc6 100644 (file)
@@ -130,7 +130,8 @@ function addHidden($sName, $sValue, $aAttribs=array()) {
  * @param string $sValue initial field value
  * @param integer $iSize field size (number of characters)
  * @param integer $iMaxlength maximum number of characters the user may enter
- * @param array $aAttribs (since 1.5.1) extra attributes
+ * @param array $aAttribs (since 1.5.1) extra attributes - should be given
+ *                        in the form array('attribute_name' => 'attribute_value', ...)
  * @return string html formated text input field
  */
 function addInput($sName, $sValue = '', $iSize = 0, $iMaxlength = 0, $aAttribs=array()) {
@@ -291,4 +292,4 @@ function addForm($sAction, $sMethod = 'post', $sName = '', $sEnctype = '', $sCha
         $sEnctype . $sName . $sCharset . $sAttribs . ">\n";
 }
 
-?>
\ No newline at end of file
+?>
index a11e178..e001116 100644 (file)
@@ -1020,6 +1020,15 @@ function showInputForm ($session, $values=false) {
         $mailprio, $compose_new_win, $saved_draft, $mail_sent, $sig_first,
         $username, $compose_messages, $composesession, $default_charset;
 
+    if (checkForJavascript()) {
+        $onfocus = ' onfocus="alreadyFocused=true;"';
+        $onfocus_array = array('onfocus' => 'alreadyFocused=true;');
+    }
+    else {
+        $onfocus = '';
+        $onfocus_array = array();
+    }
+
     $composeMessage = $compose_messages[$session];
     if ($values) {
         $send_to = $values['send_to'];
@@ -1108,28 +1117,28 @@ function showInputForm ($session, $values=false) {
         html_tag( 'td', '', 'right', $color[4], 'width="10%"' ) .
         _("To") . ':</td>' . "\n" .
         html_tag( 'td', '', 'left', $color[4], 'width="90%"' ) .
-        addInput('send_to', $send_to, 60). '<br />' . "\n" .
+        addInput('send_to', $send_to, 60, 0, $onfocus_array). '<br />' . "\n" .
         '      </td>' . "\n" .
         '   </tr>' . "\n" .
         '   <tr>' . "\n" .
         html_tag( 'td', '', 'right', $color[4] ) .
         _("Cc") . ':</td>' . "\n" .
         html_tag( 'td', '', 'left', $color[4] ) .
-        addInput('send_to_cc', $send_to_cc, 60). '<br />' . "\n" .
+        addInput('send_to_cc', $send_to_cc, 60, 0, $onfocus_array). '<br />' . "\n" .
         '      </td>' . "\n" .
         '   </tr>' . "\n" .
         '   <tr>' . "\n" .
         html_tag( 'td', '', 'right', $color[4] ) .
         _("Bcc") . ':</td>' . "\n" .
         html_tag( 'td', '', 'left', $color[4] ) .
-        addInput('send_to_bcc', $send_to_bcc, 60).'<br />' . "\n" .
+        addInput('send_to_bcc', $send_to_bcc, 60, 0, $onfocus_array).'<br />' . "\n" .
         '      </td>' . "\n" .
         '   </tr>' . "\n" .
         '   <tr>' . "\n" .
         html_tag( 'td', '', 'right', $color[4] ) .
         _("Subject") . ':</td>' . "\n" .
         html_tag( 'td', '', 'left', $color[4] ) . "\n";
-    echo '         '.addInput('subject', $subject, 60).
+    echo '         '.addInput('subject', $subject, 60, 0, $onfocus_array).
         '      </td>' . "\n" .
         '   </tr>' . "\n\n";
 
@@ -1142,13 +1151,13 @@ function showInputForm ($session, $values=false) {
         echo '   <tr>' . "\n" .
             '      <td bgcolor="' . $color[0] . '" colspan="2" align="center">' . "\n" .
             '         <textarea name="body" id="body" rows="' . (int)$editor_height .
-            '" cols="' . (int)$editor_size . '" wrap="virtual">';
+            '" cols="' . (int)$editor_size . '" wrap="virtual"' . $onfocus . '>';
     }
     else {
         echo '   <tr>' . "\n" .
             '      <td bgcolor="' . $color[4] . '" colspan="2">' . "\n" .
             '         &nbsp;&nbsp;<textarea name="body" id="body" rows="' . (int)$editor_height .
-            '" cols="' . (int)$editor_size . '" wrap="virtual">';
+            '" cols="' . (int)$editor_size . '" wrap="virtual"' . $onfocus . '>';
     }
 
     if ($use_signature == true && $newmail == true && !isset($from_htmladdr_search)) {
@@ -1660,4 +1669,4 @@ function deliverMessage($composeMessage, $draft=false) {
     return $succes;
 }
 
-?>
\ No newline at end of file
+?>
index b985050..97de270 100644 (file)
@@ -226,7 +226,11 @@ function sendMDN() {
     var newwin = window.open(mdnuri,'right');
 }
 
+var alreadyFocused = false;
 function checkForm(smaction) {
+
+    if (alreadyFocused) return;
+
     /*
      * this part is used for setting the focus in the compose screen
      */