Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 406107

Summary: Themed Button does not show border in IE9
Product: [RT] RAP Reporter: Johannes Eickhold <jeick>
Component: RWTAssignee: Project Inbox <rap-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: mknauer, tbuschto
Version: 2.1   
Target Milestone: 3.0 M2   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
Screenshot of botton in IE9 and Firefox none

Description Johannes Eickhold CLA 2013-04-19 11:52:48 EDT
Created attachment 229917 [details]
Screenshot of botton in IE9 and Firefox

A themed button with custom variant is not rendered with correct border in IE9.

In Firefox the button is rendered with correct border.

Theme:
Button.mpi-button[PUSH] {
  background-color: #ffffff;
  background-image: none;
  border: 1px;
  color: #2a2e38;
  font: 14px Arial, Helvetica, Verdana, sans-serif;
}
Comment 1 Tim Buschtoens CLA 2013-04-25 10:37:57 EDT
Okay, so the server does not fall back to "black" or "#000000" when no border color is given, but writes null into the themestore. This is needed because, unlike what the theming documentation says, for certain border styles the default color is not black. Specifically, these are "inset", "outset", (only for widths 1px and 2px ) "groove" and "ridge" (only for width 2px). See ThemeStore.js#_getBorderFromValue. In all other cases the border is supposed to be black if no color is given, but that is not the case in all browser, specifically those that use SVG. Not yet sure where between PropertyResovler.java and SVG.js this should be fixed.

An easy workaround is to give "border: 1px solid black;".
Comment 2 Ivan Furnadjiev CLA 2013-05-24 04:06:50 EDT
I'll suggest to fix it in QxBorder#create(int, String, String) by setting color to black in case of null similar to style.
Comment 3 Ivan Furnadjiev CLA 2014-11-27 07:42:44 EST
Handling of "border" CSS property has been reworked in 3.0M2 (add support for four border edges). Now, "border: 1px solid;" behaves the same in all browsers. Please note, that specifing a border without style like "border: 1px;" is equal to none border in all browsers.