Closed Bug 282812 Opened 20 years ago Closed 19 years ago

Combobox (select) dropdown menu in wrong position with closed toolbar

Categories

(Core Graveyard :: GFX: Gtk, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: MatsPalmgren_bugz, Assigned: roc)

References

Details

(Keywords: regression, testcase)

Attachments

(4 files, 1 obsolete file)

Combobox (select) dropdown menu in wrong position with closed toolbar.

STEPS TO REPRODUCE:
1. load attached testcase
2. click on the "grip" in the toolbar containing Back/Forward buttons etc.
   so that it is collapsed (see screenshot).
3. click on the combobox

ACTUAL RESULTS:
see screenshot.
(After resizing the window it is positioned correctly again.)

PLATFORMS and BUILDS TESTED:
Bug occurs in 2005-02-17-12 trunk Linux (GTK1)
Bug occurs in Mozilla 1.8a5 Linux (GTK1)
Bug does NOT occur in Mozilla 1.8a4 Linux (GTK1)
Bug does NOT occur in any GTK2 build that I tested.
Attached file Testcase
Attached image Screenshot #1
Attached image Screenshot #2
In fact, this regressed between 2004-10-11-08 and 2004-10-12-07.  Almost
certainly fallout from bug 238493.
If I don't cache screen positions in GTK1's nsWindow, the bug goes away.

I poked at this for a bit, and I can't tell why that's going on.  The only time
I see us hitting the cached values for a popup widget is when we're checking
whether the click was inside the combobox's list.  The code in Move() that's
conditioned on |mParent && mWindowType == eWindowType_popup| is not hit, of
course (since the popup has no mParent).

So I'm really somewhat at a loss as to how the position cache screws us up
here...  Robert, any idea?
Requesting blocking.  This is making bugzilla pretty painful to use, actually...
Flags: blocking1.8b2?
In a nutshell, the problem is that widgets in the content window aren't hooked
up to the widget tree, so we never invalidate the position cache of the content
window widgets when the outer window moves.
Attached patch fix (obsolete) — Splinter Review
This is pretty grotesque, but it works. We basically remember the non-hooked-up
relationship and use it as an extra path to invalidate the cached position.
Attachment #178437 - Flags: superreview?(blizzard)
Attachment #178437 - Flags: review?(blizzard)
Blocks: 287993
No longer blocks: 287993
*** Bug 287993 has been marked as a duplicate of this bug. ***
Comment on attachment 178437 [details] [diff] [review]
fix

this patch doesn't fix the bug for me
Flags: blocking1.8b3?
Flags: blocking1.8b2?
Flags: blocking1.8b2-
Attached patch fixSplinter Review
You're right. That one didn't work and I'm not sure why I thought it did.
Perhaps something changed between when I first tested it and when you tested
it.

This one works on today's trunk and it's probably a better approach anyway.
Assignee: blizzard → roc
Attachment #178437 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #186274 - Flags: superreview?(blizzard)
Attachment #186274 - Flags: review?(blizzard)
Attachment #178437 - Flags: superreview?(blizzard)
Attachment #178437 - Flags: review?(blizzard)
Comment on attachment 186274 [details] [diff] [review]
fix

This feels pretty hackish to me, but I'll bet it will work.

Did you test this with child plugin windows?
Attachment #186274 - Flags: superreview?(blizzard)
Attachment #186274 - Flags: superreview+
Attachment #186274 - Flags: review?(blizzard)
Attachment #186274 - Flags: review+
Seems to be OK with the null plugin.
Attachment #186274 - Flags: approval1.8b3? → approval1.8b3+
checked in
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Flags: blocking1.8b3?
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: