Closed Bug 201177 Opened 22 years ago Closed 22 years ago

Need to add pref UI to control new tab/window behaviour


(SeaMonkey :: Preferences, enhancement)

Not set


(Not tracked)



(Reporter: iannbugzilla, Assigned: iannbugzilla)


(Depends on 1 open bug)



(5 files, 15 obsolete files)

48.36 KB, image/jpeg
46.20 KB, image/jpeg
45.03 KB, image/jpeg
5.69 KB, patch
: review+
: superreview+
Details | Diff | Splinter Review
2.86 KB, patch
: review+
: superreview+
: approval1.4b+
Details | Diff | Splinter Review
As a result of bug 197671 and bug 200956 there will be two new preferences added
to control the behaviour of what happens when (a) a new tab and (b) a new window
is created. After bug 197671 is checked in there will be 4 choices for each of
these preferences:
Use Navigator Startup preference
Blank Page
Home Page
Last Page visited
and if and when bug 200956 is checked in there will be one additional choice for
each preference of:
Custom Page

Bug 197671 currently adds some pref UI to the tabbed browsing section for tab
behaviour but doesn't add anything to control new window behaviour.

This bug is to discuss the best place for this frontend pref UI to go. The
immediate options I can see are:
(a) Leave it as is with only the UI introduced by bug 197671
(b) Add the necessary UI to support the custom page for tabbed browsing.
(c) Do (a) or (b) and create a new sub menu under Navigator for Window Browsing
and the necessary  UI to support the new window behaviour (with or without the
custom page option)
(d) Move the UI introduced by bug 197671 into a new sub menu under Navigator and
add the necessary UI to support the new window behaviour (with or without the
custom page option)

I'm not saying these are the only options, just the ones I've thought of (or had
suggested to me) so far.
Taking bug but keeping Ben in CC list
Assignee: ben → ian
I think that the UI can be simplified (so as not to require a sub-panel) by
replacing the current "When Navigator starts up, display" with a simple dropdown
box from which each of the categories can be selected:

 -[When Navigator starts up, display]-     V
  [When new Tab is created, display]
  [When new Window is created, display]

When going into the Navigator pref panel, it would always default to showing the
1st item.
Of course, selecting "New Tab" or "New Window" (or "Navigator startup" after
having selected one of those) would have to dynamically change the rest of the
UI to show/hide the radio button for "Same as Navigator startup".

I'll also mention that we don't necessarily need to have a textarea box directly
in the UI for the entry of any "custom page", if that gets implemented.  We
could use a button that calls a dialogue.  (Such as Ctrl-Shift-L.)  This is
assuming that we can't find space for a textarea control and such a button isn't
considered "bad UI practice".
This is the tabbed browsing pref UI part of the patch for bug 197671 which I'm
now spinning off into this bug.
Attached patch Patch v1.0a (obsolete) — Splinter Review
Corrects small typo spotted by Jason:

>> +	 <radio value="0" label="&startupTabRadio.label;"
>	 accesskey="&blankTabRadio.accesskey;"/>

>Is this correct?  Shouldn't the accesskey="&startupTabRadio.accesskey"?
Attachment #119820 - Attachment is obsolete: true
Attached image Screenshot Option 1 (obsolete) —
Screenshot of option one version of the proposed new UI
Attached image Screenshot Option 2 (obsolete) —
Screenshot of option two version of the proposed new UI
I did look at putting the drop down in the caption (like the fonts pref UI) but
it makes the default browser pref box in windows appear slightly offset and, if
it has "Display when" before it, the right hand side of the default browser pref
box is pushed off the edge of the window.
Any comments/preferences on which option?
Option two looks cleaner to me.  It's a bit strangely phrased though.  Assuming
you're configuring startup to show about:blank, it says "Display when Navigator
starts up Blank page."  Perhaps if you reversed the order of the drop box and
the radio button values?  Like this:

| Show |a blank| page when |
|                          |
| [X] Navigator starts.    |
| [ ] A new tab opens.     |
| [ ] A new window opens.  |

This the drop box would have the values of "a blank", "the home", "the last

