Commit Graph

350 Commits

Author SHA1 Message Date
Nicholas Cameron
b9c7de3bfd Bug 755078 - Disable mask layers on Android. r=roc 2012-05-17 10:30:10 +12:00
Robert O'Callahan
91cae0fac8 Bug 754556. Ensure that setting scroll positions in CSS pixels doesn't unexpectedly move the scroll position, especially not in the wrong direction. r=matspal
If the current scroll position is fractional, e.g. y=N.4 CSS pixels, and something tries to read the
position in CSS pixels and scroll to that position (e.g. calling window.scrollTo(0, rootElem.scrollTop),
or equivalently window.scrollBy(0, 0)), it can actually end up scrolling backwards. So create a new
method nsIScrollableFrame::ScrollToCSSPixels which ensures that scrolling to a CSS pixel offset tries to
preserve the current fractional scroll position if that's possible, and if that's not possible at least does
not allow the scroll position to move in the wrong direction.
2012-05-15 17:58:09 +12:00
Robert O'Callahan
cc4c60522a Bug 681192. Part 12: more fixes to remove unnecessary rounding to pixels. r=matspal
--HG--
extra : rebase_source : 39f2c0ef3220b3f0d4f6bc2564a86daa2112dc3b
2012-05-10 17:24:20 +12:00
Robert O'Callahan
28e494af4f Bug 681192. Part 11: Don't snap scrollrange endpoints to device pixels anymore. r=matspal
--HG--
extra : rebase_source : a4ad5072fbb1a9e1e8d0fcf31268fee8812be41e
2012-05-10 17:24:20 +12:00
Robert O'Callahan
41b38a3c31 Bug 681192. Part 8: Use a generous allowed range when scrolling in CurPosAttributeChanged. r=matspal
There was a subtle reftest failure on Mac in RTL text-overflow tests.
I tracked it down to RTL overflow:auto areas being automatically scrolled by a subpixel amount.
This was because we try to set scrollbar "curpos" attributes to an integer number of CSS pixels representing
the scroll amount, relative to the top-left of GetScrolledRect, which is a noninteger number of CSS pixels
in this case. Then in ReflowFinished() we scroll to the saved curpos values plus the top-left of GetScrolledRect.
This patch fixes the problem by making CurPosAttributeChanged pass an allowed scroll range to
ScrollToWithOrigin. We allow any scroll destination that, when rounded to CSS pixels, would give the same
value as "curpos".
This fixes the bug, ensuring that ReflowFinished's call to CurPosAttributeChanged will not normally need
to scroll because the current position will be in the acceptable range. Also, it means that code that
scrolls by setting the "curpos" attribute will be optimized to try to hit a layer pixel boundary.

