Closed Bug 2028 Opened 26 years ago Closed 26 years ago

[PP] linux text frames don't highlight selected text

Categories

(Core Graveyard :: GFX, defect, P1)

x86
Linux

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: akkzilla, Assigned: pavlov)

Details

On Linux, selected text isn't drawn as highlighted. The selection code in nsFrame::HandleDrag eventually calls ForceDrawFrame in nsViewManager.cpp; on Windows this eventually redraws the text frame with part of it highlighted, but on linux nothing is highlighted. Marking P1 because this is getting in the way of writing the new selection code.
This worked under xpviewer. I do not know why this is broken under viewer.
Severity: normal → critical
buming up to critical
Assignee: michaelp → ramiro
Partial fix is on the way ...
Assignee: ramiro → pavlov
Severity: critical → major
Partial fix checked in. Now the remaining problem is that you have to force a redraw to see the highlighting, one of the standard widget update problems. Specifically, if I'm reading this right, from ForceDrawFrame in layout/html/base/src/nsFrame.cpp, we call UpdateView, which eventually calls nsViewManager::UpdateDirtyViews, which jumps into nsWidget::Invalidate, which doesn't actually repaint because it doesn't think the chosen rect overlaps the current widget (or something). Reassigning to pavlov and cc'ing bliz because I think they're working on something closely related to this.
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
after waving my magic wand, it now works.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
It's much better now! The highlighting usually shows up right away, without having to force a redraw. Unfortunately, something else got broken along the line, and sometimes there's no highlighting at all; for example, if you try selecting in the title or the first non-title text block of example 0, no highlighting shows up. I'm taking a look to try to figure out what broke.
Turns out that it's the same old thing; highlighting does happen if I force a redraw, but not in real time. If I drag across frames (e.g. from a plain word to a bold word) I see it in real time, but if I drag inside a single frame with no text attributes, like the "This is a basic paragraph with" in example 0, I don't see it until I force a redraw.
Status: REOPENED → RESOLVED
Closed: 26 years ago26 years ago
Resolution: --- → FIXED
I talked to Pavlov about this; turns out the changes depended on some fixes which will come out in the next gtk. Since that isn't available yet, I've temporarily reverted the affected files with #ifdef HAVE_GTK_BETTER_THAN_1_1_13, which can easily be found and removed when the fixed gtk becomes available. The two files affected are nsWidget.cpp and nsWindow.cpp in widget/src/gtk.
Status: RESOLVED → VERIFIED
verifief in 1/26 build selection seems to work fine now.
Inserting Milestone info.
Status: NEW → RESOLVED
Closed: 26 years ago26 years ago
Something wacky in Bugzilla going on...setting this back to Verified/Fixed on 01/26/99.
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.