Closed Bug 66522 Opened 24 years ago Closed 19 years ago

Preferences Mousewheel: Each modifier should be listed separately

Categories

(SeaMonkey :: Preferences, defect)

x86
Windows NT
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: Peter, Assigned: bugs)

References

Details

(Keywords: helpwanted, Whiteboard: In UI Hell)

Attachments

(4 files, 5 obsolete files)

Preferences Mousewheel: Each modifier should be listed separately

METHOD 1 (uses a lot of space - which is available):

+-- *Specify Mousewheel Behaviour* --------------------------------------------+
|
| No modifyer: <> unassigned (default)
|              <> scroll document by [ 1 ] lines (Default).
|              <> scroll page up/down
|              <> move back/forward in browser history
|              <> make text larger/smaller
|
| ALT:         <> unassigned
|              <> scroll document by [  ] lines
|              scroll page up/down
|              move back/forward in browser history (default)
|              make text larger/smaller
|
| CTRL:        unassigned
|              scroll document by [  ] lines
|              scroll page up/down
|              move back/forward in browser history
|              make text larger/smaller (default)
|
| SHIFT:       unassigned (default)
|              scroll document by [  ] lines
|              scroll page up/down
|              move back/forward in browser history
|              make text larger/smaller
+------------------------------------------------------------------------------+


METHOD 2 (much "cleaner" and uses less space):

At a *MINIMUM*, both sets of options (alt, ctrl, etc AND the corresponding
functions) should be visible at ALL times.

+-- *Specify Mousewheel Behaviour* ---------------------------+
|                                                             |
| <> No modifyer  | <>  unassigned                            |
| <> ALT          | <>  scroll document by [  ] lines         |
| <> CTRL         | <>  scroll page up/down                   |
| <> SHIFT        | <>  move back/forward in browser history  |
|                 | <>  make text larger/smaller              |
+-------------------------------------------------------------+

This way people will see that there can be multiple option selected at the same
time. For the longest time (until I accidentally discovered it today), I thought
that one could to select only ONE of the functions.

This way, depending on which modifyer one selected on the left, one would
immediately see what function whs selected on the right.
Method 1 was the way it used to be and then they changed it to what you see now.
In that case, method 2 should definetely be implemented. The current layout is
horribly non-intuitive.
cc'ing bryner and matthew (whose going to start his comment with `Well, this 
panel shouldn't exist anyways...' ;)
Well, this panel shouldn't exist anyway ...

But yes, assuming you've got the space, a grid of labels and popup menus --

_Mousewheel by itself: [Scroll            :^]  _Amount: [20 pixels :^]
with _Ctrl key:        [Change text size  :^]
with Al_t key:         [Back/Forward      :^]
_with Ctrl+Alt:        [Home/End          :^]

-- would be easier to use than the current arrangement (but not easier to use 
than no arrangement at all). The `Speed:' control would have to move itself 
around depending on which menu had `Scroll' at the time.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Excellent suggestion. This way one would see all selections at once.

However, I would change the Amount from pixels to lines, if possible - it's more
intuitive to the user.
And, I believe lines is the finest-grained control we have on scrolling views.
See bug 4077 for scrolling by "lines".
mpt's suggestion for making the panel more intuitive would also eliminate bug 
64051.
Status: NEW → ASSIGNED
Can someone assign this to me? I'm working on it.

My current plan (to fit the suggestion into the available space) is to do this:

+-- *Specify Mouse wheel Behavior* ------------------------------------------+

_Mouse wheel by itself: [Scroll lines                        :^]  
                        _Amount: [ ] [] Use system default

with _Ctrl key:         [Change text size                    :^]
                        

with Al_t key:          [Go back/forward in browsing history :^]
                        

_with _Shift key:       [Scroll page                         :^]
                        

(Note: the "Amount: [  ] [] Use system default" group becomes disabled if you 
choose anything other than the first item ("Scroll lines") in the list. The 
diagram above shows it disappearing instead. What do people prefer?)
Attached image Screenshot of suggested UI changes (obsolete) —
done.
Assignee: matt → Brian.Duff
Status: ASSIGNED → NEW
Keywords: patch, review
Since an access key can only be given out once, give it to Alt instead of 
Amount.

