[pitivi/sdk: 7/7] mainwindow: Show the UI when window is ready
- From: Alexandru Băluț <alexbalut src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi/sdk: 7/7] mainwindow: Show the UI when window is ready
- Date: Sat, 16 Nov 2019 21:30:32 +0000 (UTC)
commit bb821f48e32513b831f0818093c19efff88f1bbf
Author: Alexandru Băluț <alexandru balut gmail com>
Date: Sat Nov 9 11:09:18 2019 +0100
mainwindow: Show the UI when window is ready
This prevents a GTK error about the Greeter perspective's headerbar
providing a negative size for some widget.
(pitivi:358): Gtk-WARNING **: 21:41:06.354: gtk_widget_size_allocate(): attempt to allocate widget with
width -151 and height 19
pitivi/mainwindow.py | 12 ++++++++++++
1 file changed, 12 insertions(+)
---
diff --git a/pitivi/mainwindow.py b/pitivi/mainwindow.py
index 37bb29fe..5df88946 100644
--- a/pitivi/mainwindow.py
+++ b/pitivi/mainwindow.py
@@ -97,7 +97,9 @@ class MainWindow(Gtk.ApplicationWindow, Loggable):
self.app = app
self.greeter = GreeterPerspective(app)
self.editor = EditorPerspective(app)
+ self.__placed = False
self.__perspective = None
+ self.__wanted_perspective = None
app.project_manager.connect("new-project-loading",
self.__new_project_loading_cb)
@@ -118,6 +120,7 @@ class MainWindow(Gtk.ApplicationWindow, Loggable):
width = self.app.settings.mainWindowWidth
height = self.app.settings.mainWindowHeight
if height == -1 and width == -1:
+ self.__placed = True
self.maximize()
else:
# Wait until placing the window, to avoid the window manager
@@ -137,8 +140,12 @@ class MainWindow(Gtk.ApplicationWindow, Loggable):
self.connect("delete-event", self.__delete_cb)
def __initial_placement_cb(self, x, y, width, height):
+ self.__placed = True
self.resize(width, height)
self.move(x, y)
+ if self.__wanted_perspective:
+ self.show_perspective(self.__wanted_perspective)
+ self.__wanted_perspective = None
def check_screen_constraints(self):
"""Shrinks some widgets to fit better on smaller screen resolutions."""
@@ -244,6 +251,11 @@ class MainWindow(Gtk.ApplicationWindow, Loggable):
def show_perspective(self, perspective):
"""Displays the specified perspective."""
+ if not self.__placed:
+ self.log("Postponing the perspective setting until the window is placed")
+ self.__wanted_perspective = perspective
+ return
+
if self.__perspective is perspective:
return
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]