In the event of later additions to the pref, for example a custom page, you
could add "a custom" to the drop-down box without having to reconfigure the rest
of the UI.  (Selecting a custom page could bring up a separate input box asking
for the URI.)

Of course, this makes sense in English.  Arranging the UI like that might not
make any sense at all in other languages.  Even in English, it's still a bit
clumsy for UI purposes.  If you didn't feel like reversing the values of the
drop box and the radio buttons, you could leave the radio buttons there for
blank/home/last-visited, and change the top part to read "New |Navigators|
show", with the values of the drop box being "Navigators", "Windows", "Tabs".  

Either way, I don't think we'll be able to make the UI clear without at least a
couple of words surrounding the drop box.  (Which is do-able, see the abortive
UI design I proposed in bug 197671.)
i prefer option 1, since group box titles are usually section names, never parts
of sentences (iirc).
Re: Comment #9
Suggestion 1: I could put a few "a"s and "the"s in so it radio buttons would be:
"the Navigator startup page"
"a blank page"
"the home page"
"the last page visited"
and the menu items would be:
"the Navigator starts up"
"a new Window is created"
"a new Tab is created"

Unfortunately option 1, when you add "a" and "the" in, causes the Default
Browser caption box to overflow past the edge of the Preferences window,
especially if "When" and ", display" are put either side of the menu list
instead of "Display when" before it.

I'll attach a mock up of the ammended option 2 for comment.

Suggestion 2: I don't think it would be possible to setup the UI in that way.
Radio buttons wouldn't work in that setup which would leave checkboxes. In that
case you would have to disable all other checkboxes for that row once you had
checked one box - the user would then have to go through each type of page to
find the one that was already checked before they could check another box.

Suggestion 3: I did look at your suggested UI when designing this one and looked
at doing it exactly that way but I couldn't find an equivalent to tabs and
windows for the third option which didn't sound slightly clumsy. 

Re: Comment #10
There seems to be a lot of captions that are parts of sentences, to name just a few:
Under Navigator category - When Navigator starts up, display
Under Tabbed Browsing subcategory - Open tabs instead of windows for
Under Downloads subcategory - When starting a download
Attached image Screenshot Option 2a (obsolete) —
Screenshot of the ammended option two version of the proposed new UI
This patch alters the prefs UI as per screenshot 1
This patch alters the prefs UI as per screenshot 2
Attachment #119822 - Attachment is obsolete: true
This patch alters the prefs UI as per screenshot 2a
Attached image Alternate UI. (obsolete) —
Here's a different take on the UI that has the benefit of resulting in a
grammatically correct sentence.