Having use system default _after_ something that it controls is a bit awkward.
Looking at your screenshot:

- I think the "Amount:" line should only be visible where it applies ("scroll
lines"). Having it greyed out everywhere is congusing and makes the screen look
cluttered.

- It should be possible to select "scroll lines" multiple times (with different
modifiers). In such a case, the "amount" line should appear multiple times too -
AND the "amount" should handle different values for each modifier (in case
someone wants to scroll 1 line with CTRL, and 5 lines with ALT.

- The "amount: [    ]" should have the word "line(s)" after it. It took me a
while (too long) before I accidentally realized that the line above ("scroll
lines") means it's referring to "lines".

- Better would be "smooth scrolling" since the jumping by lines makes it too
jerkey to read & follow where you are while the lines go jumping by.

- If you have "Mousewheel by itself:", then for consistency you must include the
word "Mousewheel" with the other modifier too. -> CTRL + Mousewheel, ALT +
Mousewheel,, SHIFT + Mousewheel. It makes the options much clearer too.
Thanks for the feedback, I'll try to incorporate your suggestions.

Timeless, your point about the access keys is well taken. I'll modify the patch.
About the system default checkbox - it has always been after the thing it
controls (well, beneath it). Not a justification for keeping it that way, to be
sure. It's easy enough to change: would you prefer it to be before the field? (i.e.:

_Mouse wheel by itself: [Scroll lines                        :^]  
                        [] Use system default       _Amount: [ ] 

)

Peter:

1) This should be easy enough to change. My main concern was that there will be
a big space between all the drop down lists if "Scroll lines" is not selected in
each one - It's not normal to reflow controls as combo box selections are
changed, so the space for the checkbox, label and field would have to be
"reserved" beneath each combo box. I'll send another screenshot demonstrating
this after I've changed the patch. 

2) It is possible to do this already in the patch. Changing from disabling to
hiding shouldn't change this functionality.

3) I had to remove this because of lack of space. But see below.

4) Yeah, I thought "scroll lines" was kind of clunky too. If no-one objects I'll
use "smooth scrolling" as you suggest. 

5) I wonder if it might be better just to have:

No modifier:
With Alt:
With Ctrl:
With Shift:

down the left hand side. The page already refers to mouse wheels twice, so it
should be pretty clear what it applies to :). This has the added advantage that
the extra horizontal space might make it possible to add the "lines" label after
the field (point 3 above).



If you "say" smooth scrolling, then you also have to "do" smooth scrolling.  Can
you actually implement *smooth scrolling*? That would be great.

If you do that, the we should probably change "[ x ] lines" to *[fast | medium |
slow ]*.
Ohh-- I see what you mean now. I don't think I'd be capable of implementing 
smooth scrolling. Will stick with the existing text, in that case.
As it turned out, I underestimated the power of XUL :) It does the reflow 
automatically when I hide and show the "lines" components underneath. It 
doesn't actually look that bad.
Blocks: 64051
Wow, that was fast. The screenshot looks great. Just a few more comments:

1. Is it possible to make the dropdown lists more narrow to be just a little
wider than the longest entry? It looks to bulky & cluttered with them taking up
all screen space. Will the max width be affected by large/small system fonts?
2. Could you rename "Conrol" to "Ctrl"? (We are not calling the "Alt" key
"Alternative" key)

3. My preference is to call these keys with capital letters (ALT, CTRL, SHIFT)
to make them easier to recognize; but that needs to be verified by a UI expert.

4. If we can (as I hope) use caps for the modifier keys, then maybe we could add
the word "key" after them (e.g. "With ALT key:"). That makes it a bit more clear
to novices that we are talking about 'key'board modifiers.

5. You may want to indent the "[ ] use system default" line a few more
millimeters to the right to make it more clear that it is a "subset" of the line
above and not an option on its own line.

6. Maybe the words "amount:" and "lines" should be just a bit closer to the "[ 
]" box to make reading it flow a bit better.

