diff --git a/start.py b/start.py index 3c57ec9..bdb16f6 100644 --- a/start.py +++ b/start.py @@ -1,5 +1,6 @@ -import os +import signal import sys +import traceback from PyQt6.QtWidgets import QApplication @@ -7,30 +8,28 @@ from core.app import StickyNoteApp def main() -> int: - os.environ["QT_AUTO_SCREEN_SCALE_FACTOR"] = "1" + signal.signal(signal.SIGINT, signal.SIG_DFL) - QApplication.setQuitOnLastWindowClosed(False) - - app = QApplication.instance() - if app is None: - app = QApplication(sys.argv) - - app.setQuitLockEnabled(False) - - existing = getattr(app, "_sticky_note_instance", None) - if existing is not None: - existing.raise_() - existing.activateWindow() - return 0 + app = QApplication(sys.argv) window = StickyNoteApp() - - app._sticky_note_instance = window - window.show() - return app.exec() + try: + return app.exec() + except KeyboardInterrupt: + try: + window.safe_exit() + except Exception: + traceback.print_exc() + + return 0 + except SystemExit: + return 0 + except Exception: + traceback.print_exc() + return 1 if __name__ == "__main__": - raise SystemExit(main()) + raise SystemExit(main()) \ No newline at end of file