* Electron Version: 2.0.2
* Operating System (Platform and Version): Win10 x64 version 1803
* Last known working Electron version: 1.9.0

**Expected Behavior**
Calling win.setResizable(false) and then win.setResizable(true) should return the window to it's original state. Specifically, it should not change the result of win.isMaximizable().

**Actual behavior**
Calling win.setResizable(false) and then win.setResizable(true) results in the window not being maximizable. The maximize button is disabled and win.isMaximizable returns false.

**To Reproduce**
In any electron application with a window that is resizable, call win.setResizable(false) and then win.setResizable(true). The window will now be impossible to maximize.
atom/browser/native_window_views.cc
wm::SetShadowElevation(GetNativeWindow(),
                         has_shadow ? wm::kShadowElevationInactiveWindow
                                    : wm::kShadowElevationNone);
}
bool NativeWindowViews::HasShadow() {
  return GetNativeWindow()->GetProperty(wm::kShadowElevationKey) !=
         wm::kShadowElevationNone;
}
void NativeWindowViews::SetOpacity(const double opacity) {
#if defined(OS_WIN)
  HWND hwnd = GetAcceleratedWidget();
  if (!layered_) {
    LONG ex_style = ::GetWindowLong(hwnd, GWL_EXSTYLE);
    ex_style |= WS_EX_LAYERED;
    ::SetWindowLong(hwnd, GWL_EXSTYLE, ex_style);
    layered_ = true;
  }
  ::SetLayeredWindowAttributes(hwnd, 0, opacity * 255, LWA_ALPHA);
#endif
  opacity_ = opacity;
}
double NativeWindowViews::GetOpacity() {