diff --git a/gui/__main__.py b/gui/__main__.py index f77dbe7..777f9ce 100755 --- a/gui/__main__.py +++ b/gui/__main__.py @@ -2658,13 +2658,6 @@ class MenuPage(Page): ticket_number=ticket_number, billing_code=billing_code, ) - parent = self.update_status - try: - px = parent.x() + (parent.width() - self.popup.width()) // 2 - py = parent.y() + (parent.height() - self.popup.height()) // 2 - self.popup.move(max(px, 0), max(py, 0)) - except Exception: - pass self.popup.show() def DisplayInstallScreen(self, package_name): @@ -9139,6 +9132,38 @@ class TicketDataLossPopup(QWidget): self.copy_button.setText("Copy Billing Code") self.copy_button.setStyleSheet(self._copy_button_default_style) + def showEvent(self, event): + super().showEvent(event) + self._center_on_parent() + + def _center_on_parent(self): + parent = self.parent_window + if parent is None: + return + try: + self.adjustSize() + parent_geom = parent.frameGeometry() if hasattr(parent, 'frameGeometry') else None + if parent_geom is None or parent_geom.isEmpty(): + return + my_rect = self.frameGeometry() + my_rect.moveCenter(parent_geom.center()) + target = my_rect.topLeft() + screen = None + if hasattr(parent, 'screen'): + try: + screen = parent.screen() + except Exception: + screen = None + if screen is not None: + avail = screen.availableGeometry() + tx = max(avail.left(), min(target.x(), avail.right() - my_rect.width())) + ty = max(avail.top(), min(target.y(), avail.bottom() - my_rect.height())) + self.move(tx, ty) + else: + self.move(target) + except Exception: + pass + def mousePressEvent(self, event): self.oldPos = event.globalPosition().toPoint()