diff options
Diffstat (limited to 'widget/nsNativeTheme.cpp')
-rw-r--r-- | widget/nsNativeTheme.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/widget/nsNativeTheme.cpp b/widget/nsNativeTheme.cpp index 35c5a84f75..a5bd85fafa 100644 --- a/widget/nsNativeTheme.cpp +++ b/widget/nsNativeTheme.cpp @@ -99,13 +99,25 @@ nsNativeTheme::GetContentState(nsIFrame* aFrame, uint8_t aWidgetType) flags |= NS_EVENT_STATE_FOCUS; } - // On Windows, only draw focus rings if they should be shown. This + // On Windows and Mac, only draw focus rings if they should be shown. This // means that focus rings are only shown once the keyboard has been used to // focus something in the window. +#if defined(XP_MACOSX) + // Mac always draws focus rings for textboxes and lists. + if (aWidgetType == NS_THEME_NUMBER_INPUT || + aWidgetType == NS_THEME_TEXTFIELD || + aWidgetType == NS_THEME_TEXTFIELD_MULTILINE || + aWidgetType == NS_THEME_SEARCHFIELD || + aWidgetType == NS_THEME_LISTBOX) { + return flags; + } +#endif #if defined(XP_WIN) // On Windows, focused buttons are always drawn as such by the native theme. if (aWidgetType == NS_THEME_BUTTON) return flags; +#endif +#if defined(XP_MACOSX) || defined(XP_WIN) nsIDocument* doc = aFrame->GetContent()->OwnerDoc(); nsPIDOMWindowOuter* window = doc->GetWindow(); if (window && !window->ShouldShowFocusRing()) |