Użytkownik Paul McNett napisał: > Ah, that's because we'd already set the Position property in a block above. > Seems > silly to set the Position before setting Right and Bottom and finally setting > Left > and Top. Here's a proposed modification, let me know if it still solves your > problem > or not. If we must test for WindowState still we can do that... > I modified your patch a little bit (setting Left and Top) and now it works, check it please.
--- dFormMixin.py Fri Jan 30 11:18:07 2009 +++ dFormMixin.py.my Fri Jan 30 11:15:10 2009 @@ -485,35 +485,36 @@ """ if self.Application and self.SaveRestorePosition: name = self.getAbsoluteName() + state = self.Application.getUserSetting("%s.windowstate" % name, self._defaultState) + width = self.Application.getUserSetting("%s.width" % name, self._defaultWidth) + height = self.Application.getUserSetting("%s.height" % name, self._defaultHeight) + if not self.Centered: left = self.Application.getUserSetting("%s.left" % name, self._defaultLeft) top = self.Application.getUserSetting("%s.top" % name, self._defaultTop) + if isinstance(left, int) and isinstance(top, int): - self.Position = (left,top) - width = self.Application.getUserSetting("%s.width" % name, self._defaultWidth) - height = self.Application.getUserSetting("%s.height" % name, self._defaultHeight) - state = self.Application.getUserSetting("%s.windowstate" % name, self._defaultState) + # Make sure that the frame is on the visible display + if self.Application.Platform == "Mac": + # Need to account for the menu bar + minTop = 23 + else: + minTop = 0 + dispWd, dispHt = dabo.ui.getDisplaySize() + self.Right = min(dispWd, left + width) + self.Bottom = min(dispHt, top + height) + self.Left = max(0, left) + self.Top = max(minTop, top) if isinstance(width, int) and isinstance(height, int): if self.BorderResizable: - self.Size = (width,height) + self.Size = (width, height) if state is not None: if state == "Minimized": state = "Normal" self.WindowState = state - # Make sure that the frame is on the visible display - dispWd, dispHt = dabo.ui.getDisplaySize() - self.Right = min(dispWd, self.Right) - self.Bottom = min(dispHt, self.Bottom) - if self.Application.Platform == "Mac": - # Need to account for the menu bar - minTop = 23 - else: - minTop = 0 - self.Left = max(0, self.Left) - self.Top = max(minTop, self.Top) - + self.restoredSP = True -- Regards Jacek Kałucki LS0tIGRGb3JtTWl4aW4ucHkJRnJpIEphbiAzMCAxMToxODowNyAyMDA5CisrKyBkRm9ybU1p eGluLnB5Lm15CUZyaSBKYW4gMzAgMTE6MTU6MTAgMjAwOQpAQCAtNDg1LDM1ICs0ODUsMzYg QEAKIAkJIiIiCiAJCWlmIHNlbGYuQXBwbGljYXRpb24gYW5kIHNlbGYuU2F2ZVJlc3RvcmVQ b3NpdGlvbjoKIAkJCW5hbWUgPSBzZWxmLmdldEFic29sdXRlTmFtZSgpCisJCQlzdGF0ZSA9 IHNlbGYuQXBwbGljYXRpb24uZ2V0VXNlclNldHRpbmcoIiVzLndpbmRvd3N0YXRlIiAlIG5h bWUsIHNlbGYuX2RlZmF1bHRTdGF0ZSkKKwkJCXdpZHRoID0gc2VsZi5BcHBsaWNhdGlvbi5n ZXRVc2VyU2V0dGluZygiJXMud2lkdGgiICUgbmFtZSwgc2VsZi5fZGVmYXVsdFdpZHRoKQor CQkJaGVpZ2h0ID0gc2VsZi5BcHBsaWNhdGlvbi5nZXRVc2VyU2V0dGluZygiJXMuaGVpZ2h0 IiAlIG5hbWUsIHNlbGYuX2RlZmF1bHRIZWlnaHQpCisKIAkJCWlmIG5vdCBzZWxmLkNlbnRl cmVkOgogCQkJCWxlZnQgPSBzZWxmLkFwcGxpY2F0aW9uLmdldFVzZXJTZXR0aW5nKCIlcy5s ZWZ0IiAlIG5hbWUsIHNlbGYuX2RlZmF1bHRMZWZ0KQogCQkJCXRvcCA9IHNlbGYuQXBwbGlj YXRpb24uZ2V0VXNlclNldHRpbmcoIiVzLnRvcCIgJSBuYW1lLCBzZWxmLl9kZWZhdWx0VG9w KQorCQkJCQogCQkJCWlmIGlzaW5zdGFuY2UobGVmdCwgaW50KSBhbmQgaXNpbnN0YW5jZSh0 b3AsIGludCk6Ci0JCQkJCXNlbGYuUG9zaXRpb24gPSAobGVmdCx0b3ApCi0JCQl3aWR0aCA9 IHNlbGYuQXBwbGljYXRpb24uZ2V0VXNlclNldHRpbmcoIiVzLndpZHRoIiAlIG5hbWUsIHNl bGYuX2RlZmF1bHRXaWR0aCkKLQkJCWhlaWdodCA9IHNlbGYuQXBwbGljYXRpb24uZ2V0VXNl clNldHRpbmcoIiVzLmhlaWdodCIgJSBuYW1lLCBzZWxmLl9kZWZhdWx0SGVpZ2h0KQotCQkJ c3RhdGUgPSBzZWxmLkFwcGxpY2F0aW9uLmdldFVzZXJTZXR0aW5nKCIlcy53aW5kb3dzdGF0 ZSIgJSBuYW1lLCBzZWxmLl9kZWZhdWx0U3RhdGUpCisJCQkJCSMgTWFrZSBzdXJlIHRoYXQg dGhlIGZyYW1lIGlzIG9uIHRoZSB2aXNpYmxlIGRpc3BsYXkKKwkJCQkJaWYgc2VsZi5BcHBs aWNhdGlvbi5QbGF0Zm9ybSA9PSAiTWFjIjoKKwkJCQkJCSMgTmVlZCB0byBhY2NvdW50IGZv ciB0aGUgbWVudSBiYXIKKwkJCQkJCW1pblRvcCA9IDIzCisJCQkJCWVsc2U6CisJCQkJCQlt aW5Ub3AgPSAwCisJCQkJCWRpc3BXZCwgZGlzcEh0ID0gZGFiby51aS5nZXREaXNwbGF5U2l6 ZSgpCisJCQkJCXNlbGYuUmlnaHQgPSBtaW4oZGlzcFdkLCBsZWZ0ICsgd2lkdGgpCisJCQkJ CXNlbGYuQm90dG9tID0gbWluKGRpc3BIdCwgdG9wICsgaGVpZ2h0KQorCQkJCQlzZWxmLkxl ZnQgPSBtYXgoMCwgbGVmdCkKKwkJCQkJc2VsZi5Ub3AgPSBtYXgobWluVG9wLCB0b3ApCiAK IAkJCWlmIGlzaW5zdGFuY2Uod2lkdGgsIGludCkgYW5kIGlzaW5zdGFuY2UoaGVpZ2h0LCBp bnQpOgogCQkJCWlmIHNlbGYuQm9yZGVyUmVzaXphYmxlOgotCQkJCQlzZWxmLlNpemUgPSAo d2lkdGgsaGVpZ2h0KQorCQkJCQlzZWxmLlNpemUgPSAod2lkdGgsIGhlaWdodCkKIAogCQkJ aWYgc3RhdGUgaXMgbm90IE5vbmU6CiAJCQkJaWYgc3RhdGUgPT0gIk1pbmltaXplZCI6CiAJ CQkJCXN0YXRlID0gIk5vcm1hbCIKIAkJCQlzZWxmLldpbmRvd1N0YXRlID0gc3RhdGUKLQkJ CSMgTWFrZSBzdXJlIHRoYXQgdGhlIGZyYW1lIGlzIG9uIHRoZSB2aXNpYmxlIGRpc3BsYXkK LQkJCWRpc3BXZCwgZGlzcEh0ID0gZGFiby51aS5nZXREaXNwbGF5U2l6ZSgpCi0JCQlzZWxm LlJpZ2h0ID0gbWluKGRpc3BXZCwgc2VsZi5SaWdodCkKLQkJCXNlbGYuQm90dG9tID0gbWlu KGRpc3BIdCwgc2VsZi5Cb3R0b20pCi0JCQlpZiBzZWxmLkFwcGxpY2F0aW9uLlBsYXRmb3Jt ID09ICJNYWMiOgotCQkJCSMgTmVlZCB0byBhY2NvdW50IGZvciB0aGUgbWVudSBiYXIKLQkJ CQltaW5Ub3AgPSAyMwotCQkJZWxzZToKLQkJCQltaW5Ub3AgPSAwCi0JCQlzZWxmLkxlZnQg PSBtYXgoMCwgc2VsZi5MZWZ0KQotCQkJc2VsZi5Ub3AgPSBtYXgobWluVG9wLCBzZWxmLlRv cCkKLQorCQkJCiAJCQlzZWxmLnJlc3RvcmVkU1AgPSBUcnVlCiAKIAo= --- StripMime Report -- processed MIME parts --- multipart/mixed text/plain (text body -- kept) text/plain (text body -- kept) --- _______________________________________________ Post Messages to: Dabo-users@leafe.com Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users Searchable Archives: http://leafe.com/archives/search/dabo-users This message: http://leafe.com/archives/byMID/4982d50e.6080...@rz.onet.pl