nodegui / react-nodegui

Build performant, native and cross-platform desktop applications with native React + powerful CSS like styling.🚀
https://react.nodegui.org
MIT License
6.18k stars 171 forks source link

Add windowGeometryChanged to QMainWindowSignals to track window changes. #384

Open pro100andrik opened 9 months ago

pro100andrik commented 9 months ago

Is your feature request related to a problem? Please describe. I want to control window size and position changes to store them and when app close and starts again, read that geometry and show the window at the same size and coordinates when it was closed.

Describe the solution you'd like I think adding windowGeometryChanged method for QMainWindowSignals will be a perfect solution to this issue. When window changes its geometry, this signal will be fired and will return Geometry

Describe alternatives you've considered After reading the documentation and looking through the issues in this repository, I didn't find such a signal, so I came up with this solution

const mainWindowRef = useRef(null)
const handleMainWindowChange = useEventHandler({
  Resize: () => {
    console.log(mainWindowRef.current.native.size().height())
    console.log(mainWindowRef.current.native.size().width())
  },
  Move: () => {
    console.log(mainWindowRef.current.native.pos())
  }
}, [mainWindowRef])
<Window
  ref={mainWindowRef}
  on={handleMainWindowChange}
>
</Window>

Additional context Maybe I have missed something in documentation, let me know what.

sedwards2009 commented 9 months ago

I catch the same events in my app for the same purpose.