Eskil

Diff
Login

Differences From Artifact [8f26a3bc6e]:

To Artifact [f75ebdb331]:


87
88
89
90
91
92
93





94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
    bind $W <Button> {
        psballoon::killBalloon
    }
    bind $W <Leave> {
        psballoon::killBalloon
    }
    bind $W <Motion> {





        if {$::psballoon::balloon(pending) == 1} {
            after cancel $::psballoon::balloon(id)
        }
        if {$::psballoon::balloon(created) == 1} {
            if {$::psballoon::balloon(lastX) == %X && \
                        $::psballoon::balloon(lastY) == %Y} {
                # Sometimes when the balloon is created, a motion event with
                # the same coordinates arrive. Ignore that to avoid killing the
                # new balloon.
                return
            }
            psballoon::killBalloon
        }
        set ::psballoon::balloon(lastX) %X
        set ::psballoon::balloon(lastY) %Y
        set ::psballoon::balloon(id) [after 500 {psballoon::createBalloon %W %x %y}]
        set ::psballoon::balloon(pending) 1
    }
}

proc psballoon::killBalloon {} {
    variable balloon
    if {$balloon(pending) == 1} {
        after cancel $balloon(id)
    }







>
>
>
>
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<







87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

116
117
118
119
120
121
122
    bind $W <Button> {
        psballoon::killBalloon
    }
    bind $W <Leave> {
        psballoon::killBalloon
    }
    bind $W <Motion> {
        psballoon::motionBalloon %W %X %Y %x %y
    }
}

proc psballoon::motionBalloon {W X Y x y} {
    if {$::psballoon::balloon(pending) == 1} {
        after cancel $::psballoon::balloon(id)
    }
    if {$::psballoon::balloon(created) == 1} {
        if {$::psballoon::balloon(lastX) == $X && \
                    $::psballoon::balloon(lastY) == $Y} {
            # Sometimes when the balloon is created, a motion event with
            # the same coordinates arrive. Ignore that to avoid killing the
            # new balloon.
            return
        }
        psballoon::killBalloon
    }
    set ::psballoon::balloon(lastX) $X
    set ::psballoon::balloon(lastY) $Y
    set ::psballoon::balloon(id) [after 500 "psballoon::createBalloon $W $x $y"]
    set ::psballoon::balloon(pending) 1

}

proc psballoon::killBalloon {} {
    variable balloon
    if {$balloon(pending) == 1} {
        after cancel $balloon(id)
    }