Closed
Bug 163594
Opened 22 years ago
Closed 22 years ago
HR is highlighted by single click in browser (horizontal ruler) (select)
Categories
(Core :: DOM: Selection, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: skamio, Assigned: marc.loiselle)
References
(Depends on 1 open bug)
Details
(Keywords: regression)
Attachments
(2 files, 3 obsolete files)
(deleted),
patch
|
roc
:
review+
roc
:
superreview+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
Details | Diff | Splinter Review |
We can select HR in browser by single-click.
In editor, this behavior is ok.
But in browser it is strange.
Probably, this bug is the effect of Bug 159207.
It seems natural in UI if we can select HR by *double-click* like a word.
I confirmed on trunk build 2002081908/Linux.
If it's happening in the browser, it's not an editor bug.
--> mjudge (selection)
I know that mjudge made changes that moved hr selection under control of the
text selection display flag which is set in the browser.
Assignee: kin → mjudge
Component: Editor: Core → Selection
Comment 3•22 years ago
|
||
*** Bug 167323 has been marked as a duplicate of this bug. ***
this is a regression. I am running build 20020721 on Windows XP and the said
behaviour doesn't seem to reproduce.
Comment 5•22 years ago
|
||
from Asa in #mozillazine, we isolted the issue as bug occur in build 20020827
and not 20020824.
Comment 6•22 years ago
|
||
Possible culprit: bug 4302 (modified selection code). CC'ing people that
produced the patch.
Comment 7•22 years ago
|
||
> from Asa in #mozillazine, we isolted the issue as bug occur in build 20020827
> and not 20020824.
sorry, no. regression between 2002080508 and 2002080708. bug 159207 looks like
a better culprit
Keywords: regression
Updated•22 years ago
|
Keywords: mozilla1.3
Comment 8•22 years ago
|
||
This one is real annoying. Just try to select text at a news site or Mozillazine
and it crops up.
Flags: blocking1.3a?
Updated•22 years ago
|
Flags: blocking1.3a? → blocking1.3a-
*** Bug 185910 has been marked as a duplicate of this bug. ***
Comment 10•22 years ago
|
||
In answer to Comment #4, the bug seem to be reproducable every time in WinXP as
well.
Anyone who have the edit permission... Please add the 'horizontal ruler' to the
summary textbox, starting after 'HR' and before 'is highlighted by single click
in browser'. This will yield a better search result in bugzilla search. I
never found this bug when searching bugzilla and ended up filing on a bug that
end up as a duplicate bug. Thanks.....
Updated•22 years ago
|
Summary: HR is highlighted by single click in browser → HR is highlighted by single click in browser (horizontal ruler) (select)
Updated•22 years ago
|
Flags: blocking1.3b? → blocking1.3b-
Assignee | ||
Comment 12•22 years ago
|
||
check for DISPLAY_FRAMES not DISPLAY_TEXT during paint of HR
Assignee | ||
Updated•22 years ago
|
Attachment #111572 -
Flags: superreview?(mjudge)
Attachment #111572 -
Flags: review?(cmanske)
Comment 13•22 years ago
|
||
The hr hiliting in the browser was introduced by mjudge in bug 159207. I asked
him to make the change/restore the use of DISPLAY_FRAMES, which marcl does in
this patch, in bug 159207 comment 34, but in comment 35 he said he wanted to
keep that change.
Also note that all this change does is keep the HR from drawing hilited when it
is selected, that is, it still gets selected when you click on it, there just
isn't any visual feedback, which is how it worked in the moz1.0 timeframe.
Note that in IE, hrules get hilited when they are in a selected range, but if
you click on them, they are not hilited.
If people really want the old behavior, then I'm ok with this change
(r+sr=kin@netscape.com), I just wanted everyone to be aware that this merely
changes the visual aspect of what gets selected when you click on an HR.
Comment 14•22 years ago
|
||
I think it will be fine if a single click still selects the HR, as long as it
doesn't visually highlight the HR.
Comment 15•22 years ago
|
||
I think it's very odd not to show that there is a selection when there is one.
Comment 16•22 years ago
|
||
Then don't select HR on a single click. Either that or don't show the selection.
Selecting an HR with a single click and highlighting it is not good, it is very
distracting and annoying.
Comment 17•22 years ago
|
||
Sorry. All I mean is that for someone like me, who does a lot of clicking within
web pages to select text, this bug is annoying.
Couldn't we allow a single click on an HR to do nothing, but have a double-click
select the HR?
Assignee | ||
Comment 18•22 years ago
|
||
Can someone checkin the r+sr reviewed patch?
Assignee | ||
Updated•22 years ago
|
Attachment #111572 -
Flags: approval1.3b?
Comment 19•22 years ago
|
||
The attached patch has not been reviewed or super-reviewed. Only requests for
reviews have happened. Of those requests, neither is a super-reviewer. One
person is on extended vacation. The other person is on medical leave.
One question about this patch, has it been tested in composer? In composer, if
I click on the HR, I expect to see a box around it (or some indication that I
can delete it). Is this the case?
Assignee | ||
Comment 20•22 years ago
|
||
I assumed that r+sr=kin in comment 13 was sufficient.
Yes, the patch was tested with composer. The behavior in composer remains
unchanged.
I agree with comment #17. It is good to highlight the HR when it is selected,
but it should require a double-click to be selected.
Comment 22•22 years ago
|
||
Comment on attachment 111572 [details] [diff] [review]
Patch that corrects the problem
please don't request approval for patches that haven't been reviewed. thanks.
Attachment #111572 -
Flags: approval1.3b?
Comment 23•22 years ago
|
||
I haven't taken a look at the C Programming in Mozilla to know if this will be
affected or not because I'm not familiar with lengthly C Programming. I did
take a look at the patch. So, I'll summarize it all.
Suppose there is text before and after the HR. If the user drag the mouse
across the text and goes over the HR and continue on dragging the text. Will
the HR continue to be highlighted without a problem? This is a feature that
should be working without a problem. Or the purpose of the HR lighlighting will
be defeated. Can someone check this out with the patch?? Is it a problem??
Comment 24•22 years ago
|
||
This is an annoying problem for the many users who click on web pages and select
text while browsing. It should be fixed for 1.4 alpha.
Flags: blocking1.4a?
Comment 25•22 years ago
|
||
See also bug 12764. One could argue that this is a dupe of it.
Comment 26•22 years ago
|
||
If this bug is actually a duplicate of bug #12764 when how does this bug #159207
as shown in comment #13 of this bug report...
Assignee | ||
Updated•22 years ago
|
Attachment #111572 -
Attachment is obsolete: true
Assignee | ||
Comment 27•22 years ago
|
||
Don't select an HR when clicking on it. Behavior in editor mode remains
unchanged.
Assignee | ||
Updated•22 years ago
|
Attachment #117161 -
Flags: superreview?(bzbarsky)
Attachment #117161 -
Flags: review?(bryner)
Updated•22 years ago
|
Attachment #111572 -
Flags: superreview?(mjudge)
Attachment #111572 -
Flags: review?(cmanske)
Comment 28•22 years ago
|
||
Comment on attachment 117161 [details] [diff] [review]
patch v2
I'm assuming that this functions correctly (doesn't select on single click,
clearly, but _does_ select on double click).
That said, I realize that you're just following what the existing code does,
but I don't like what the existing code does (not to mention that the existing
code for <area> is just plain incorrect).
Perhaps something more like:
if (content->IsContentOfType(nsIContent::eHTML)) {
nsCOMPtr<nsIAtom> tag;
content->GetTag(*getter_AddRefs(tag));
// Check tag here, call GetAttr as needed to get attributes (eg both
nsHTMLAtoms::area and nsHTMLAtoms::a will use the nsHTMLAtoms::href attribute).
}
Make sense? The idea is to avoid expensive QI misses and replace them with the
much cheaper pointer comparisons that atom equality comparison turns into.
Attachment #117161 -
Flags: superreview?(bzbarsky) → superreview-
Comment 29•22 years ago
|
||
To Marc, since he's the one working on this. Sorry to make you clean up this
bit of code, but _someone_ has to do it. Plus, you'll be fixing two bugs with
one stone (the <area> thing).
Assignee: mjudge → mloiselle
Assignee | ||
Comment 30•22 years ago
|
||
Double-click on HR doesn't select. I could make the changes to do that but in
my opinion selecting a single HR does not have very much value in Browser. You
could drag over it to select if necessary.
Comment 31•22 years ago
|
||
OK. I'm fine with that if the selection people (brade? mjudge?) are.
Comment 32•22 years ago
|
||
It was broken before when not selecting hrules at all. Now it is fixed so its
called a regression. Honestly I cant see that there are THAT many hrules on
webpages that this warrants being called a big problem. Given the few number of
webpages that even use this tag any more, given that the square area of each
webpage relative to an hrule and the few amount of people that could
accidentally click on an hrule while trying to navigate and be that upset, I
dont see why we need to special case hrules. We may not behave completely like
I.E. on this issue. So what. We are clicking on something I liken to an image.
When we click on images we select them.
That being said I really dont care about this that much. As far as the patch
goes, the LAST thing we want is for people who wish to start a selection to
accidentally click on an hrule and have the mousedown thrown out. Instead you
must override GetContentAndOffsetsFromPoint for HRules. Make
nsHRule::GetContentAndOffsetsFromPoint and have it see where they clicked and
stick a collapsed selection in front of or behind (depending on geometry of
click). Right now nsHRule uses the default behaviour of all other frames in
nsFrame::GetContentAndOffsetsFromPoint which, if the point is contained within
the frames rectangle, will extend the selection end offset to +1 relative to
beginning offset. Putting this into HRuleFrame will be much better as it moves
the special case to inheiritance inside the nsHRFrame.cpp file instead of in
some random place in nsFrame::HandlePress.
Oh one more thing, try using diff -u10 to get more context on a patch. it was
hard for me initially to tell what method the patch was changing.
Status: NEW → ASSIGNED
> Honestly I cant see that there are THAT many hrules on
> webpages that this warrants being called a big problem.
I don't think this is an important bug. However, it is still a bug and it should
still be fixed if we have someone volunteering to fix it.
> When we click on images we select them.
Actually we don't, and that's good.
Comment 34•22 years ago
|
||
There are a lot of hrules on sites that I frequent. Mainly news sites and web
logs. I will be pleased as punch when this gets fixed, believe me. Go, Marc, go!
Assignee | ||
Comment 35•22 years ago
|
||
Implemented mjudge's suggestion to override GetContentAndOffsetsFromPoint in
nsHRuleFrame.cpp
Attachment #117161 -
Attachment is obsolete: true
Assignee | ||
Updated•22 years ago
|
Attachment #117349 -
Flags: superreview?(bzbarsky)
Attachment #117349 -
Flags: review?(mjudge)
Assignee | ||
Updated•22 years ago
|
Attachment #117161 -
Flags: superreview-
Attachment #117161 -
Flags: review?(bryner)
Comment 36•22 years ago
|
||
I'm not really familiar with the code in question, and I'm sorta in the middle
of a real-life time crunch. I will not be able to review this patch for at
least a few days; if I don't get to it by Friday, then not for another week
after that.
Updated•22 years ago
|
Flags: blocking1.4a? → blocking1.4a-
Assignee | ||
Updated•22 years ago
|
Attachment #117349 -
Flags: superreview?(bzbarsky) → superreview?(bryner)
Assignee | ||
Updated•22 years ago
|
Attachment #117349 -
Flags: superreview?(mjudge)
Attachment #117349 -
Flags: superreview?(bryner)
Attachment #117349 -
Flags: review?(mjudge)
Attachment #117349 -
Flags: review?(dbaron)
Comment 37•22 years ago
|
||
Comment on attachment 117349 [details] [diff] [review]
Patch v3
mjudge is not an sr...
Attachment #117349 -
Flags: superreview?(mjudge)
Attachment #117349 -
Flags: superreview?(dbaron)
Attachment #117349 -
Flags: review?(mjudge)
Attachment #117349 -
Flags: review?(dbaron)
Assignee | ||
Updated•22 years ago
|
Attachment #117349 -
Flags: review?(mjudge) → review?(roc+moz)
Comment on attachment 117349 [details] [diff] [review]
Patch v3
A couple of nits:
> nsIPresContext* aCX,
This is usually called "aPresContext"
> nsresult result
should be "rv"
> if (*aNewContent){
make it "if (!*aNewContent) return rv;"
> //temp to hold old value in case of failure
Why do you have to do this? Are there callers who rely on the value not
changing in case of failure?
+ if (NS_FAILED(result) || contentOffset < 0)
+ {
+ return (result?result:NS_ERROR_FAILURE);
+ }
if (NS_FAILED(rv)) return rv;
if (contentOffset < 0) return NS_ERROR_FAILURE;
Fix those and answer the question, then you're good to go.
Attachment #117349 -
Flags: superreview?(dbaron)
Attachment #117349 -
Flags: superreview+
Attachment #117349 -
Flags: review?(roc+moz)
Attachment #117349 -
Flags: review+
Assignee | ||
Comment 39•22 years ago
|
||
Regarding the temp, most of the code was copied from
nsFrame::GetContentAndOffsetsFromPoint() which is more general. My testing
determined that the temp is not required in
nsHRFrame::GetContentAndOffsetsFromPoint() so I removed it.
Robert, I addressed your nits. r/sr?
Attachment #117349 -
Attachment is obsolete: true
Attachment #119226 -
Flags: superreview+
Attachment #119226 -
Flags: review+
Assignee | ||
Comment 40•22 years ago
|
||
Can someone check-in the patch? I don't have cvs access.
Comment 41•22 years ago
|
||
checked in:
Checking in nsHRFrame.cpp;
/cvsroot/mozilla/layout/html/base/src/nsHRFrame.cpp,v <-- nsHRFrame.cpp
new revision: 1.63; previous revision: 1.62
done
however, I had to fix cvs conflicts, I'll attach the patch as I checked it in
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Comment 42•22 years ago
|
||
Comment 43•22 years ago
|
||
YES! Thank you, thank you, thank you! You guys rock.
You need to log in
before you can comment on or make changes to this bug.
Description
•