7. The bounding box around the whole pref (inline with "Specify mouswheel
behavior") seems to be missing the top-left corner - oops, it seems that all
prefs dont have that corner. Should though. 
BTW: What is the difference between "system default" and "non-system default"?
No longer blocks: 64051
1) The dropdowns are set to flex="1" so they take the remaining horizontal 
space. I had to do it this way, because otherwise the width of the dropdowns 
would change whenever the control group below was hidden/shown. The right edges 
of the dropdowns no longer lined up properly.

2) I don't control (uh) the text of these modifier keys. They vary from 
platform to platform; I'm just using an entity that is defined elsewhere. In 
other words, if I change this, I would have to change it for the whole of 
mozilla. If you think this should be done, it might be worth logging a separate 
bug (I'm not sure where else these entities are used).

3) As 2)

4) I'll add the word "key" back. This will also make the drop down lists 
slightly smaller.

5) I'll try to do this

6) I'll try to do this

7) Yeah, the version I built from CVS seems to be doing this in all groupboxes. 
I don't think it's something I'm doing. Are you seeing this also in a nightly?
About the system default stuff - In the UI, this just controls the enablement 
of the text field. I think wheely-mouse users can set a preference in control 
panel (at least under windows) which specifies how many lines to scroll; if the 
use system default box is checked, mozilla uses the "system" preference rather 
than the number of lines specified by the user in mozilla preferences.
How about renaming "Scroll lines" to "Scroll specified number of lines"? That
way, the user knows that we are talking about the "number" of lines when
refering to the system default.

RE #7) I'm using 2001-08-23, winNT
This bug was progressing nicely, and then suddenly, dead! Is Brian Duff still
with us?
Whiteboard: Patch nearly finished?!
Well, I suddenly got really busy at work and never got back to it :) I also 
stopped using Mozilla in frustration at its slow progress, which didn't help.

I'll have a go at applying the patch to the latest code and fixing the last 
remaining suggestions over the weekend...
Ugh, it seems that mozilla doesn't build properly on Windows XP, so until it 
does, there's nothing I can do.
Oops, had VS.NET not VS 6 in my PATH. It builds fine.

I've created a new patch based on the latest code and with Peter's last few
suggestions.
Attachment #46938 - Attachment is obsolete: true
Attachment #46940 - Attachment is obsolete: true
Attachment #47011 - Attachment is obsolete: true
Attachment #46929 - Attachment is obsolete: true
Attachment #47009 - Attachment is obsolete: true
Is it possible to implement some sensible defaults? I think currently *all*
settings are on "Scroll Document". 

I would suggest the following defaults:

no mod - scroll document
ALT    - Back/Forward
CTRL   - Text Size +/-
SHIFT  - Page up/down
nsbeta1- per ADT triage. This can still be checked in with drivers approval.
Keywords: nsbeta1nsbeta1-
*** Bug 138525 has been marked as a duplicate of this bug. ***
Hey, I'm a bit late with this idea, but what if the modifier key menu was not
"radio" but "checkbox list", so users could use double-bucky modifiers (like
shift+ctrl or ctrl-alt) as additional options?
Hmm, this all seems too complicated.  Do we really need to ask the user whether
to scroll by pixels/lines/pages/the system default?  You'd think that's an OS
preference, if anything; I shouldn't need to set the mouse wheel speed for
every application I use.

So if you forget about having 14 different ways to scroll, and figure that
if you're using the scrollwheel by itself you're scrolling, you could vastly
simplify this preference panel by just doing something like this:

+-- The mouse wheel should: ------------------------------------------+
|                                                                     |
| - Move back/forward through history: [ when I hold down option (v)] |
|                                                                     |
| - Change the text size: [   when I hold down option  (v)]           |
|                         [ x when I hold down control    ]           |
+-------------------------[   when I hold down shift      ]-----------+
                          [   never                       ]
Hmm. The OS preferences on my machine only allow you to scroll by X lines at a 
time, or one screen at a time, i.e.:

-----------------------------------------------
Roll the wheel one notch to scroll:

o The following number of lines at a time
     [ 3 ]
o One screen at a time
-----------------------------------------------

