From 7d4b9216065f5a73cfc3a2a2b671cf7ce706a29b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 10 May 2011 15:23:36 +0200 Subject: [PATCH] Limit the size of form inside dialog according to the parent/transiant window --- tryton/gui/window/view_form/view/form.py | 6 ++++++ tryton/wizard/main.py | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/tryton/gui/window/view_form/view/form.py b/tryton/gui/window/view_form/view/form.py index f41a4c02a9..12bc70aa88 100644 --- a/tryton/gui/window/view_form/view/form.py +++ b/tryton/gui/window/view_form/view/form.py @@ -43,6 +43,12 @@ class ViewForm(ParserView): viewport.add(scroll) if isinstance(self.screen.window, gtk.Dialog): width, height = self.widget.size_request() + if self.screen.window: + parent = self.screen.window.get_transient_for() + if parent: + parent_width, parent_height = parent.get_size() + width = min(parent_width - 40, width) + height = min(parent_height - 80, height) vbox.set_size_request(width or -1, height or -1) vbox.pack_start(viewport, expand=True, fill=True) diff --git a/tryton/wizard/main.py b/tryton/wizard/main.py index ec9479235b..6cb22a3aec 100644 --- a/tryton/wizard/main.py +++ b/tryton/wizard/main.py @@ -103,10 +103,10 @@ class Dialog(object): width, height = self.screen.screen_container.size_get() parent_width, parent_height = parent.get_size() dia_width, dia_height = self.dia.get_size() - self.widget_width = max(min(parent_width - 20, - max(dia_width, width + 20)), size[0]) - self.widget_height = max(min(parent_height - 60, - height + dia_height + 20), size[1]) + self.widget_width = min(parent_width - 20, + max(dia_width, width + 20, size[0])) + self.widget_height = min(parent_height - 60, + max(height + dia_height + 20, size[1])) self.dia.set_default_size(self.widget_width, self.widget_height) self.screen.widget.show()