| Index: views/controls/textfield/native_textfield_gtk.cc
 | 
| diff --git a/views/controls/textfield/native_textfield_gtk.cc b/views/controls/textfield/native_textfield_gtk.cc
 | 
| index 4aef06f2bc958b11be4264def32eeef357259e62..1d4dd2373430b86ffcf091077ee17e42ee524d3f 100644
 | 
| --- a/views/controls/textfield/native_textfield_gtk.cc
 | 
| +++ b/views/controls/textfield/native_textfield_gtk.cc
 | 
| @@ -11,11 +11,13 @@
 | 
|  #include "gfx/gtk_util.h"
 | 
|  #include "gfx/insets.h"
 | 
|  #include "gfx/skia_utils_gtk.h"
 | 
| +#include "views/controls/textfield/gtk_views_entry.h"
 | 
|  #include "views/controls/textfield/textfield.h"
 | 
|  
 | 
|  namespace views {
 | 
| +
 | 
|  // A character used to hide a text in password mode.
 | 
| -const char kPasswordChar = '*';
 | 
| +static const char kPasswordChar = '*';
 | 
|  
 | 
|  ////////////////////////////////////////////////////////////////////////////////
 | 
|  // NativeTextfieldGtk, public:
 | 
| @@ -33,6 +35,26 @@ NativeTextfieldGtk::NativeTextfieldGtk(Textfield* textfield)
 | 
|  NativeTextfieldGtk::~NativeTextfieldGtk() {
 | 
|  }
 | 
|  
 | 
| +// Returns the inner border of an entry.
 | 
| +// static
 | 
| +gfx::Insets NativeTextfieldGtk::GetEntryInnerBorder(GtkEntry* entry) {
 | 
| +  const GtkBorder* inner_border = gtk_entry_get_inner_border(entry);
 | 
| +  if (inner_border)
 | 
| +    return gfx::Insets(*inner_border);
 | 
| +
 | 
| +  // No explicit border set, try the style.
 | 
| +  GtkBorder* style_border;
 | 
| +  gtk_widget_style_get(GTK_WIDGET(entry), "inner-border", &style_border, NULL);
 | 
| +  if (style_border) {
 | 
| +    gfx::Insets insets = gfx::Insets(*style_border);
 | 
| +    gtk_border_free(style_border);
 | 
| +    return insets;
 | 
| +  }
 | 
| +
 | 
| +  // If border is null, Gtk uses 2 on all sides.
 | 
| +  return gfx::Insets(2, 2, 2, 2);
 | 
| +}
 | 
| +
 | 
|  ////////////////////////////////////////////////////////////////////////////////
 | 
|  // NativeTextfieldGtk, NativeTextfieldWrapper implementation:
 | 
|  
 | 
| @@ -150,21 +172,7 @@ gfx::Insets NativeTextfieldGtk::CalculateInsets() {
 | 
|    GtkEntry* entry = GTK_ENTRY(widget);
 | 
|    gfx::Insets insets;
 | 
|  
 | 
| -  const GtkBorder* inner_border = gtk_entry_get_inner_border(entry);
 | 
| -  if (inner_border) {
 | 
| -    insets += gfx::Insets(*inner_border);
 | 
| -  } else {
 | 
| -    // No explicit border set, try the style.
 | 
| -    GtkBorder* style_border;
 | 
| -    gtk_widget_style_get(widget, "inner-border", &style_border, NULL);
 | 
| -    if (style_border) {
 | 
| -      insets += gfx::Insets(*style_border);
 | 
| -      gtk_border_free(style_border);
 | 
| -    } else {
 | 
| -      // If border is null, Gtk uses 2 on all sides.
 | 
| -      insets += gfx::Insets(2, 2, 2, 2);
 | 
| -    }
 | 
| -  }
 | 
| +  insets += GetEntryInnerBorder(entry);
 | 
|  
 | 
|    if (entry->has_frame) {
 | 
|      insets += gfx::Insets(widget->style->ythickness,
 | 
| @@ -240,7 +248,7 @@ gboolean NativeTextfieldGtk::OnChanged() {
 | 
|  // NativeTextfieldGtk, NativeControlGtk overrides:
 | 
|  
 | 
|  void NativeTextfieldGtk::CreateNativeControl() {
 | 
| -  NativeControlCreated(gtk_entry_new());
 | 
| +  NativeControlCreated(gtk_views_entry_new(this));
 | 
|    gtk_entry_set_invisible_char(GTK_ENTRY(native_view()),
 | 
|                                 static_cast<gunichar>(kPasswordChar));
 | 
|    textfield_->UpdateAllProperties();
 | 
| 
 |