Closed
Bug 861332
Opened 11 years ago
Closed 11 years ago
OSX: window resizer is not there anymore
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
FIXED
mozilla24
People
(Reporter: mehmet.sahin, Assigned: mstange)
References
Details
(Keywords: regression)
Attachments
(2 files)
21.76 KB,
image/png
|
Details | |
3.24 KB,
patch
|
mattwoodrow
:
review+
|
Details | Diff | Splinter Review |
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:23.0) Gecko/20130412 Firefox/23.0 Build ID: 20130412030828 Steps to reproduce: 1.) Run Firefox Stable or Nightly on OSX 10.6.8 2.) Take a look at the bottom right of the window Actual results: The window resizer is not there anymore. (Please see the attache screenshot). Expected results: There have to be a window resizer.
Comment 1•11 years ago
|
||
Cc'ing one of our local Cocoa hackers. Hey Josiah, any idea what might be happening here?
Flags: needinfo?(josiah)
Comment 2•11 years ago
|
||
Interesting. The square is actually shown, and it functions properly, but the image seems to be missing. AFAIK, we draw the scrollbars ourselves, so for some reason the image is not getting added anymore. At the moment I am not sure why, I will do some investigation. The white square is exactly like what happens on Lion and Mountain Lion machines, so I am wondering if the icon got removed somehow because it think we are running on Snow Leopard.
Flags: needinfo?(josiah)
Updated•11 years ago
|
Status: UNCONFIRMED → NEW
Ever confirmed: true
Assignee | ||
Comment 3•11 years ago
|
||
This was broken by bug 829886 and some, as far as I can tell, misguided calls to GetClientBounds in gfx.
Blocks: 829886
Component: Theme → Graphics: Layers
Keywords: regression
Product: Firefox → Core
Version: 23 Branch → Trunk
Assignee | ||
Comment 4•11 years ago
|
||
I think this affects all versions from 20 to 23.
status-firefox20:
--- → affected
status-firefox21:
--- → affected
status-firefox22:
--- → affected
status-firefox23:
--- → affected
Assignee | ||
Comment 5•11 years ago
|
||
The bug happens because DrawWindowOverlay (where the resizer is drawn) uses the rect that's passed to DrawWindowOverlay in order to arrive at the resizer draw position. However, this rect comes from directly GetClientBounds, and for root widgets that's in screen coordinates. I think the correct fix is to simply ignore rect.x/.y or set it to 0. That's is what most of the callers of GetClientBounds in gfx/layers/ do. I've audited all of them and fixed those that didn't ignore rect.x/.y.
Assignee | ||
Comment 6•11 years ago
|
||
Comment on attachment 746897 [details] [diff] [review] v1 Hey Matt, do you want to review this patch?
Attachment #746897 -
Flags: review?(matt.woodrow)
Comment 7•11 years ago
|
||
Could we just instead add a new nsIWidget function that returns the client bounds relative to the widget itself (GetClientBoundsRelativeToSelf or similar), or maybe one that returns the client size. It looks ugly to have to 0 out the x/y values for all callers, and I'm worried that we'll add more callers in the future that forget to do this.
Updated•11 years ago
|
Attachment #746897 -
Flags: review?(matt.woodrow)
Attachment #746897 -
Flags: review?(bas)
Attachment #746897 -
Flags: review+
Assignee | ||
Comment 8•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/b7098b685633
Comment 9•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/b7098b685633
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla24
You need to log in
before you can comment on or make changes to this bug.
Description
•