Daniel Brötzmann pushed to branch startup-early-window at gajim / gajim
Commits:
f3a1a984 by wurstsalat at 2025-07-07T23:29:12+02:00
perf: Main window: Display (empty) main window early to indicate startup
progress
- - - - -
2 changed files:
- gajim/gtk/application.py
- gajim/gtk/main.py
Changes:
=====================================
gajim/gtk/application.py
=====================================
@@ -230,14 +230,18 @@ def _startup(self) -> None:
icon_theme = get_icon_theme()
icon_theme.add_search_path(str(configpaths.get("ICONS")))
- from gajim.gtk import notification
-
- notification.init()
-
self.avatar_storage = AvatarStorage()
app.load_css_config()
+ from gajim.gtk.main import MainWindow
+
+ main_window = MainWindow()
+
+ from gajim.gtk import notification
+
+ notification.init()
+
idle.Monitor.set_interval(
app.settings.get("autoawaytime") * 60,
app.settings.get("autoxatime") * 60
)
@@ -256,9 +260,7 @@ def _startup(self) -> None:
self.register_event("feature-discovered", ged.CORE,
self._on_feature_discovered)
- from gajim.gtk.main import MainWindow
-
- MainWindow()
+ main_window.init()
if self._deprecated_options_used:
migration_url = (
=====================================
gajim/gtk/main.py
=====================================
@@ -105,6 +105,18 @@ def __init__(self) -> None:
self.set_title(GLib.get_application_name())
self.set_default_icon_name("gajim")
+ self._startup_finished: bool = False
+
+ self._emoji_chooser: EmojiChooser | None = None
+ self._about_dialog = None
+ self._chat_page = self._main_stack.get_chat_page()
+
+ self._prepare_window()
+
+ def init(self) -> None:
+ """Init is called at a later point, so that the (empty) window can be
+ displayed early, indicating a progressing Gajim startup.
+ """
self._about_dialog = AboutDialog()
self._add_actions()
@@ -112,11 +124,6 @@ def __init__(self) -> None:
self._add_stateful_actions()
self._connect_actions()
- self._startup_finished: bool = False
-
- self._emoji_chooser: EmojiChooser | None = None
-
- self._chat_page = self._main_stack.get_chat_page()
self._app_side_bar.set_chat_page(self._chat_page)
self.connect("notify::is-active", self._on_window_active)
@@ -159,8 +166,6 @@ def __init__(self) -> None:
app.ged.raise_event(events.RegisterActions())
- self._prepare_window()
-
chat_list_stack = self._chat_page.get_chat_list_stack()
app.app.systray.connect_unread_widget(chat_list_stack,
"unread-count-changed")
chat_list_stack.connect("chat-selected", self._on_chat_selected)
@@ -173,6 +178,7 @@ def __init__(self) -> None:
@property
def about_dialog(self) -> AboutDialog:
+ assert self._about_dialog is not None
return self._about_dialog
def get_action(self, name: str) -> Gio.SimpleAction:
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/f3a1a98462ee9793f1002d531fad57b1f97f9f72
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/f3a1a98462ee9793f1002d531fad57b1f97f9f72
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]