Skip to content

Commit

Permalink
Add origin coordinates to Screen object
Browse files Browse the repository at this point in the history
  • Loading branch information
r0x0r committed Jan 20, 2025
1 parent b89709b commit ec1603c
Show file tree
Hide file tree
Showing 7 changed files with 13 additions and 6 deletions.
4 changes: 4 additions & 0 deletions tests/test_screens.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@

def test_screens():
assert len(webview.screens) > 0
assert webview.screens[0].width > 0
assert webview.screens[0].height > 0
assert type(webview.screens[0].x) == int
assert type(webview.screens[0].y) == int
1 change: 1 addition & 0 deletions webview/platforms/android.py
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,7 @@ def get_current_url(_):
return app.view.getUrl()

def get_screens():
logger.warning('Screen information is not supported on Android')
return []


Expand Down
2 changes: 1 addition & 1 deletion webview/platforms/cocoa.py
Original file line number Diff line number Diff line change
Expand Up @@ -1423,7 +1423,7 @@ def _size(dimensions):

def get_screens():
screens = [
Screen(s.frame().size.width, s.frame().size.height, s.frame()) for s in AppKit.NSScreen.screens()
Screen(s.frame().origin.x, s.frame().origin.y, s.frame().size.width, s.frame().size.height, s.frame()) for s in AppKit.NSScreen.screens()
]
return screens

Expand Down
2 changes: 1 addition & 1 deletion webview/platforms/gtk.py
Original file line number Diff line number Diff line change
Expand Up @@ -942,7 +942,7 @@ def get_screens():
n = display.get_n_monitors()
monitors = [Gdk.Display.get_monitor(display, i) for i in range(n)]
geometries = [Gdk.Monitor.get_geometry(m) for m in monitors]
screens = [Screen(geom.width, geom.height, geom) for geom in geometries]
screens = [Screen(geom.x, geom.y, geom.width, geom.height, geom) for geom in geometries]

return screens

Expand Down
2 changes: 1 addition & 1 deletion webview/platforms/qt.py
Original file line number Diff line number Diff line change
Expand Up @@ -1085,7 +1085,7 @@ def get_size(uid):
def get_screens():
global _app
_app = QApplication.instance() or QApplication(sys.argv)
screens = [Screen(s.geometry().width(), s.geometry().height(), s) for s in _app.screens()]
screens = [Screen(s.geometry().x, s.geometry().y, s.geometry().width(), s.geometry().height(), s) for s in _app.screens()]

return screens

Expand Down
2 changes: 1 addition & 1 deletion webview/platforms/winforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -936,7 +936,7 @@ def get_size(uid):


def get_screens():
screens = [Screen(s.Bounds.Width, s.Bounds.Height, s.WorkingArea) for s in WinForms.Screen.AllScreens]
screens = [Screen(s.Bounds.X, s.Bounds.Y, s.Bounds.Height, s.WorkingArea) for s in WinForms.Screen.AllScreens]
return screens


Expand Down
6 changes: 4 additions & 2 deletions webview/screen.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
class Screen:
def __init__(self, width: int, height: int, frame: object = None) -> None:
def __init__(self, x: int, y: int, width: int, height: int, frame: object = None) -> None:
self.x = int(x)
self.y = int(y)
self.width = int(width)
self.height = int(height)
self.frame = frame
Expand All @@ -8,4 +10,4 @@ def __str__(self) -> str:
return repr(self)

def __repr__(self) -> str:
return '(%s, %s)' % (self.width, self.height)
return f'{self.width}x{self.height} at {self.x},{self.y}'

0 comments on commit ec1603c

Please sign in to comment.