--HG--
extra : rebase_source : 3a768883feee4ff2b88fe3c729ea1058e911f2ea
2012-05-10 17:24:19 +12:00
Oleg Romashin
5120270d4b Bug 681192. Part 2: Make nsIScrollableFrame::ScrollBy automatically set a generous allowed destination range. r=roc
--HG--
extra : rebase_source : 392359b325ca0435031e8f31a47154a82943c2b4
2012-02-07 12:20:57 -08:00
Oleg Romashin
14a398fcf0 Bug 681192. Part 1: Add "allowed scroll destination range" to nsIScrollableFrame::ScrollTo and nsGfxScrollFrame implementation. r=roc,matspal
--HG--
extra : rebase_source : 51d04f7e7db35c02de3401a3481d4cc3827c19ec
2012-02-07 16:53:18 -08:00
Timothy Nikkel
6ffee527c4 Bug 749425. Push the scroll frame clip inside the scroll layer so it gets transformed by the shadow transform. r=roc 2012-05-08 23:15:00 -04:00
Ms2ger
de7c676373 Bug 716439 - Followup: remove unused variable 'sf'; r=roc 2012-05-05 11:00:06 +02:00
Nicholas Cameron
a387d019ba Bug 716439; remove a check for rounded rects to enable the use of mask layers. r=roc 2012-02-08 11:26:46 +13:00
Avi Halachmi
968bd575ff Bug 702463 - Smooth scrolling should use refresh observer instead of a timer. r=roc 2012-03-31 16:08:00 +03:00
Timothy Nikkel
5fce132cd1 Bug 732016 Allow override of the scroll port size used for clamping scroll positions. r=roc 2012-04-24 13:52:35 -05:00
Joe Drew
59b12ae642 Backout 492d12fa8b65 (bug 732016) for regressions. a=regression
--HG--
extra : rebase_source : cda0401baa2c3e5f6192f76c1cd25eca8187a9a0
2012-04-23 11:13:33 -07:00
Timothy Nikkel
be2da87d6f Bug 732016 Allow override of the scroll port size used for clamping scroll positions. r=roc 2012-04-19 20:54:54 -05:00
Wes Johnston
41d4502cda Bug 745936 - Display port should not override dirtyRect during hit detection r=roc 2012-04-17 08:08:29 -04:00
L. David Baron
8c67e2ae8b Add a font inflation data structure per block formatting context. (Bug 706193, patch 2) r=roc
This structure is per block formatting context because we have to make a
single inflation decision for things like consecutive runs of paragraphs
of text.  Inflating some paragraphs and not others (within the same
sequence of adjacent paragraphs) based on the amount of text in each one
would be disastrous.  Otherwise it's ideal for the units to be as small
as possible as long as they merge such sequences; therefore this uses a
definition corresponding to CSS's idea of elements that establish new
block formatting contexts.
2012-04-16 15:32:12 -07:00
Mark Capella
1a44f1208f Bug 740688 - Use uintptr_t instead of PRUword, and intptr_t instead of PRWord. r=jwalden
--HG--
extra : rebase_source : 648a581323d2c2893df780f71fe34dadcc4bbaab
2012-04-11 17:17:44 -07:00
Jared Wein
777fbc3a41 Backed out changeset 3b8a666e351e (bug 702463) 2012-04-03 16:50:25 -07:00
Avi Halachmi (:avih)
03341a5710 Bug 702463: Smooth scroll - Use refresh observer instead of a timer. r=roc 2012-03-31 16:08:00 +03:00
Jared Wein
9ea5fa75f8 Backed out changeset 4e515b6a5a41 (bug 702463) 2012-04-03 16:22:49 -07:00
Avi Halachmi (:avih)
ae12e0480f Bug 702463: Part 1 v8 - Smooth scroll - Use refresh observer instead of a timer 2012-03-31 16:08:00 +03:00
Avi Halachmi (:avih)
aebd5ca0c6 Bug 737758: part 3: Cleanups and semantic consistency [r=roc] 2012-03-26 11:53:45 +02:00
Avi Halachmi (:avih)
8a2de1a907 Bug 737758: part 1: Propagate mouse wheel event origin from ESM [r=roc] 2012-03-26 11:50:30 +02:00
Jonathan Watt
51053d52ea Bug 379709 - Avoid reflowing SVG twice during page load due to initially assuming we'll need space for a vertical scrollbar when the nsSVGOuterSVGFrame can tell us we won't. r=bz. 2012-03-19 08:34:19 +00:00
Ali Juma
62fb2dc162 Bug 725095 - Address Layout review comments. r=mats 2012-03-13 12:57:31 -04:00
Benoit Girard
188ca471f6 Merge mc->Maple 2012-03-13 11:05:28 -04:00
Avi Halachmi
3c59129fb9 Bug 206438 - Smooth scrolling should use the 'smoothwheel' algorithm. r=roc ui-r=limi 2012-03-11 13:55:00 -07:00
Benoit Girard
6345ad9c43 Restore merge changeset 39a3044823b0, regression fixed upstream in mc 2012-03-05 13:09:05 -05:00
Benoit Girard
02e577f6ff Backed out changeset 39a3044823b0 because of bad interaction with maple. 2012-03-02 18:32:46 -05:00
Benoit Girard
72da51e037 Merge mc->Maple, resolved conflicts 2012-03-02 14:27:05 -05:00
Doug Turner
63f2081ca1 Merge with mozilla-central 2012-02-24 11:57:27 -08:00
Doug Turner
476b362925 merge with mozilla-central: 2012-02-22 09:30:09 -08:00
Rob Campbell
eb749cad65 merge fx-team to m-c 2012-02-22 12:47:22 -04:00
Ali Juma
926f982ccc Only try to scroll scrollable layers, and force Gecko to generate a scrollable layer even for smaller pages. 2012-02-20 11:30:05 -05:00
Chris Lord
cfb5872a5b Bug 726817 - Add nsIFrameLoaderOwner.clampScrollPosition. r=roc
Add an attribute to nsIFrameLoaderOwner that allows the clamping of set scroll
positions to be toggled.
2012-02-17 23:41:13 +00:00
Chris Lord
93986b5c67 Backout scroll-clamp stuff again
I hope this makes it easier to merge and I'm not just wasting time...
2012-02-19 09:26:52 +00:00
Brad Lassey
34aa551009 merge from mozilla-central 2012-02-18 17:29:33 -05:00
Chris Lord
c436bcb3c1 Bug 726817 - Add nsIFrameLoaderOwner.clampScrollPosition. r=
Add an attribute to nsIFrameLoaderOwner that allows the clamping of set scroll
positions to be toggled.
2012-02-17 23:41:13 +00:00
Chris Lord
b7a97d4f18 Backout 87134:1c1c22bd0291 and 87135:a4af71f1bc1f
Realised I made a mistake with the nsIFrameLoaderOwner.clampScrollPosition
patch and I want this to go in as a single commit and not break building of
Maple.
2012-02-18 00:46:23 +00:00
Chris Lord
02fd6d6c24 Bug 726817 - Add nsIFrameLoaderOwner.clampScrollPosition. r=
Add an attribute to nsIFrameLoaderOwner that allows the clamping of set scroll
positions to be toggled.