I guess the OS settings depend which mouse / driver / OS combo you have. I 
tend to agree we should just use the OS settings (assuming they're available) 
except for moving backwards and forwards. Changing the text size with the 
wheel mouse always seemed a bit dubious to me...

The only other comment I have is that that kind of "truncated sentence" UI you 
suggested (where part of the sentence is in the label and part of it in the 
control) usually doesn't translate well. At least we're discouraged from doing 
that kind of thing in Oracle.

To be honest, I'm kind of tired of trying to fix this UI. I'm starting to 
agree with mpt in comment 4... :)
Brian, you latest screenshot in comment #31 looks GREAT. How about submitting
the patch for that and get r= and sr=. Every day that goes buy is a day that
users don't understand/use this useful preference.
Brian: You're preaching to the choir: I've never used a scroll wheel for anything
other than scrolling, and I wouldn't blink an eye if you vaporized this panel.
(Do it, do it now!)  I figured if we had to have it, it might as well not suck.

My Wacom mouse (whose driver is intolerable) lets me choose between disabled,
/n/ lines per notch, one page per notch, custom keystrokes for each direction,
and even the option to reverse the wheel's direction.  And you can configure
it differently per application, including for the Wacom configuration app itself!

What Wacom does is an abomination.  Double-shame on us if we re-implement it,
for (1) copying a bad design, and (2) forcing the user to set the same controls
twice.  (Can you guess what happens if I set the mousewheel to scroll "by pages"
in the control panel, but "by 3 lines at a time" in the Mozilla prefs?)

Point about translations well taken.  The simplest solution is probably just
to move the verbs out of the popup:

| - Change the text size when I hold down: [   Option        ]        |
|                                          [ x Control       ]        |
+------------------------------------------[   Shift         ]--------+
                                           [   Never do this ]


Or give them checkboxes, if "never do this" in a popup with the modifiers
is awkward:

| [x] Change the text size when I hold down: [   Option        ]        |
|                                            [ x Control       ]        |
+--------------------------------------------[   Shift         ]--------+


(This has the added benefit of allowing you to just uncheck everything --
a fairly natural action -- to say "Just always #%^@! scroll, already!"
That's something that's lacking from the comment 31 screenshot.)

Though I must admit I'm now in the mpt camp: this prefs panel simply
shouldn't exist.
> Ken: "I've never used a scroll wheel for anything other than scrolling"

That's fine for you, but others use the scroll key for more than just one
purpose (e.g., I *regularly* use the CTRL+scroll to change the text zoom).

Also, the "modifiers" (ctrl, alt, shift) should be up front and fixed, not as
dropdown items. That is to avoid someone selecting a modifier twice, thus
causing a logic conflict.

PS. Anyone wanting to just scoll, no matter what modifier is/isn't pressed,
could simply set all dropdowns to "Scroll specified number of lines". ;)
I'd like to clear this bug; can we get a consensus? Please vote either yay or 
nay on the last patch / screenshot from comment #30 and comment #31. If the 
yays win, I'll check it works with the latest nightly and set about getting r= 
and sr=.
Nay.  You probably could guess that, so here's the why:

