### 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
params.wm_class_name = base::ToLowerASCII(name);
  params.wm_class_class = name;
#endif
  widget()->Init(std::move(params));
  bool fullscreen = false;
  options.Get(options::kFullscreen, &fullscreen);
  std::string window_type;
  options.Get(options::kType, &window_type);
#if defined(USE_X11)
  if (!features::IsUsingOzonePlatform()) {
    
    window_state_watcher_ = std::make_unique<WindowStateWatcher>(this);
    
    bool use_dark_theme = false;
    if (options.Get(options::kDarkTheme, &use_dark_theme) && use_dark_theme) {
      SetGTKDarkThemeEnabled(use_dark_theme);
    }
  }
#endif
#if defined(OS_LINUX)
  if (parent)
    SetParentWindow(parent);
#endif
#if defined(USE_X11)
  if (!features::IsUsingOzonePlatform()) {
    
    
    std::vector<x11::Atom> state_atom_list;
    bool skip_taskbar = false;
    if (options.Get(options::kSkipTaskbar, &skip_taskbar) && skip_taskbar) {