--HG--
extra : rebase_source : db24645ff2fb04bb0ffa5ffb01a8d35a79274126
2012-02-17 23:41:13 +00:00
Alexander Surkov
b34485ff9f Bug 677154 - fix a typo 2012-02-18 02:51:29 +09:00
Alexander Surkov
b79d3bc706 Bug 677154 - Detached document accessibility tree, r=bz, marcoz 2012-02-18 02:38:43 +09:00
Ed Morley
ef395cb269 Merge mozilla-central to mozilla-inbound 2012-02-23 01:03:16 +00:00
Mats Palmgren
4ac8d2dffb Bug 726258 - Don't suppress the scrollbar because of a too small size in the scollbar minor direction. r=bz 2012-02-22 17:23:47 +01:00
Jared Wein
1c58f1711c Bug 725700 - Keyboard arrow keys and scrollbar buttons should have consistent scrolling distances. 2012-02-20 11:24:36 -05:00
Patrick Walton
380bcbc803 Force the creation of an nsDisplayScrollLayer if a displayport was set on a scroll frame 2012-02-07 22:32:21 -08:00
Nathan Froyd
72e8d1d540 Bug 731615 - Eliminate duplicate headers in layout. rs=smontagu 2012-02-29 10:57:47 -05:00
Jared Wein
1c062f7770 Bug 710373 - Pressing the vertical slider down arrow should move three lines instead of one. r=roc 2012-01-31 12:04:35 +01:00
Mats Palmgren
530ea96a92 Bug 672944 - Setup overflow areas for the scrolled block frame in a XUL scroll frame for the benefit of text-overflow; Make the text-overflow code grok the extra wrapper frame in this case. r=roc 2012-01-28 04:35:59 +01:00
Chris Lord
5215455da7 Bug 726817 - Add nsIFrameLoaderOwner.clampScrollPosition. r=roc
Add an attribute to nsIFrameLoaderOwner that allows the clamping of set scroll
positions to be toggled.
2012-02-17 23:41:13 +00:00
L. David Baron
5eb8920348 Switch nsLayoutUtils inflation methods to the new setup with state on the pres context. (Bug 706609, patch 5) r=roc
This is the third of three patches to rework the way we handle getting
the font inflation container and width data during reflow, which are
needed so that we can sometimes honor inflation during intrinsic width
calculation (which we need to do to make some form controls inflate
correctly).
2012-01-24 17:21:29 -08:00
Timothy Nikkel
381f828353 Bug 675015. Wait until scrolling is complete to dispatch synthetic mouse moves. r=roc 2012-01-18 22:13:02 -06:00
Benjamin Stover
0a52de4032 Bug 524925 - Recompute overflow without reflowing for transforms. part=1/6 r=dbaron
Add an extra change hint, UpdateOverflow, that can be used to specify that
a frame's overflow areas may have changed and that they need to be recalculated.
When a transform on a frame changes, instead of marking it for reflow, set this
hint instead.

