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 -- commits@gajim.org To unsubscribe send an email to commits-le...@gajim.org