fixed bbox property not returning the correct x2 and y2
This commit is contained in:
parent
11476f5de8
commit
59ee20efe5
4 changed files with 12 additions and 11 deletions
4
main.pyw
4
main.pyw
|
@ -14,8 +14,8 @@ class TestScene(Scene):
|
|||
self.add_widget(FPSDisplay)
|
||||
label = self.add_widget(Text, text="Hello World !", x=0.5, y=0.5, width=0.5, height=0.5, anchor_x="center", anchor_y="center")
|
||||
|
||||
label.on_pressed = lambda self, button, modifiers: print("pressed", self, button, modifiers)
|
||||
label.on_release = lambda self, button, modifiers: print("release", self, button, modifiers)
|
||||
label.on_pressed = lambda button, modifiers: print("pressed", label, button, modifiers)
|
||||
label.on_release = lambda button, modifiers: print("release", label, button, modifiers)
|
||||
|
||||
|
||||
# Create a new window
|
||||
|
|
|
@ -59,14 +59,13 @@ class Scene(ABC):
|
|||
:return: une fonction appelant l'événement original ainsi que ceux des scènes.
|
||||
"""
|
||||
|
||||
# Récupère la fonction originale. S'il n'y en a pas, renvoie une fonction sans effet.
|
||||
try:
|
||||
func = super().__getattribute__(item)
|
||||
except AttributeError:
|
||||
func = lambda *_, **__: "pass" # NOQA E731
|
||||
# Récupère la fonction originale. S'il n'y en a pas, renvoie une fonction sans effet.*
|
||||
func = None
|
||||
try: func = super().__getattribute__(item)
|
||||
except AttributeError: pass
|
||||
|
||||
def _func(*args, **kwargs) -> None:
|
||||
func(*args, **kwargs)
|
||||
if func is not None: func(*args, **kwargs)
|
||||
for widget in self._widgets:
|
||||
getattr(widget, item, lambda *_, **__: "pass")(*args, **kwargs)
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ class BoxWidget(Widget, ABC):
|
|||
|
||||
@property
|
||||
def bbox(self) -> tuple[int, int, int, int]:
|
||||
return self.x, self.y, self.width, self.height
|
||||
return self.x, self.y, self.x + self.width, self.y + self.height
|
||||
|
||||
# event
|
||||
|
||||
|
|
|
@ -76,10 +76,12 @@ class Window(pyglet.window.Window): # NOQA
|
|||
:return: une fonction appelant l'événement original ainsi que ceux des scènes.
|
||||
"""
|
||||
|
||||
func = super().__getattribute__(item)
|
||||
func = None
|
||||
try: func = super().__getattribute__(item)
|
||||
except AttributeError: pass
|
||||
|
||||
def _func(*args, **kwargs) -> None:
|
||||
func(*args, **kwargs)
|
||||
if func is not None: func(*args, **kwargs)
|
||||
for scene in self._scenes:
|
||||
getattr(scene, item)(*args, **kwargs)
|
||||
|
||||
|
|
Loading…
Reference in a new issue