The options for the dropdown box would be "Navigator start up", "New tabs", and
"New windows".
The sentence would even makes sense in French in that changed order.  (I'm not
sure about other languages though.)
I'm not 100% sure that reversing it makes sense, in that you usually have a
statement and then options, not options and then a statement.
I still like the idea of having a dropdown in the caption the best (see comment 2). Could you use this for the caption?"Display on [Navigator Startup]""Display on [New Window]""Display on [New Tab]"
Attached image Screenshot Option 3 (obsolete) —
Screenshot of option 3 - mock up of pref UI proposed by jag
Patch comming soon
Attached patch Patch v1.1 Option 3 layout (obsolete) — Splinter Review
Patch featuring the option 3 layout - any comments/feedback?
The screenshot of option 3 looks like the best of the lot to me.  Having the
drop-down box in the caption is a little atypical, but it's clear and clean. 
I'll vote for that one.
I'll also agree that Option 3 looks the best.  (Along with my own submission,
but if you don't want statement/options reversed, then Option 3 seems the most
natural to me.)
i like option #3 as well. quick question, would it be too much trouble to attach
a screenshot of the expanded droplist (for "Display on...")? thanks!
Ian: Obsolete all but the Options 3 attachments?  (I'll obsolete mine if you'll
obsolete yours. <grin>)
Attachment #119873 - Attachment is obsolete: true
Attachment #119874 - Attachment is obsolete: true
Attachment #119900 - Attachment is obsolete: true
Attachment #119994 - Attachment description: Screen Option 3 with expanded drop list → Screenshot Option 3 with expanded drop list
Attachment #119913 - Attachment is obsolete: true
Attachment #119906 - Attachment is obsolete: true
Attachment #119907 - Attachment is obsolete: true
How about adding the 4th radio button (and text) to the "Navigator Startup"
section, but having it greyed out and unselectable.  It might make things appear
more consistent, if it didn't appear and disappear but were simply enabled and
Attachment #119908 - Attachment is obsolete: true
Adding target of 1.4b and setting Hardware -> All
Hardware: PC → All
Target Milestone: --- → mozilla1.4beta
Screenshot of Option 3 with 4 buttons (including one disabled) showing in
Navigator Startup choice.
This will be in v1.2 of the patch which is tied in with v1.6 of the patch for
bug 197671. Just waiting for some feedback from jag before finalising that
version of the patch.
Attachment #119953 - Attachment is obsolete: true
I like it.  (Odd though.  It looks like there's a dot in it - although I can
barely make it out.  Is that how disabled radio buttons always look?)
I think that is just the way jpeg turned out, on the original there is no spot
in the middle.
Attached patch Patch v1.2 (obsolete) — Splinter Review
Updated patch that works in conjunction with patch v1.6 for bug 197671
Attachment #119956 - Attachment is obsolete: true
Now that bug 197671 has had it's sr= I'm looking to get this
reviewed/superreviewed so both patches can be checked in at the same time. Any
Attachment #120120 - Flags: superreview?(jaggernaut)
I'll have to play with this patch. I don't like the greyed out radio button. The
radios moving around might not be too bad, alternatively you could move the
additional option (navigator startup page) to the bottom of the list. Let me get
back to you on that later.
How about, instead of a 4th radio button, place a check box below the radio
buttons to eliminate the drop down box, making all options work the same?

That would prevent a user from setting navigator and then linking one of the
other options to it with the 4th radio but leaving the 3rd option on its own,
but then I really don't see justification for the 4th radio button in that
scenerio anyway when the user could very easily click the same radio button on
one of the other options that they had clicked on the navigator startup page.
With the radio, you still have to go through the settings groups, where as a
checkbox would actually save time if one wanted them all to be the same.

Attachment #120120 - Flags: superreview?(jaggernaut)
Attached patch UI Patch v1.3 (obsolete) — Splinter Review
UI patch v1.3 with disabled button taken out and Navigator startup page button
moved to the bottom of the list
Attachment #120120 - Attachment is obsolete: true
Attachment #120648 - Flags: superreview?(jaggernaut)
Comment on attachment 120648 [details] [diff] [review]
UI Patch v1.3