There is an added virtual function on nsIFrame, UpdateOverflow, which is called
recursively on a frame when the corresponding hint is set, to allow it to
update its overflow areas.
2011-06-15 14:03:49 -07:00
Mats Palmgren
9cc6cc3865 Bug 515530 - Remove nsHTMLContainerFrame. r=roc 2011-12-27 21:18:48 +01:00
Nicholas Nethercote
56767a7167 Bug 711908 - Fix a bunch of GCC warnings in layout. r=dbaron. 2011-12-19 19:46:39 -08:00
Robert O'Callahan
fb6541792a Bug 697215. CanScrollWithBitBlit needs to return true for scrollframes inside replaced elements (i.e., iframes) that are honoring border-radius. r=mats 2011-12-20 14:31:20 +13:00
Markus Stange
105bef8583 Bug 636564 - Make scroll frames deal correctly with scrollbars that overlay content. r=roc 2011-12-20 13:30:14 +01:00
Robert O'Callahan
f0e8959d30 Backed out changeset 4a81c89bb466 for bug 697215 2011-12-20 16:03:45 +13:00
Robert O'Callahan
4cc46e0f9f Bug 697215. CanScrollWithBitBlit needs to return true for scrollframes inside replaced elements (i.e., iframes) that are honoring border-radius. r=mats 2011-12-20 14:31:20 +13:00
Robert O'Callahan
ad1cf4eefc Backed out changeset 026ec6345ae3 for bug 697215 2011-12-18 23:01:43 +13:00
Robert O'Callahan
41261d0f5e Bug 697215. CanScrollWithBitBlit needs to return true for scrollframes inside replaced elements (i.e., iframes) that are honoring border-radius. r=mats 2011-12-18 21:47:00 +13:00
Robert O'Callahan
854ef91454 Bug 699351. Add nsIFrameLoader::clipSubdocument API to allow XUL <iframe> and <browser> to not clip the subdocument. r=tnikkel,sr=bzbarsky 2011-12-06 01:38:46 +13:00
Brad Lassey
8d2f605b6d Bug 687972 - backing out changesets b17ab862bbc1 and a6db0c6c94a3 r=orange 2011-11-30 22:59:00 -05:00
Robert O'Callahan
a86c192475 Bug 699351. Add nsIFrameLoader::clipSubdocument API to allow XUL <iframe> and <browser> to not clip the subdocument. r=tnikkel,sr=bzbarsky 2011-11-30 21:14:26 -05:00
L. David Baron
abb8d1c39a Make other users of font metrics (other than MathML and XUL) honor font size inflation. (Bug 627842, patch 15) r=roc
This does not address users of font metrics in layout/mathml/ (for text
size and alignment issues) or in layout/xul (for text size and sizing of
listbox and tree widgets):  see all the callers of GetFontMetricsFor*
in those directories.
2011-11-23 18:48:23 -08:00
Jonathan Watt
8a0b72332d Bug 695303 - Add a mozilla::clamped function to replace NS_CLAMP (so side affects of args are evaluated no more than once) and NS_MIN(max, NS_MAX(val, min)) (to make code clearer). r=bsmedberg. 2011-10-28 19:33:28 +01:00
Robert O'Callahan
e285f8195b Bug 696248. Flush pending onscroll events before painting. r=mats 2011-10-26 17:14:31 +13:00
Robert O'Callahan
ac9ee51054 Bug 681867. text-overflow only needs to affect the scrolling behavior of the block container with text-overflow. r=mats 2011-10-21 14:41:36 +13:00
Ehsan Akhgari
2a602a5685 Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Ehsan Akhgari
82c43f09d4 Bug 656130 - Part 1: Make sure that the absolute containing frame to be returned is actually marked as such in the frame tree; r=bzbarsky 2011-05-11 19:53:34 -04:00
Michael Wu
d8e503c38b Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Masayuki Nakano
d9869bfccf Bug 669028 part.13 layout should use mozilla::LookAndFeel rather than nsILookAndFeel r=roc 2011-09-09 11:27:13 +09:00
Mats Palmgren
6894179e71 Bug 653649 - New way of getting child lists from frames. (part 4/5) r=roc
Remove the nsIAtom* child list names and use child list ID enum instead.
2011-08-24 22:54:30 +02:00
Mats Palmgren
f06792a6ef Bug 653649 - New way of getting child lists from frames. (part 3/5) r=roc
Update GetAdditionalChildListName consumers to use the new
child list iterator instead.
2011-08-24 22:54:29 +02:00
Matheus Kerschbaum
e7cc82ef30 Bug 568971 - Nuke nsIGlobalHistory3. r=mak sr=bz 2011-08-18 12:07:43 +02:00
L. David Baron
2c717f398d Switch lots of callers to using nsLayoutUtils::GetFontMetricsForFrame and nsLayoutUtils::GetFontMetricsForStyleContext. (Bug 678671, patch 1) r=roc
This changes a number of callers that were previously bypassing the use
of the correct language (with either no language or the charset-detected
language on the pres context via nsPresContext::GetMetricsFor) and/or
the correct user font set to pass the correct values, which should
improve the correctness of the behavior of whatever they were using the
fonts for, and also reduce the number of unique sets of font metrics
requested (which helps nsFontCache effectiveness).
2011-08-14 10:08:04 -07:00
Robert O'Callahan
2c93649c0e Bug 386444. Pass the correct current scroll position as the default value to GetCoordAttribute. r=dbaron
--HG--
extra : rebase_source : f0f11de318a050a1121669daaa5056089a5258b7
2011-08-12 10:44:29 +12:00
Michael Wu
2bee25de63 Bug 675561 - Calls to GetMetric should pass a pointer to PRInt32, not PRBool, r=roc 2011-08-01 18:20:52 -07:00
Neil Deakin
f6bd0911ea Bug 670148, remove nsIScrollbarFrame, r=roc 2011-07-11 10:05:09 -04:00
Craig Topper
43c8429d0c Bug 654369 - Part 9: Remove OOM checks from layout/generic r=bz
--HG--
extra : rebase_source : b828e73151ceb8cb59e1d8f7c0671dc88397057c
2011-04-28 22:02:16 -07:00
Ed Morley
af1d9c6c2b Bug 661584 - Code cleanup, substitute more PR_(MAX|MIN|ABS|ROUNDUP) macro calls; r=roc,ted 2011-06-25 16:06:02 +02:00
Robert O'Callahan
a0cb0b9295 Bug 637852. Part 20: Allow fast scrolling within transformed content. r=tnikkel
This lets us easily test scrolling with non-identity resolution.
2011-06-23 00:11:28 +12:00
Benjamin Stover
608b301129 Bug 656041 Some parts of page scroll at different rates in Fennec r=roc 2011-06-14 09:20:29 -07:00
Jonas Sicking
5f95458332 Bug 659539 Part 1: Give nsINodeInfos a nodeType, nodeName and localName. r=bz 2011-06-14 00:56:49 -07:00
Masayuki Nakano
f96e0ef619 Bug 663041 layout should use mozilla::Preferences r=roc 2011-06-12 11:30:16 +09:00
Robert O'Callahan
e59d6c5b6a Bug 646757. Don't construct useless nsDisplayOwnLayers. r=tnikkel 2011-05-31 11:12:06 +12:00
Ed Morley
9e71e5b9ac Bug 614515 - Remove MOZ_SVG conditions. r=roc 2011-05-30 09:34:50 +02:00
Boris Zbarsky
447ee74d8c Bug 654989 part 1. Allow handing out both an nsIContent and an nsStyleContext from CreateAnonymousContent. r=roc 2011-05-06 16:04:44 -04:00
Benjamin Stover
1c80f2b928 Bug 640048 Crash fix: build nsDisplayScrollLayer with a non-null frame r=roc 2011-05-01 18:53:58 -07:00
Benjamin Stover
5eedd38c01 Bug 640048 Fix edge case for z-ordering for async scrollable elements r=roc 2011-05-01 18:53:01 -07:00
Mark Finkle
03e5a556ee Backed out changeset c7f62d818af2. Causes content crashes Bug 653889 2011-04-30 00:01:29 -04:00
Benjamin Stover
95028ef26c Bug 640048 Fix edge case for z-ordering for async scrollable elements r=roc 2011-04-29 10:15:44 -07:00
Zack Weinberg
668fa81e1d Bug 651017, part 6: prune unused and unimplemented nsDeviceContext methods. Push some code down into nsFontCache.
--HG--
rename : gfx/src/nsThebesDeviceContext.cpp => gfx/src/nsDeviceContext.cpp
rename : gfx/src/nsThebesDeviceContext.h => gfx/src/nsDeviceContext.h
extra : rebase_source : 82489fb47226260871993f37d337439005250c29
2011-04-16 18:22:44 -07:00
Robert O'Callahan
c957ae039e Bug 641426. Part 5: Avoid operator== where possible to distinguish between 'equal edges' and 'equal areas' for rectangles. r=dbaron,sr=cjones 2011-04-19 15:07:23 +12:00
Zack Weinberg
52c99aabb7 Bug 174055, part 6: eliminate pointless nsresult return values. 2011-04-07 21:18:43 -07:00
Zack Weinberg
624a6e3ce5 Bug 174055, part 5: prune unused and unimplemented methods. 2011-04-07 20:07:27 -07:00
Zack Weinberg
42ead75834 Bug 174055, part 4: mechanical fixups outside gfx. 2011-04-07 18:05:49 -07:00
Jan Küchler
5ef6bf26cf Bug 266236 part 3: Mechanical rename of nsIRenderingContext and nsThebesRenderingContext to nsRenderingContext. Mechanical substitution of nsRefPtr<nsRenderingContext> for nsCOMPtr<nsRenderingContext>.
--HG--
rename : gfx/src/nsThebesRenderingContext.cpp => gfx/src/nsRenderingContext.cpp
extra : rebase_source : 34884bfcafd885feaf73300bc7246cd192062a48
2011-04-07 18:04:40 -07:00
Benjamin Stover
0b354a3d72 Bug 649666 Do not create container layers for scrollboxes with (0, 0) scrollRange r=roc 2011-04-13 10:45:00 -07:00
Benjamin Stover
3dc5b1f7a2 Bug 642246 Don't build ThebesLayers for elements with no displayports r=roc 2011-04-11 13:53:01 -07:00