Commit Graph

355 Commits

Author SHA1 Message Date
Benjamin Smedberg
0f95227641 Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

nsITextControlFrame didn't have an IID the first time around, but this wasn't a compile error because nsITextControlFrame::kFrameIID inherited from nsIFormControlFrame::kFrameIID. I've added a static analysis pass to verify the correct behavior, since I can't figure out a way to make the compiler do it.
2009-01-12 14:20:59 -05:00
Benjamin Smedberg
7a084ac404 Backed out changeset 4c4df6ed1b41 - Bug 396185 - Make nsIFrame not inherit from nsISupports due to mochitest failures... these appear to be crashes in nsGenericHTMLElement::GetEditorInternal. 2009-01-09 11:35:24 -05:00
Benjamin Smedberg
991a16d8bc Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

This patch locally causes two REFTEST-UNEXPECTED-PASS for Bidi stuff. It's possible that I accidentally fixed a bug, but I'm not sure, so I'm going to wait for the tinderboxes to confirm my local results.
2008-11-05 14:25:30 -05:00
Simon Montagu
b331ee178c Fix compiler warnings in nsCaret.cpp. Bug 470574, r+sr=dbaron 2008-12-28 04:08:22 -08:00
Simon Montagu
c480b83cc3 Make display of the directional hook on the caret dependent on the bidi.browser.ui pref. Bug 418513, r=uriber, sr=roc (for core) r=mano, gavin.sharp (for browser) 2008-12-14 01:05:39 -08:00
Robert O'Callahan
bee2844b64 Bug 450930. Fire a DOM event when painting so that content and chrome can track what's being repainted. r=smaug,sr=dbaron 2008-09-18 21:47:21 +12:00
Arpad Borsos
40a654b059 Bug 454766 - Add suggested parentheses to layout/; r+sr=roc; (with nits by sgautherie) 2008-09-15 17:40:25 +02:00
Oleg Romashin
9bcb962e55 Bug 453826 - MOZ_XUL define required for nsCaret::IsMenuPopupHidingCaret. r+sr=roc 2008-09-08 15:23:38 +03:00
Masayuki Nakano
d6efce8b96 Bug 449955 – Remove #ifdef of nsCaret.cpp for IME r+sr=roc 2008-08-13 10:55:39 +09:00
John Daniels
2aef16c1bf Bug 419532 – deCOMtaminate nsICaret. r+sr=roc 2008-07-16 12:52:01 +02:00
351323faba Bug 409331. Instead of QIing to nsBlockFrame in various places, call an nsLayoutUtils method to do it. r+sr=roc 2008-07-14 10:10:23 +12:00
Michael Ventnor
05474ecba8 Bug 118308, NS_THEME_TEXTFIELD_CARET implementation (GTK), r+sr=roc 2008-06-23 11:50:52 +03:00
Simon Montagu
5e37057a2d Remove unnecessary argument from SetBidiEnabled. Bug 435856, r+sr=roc 2008-06-16 02:28:17 -07:00
2a189e3dea Bug 430785: Caret not visible with right-clicking on a text input, patch by Martijn Wargers <martijn.martijn@gmail.com>, r+sr=roc, a=damon 2008-04-30 09:54:16 -07:00
a27febcb18 Bug 335359. Make the caret thicker when it's at a Kanji character. r+sr=mrbkap,a=damon 2008-04-22 20:13:55 -07:00
2864676da0 Bug 420987. The caret size should be specified in CSS pixels and it should be rounded like borders --- rounding down to the nearest device pixel, but not down to zero. r+sr=mrbkap,a=schrep 2008-04-14 14:09:23 -07:00
34e33024d7 Bug 427163 - "Crash [@ nsContentUtils::ContentIsDescendantOf] with contenteditable, right-clicking and document.write" (add null check) [p=chris@pearce.org.nz (Chris Pearce [cpearce]) r+sr=roc a1.9=damons] 2008-04-08 23:16:09 -07:00
3f195c6cd6 Bug 420499 - "Caret browsing mode wrongly engaged" (Mochitest) [p=chris@pearce.org.nz (Chris Pearce [cpearce]) r+sr=roc a=blocking1.9+] 2008-04-08 11:52:48 -07:00
c546b87735 Bug 420499 - "Caret browsing mode wrongly engaged" [p=chris@pearce.org.nz (Chris Pearce [cpearce]) r+sr=roc a=blocking1.9+] 2008-04-01 01:35:11 -07:00
bbbc01a0d1 Bug 400057. Make nsBlockInFlowLineIterator useful for finding the line containing a frame, searching across block continuations and their overflow lines. Use it in various places, especially in textrun construction. r+sr=dbaron 2008-02-27 01:53:48 -08:00
4c01718945 Bug 394473 - "caret/cursor in View Source is invisible since 20070628 {not rendered, seen, can't, cannot, shown, displayed}" [p=chris@pearce.org.nz (Chris Pearce [cpearce]) r=peterv r+sr=roc a1.9=beltzner] 2008-02-26 17:49:46 -08:00
750ad2685e Bug 368760, r=mats, sr=roc, a=blocking1.9+ 2007-11-22 12:47:33 -08:00
c588db138d Bug 394473 - "caret/cursor in View Source is invisible since 20070628 {not rendered, seen, can't, cannot, shown, displayed}" [p=cpearce r=peterv sr=roc a1.9=schrep] 2007-11-12 21:42:52 -08:00
8a7a1e0c56 Bug 403048. Be more careful about looking for the line containing the caret. r+sr=mrbkap 2007-11-08 17:59:20 -08:00
7cbbaca6b9 Bug 336408 - Allow the caret to be positioned at the end of trimmed whitespace, as if the whitespace wasn't trimmed [p=roc r=smontagu sr=mrbkap a=blocking1.9+] 2007-11-07 20:07:00 -08:00
2927dedce8 Clean up prbool misuse in layout. bug 398312, r+sr+a=dbaron 2007-10-09 17:00:05 -07:00
9f351ff772 remove XP_MAC usage. b=281889 r=cbarrett sr=roc a=roc 2007-10-01 16:20:37 -07:00
8e5940fc96 Bug 390423 - Simplify the signature of nsIFrame::GetPointFromOffset, patch by Ben Karel <web+moz@eschew.org>, r=aaronlev/elif, sr=roc, a1.9=dbaron 2007-08-16 20:43:00 -07:00
156836287d Redragging over empty text field doesn't show drag caret, except for the last text field. bug 390228, r+sr=roc a=dbaron 2007-08-13 14:33:25 -07:00
1ee73a49c6 Clamp the caret's position so that we always draw within the nearest scrollframe. Not doing this allows the scrollframe to clip the caret, causing it to not show up at all. bug 335560, r+sr=roc 2007-08-13 13:51:16 -07:00
ab003c9c6b Fix for bug 387380 (No visible caret when caret browsing). r=smaug, sr=jst, a=dbaron. 2007-08-10 06:19:13 -07:00
5db2a35ae7 Bug 390740: Pass lang-group into GetMetricsFor more consistently (general patch). r+sr=roc, a=dbaron 2007-08-07 12:07:43 -07:00
98de634631 Bug 348748 - Replace all instances of NS_STATIC_CAST and friends with C++ casts (and simultaneously bitrot nearly every patch in existence). r=bsmedberg on the script that did this. Tune in next time for Macro Wars: Episode II: Attack on the LL_* Macros. 2007-07-08 00:08:04 -07:00
bf9ea34c63 Fix for bug 237964 (Allow editable areas in browser (contentEditable)). r/sr=sicking. 2007-06-27 19:48:16 -07:00
9b2de45f14 Backing out to fix orange. 2007-06-27 16:21:05 -07:00
bd21679096 Fix for bug 237964 (Allow editable areas in browser (contentEditable)). r/sr=sicking. 2007-06-27 15:29:45 -07:00
sharparrow1@yahoo.com
34a122b207 Bug 370379: Create views less frequently. Stops creating views for -moz-hidden-unscrollable, opacity, fixed backgrounds, and scrollbars, plus removes some unneeded methods from views and view managers. r+sr=roc. 2007-02-24 00:23:42 +00:00
sharparrow1@yahoo.com
2da748b9c2 Bug 177805: Fix the use of units in Gecko. r+sr=roc 2007-02-07 07:46:44 +00:00
cvshook@sicking.cc
e80f1dba4e Kill remainders of ns(XBL|HTML|XUL|Layout)Atoms. r/sr=jst b=368128 2007-01-30 00:06:41 +00:00
uriber@gmail.com
68571e4087 Bug 233348: BiDi marker is hidden when the caret is at the edge of a textarea. Patch by Haamed Gheibi <gheibi@gmail.com>. r=mrbkap sr=roc 2006-11-01 18:31:42 +00:00
uriber@gmail.com
8c3328a001 Refactor nsIFrame::PeekOfset to use iteration instead of recursion, plus some more related refactoring. bug=300131 r+sr=roc 2006-09-11 20:43:01 +00:00
uriber@gmail.com
bc5bc7aeba Backing out bug 300131 until I figure out how to deal with the bustage. 2006-09-11 08:03:28 +00:00
uriber@gmail.com
2297c8c2f0 Refactor nsIFrame::PeekOfset to use iteration instead of recursion, and some related refactoring. bug=300131 r+sr=roc 2006-09-11 06:39:56 +00:00
uriber@gmail.com
a31f02572b Moved mCaretBidiLevel and its accessors from nsPresShell to nsFrameSelection. Also added sBidiKeyboard as a static service to nsContentUtils. bug=346891 r+sr=roc 2006-08-08 05:14:52 +00:00
uriber@gmail.com
df75e1c236 Enable PeekOffset to find the visual beginning/end of a line, and use use it for bidi caret positioning. bug=302051 r=smontagu sr=roc 2006-08-03 06:24:11 +00:00
sharparrow1@yahoo.com
cb304c053b Bug 345371: add null checks for weak pointers in nsCaret. r+sr=roc. 2006-07-20 23:26:05 +00:00
smontagu@smontagu.org
b5ce0fd046 Only display a bidirectional caret on platforms that implement nsIBidiKeyboard. Bug 272096, r+sr=roc 2006-07-06 08:29:53 +00:00
mrbkap@gmail.com
7fa1ed1403 Only recalculate the caret's rect when we're not currently drawn in an attempt to avoid caret turds when we're being notified of the caret movement after the frame has already been marked dirty. bug 335834, r+sr=roc 2006-05-04 00:05:22 +00:00
mrbkap@gmail.com
ee90fb2b77 Update the caret position after reflows to avoid turds. bug 334649, r+sr=roc 2006-04-28 04:33:41 +00:00
roc+@cs.cmu.edu
3d6bf8748c Bug 330305. Rename nsSelection to nsFrameSelection, and deCOMtaminate it, removing nsIFrameSelection. patch by Marc Liddell, r+sr=roc 2006-04-26 01:57:22 +00:00