Closed
Bug 246719
Opened 19 years ago
Closed 19 years ago
Make link modifiers work consistently throughout Firefox
Categories
(Firefox :: General, enhancement)
Tracking
()
RESOLVED
FIXED
Firefox1.0beta
People
(Reporter: jruderman, Assigned: jruderman)
References
(Blocks 1 open bug)
Details
(Whiteboard: fixed-aviary1.0)
Attachments
(1 file, 2 obsolete files)
30.64 KB,
patch
|
bryner
:
review+
|
Details | Diff | Splinter Review |
I'm working on a patch that will make middle-click, alt, shift, ctrl, and ctrl+shift work on link-like controls throughout Firefox's UI. Right now, each of those modifiers works in some places but not in others. My patch will also make all link-like controls focus the content area as they load a URL.
Comment 1•19 years ago
|
||
Exactly what will change with this patch? What modifiers are used and where?
Assignee | ||
Comment 2•19 years ago
|
||
Ctrl new tab, selected Shift new window Ctrl+Shift new tab, in background Alt save You can swap Ctrl and Ctrl+shift by toggling the hidden pref browser.tabs.loadBookmarksInBackground (not browser.tabs.loadInBackground). Middle-clicking is the same as Ctrl+clicking (it opens a new tab) and it is subject to the shift modifier and pref in the same way. When I'm done, hopefully the modifiers and middle-clicking will work in the following places, with a few exceptions: Moz# Fx# 72361 236864 bookmarks menu (ctrl+shift opened a new window) 89922 bookmarks in sidebar (ctrl+shift opened a new window) history sidebar (ctrl+shift opened a new window) 93034 throbber 214816 go menu: sites 224132 "view image", "view background image" context menu items help > release notes middle-click paste (Linux) items in the back and forward menus 75731 202819 back, forward buttons (without copying history) go menu: back, forward 164008 address bar history address bar autocomplete 198028 go button dragging to address bar 233411 dragging to search bar "Search Web for ..." context menu item enter in search bar (parity-GoogleToolbarForIE) home button (at least when there's only one home page) So far, I have the first ten working (through the break in the list), but with some bugs: middle-clicking some things doesn't work unless you left-click them first (due to bug 246720), and the back and forward buttons always appear enabled. I'm still thinking about whether to do the reload button (Ctrl+reload would open the current page in a new tab). Shift+reload has a special meaning dating back to Netscape 4, which I don't want to change.
Comment 3•19 years ago
|
||
(In reply to comment #2) > Ctrl new tab, selected > Shift new window > Ctrl+Shift new tab, in background > Alt save The default for Firefox is to load tabs in the background, so Ctrl should not spawn a new selected tab, and Ctrl+Shift should not spawn a background tab; it should be the other way around. Maybe that's what you meant?
Assignee | ||
Comment 4•19 years ago
|
||
I'm going for consistency with bookmarks (bug 236864). I does make sense in a way: the main reason anyone wants tab to load in the background is so opening links from web pages doesn't interfere with reading or clicking more links. When you're opening links from other places, that reason doesn't make sense. Anyway, once my patch is in, it will be easier to change than it is now :)
Comment 5•19 years ago
|
||
How about form submission buttons? There is, as far as I know, no way to see the results of submitting a form in a new tab while keeping the form visible.
Assignee | ||
Comment 6•19 years ago
|
||
I'm not going to fix form submission buttons because that would require backend work. See bug 17754.
Comment 7•19 years ago
|
||
(In reply to comment #2) > home button (at least when there's only one home page) Bug 232172 already covers that. My patch for that also works with multiple home pages. It doesn't respect the pref browser.tabs.loadBookmarksInBackground yet though.
Assignee | ||
Comment 8•19 years ago
|
||
This patch: * Makes middle-click, shift+click, ctrl+click, and ctrl+shift+click work consistently in many places in Firefox's UI. * Puts focus in the content area after you left-click Go menu items, etc. * Makes all UI links follow the hidden pref "open bookmarks in background". * Makes mailto: bookmarks work. (Before, they said "mailto: is not a registered protocol. I don't know why.) It makes the modifiers work in: 72361 236864 bookmarks menu (ctrl+shift opened a new window) 89922 bookmarks in sidebar (ctrl+shift opened a new window) history sidebar (ctrl+shift opened a new window) 93034 throbber 214816 go menu: sites 224132 "view image", "view background image" context menu items help > release notes middle-click paste (Linux) items in the back and forward menus 75731 202819 back, forward buttons (without copying history) go menu: back, forward This patch needs to be tested on Mac and Linux to make sure I got the modifiers right on those platforms. On Linux, the "middle-click paste to load URL" feature needs to be tested with various things in the clipboard and with various modifiers.
Assignee | ||
Updated•19 years ago
|
Assignee | ||
Comment 9•19 years ago
|
||
Improvements from previous patch: * Now includes a port of the patch from bug 217090, since I needed that to test middlemouse.contentLoadURL on Windows. This change only affects non-Linux users who have middlemouse.contentLoadURL set to true. * No longer breaks middle click paste to load URLs (typo fix). * Slightly better comments.
Assignee | ||
Updated•19 years ago
|
Attachment #150991 -
Attachment is obsolete: true
Assignee | ||
Updated•19 years ago
|
Attachment #151042 -
Flags: review?(bryner)
Comment 10•19 years ago
|
||
I guess an "onmiddleclick" event handler would be handy here.
Comment 11•19 years ago
|
||
Comment on attachment 151042 [details] [diff] [review] better patch >--- base/content/browser-context.inc 10 Apr 2004 05:04:09 -0000 1.4 >+++ base/content/browser-context.inc 17 Jun 2004 19:26:05 -0000 >@@ -132,7 +133,8 @@ > <menuitem id="context-viewbgimage" > label="&viewBGImageCmd.label;" > accesskey="&viewBGImageCmd.accesskey;" >- oncommand="gContextMenu.viewBGImage();"/> >+ oncommand="gContextMenu.viewBGImage(event);" >+ onclick="if(event.button==1) { eval(this.getAttribute('oncommand')); event.target.parentNode.hidePopup(); }"/> > <menuitem id="context-undo" > label="&undoCmd.label;" > accesskey="&undoCmd.accesskey;" >--- base/content/browser-menubar.inc 7 Jun 2004 08:16:53 -0000 1.24 >+++ base/content/browser-menubar.inc 17 Jun 2004 19:26:05 -0000 >@@ -268,10 +268,30 @@ > </menupopup> > </menu> > >- <menu label="&goMenu.label;" accesskey="&goMenu.accesskey;" oncommand="var url = event.target.getAttribute('statustext'); if (url) openTopWin(url);"> >+ <menu label="&goMenu.label;" accesskey="&goMenu.accesskey;" >+ oncommand="var url = event.target.getAttribute('statustext'); if (url) openUILink(url, event, false, true);" >+ onclick="if(event.button==1) { event.target.parentNode.hidePopup(); eval(this.getAttribute('oncommand')); }"> >+ Just for sanity, try to be consistent about the order of running oncommand and hiding the popup, unless there's a reason for the difference. Maybe this should all be factored out into a function, since it's repeated so much? Looks good to me other than that.
Attachment #151042 -
Flags: review?(bryner) → review+
Assignee | ||
Comment 12•19 years ago
|
||
I added a function "checkForMiddleClick" to utilityOverlay.js.
Attachment #151042 -
Attachment is obsolete: true
Assignee | ||
Updated•19 years ago
|
Attachment #151194 -
Flags: review?(bryner)
Assignee | ||
Comment 13•19 years ago
|
||
aebrahim tested the patch on Linux for me. Now I know that it works correctly on Windows and Linux :)
Comment 14•19 years ago
|
||
Comment on attachment 151194 [details] [diff] [review] patch addressing bryner's review comments Looks good.
Attachment #151194 -
Flags: review?(bryner) → review+
Assignee | ||
Comment 15•19 years ago
|
||
Fix checked in 2004-06-23 15:54 PST.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 16•19 years ago
|
||
Patch checked in on AVIARY_1_0_20040515_BRANCH too. I had to apply the last hunk (removing the old version of OpenURL in history.js) manually; I don't know why.
Whiteboard: fixed-aviary1.0
Comment 17•19 years ago
|
||
How about modifiers on Javascript links and such? Is it possible to detect link.open() in Javascript and apply the link modifier in such case? If it works, then pages such as Hotmail will work flawlessly.
Assignee | ||
Comment 18•19 years ago
|
||
Cheng: that's bug 55696 or bug 138198.
Comment 19•19 years ago
|
||
*** Bug 250086 has been marked as a duplicate of this bug. ***
Assignee | ||
Updated•19 years ago
|
Target Milestone: --- → Firefox1.0beta
Comment 20•19 years ago
|
||
*** Bug 251189 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 21•19 years ago
|
||
*** Bug 255299 has been marked as a duplicate of this bug. ***
Comment 22•19 years ago
|
||
What about URL bar dropdown, Go button, URL bar ctrl+enter and search bar ctrl+click (bug 198028, bug 64008, bug 162119 and ?)? Also, middle-click on bookmark doesn't respect open-in-the-background pref.
Comment 23•19 years ago
|
||
Did, at any point, a checkin from the bug make ctrl-click/middle-click on reload open it in a new tab? This was working for me at one point, I just don't recall if it was thanks to an extension. If it was innate to Firefox, it has recently regressed. Please bring it back! No use in having a middle click on that button do absolutely nothing, and I found reloading the current page in a new tab often very useful. ("Compare this old version of this page to the current version" great for news articles, web development, network monitors... anything that changes).
Assignee | ||
Comment 24•19 years ago
|
||
> What about URL bar dropdown, Go button, URL bar ctrl+enter and search bar > ctrl+click (bug 198028, bug 64008, bug 162119 and ?)? I skipped things related to the address and search field because they're weird (alt instead of ctrl for new tab). File a bug :) > Also, middle-click on bookmark doesn't respect open-in-the-background pref. The pref for bookmarks is separate from the pref for links. This will be more clear in Firefox 1.0 Preview Release, and you'll be able to toggle both prefs. > Did, at any point, a checkin from the bug make ctrl-click/middle-click on > reload open it in a new tab? No. That would be trickier to implement because it would require getting a new version of the page, possibly copying POSTDATA, etc. File a bug :)
Comment 25•19 years ago
|
||
I know this bug is closed, but why not swap the SHIFT and ALT behaviours? SHIFT-click for saving has been the behaviour for ages. Changing this for ALT can be counter intuitive for many users.
Assignee | ||
Comment 26•19 years ago
|
||
*** Bug 261164 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 27•18 years ago
|
||
See also: bug 263942, bug 279687.
Comment 28•17 years ago
|
||
Comment on attachment 151194 [details] [diff] [review] patch addressing bryner's review comments >+function whereToOpenLink( e, ignoreButton, ignoreAlt ) >+{ >+ if (e == null) >+ e = { shiftKey:false, ctrlKey:false, metaKey:false, altKey:false, button:0 }; >+ >+ var shift = e.shiftKey; >+ var ctrl = e.ctrlKey; >+ var meta = e.metaKey; >+ var alt = e.altKey && !ignoreAlt; >+ >+ // ignoreButton allows "middle-click paste" to use function without always opening in a new window. >+ var middle = !ignoreButton && e.button == 1; >+ var middleUsesTabs = getBoolPref("browser.tabs.opentabfor.middleclick", true); >- getBrowserTargetFromEvent: function (aEvent) >- { >- var button = (aEvent.type == "command" || aEvent.type == "keypress") ? 0 :aEvent.button; getBrowserTargetFromEvent used to check that the event has a button. whereToOpenLink does not...
Assignee | ||
Comment 29•17 years ago
|
||
Does that cause problems, such as incorrect behavior or javascript strict warnings?
You need to log in
before you can comment on or make changes to this bug.
Description
•