From 2279735610af3a6986bf2f83b46f5e78b2c80014 Mon Sep 17 00:00:00 2001 From: merlin Date: Mon, 26 Nov 2007 08:58:30 +0000 Subject: Emission d'evenements supplementaires sur Button ButtonRelease et Button_Motion lorsque la valeur de la propriete visible est 0 --- src/MTools/Comp/MMover.pm | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/MTools/Comp/MMover.pm b/src/MTools/Comp/MMover.pm index 6b8c1c1..ae523d7 100644 --- a/src/MTools/Comp/MMover.pm +++ b/src/MTools/Comp/MMover.pm @@ -63,6 +63,9 @@ sub new { $self -> recordEvent ('PRESSED'); $self -> recordEvent ('MOVED'); $self -> recordEvent ('RELEASED'); + $self -> recordEvent ('PRESSED_OFF'); + $self -> recordEvent ('MOVED_OFF'); + $self -> recordEvent ('RELEASED_OFF'); $button = 1 if ! defined $button; binding ($src, "", [\&__pressed, $self, Ev('x'), Ev('y'), Ev('t')]); @@ -100,7 +103,10 @@ sub setPos { sub __pressed { my ($self, $x, $y, $t) = @_; - if(!$self -> mget('-visible')) {return;} + if(!$self -> mget('-visible')) { + $self -> notify ('PRESSED_OFF', $x, $y, $t); + return; + } $self -> {__started} = 1; $self -> {__last_mouse_x} = $x; $self -> {__last_mouse_y} = $y; @@ -109,8 +115,10 @@ sub __pressed { sub __moved { my ($self, $x, $y, $t) = @_; - if (!$self -> {__started}) {return;} - if(!$self -> mget('-visible')) {return;} + if (!$self -> {__started} || !$self -> mget('-visible')) { + $self -> notify ('MOVED_OFF', $x, $y, $t); + return; + } my $dx = $x - $self -> {__last_mouse_x}; my $dy = $y - $self -> {__last_mouse_y}; @@ -177,7 +185,10 @@ sub __moved { sub __released { my ($self, $x, $y, $t) = @_; $self -> {__started} = 0; - if(!$self -> mget('-visible')) {return;} + if (!$self -> mget('-visible')) { + $self -> notify ('RELEASED_OFF', $x, $y, $t); + return; + } $self -> notify ('RELEASED', $self -> {__last_mouse_x}, $self -> {__last_mouse_y}, $t); } -- cgit v1.1