### Preflight Checklist

- [X] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
- [X] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
- [X] I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a feature request that matches the one I want to file, without success.

### Electron Version

11.2.3

### What operating system are you using?

Windows

### Operating System Version

Windows 10 v19042

### What arch are you using?

x64

### Last Known Working Electron version

_No response_

### Expected Behavior

After calling setThumbarButtons() and then `window.hide()`  and then `window.show() ` 
I should be able to set thumbar buttons back to their original state (or create new)

### Actual Behavior

Thumbar function seems to break completely after `window.hide()` is called
(It wont display anymore, calling `setThumbarButtons([...])` returns true but wont actually display anything
⚠️ The bug can also be replicated by just creating the thumbar while the window is already hidden

### Testcase Gist URL

https://gist.github.com/883fa102da7c81e47bb866aa20089292

 -----

#12240 #22081 seems to have the same issue on older Electron versions

I encountered this bug while working on [youtube-music](https://github.com/th-ch/youtube-music/pull/200/files)

[EDIT]: I made the whole thing work by using 
  `win.minimize(); win.setSkipTaskbar(true);`
  instead of
  `window.hide();`
  but still, the original bug exists
shell/browser/native_window_views.cc
int width = 800, height = 600;
  options.Get(options::kWidth, &width);
  options.Get(options::kHeight, &height);
  gfx::Rect bounds(0, 0, width, height);
  widget_size_ = bounds.size();
  widget()->AddObserver(this);
  views::Widget::InitParams params;
  params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
  params.bounds = bounds;
  params.delegate = this;
  params.type = views::Widget::InitParams::TYPE_WINDOW;
  params.remove_standard_frame = !has_frame();
  if (transparent())
    params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
  
  
  if (transparent() && !has_frame())
    params.shadow_type = views::Widget::InitParams::ShadowType::kNone;
  bool focusable;
  if (options.Get(options::kFocusable, &focusable) && !focusable)
    params.activatable = views::Widget::InitParams::ACTIVATABLE_NO;
#if defined(OS_WIN)
  if (parent)
    params.parent = parent->GetNativeWindow();
  params.native_widget = new ElectronDesktopNativeWidgetAura(this);
#elif defined(OS_LINUX)
  std::string name = Browser::Get()->GetName();
  
  params.wm_role_name = "browser-window";