Closed
Bug 184359
Opened 22 years ago
Closed 22 years ago
"border: none" on textbox shrinks textbox without removing border
Categories
(Core :: Layout: Form Controls, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: jruderman, Assigned: tim)
References
()
Details
(Keywords: regression)
Attachments
(1 file, 2 obsolete files)
10.18 KB,
patch
|
tim
:
superreview+
asa
:
approval1.3b+
|
Details | Diff | Splinter Review |
Setting "border: none" on a textbox shrinks the textbox but does not remove the border. This causes text typed into the textbox to only be partly visible. Strangely, setting "border: 0px solid" works as expected. I'm using Phoenix 0.5 and Mozilla 12/07 on Windows XP.
Comment 1•22 years ago
|
||
Worksforme, linux trunk build 2002-12-07-22. Sounds like a problem with the "themed" XP controls only... To hyatt. We have dozens of bugs on these controls already; how about fixing them, eh?
Assignee: form → hyatt
Comment 2•22 years ago
|
||
Shouldn't we drop the theming when the border is styled, btw?
Comment 3•22 years ago
|
||
*** Bug 186376 has been marked as a duplicate of this bug. ***
Comment 4•22 years ago
|
||
This happends in both XP and Classic theme on XP.
Comment 5•22 years ago
|
||
*** Bug 187068 has been marked as a duplicate of this bug. ***
Comment 6•22 years ago
|
||
To tim in the hopes of actually getting traction on this.... Too bad hyatt broke all this shit and has no plans to fix it...
Assignee: hyatt → tim
Comment 7•22 years ago
|
||
Dropping theming when border is changed is eminently reasonable.
Comment 8•22 years ago
|
||
Generally, CSS "border" rules, except for solid/dashed/dotted, just don't work right on "native look" widgets. -moz-appearance: none; should be set for all input elements by default.
Comment 9•22 years ago
|
||
No, -moz-appearance should be set exactly as it is now. It should compute to "none" if the page sets a border.
Assignee | ||
Comment 10•22 years ago
|
||
This patch fixes all the recent theme related form control bugs. It checks the computed style of buttons and text fields against the default style, and drops theming if they're at all different in border/background size, color, or style. It also fixes a bug with the appearance of disabled/readonly text fields.
Attachment #110537 -
Flags: superreview?(bzbarsky)
Attachment #110537 -
Flags: review?(hyatt)
Comment 11•22 years ago
|
||
Comment on attachment 110537 [details] [diff] [review] Patch to nsNativeThemeWin > +// Determine if a widget differs from the default style and should drop theming "Determine whether" >+ // Get default CSS style values for widget >+ // (these need to match the values in forms.css) Please add a comment in forms.css to that effect (saying that anyone editing forms.css will have to change this code as well). Also, please use defines with self-explanatory names (eg "INPUT_BORDER_IN_PIXELS") instead of raw magic numbers like "2". It strikes me that all this code is incredibly fragile... what we really want is a way to query style without taking into account author (and probably user) stylesheets. Please file a bug to that effect on the style system; cc me and hyatt... >+ nsCOMPtr<nsILookAndFeel> lookAndFeel(do_CreateInstance(kLookAndFeelCID)); I know you just copied this code, but please use do_GetService instead (as most people who need an nsILookAndFeel seem to do, which makes sense). >+ lookAndFeel->GetColor(nsILookAndFeel::eColor_threedface, defaultBorderColor); What if the do_GetService (or do_CreateInstance) fails? Please null-check |lookAndFeel| and return something sane (probably "drop the theming") if it's null. >+ case NS_THEME_BUTTON: { >+ defaultBGColor = defaultBorderColor; Why is this? The default background-color and border-color are different for buttons in forms.css >+ if (contentState & NS_EVENT_STATE_HOVER && contentState & NS_EVENT_STATE_ACTIVE) >+ defaultBorderStyle = NS_STYLE_BORDER_STYLE_INSET; >+ else >+ defaultBorderStyle = NS_STYLE_BORDER_STYLE_OUTSET; >+ break; Does this correctly deal with disabled buttons (for which the border does _not_ depend on the content state and the colors are different from non-disabled ones in forms.css)? Please add a "default" clause to this switch, which does NS_ERROR("widget type not handled"); or something along those lines, just in case someone tries to expand the |if| without expanding the |switch|. >+ // Check if background differs from default "Check whether" >+ (ourBG->mBackgroundFlags & NS_STYLE_BG_IMAGE_NONE) == 0) I'd write this as "!(ourBG->mBackgroundFlags & NS_STYLE_BG_IMAGE_NONE)" or at least drop the parens if you plan to compare to 0. >+ // Check if border style or color differs from default "Check whether" >+ // Check if border size differs from default Same here. I assume that setting "-moz-appearance: none" on image inputs will be a separate patch in the relevant bug?
Attachment #110537 -
Flags: superreview?(bzbarsky) → superreview-
Comment 12•22 years ago
|
||
One other thing. The border on disabled buttons is 1px, not 2px....
Assignee | ||
Comment 13•22 years ago
|
||
> It strikes me that all this code is incredibly fragile... Yeah, I don't like it much either, but I don't know of a quick, simple way to access just the UA style info... > What if the do_GetService (or do_CreateInstance) fails? > Please null-check lookAndFeel| and return something sane > (probably "drop the theming") if it's null. Ok, but crashing is more fun ;) > Why is this? The default background-color and border-color > are different for buttons in forms.css They are both buttonface for regular buttons... > I assume that setting "-moz-appearance: none" on image inputs will be a > separate patch in the relevant bug? I might as well include that here if I'm modifying forms.css anyway. > Does this correctly deal with disabled buttons Oops. Fixed.
Attachment #110537 -
Attachment is obsolete: true
Attachment #110569 -
Flags: superreview?(bzbarsky)
Attachment #110569 -
Flags: review?(hyatt)
Comment 14•22 years ago
|
||
> I don't know of a quick, simple way to access just the UA style info... There isn't one. That's why I suggested you file a bug requesting one. ;) > They are both buttonface for regular buttons... So they are; my apologies.
Comment 15•22 years ago
|
||
Comment on attachment 110569 [details] [diff] [review] Patch to nsNativeThemeWin, forms.css #2 Looks good!
Attachment #110569 -
Flags: superreview?(bzbarsky) → superreview+
Updated•22 years ago
|
Attachment #110537 -
Flags: review?(hyatt)
Updated•22 years ago
|
Comment 16•22 years ago
|
||
Comment on attachment 110569 [details] [diff] [review] Patch to nsNativeThemeWin, forms.css #2 Since hyatt seems to be AWOL, would you mind doing the review, bryner? This patch fixes a slew of regressions; it'd be good to have it fixed for 1.3b...
Attachment #110569 -
Flags: review?(hyatt) → review?(bryner)
Comment 17•22 years ago
|
||
*** Bug 190444 has been marked as a duplicate of this bug. ***
Comment 18•22 years ago
|
||
Comment on attachment 110569 [details] [diff] [review] Patch to nsNativeThemeWin, forms.css #2 >Index: gfx/src/windows/nsNativeThemeWin.cpp >=================================================================== >RCS file: /cvsroot/mozilla/gfx/src/windows/nsNativeThemeWin.cpp,v >retrieving revision 3.18 >diff -u -r3.18 nsNativeThemeWin.cpp >--- gfx/src/windows/nsNativeThemeWin.cpp 4 Dec 2002 04:41:33 -0000 3.18 >+++ gfx/src/windows/nsNativeThemeWin.cpp 3 Jan 2003 07:06:20 -0000 >+ float p2t; >+ aPresContext->GetPixelsToTwips(&p2t); >+ >+ nsCOMPtr<nsILookAndFeel> lookAndFeel(do_GetService(kLookAndFeelCID)); >+ if (!lookAndFeel) >+ return PR_TRUE; If this is called a lot, you might want to cache the LookAndFeel service to improve performance. > > nsCOMPtr<nsIStyleContext> styleContext; > aFrame->GetStyleContext(getter_AddRefs(styleContext)); >+ if (!styleContext) >+ return PR_TRUE; You're going to have to merge this part to the trunk. There shouldn't be any more usage of nsIStyleContext from outside of content and layout. nsIFrame::GetStyleData() should be fine for this. >Index: layout/html/document/src/forms.css >=================================================================== >RCS file: /cvsroot/mozilla/layout/html/document/src/forms.css,v >retrieving revision 3.58 >diff -u -r3.58 forms.css >--- layout/html/document/src/forms.css 12 Nov 2002 19:17:46 -0000 3.58 >+++ layout/html/document/src/forms.css 3 Jan 2003 07:06:21 -0000 >@@ -267,6 +272,7 @@ > > /* image buttons */ > input[type="image"] { >+ -moz-appearance: none; > padding: 0; > border: none; > background-color: transparent; Good, good, I had this fix as part of another patch. Could you merge this to the trunk and address my comments above, and I'll review the new patch?
Attachment #110569 -
Flags: review?(bryner) → review-
Assignee | ||
Comment 19•22 years ago
|
||
*** Bug 190906 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 20•22 years ago
|
||
gets cached LookAndFeel from PresContext, gets style from frame instead of stylecontext
Attachment #110569 -
Attachment is obsolete: true
Assignee | ||
Comment 21•22 years ago
|
||
Comment on attachment 113063 [details] [diff] [review] Patch to nsNativeThemeWin, forms.css #3 requesting review and carrying over bz's sr. It'd be nice to get this approved for 1.3 since it fixes quite a few form control issues. It's a fairly straightforward and low risk change.
Attachment #113063 -
Flags: superreview+
Attachment #113063 -
Flags: review?(bryner)
Attachment #113063 -
Flags: approval1.3b?
Comment 22•22 years ago
|
||
Comment on attachment 113063 [details] [diff] [review] Patch to nsNativeThemeWin, forms.css #3 This should wait until we open for 1.4alpha.
Attachment #113063 -
Flags: approval1.3b? → approval1.3b-
Comment 23•22 years ago
|
||
Comment on attachment 113063 [details] [diff] [review] Patch to nsNativeThemeWin, forms.css #3 a=asa (on behalf of drivers) for checkin to 1.3beta.
Attachment #113063 -
Flags: approval1.3b- → approval1.3b+
Comment 24•22 years ago
|
||
I just checked the patch in. Someone who can actually test on Windows should go through and mark this bug and its dependencies fixed as appropriate.
Comment 25•22 years ago
|
||
Seems to be fixed, thank you! Mozilla build 2003013104, Windows 2000.
Comment 26•22 years ago
|
||
bz said he checked it in at 2:23pm, and your binary was 10:11 am, so how could it be fixed?
Comment 27•22 years ago
|
||
Nevermind. 2:23 AM, lol. Forgot bz never sleeps ;-)
Comment 28•22 years ago
|
||
It works for me now. Something strange I noticed is that if you place the cursor somewhere else in the window besides where the textbox is, and press a button, it gives some weird tones and shows something in the status bar. What is all that about?
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Comment 29•22 years ago
|
||
BTW: The tones stop after a few buttons. Anyone else able to cause this to happen? Still, the issue in this bug is fixed. Marked fixed on Windows XP 2003013108. I will go through the dependencies and do what bz said on ones that appear fixed.
Comment 30•22 years ago
|
||
That's probably the type ahead feature.
Updated•22 years ago
|
Attachment #113063 -
Flags: review?(bryner)
You need to log in
before you can comment on or make changes to this bug.
Description
•