>Index: content/pref-navigator.xul
>@@ -37,21 +37,46 @@
>   <script type="application/x-javascript">
>   <![CDATA[
>-    var _elementIDs = ["startupPage", "bookmarksButton",
>-                       "goButton", "homeButton",
>-                       "printButton", "searchButton" ];
>+var _elementIDs = ["startupPage", "newWinPage", "newTabPage",
>+                   "bookmarksButton", "goButton", "homeButton",
>+                   "printButton", "searchButton" ];


>+        <menulist id="selectDisplayOn" oncommand="switchPage(this);">

Add sizetopopup="never" to this

>Index: content/pref-navigator.js
>RCS file: /cvsroot/mozilla/xpfe/components/prefwindow/resources/content/pref-navigator.js,v
>retrieving revision 1.12
>diff -u -r1.12 pref-navigator.js
>--- content/pref-navigator.js   4 Oct 2002 00:28:03 -0000       1.12
>+++ content/pref-navigator.js   15 Apr 2003 23:53:29 -0000
>@@ -293,3 +293,8 @@
>   prefWindow.setPref("int", countPref, URIs.length);
> }
>+function switchPage( aElement )

No space after/before '(' and ')' like rest of file

>+  var deck = document.getElementById( "behaviourDeck" );
>+  deck.setAttribute( "selectedIndex", aElement.selectedItem.value );

Set focus to the radiogroup that now gets shown, otherwise tab behaviour will
be a little weird (e.g. last group was shown, first group is now shown, [tab]
will take you to the next widget; if however first group was shown, and second
group is now shown, [tab] will take you to the second radiogroup.)

sr=jag with those changes (test please).
Attachment #120648 - Flags: superreview?(jaggernaut) → superreview+
> Add sizetopopup="never" to this

Never mind that. There seems to be a bug in the css for the Mac classic menulist.
Attached patch Patch v1.3a (obsolete) — Splinter Review
Updated patch with indentation fixed, extra spaces removed and focus set for
selected radiogroup. Need someone on a Mac to test last part as problem doesn't
appear to show up on other platforms.
Attachment #120648 - Attachment is obsolete: true
Comment on attachment 121226 [details] [diff] [review]
Patch v1.3a

>Index: content/pref-navigator.xul
>RCS file: /cvsroot/mozilla/xpfe/components/prefwindow/resources/content/pref-navigator.xul,v
>retrieving revision 1.69
>diff -u -r1.69 pref-navigator.xul
>--- content/pref-navigator.xul	4 Oct 2002 00:28:04 -0000	1.69
>+++ content/pref-navigator.xul	21 Apr 2003 23:30:34 -0000
>@@ -46,12 +46,37 @@
>+      <caption>
>+        <hbox align="center">
>+          <label value="&navRadio;" control="selectDisplayOn"/>
>+        </hbox>

<caption align="center">
  <label value="&navRadio;" control="selectDisplayOn"/>

That should have the desired effect.

>Index: content/pref-navigator.js
>+function switchPage(aElement)
>+  var deck = document.getElementById("behaviourDeck");
>+  deck.setAttribute("selectedIndex", aElement.selectedItem.value);
>+  deck.childNodes[deck.selectedIndex].focus();

deck.selectedIndex = aElement.selectedIndex;

Except leave out the last line. It's a problem with Mac focus in the classic
skin that we'll need to fix differently.

Oh, and because you're using aElement.selectedIndex you don't need the value=
on the menulist items.

Attachment #121226 - Flags: superreview+
Comment on attachment 121226 [details] [diff] [review]
Patch v1.3a

Actually, I just realized that the accesskeys won't work like this (though they
should, imo, but that's gonna be a lot of work to fix). The problem is that if
two elements have the same accesskey, only the one "lower" in the file will get
the accesskey registered. So for the first two radiogroups, accesskeys won't
work. What we really should do is allow multiple elements with the same
accesskey and find the first one visible (though "visible" is differently
defined for <deck>s, so ... hrm).

For now, I'll add/remove accesskeys in switchPage(). Patch coming up.
Attachment #121226 - Flags: superreview+ → superreview-
Attached patch Patch v1.3b (obsolete) — Splinter Review
Fix my nits, fix accesskeys.
Attachment #121226 - Attachment is obsolete: true
Comment on attachment 121401 [details] [diff] [review]
Patch v1.3b

sr=me,sr=hewitt on my changes
Attachment #121401 - Flags: superreview+
Comment on attachment 121401 [details] [diff] [review]
Patch v1.3b

Why not document.getElementById("startupPage")? Or set the access keys
directly? Although it turns out that access keys on <radio>s don't work
properly because the set focus to the <radio> which is wrong :-(

>+  var node = group.firstChild;
>+  while (node) {
>+    node.setAttribute("accesskey", node.getAttribute("ak"));
>+    node = node.nextSibling;
>+  }
Nit: peterv told me once that childNode caching is better.

>+<!ENTITY  startPageRadio.label      "Navigator startup page">
>+<!ENTITY  startPageRadio.accesskey  "s">
> <!ENTITY  blankPageRadio.label      "Blank page">
> <!ENTITY  blankPageRadio.accesskey  "n">
These confused me, since because radio/checkbox access keys don't display I
tried to use Alt+B for blank page and Alt+N for Navigator startup page :-/
Attachment #121401 - Flags: review+
Flags: blocking1.4b?
I seem to recall that "b" was already taken. And yeah, we don't propertly set
focus to the radiogroup when setting focus to the radio, I noticed this
yesterday (didn't get around to looking for / filing a bug). What's this about
nodeChild caching?

Oh, so the reason I don't get it directly is because what I really wanted to do
is deck.selectedPanel, but apparently the xbl isn't ready yet at that point, so
the next closest was getting the first child (so that if the menulist ever
changes, that code doesn't have to change).
Is this now ready to ask for driver approval?
Oh... With childNode caching you mean something like:

var children = element.childNodes;
for (var i = 0; i < children.length; ++i)

Attached patch Patch v1.3cSplinter Review
Addresses Neil's comments.
Attachment #121401 - Attachment is obsolete: true
Comment on attachment 121521 [details] [diff] [review]
Patch v1.3c

Attachment #121521 - Flags: superreview+
Comment on attachment 121521 [details] [diff] [review]
Patch v1.3c

Neil said r=Neil.
Attachment #121521 - Flags: review+
Attachment #121521 - Flags: approval1.4b?
Flags: blocking1.4b? → blocking1.4b-
Comment on attachment 121521 [details] [diff] [review]
Patch v1.3c

a=asa (on behalf of drivers) for checkin to 1.4b.
Attachment #121521 - Flags: approval1.4b? → approval1.4b+
Checked in. Sorry Ian, forgot to mention you as author of the patch in the
checkin comment. I added a dummy checkin (adding you to the authors list) to
rectify that.
Closed: 22 years ago
Resolution: --- → FIXED
looks good, so verifying fixed. tested with 2003.04.28 comm builds.

the only issue i see is with the commercial builds: the Navigator pref panel is
now clipped a little bit at the bottom. (nscp builds have a lot more checkboxes
in that panel.) i've spun off to cover that.
Ian: feedback I've gotten on this is that the "Navigator Startup Page"
radiobutton is confusing ("how do I set what page that is?", apparently they
didn't seem to get that it would load whatever you had set the startup page pref
to), and the small benefit (not having to explicitely synch up new window/tab
with navigator startup) doesn't outweigh that confusion and additional complexity.

I suggest we remove the UI, and change all.js ""
to 1. The only "problem" left then is that for people who've chosen -1 for new
window/tab, the UI would show no radio button selected, which I think will be
okay (people upgrading from 1.4a won't see this, just people running nightlies,
and that's a risk they take with nightlies).
Patch that removes 4th option from new tab/window lists. It sets the default
behaviour for new windows to be home page (1) rather than same as browser
startup behaviour (-1)
reopening since there still seems to be issues.

in fact, with ian's latest change will make obsolete. :)
Resolution: FIXED → ---
Attachment #122157 - Flags: superreview?(jaggernaut)
Attachment #122157 - Flags: review?(jaggernaut)
I suppose an alternative would be to rename that particular option to something
more understandable though finding something short enough to fit in the space
available might be difficult - 'Same page as Navigator Startup Pref' is a bit
long :-S
nominating for 1.4final.

robin, i think online help might need updating for the navigator pref panel.
Flags: blocking1.4?
Comment on attachment 122157 [details] [diff] [review]
UI Patch fix v1.0


Note to QA: people can still manually set these prefs to -1 in their preference
file, and we'll honour that.

Ian: I believe this should work, but, if you haven't already, could you make
sure that if the tab pref is currently set to -1 and we load that pref panel
and then hit OK, that it gets written back as -1?
Attachment #122157 - Flags: superreview?(jaggernaut)
Attachment #122157 - Flags: superreview+
Attachment #122157 - Flags: review?(neil)
Attachment #122157 - Flags: review?(jaggernaut)
Attachment #122157 - Flags: review?(neil) → review+
Checked and it does stay set at -1
Comment on attachment 122157 [details] [diff] [review]
UI Patch fix v1.0

Requesting drivers approval
Attachment #122157 - Flags: approval1.4b?
Comment on attachment 122157 [details] [diff] [review]
UI Patch fix v1.0

Attachment #122157 - Flags: approval1.4b? → approval1.4b+
Checked in, marking fixed again.
Closed: 22 years ago22 years ago
Resolution: --- → FIXED
Flags: blocking1.4?
vrfy'd fixed with 2003.05.07 comm builds.

see bug 204157 for remaining issue with opening browser windows from non-browser
*** Bug 204913 has been marked as a duplicate of this bug. ***
Blocks: 205261
*** Bug 184673 has been marked as a duplicate of this bug. ***
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.