Ok, if people really need control-wheel to zoom, let's make control-wheel zoom.
That doesn't mean we need a preference panel for it.  There are keyboard
shortcuts for zooming, too, but we don't have a preference panel for changing them.
(If somebody goes and files a bug "all keyboard shortcuts should be remappable
through a prefs panel" now, I'll go hang myself.)

I'd much rather have control-wheel zoom everywhere than have Yet Another
Preference.  When Apple, Adobe, Microsoft, etc., want to make control, alt, shift,
do special things, they don't make the user decide what each one goes with: they
pick something reasonable and go with it.  Thanks to this, I can sit down in front
of any Adobe product on any computer in the world and know that option-drag means
"make a copy".

In fact, the _only_ defense I can see for this particular preference is something
like "Opera uses the modifier keys one way, and Internet Explorer uses the
modifier keys some other way, and we don't want to kill our half our (potential)
users' motor memory" (a laudable goal).

In which case, Mozilla should have exactly one mousewheel preference:

	| The mousewheel in Mozilla should use: [ Mozilla's defaults  ]
	|                                       [ Opera's behavior    ]
	|                                       [ Explorer's behavior ]
	| 
	| With this setting: Control-wheel will zoom in/out, and            
	|                    alt-wheel navigates through your history.    

(Or, better yet, if one of the other programs has a good convention,
use that, and don't even have a Mozilla-specific defaults.  Either way, we
can say we're making it easy for people to migrate to Mozilla.)

Allowing (forcing) you to configure each combination reminds me of mpt's
bug 103543 comment 5.  It just looks unprofessional.  Who'd ever set
"No modifiers" to "Zoom" or "Navigate history", anyway?  That's not a feature,
that's the sort of thing you do to your coworkers for April fool's day.
YAY - Make sensible defaults *and* let users customize to *their* tastes.
Wow, that really resolved the issue :/

OK, I'm signing out for now :)
Assignee: Brian.Duff → ben
Whiteboard: Patch nearly finished?! → In UI Hell
I'm new to this bug, but vot yes on the patch. Until I read this bug, I had no
idea I could use different modifiers for different tasks.
*** Bug 169415 has been marked as a duplicate of this bug. ***
Why not just change the current setup into a tab control?
The tab control you suggest is *much* better than what we have now. I prefer the
solution suggested in comment #4, comment #9, and (the screenshot in) comment #31.

The benefit is that the user can see all his settings at once.
Attachment #99653 - Flags: superreview?(bzbarsky)
Attachment #99653 - Flags: review?(ben)
Comment on attachment 99653 [details] [diff] [review]
Use a tab control

sr=me.
Attachment #99653 - Flags: superreview?(bzbarsky) → superreview+
Attachment #99653 - Flags: review?(bugs) → review?(caillon)
Attachment #99653 - Flags: review?(caillon) → review+
Attachment 99653 [details] [diff] checked in; up to plairo to decide if this is fixed.
Depends on: 169620
stupid bug aliases
No longer depends on: 169620
> Attachment 99653 [details] [diff] checked in; up to plairo to decide if this is fixed.

Thanks for the vote of confidence, but I think the "assignee" and r & sr are the
ones to decide this. I would like to be able to provide input, but cannot read
code. Where can I see the result of your patch? Could you attach a screenshot?
Aparently I had overseen the screenshot already attached to this bug, sorry.

Looking at the screenshot, I would have preferred if the UI from attachment
70984 [details]. That way, the user could *see* all settings at once. The latest
screenshot (attachment 99655 [details]) is only an slight improvement over the current
situation (now user can see tabs for the other mouse-wheel modifiers).

Therefore, my vote would have to go towards "it's not fixed yet", but it's not
up to me to decide. (sorry for renegging on my comment 50)

PS. If the UI from attachment 70984 [details] is used, I would suggest to try to eliminate
the word "with" from the three options to make the control key name quicker to
identify. This could be done by rewording the preference's title text:

+-- Mouse-wheel Behavior (when used with or without a modifyer key) -------+

by it_self: [Scroll page                         :^]  
              [ ]Use system d_efault [ ]Sm_ooth scrolling _Amount: [  ] lines

_Ctrl key:  [Change text size                    :^]

Al_t key:   [Go back/forward in browsing history :^]

_Shift key: [Scroll page                         :^]

I added "Smooth scrolling" because i think it's already in the code
(general.smoothScroll). This way, users can en-/disable it as desired (just a
suggestion).

There would also need to be enough (fixed) space between every option for the
"scroll page" options.
Please, please, please! Before closing this bug as fixed, take a look at bug
189786 . Even after this checkin, as the translation for the first string (above
the tabbed panel) is being cut, even the tabbed panel gets cut. This is the last
serious graphical glitch left for our translation (and I guess even for somebody
else's). 
Can we close down this bug as resolved/fixed?
Product: Browser → Seamonkey
Peter Lairo must have gotten accustomed to the way it works as there were no
more comments. I agree with Giacomo that this is fixed.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
My original bug description (1) and my comment 55 (2) both still stand. But
since I'm using Thunderbird now, it's you guys that have to live with the UI
bloat and less concise UI...

My recommendation: Decide on sensible defaults, trash the UI, put this pref into
about:config.

(1) "At a *MINIMUM*, both sets of options (alt, ctrl, etc AND the corresponding
functions) should be visible at ALL times."

(2) "it's not fixed yet"
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: