mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-24 12:00:15 +10:00
Test custom centreing again
This commit is contained in:
@@ -18,7 +18,7 @@ class AboutFrame(wx.Frame):
|
|||||||
logging.info("Generating About frame")
|
logging.info("Generating About frame")
|
||||||
super(AboutFrame, self).__init__(None, title="About", size=(350, 350), style=wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX))
|
super(AboutFrame, self).__init__(None, title="About", size=(350, 350), style=wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX))
|
||||||
self.constants: constants.Constants = global_constants
|
self.constants: constants.Constants = global_constants
|
||||||
self.Centre()
|
gui_support.Centre(self, self.constants)
|
||||||
self.hyperlink_colour = (25, 179, 231)
|
self.hyperlink_colour = (25, 179, 231)
|
||||||
|
|
||||||
self._generate_elements(self)
|
self._generate_elements(self)
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class BuildFrame(wx.Frame):
|
|||||||
if self.constants.update_stage != gui_support.AutoUpdateStages.INACTIVE:
|
if self.constants.update_stage != gui_support.AutoUpdateStages.INACTIVE:
|
||||||
self.constants.update_stage = gui_support.AutoUpdateStages.BUILDING
|
self.constants.update_stage = gui_support.AutoUpdateStages.BUILDING
|
||||||
|
|
||||||
self.Centre()
|
gui_support.Centre(self, self.constants)
|
||||||
self.frame_modal.ShowWindowModal()
|
self.frame_modal.ShowWindowModal()
|
||||||
|
|
||||||
self._invoke_build()
|
self._invoke_build()
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class InstallOCFrame(wx.Frame):
|
|||||||
if self.constants.update_stage != gui_support.AutoUpdateStages.INACTIVE:
|
if self.constants.update_stage != gui_support.AutoUpdateStages.INACTIVE:
|
||||||
self.constants.update_stage = gui_support.AutoUpdateStages.INSTALLING
|
self.constants.update_stage = gui_support.AutoUpdateStages.INSTALLING
|
||||||
|
|
||||||
self.Centre()
|
gui_support.Centre(self, self.constants)
|
||||||
self.Show()
|
self.Show()
|
||||||
|
|
||||||
self._display_disks()
|
self._display_disks()
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ class macOSInstallerDownloadFrame(wx.Frame):
|
|||||||
"""
|
"""
|
||||||
super(macOSInstallerDownloadFrame, self).__init__(None, title=self.title, size=(300, 200), style=wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX))
|
super(macOSInstallerDownloadFrame, self).__init__(None, title=self.title, size=(300, 200), style=wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX))
|
||||||
gui_support.GenerateMenubar(self, self.constants).generate()
|
gui_support.GenerateMenubar(self, self.constants).generate()
|
||||||
self.Centre()
|
gui_support.Centre(self, self.constants)
|
||||||
|
|
||||||
# Title: Pulling installer catalog
|
# Title: Pulling installer catalog
|
||||||
title_label = wx.StaticText(self, label="Pulling installer catalog", pos=(-1,5))
|
title_label = wx.StaticText(self, label="Pulling installer catalog", pos=(-1,5))
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class macOSInstallerFlashFrame(wx.Frame):
|
|||||||
|
|
||||||
self._generate_elements()
|
self._generate_elements()
|
||||||
|
|
||||||
self.Centre()
|
gui_support.Centre(self, self.constants)
|
||||||
self.Show()
|
self.Show()
|
||||||
|
|
||||||
self._populate_installers()
|
self._populate_installers()
|
||||||
|
|||||||
@@ -39,9 +39,10 @@ class MainFrame(wx.Frame):
|
|||||||
|
|
||||||
self._generate_elements()
|
self._generate_elements()
|
||||||
|
|
||||||
self.Centre()
|
gui_support.Centre(self, self.constants)
|
||||||
self.Show()
|
self.Show()
|
||||||
|
|
||||||
|
|
||||||
self._preflight_checks()
|
self._preflight_checks()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,53 @@ class AutoUpdateStages:
|
|||||||
FINISHED = 5
|
FINISHED = 5
|
||||||
|
|
||||||
|
|
||||||
|
class Centre:
|
||||||
|
"""
|
||||||
|
Alternative to wx.Frame.Centre() for macOS Ventura+ on non-Metal GPUs
|
||||||
|
----------
|
||||||
|
As reported by socamx#3874, all of their non-Metal Mac minis would incorrectly centre
|
||||||
|
at the top of the screen, rather than the screen centre. Half of the window frame would
|
||||||
|
be off-screen, making it rather difficult to grab frame handle and move the window.
|
||||||
|
This bug is only triggered when the application is launched via AppleScript,
|
||||||
|
ie. Relaunch as root for root patching.
|
||||||
|
As calculating screen centre is trivial, this is safe for all non-Metal Macs.
|
||||||
|
Test unit specs:
|
||||||
|
- Macmini4,1 (2010, Nvidia Tesla)
|
||||||
|
- Asus VP228HE 21.5" Display (1920x1080)
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, frame: wx.Frame, global_constants: constants.Constants) -> None:
|
||||||
|
self.frame: wx.Frame = frame
|
||||||
|
self.constants: constants.Constants = global_constants
|
||||||
|
|
||||||
|
self._centre()
|
||||||
|
|
||||||
|
|
||||||
|
def _centre(self) -> None:
|
||||||
|
"""
|
||||||
|
Calculate centre position of screen and set window position
|
||||||
|
"""
|
||||||
|
if self.constants.detected_os < os_data.os_data.ventura:
|
||||||
|
self.frame.Centre()
|
||||||
|
return
|
||||||
|
|
||||||
|
if CheckProperties(self.constants).host_is_non_metal() is False:
|
||||||
|
self.frame.Centre()
|
||||||
|
return
|
||||||
|
|
||||||
|
# Get screen resolution
|
||||||
|
screen_resolution = wx.DisplaySize()
|
||||||
|
logging.info(f"Screen resolution: {screen_resolution}")
|
||||||
|
window_size = self.frame.GetSize()
|
||||||
|
logging.info(f"Window size: {window_size}")
|
||||||
|
|
||||||
|
# Calculate window position
|
||||||
|
x_pos = int((screen_resolution[0] - window_size[0]) / 2)
|
||||||
|
y_pos = int((screen_resolution[1] - window_size[1]) / 2)
|
||||||
|
|
||||||
|
self.frame.SetPosition((x_pos, y_pos))
|
||||||
|
|
||||||
|
|
||||||
class GenerateMenubar:
|
class GenerateMenubar:
|
||||||
|
|
||||||
def __init__(self, frame: wx.Frame, global_constants: constants.Constants) -> None:
|
def __init__(self, frame: wx.Frame, global_constants: constants.Constants) -> None:
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ class SysPatchStartFrame(wx.Frame):
|
|||||||
if not (isinstance(delay, int) | isinstance(delay, float)):
|
if not (isinstance(delay, int) | isinstance(delay, float)):
|
||||||
delay = 1
|
delay = 1
|
||||||
time.sleep(delay)
|
time.sleep(delay)
|
||||||
self.Centre()
|
gui_support.Centre(self, self.constants)
|
||||||
|
|
||||||
if self.patches == {}:
|
if self.patches == {}:
|
||||||
self.patches = sys_patch_detect.DetectRootPatch(self.constants.computer.real_model, self.constants).detect_patch_set()
|
self.patches = sys_patch_detect.DetectRootPatch(self.constants.computer.real_model, self.constants).detect_patch_set()
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class UpdateFrame(wx.Frame):
|
|||||||
self.parent.Centre()
|
self.parent.Centre()
|
||||||
self.screen_location = parent.GetScreenPosition()
|
self.screen_location = parent.GetScreenPosition()
|
||||||
else:
|
else:
|
||||||
self.Centre()
|
gui_support.Centre(self, self.constants)
|
||||||
self.screen_location = self.GetScreenPosition()
|
self.screen_location = self.GetScreenPosition()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user