def onMouseDown(self, sender, x, y):
        """ catch a mouse down for parent """

        ev = DOM.eventGetCurrentEvent()
        # ignore right-button downs
        if DOM.eventGetButton(ev) != Event.BUTTON_LEFT:
            return
        DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
        # parent will capture the mouse and handle the dragging from here
        self._splitpanel.startSplitterDrag(x, y)
Ejemplo n.º 2
0
    def onMouseDown(self, sender, x, y):
        """ catch a mouse down for parent """

        ev = DOM.eventGetCurrentEvent()
        # ignore right-button downs
        if DOM.eventGetButton(ev) != Event.BUTTON_LEFT:
            return
        DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
        # parent will capture the mouse and handle the dragging from here
        self._splitpanel.startSplitterDrag(x, y)
Ejemplo n.º 3
0
 def onKeyDown(self, sender, keycode, modifiers):
     if keycode == KeyboardListener.KEY_UP:
         DOM.eventPreventDefault(DOM.eventGetCurrentEvent());
         new_value = self.processValue(self.value + self.step)
         self.setControlPos(new_value)
         self.setValue(new_value)
     elif keycode == KeyboardListener.KEY_DOWN:
         DOM.eventPreventDefault(DOM.eventGetCurrentEvent());
         new_value = self.processValue(self.value - self.step)
         self.setControlPos(new_value)
         self.setValue(new_value)
 def onKeyDown(self, sender, keycode, modifiers):
     if keycode == KeyboardListener.KEY_UP:
         DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
         new_value = self.processValue(self.value + self.step)
         self.setControlPos(new_value)
         self.setValue(new_value)
     elif keycode == KeyboardListener.KEY_DOWN:
         DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
         new_value = self.processValue(self.value - self.step)
         self.setControlPos(new_value)
         self.setValue(new_value)
Ejemplo n.º 5
0
 def onKeyDown(self, sender, keycode, modifiers):
     if keycode == KeyboardListener.KEY_UP:
         DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
         new_value_x, new_value_y = \
             self.processValue((self.value_x + self.step_x,
                                self.value_y + self.step_y))
         self.setControlPos((new_value_x,new_value_y))
         self.setValue((new_value_x, new_value_y))
     elif keycode == KeyboardListener.KEY_DOWN:
         DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
         new_value_x, new_value_y = \
            self.processValue((self.value_x - self.step_x,
                               self.value_y-self.step_y))
         self.setControlPos((new_value_x, new_value_y))
         self.setValue((new_value_x, new_value_y))
Ejemplo n.º 6
0
    def onKeyDown(self, sender, keycode, modifiers):

        evt = DOM.eventGetCurrentEvent()
        DOM.eventPreventDefault(evt)

        if self.word_selected_pos is None:
            return

        val = chr(keycode)
        done = False

        if keycode == KeyboardListener.KEY_DELETE:
            self.shift_letters_back()
            done = True
        elif keycode == KeyboardListener.KEY_BACKSPACE:
            if not self.nasty_hack():
                if self.moveCursor(-1):
                    self.shift_letters_back()
            done = True
        elif keycode == KeyboardListener.KEY_LEFT:
            self.moveCursor(-1)
            done = True
        elif keycode == KeyboardListener.KEY_RIGHT:
            self.moveCursor(1)
            done = True

        print "onKeyDown", keycode, val, self.rexp.match(val)

        if not done:
            if self.rexp.match(val):
                self.press_letter(val)

        for listener in self._keypressListeners:
            listener.onKeyPressed(sender, keycode, modifiers)
Ejemplo n.º 7
0
 def onMouseMove(self, sender, x, y):
     event = DOM.eventGetCurrentEvent()
     DOM.eventPreventDefault(event)
     # mousing auto re-enables mouse-over hover feedback
     if not self.theChild.getHoverTouchingEnabled():
         self.theChild.setHoverTouchingEnabled(True)
         self.theChild.update()
 def _stopDragging(self):
     if self._drag_start is not None:
         # we are no longer dragging
         self._drag_start = None
         # deactivate the transparent overlay
         GlassWidget.hide()
         # don't let a mouse-up become a click event
         DOM.eventCancelBubble(DOM.eventGetCurrentEvent(), True)
Ejemplo n.º 9
0
 def onMouseDown(self, sender, x, y):
     event = DOM.eventGetCurrentEvent()
     event_button = DOM.eventGetButton(event)
     if event_button == Event.BUTTON_RIGHT:
         from edu.uca.renderable.block.MainBlock import MainBlock
         if not self.original and not isinstance(self, MainBlock):
             self.buttonRightDown = self
         DOM.eventStopPropagation(event)
Ejemplo n.º 10
0
 def onMouseUp(self, sender, x, y):
     event = DOM.eventGetCurrentEvent()
     eventButton = DOM.eventGetButton(event)
     if eventButton == Event.BUTTON_LEFT:
         remote = server.TickeryService()
         id = remote.login(LoginRedirector(self))
         if id < 0:
             self.setWidget(0, 1, Label('oops: LoginPanel'))
 def onClick(self, sender=None):
     self.setFocus(True)
     # work out the relative position of cursor
     event = DOM.eventGetCurrentEvent()
     mouse_x = DOM.eventGetClientX(event) + Window.getScrollLeft()
     mouse_y = DOM.eventGetClientY(event) + Window.getScrollTop()
     self.moveControl(mouse_x - self.getAbsoluteLeft(),
                      mouse_y - self.getAbsoluteTop(), True)
Ejemplo n.º 12
0
 def onClick(self, sender=None):
     self.setFocus(True);
     # work out the relative position of cursor
     event = DOM.eventGetCurrentEvent()
     mouse_x = DOM.eventGetClientX(event) + Window.getScrollLeft()
     mouse_y = DOM.eventGetClientY(event) + Window.getScrollTop()
     self.moveControl(mouse_x - self.getAbsoluteLeft(),
                      mouse_y - self.getAbsoluteTop())
Ejemplo n.º 13
0
 def _stopDragging(self):
     if self._drag_start is not None:
         # we are no longer dragging
         self._drag_start = None
         # deactivate the transparent overlay
         GlassWidget.hide()
         # don't let a mouse-up become a click event
         DOM.eventCancelBubble(DOM.eventGetCurrentEvent(), True)
Ejemplo n.º 14
0
 def onMouseDown(self, sender, x, y):
     # regardless of drag_enabled, onMouseDown must prevent
     # default, in order to avoid losing focus.
     DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
     if not self.drag_enabled:
         return
     self.dragging = True
     DOM.setCapture(self.getElement())
     self.moveControl(x + Window.getScrollLeft(), y + Window.getScrollTop())
Ejemplo n.º 15
0
 def onMouseUp(self, sender, x, y):
     event = DOM.eventGetCurrentEvent()
     DOM.eventPreventDefault(event)
     if self.selecting  or  self.moving:
         self.p2.x = self.getXAxis().getMouseCoordinate()
         self.p2.y = self.getYAxis().getMouseCoordinate()
         self.updateCursor()
         self.selecting = False
         self.moving = False
Ejemplo n.º 16
0
 def onMouseWheel(self, sender, x, y):
     event = DOM.eventGetCurrentEvent()
     DOM.eventPreventDefault(event)
     if self.getCurve(self.SELECTION_CURVE).isVisible():
         if event.isNorth():
             self.zoomIn()
         
         elif event.isSouth():
             self.zoomOut()
Ejemplo n.º 17
0
 def onMouseDown(self, sender, x, y):
     # regardless of drag_enabled, onMouseDown must prevent
     # default, in order to avoid losing focus.
     DOM.eventPreventDefault(DOM.eventGetCurrentEvent());
     if not self.drag_enabled:
         return
     self.dragging = True
     DOM.setCapture(self.getElement())
     self.moveControl(x + Window.getScrollLeft(), y + Window.getScrollTop())
Ejemplo n.º 18
0
def event_preventDefault():
    """
    Prevents the current event's default behavior.
    """
    event = DOM.eventGetCurrentEvent()
    if event.preventDefault:
        event.preventDefault()
    else:
        event.returnValue = False
Ejemplo n.º 19
0
 def onKeyPress(self, sender, keycode, modifiers):
     DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) #not needed
     if keycode == KeyboardListener.KEY_UP:
         self.nextContest()
     if keycode == KeyboardListener.KEY_DOWN:
         self.nextContest()
     if keycode == KeyboardListener.KEY_LEFT:
         self.nextSelection()
     if keycode == KeyboardListener.KEY_RIGHT:
         self.nextSelection()
 def onMouseUp(self, sender, x, y):
     ev = DOM.eventGetCurrentEvent()
     # ignore right-button ups
     if DOM.eventGetButton(ev) != Event.BUTTON_LEFT:
         return
     DOM.eventPreventDefault(ev)
     # if we are dragging
     if self._isDragging():
         # stop dragging on mouse up
         self._stopDragging()
Ejemplo n.º 21
0
 def onMouseUp(self, sender, x, y):
     ev = DOM.eventGetCurrentEvent()
     # ignore right-button ups
     if DOM.eventGetButton(ev) != Event.BUTTON_LEFT:
         return
     DOM.eventPreventDefault(ev)
     # if we are dragging
     if self._isDragging():
         # stop dragging on mouse up
         self._stopDragging()
Ejemplo n.º 22
0
    def onKeyPress(self, sender, keycode, modifiers):
        enter = keycode == KeyboardListener.KEY_ENTER
        enterOrTab = enter or keycode == KeyboardListener.KEY_TAB

        if sender == self.name1:
            if enterOrTab:
                # Move to name2 & highlight.
                DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
                self.name2.setFocus(True)
                self.name2.highlight()
        elif sender == self.name2:
            if enter:
                if modifiers & KeyboardListener.MODIFIER_SHIFT:
                    # Move back to name1 & highlight.
                    self.name1.setFocus(True)
                    self.name1.highlight()
                else:
                    # Send query.
                    DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
                    self.process()
Ejemplo n.º 23
0
 def onMouseUp(self, sender, x, y):
     event = DOM.eventGetCurrentEvent()
     eventButton = DOM.eventGetButton(event)
     if eventButton == Event.BUTTON_LEFT:
         _deleteCookie()
         remote = server.TickeryService()
         id = remote.logout(self.sender.oauthCookie,
                            LogoutRedirector(self.sender))
         if id < 0:
             self.sender.setWidget(
                 0, 1, Label("Oops: Couldn't call log out!"))
 def onMouseDown(self, sender, x, y):
     # regardless of drag_enabled, onMouseDown must prevent
     # default, in order to avoid losing focus.
     self.setFocus(True)
     DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
     if not self.drag_enabled:
         return
     self.dragging = True
     GlassWidget.show(self)
     self.moveControl(x + Window.getScrollLeft(), y + Window.getScrollTop(),
                      True)
Ejemplo n.º 25
0
 def onKeyPress(self, sender, keycode, modifiers):
     if keycode == KeyboardListener.KEY_ENTER:
         DOM.eventPreventDefault(DOM.eventGetCurrentEvent());
         txt = self.input.getText()
         if not txt:
             return
         new_value = float(txt)
         new_value = self.processValue(new_value)
         self.setControlPos(new_value)
         self.setValue(new_value)
     else:
         Control.onKeyPress(self, sender, keycode, modifiers)
Ejemplo n.º 26
0
 def setKey(self, k, set):
     DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
     if k == KeyboardListener.KEY_UP:
         self.key_up = set
     elif k == KeyboardListener.KEY_DOWN:
         self.key_down = set
     elif k == KeyboardListener.KEY_LEFT:
         self.key_left = set
     elif k == KeyboardListener.KEY_RIGHT:
         self.key_right = set
     elif k == 32:
         self.key_fire = set
 def onKeyPress(self, sender, keycode, modifiers):
     if keycode == KeyboardListener.KEY_ENTER:
         DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
         txt = self.input.getText()
         if not txt:
             return
         new_value = float(txt)
         new_value = self.processValue(new_value)
         self.setControlPos(new_value)
         self.setValue(new_value)
     else:
         Control.onKeyPress(self, sender, keycode, modifiers)
Ejemplo n.º 28
0
Archivo: Space.py Proyecto: Afey/pyjs
 def setKey(self, k, set):
     DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
     if k == 38:
         self.controller.key_up = set
     elif k == 40:
         self.controller.key_down = set
     elif k == 37:
         self.controller.key_left = set
     elif k == 39:
         self.controller.key_right = set
     elif k == 32:
         self.controller.key_fire = set
Ejemplo n.º 29
0
 def setKey(self, k, set):
     DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
     if k == 38:
         self.controller.key_up = set
     elif k == 40:
         self.controller.key_down = set
     elif k == 37:
         self.controller.key_left = set
     elif k == 39:
         self.controller.key_right = set
     elif k == 32:
         self.controller.key_fire = set
Ejemplo n.º 30
0
  def onContextMenu(self, sender):
    event = DOM.eventGetCurrentEvent()
    subMenu = MenuBar(True)
    subMenu.addItem("<code>Code</code>", True, self)
    subMenu.addItem("<strike>Strikethrough</strike>", True, self)
    subMenu.addItem("<u>Underlined</u>", True, self)

    x = DOM.eventGetClientX(event) + 2
    y = DOM.eventGetClientY(event) + 2

    popup = ContextMenuPopupPanel(subMenu)
    popup.showAt(x, y)
Ejemplo n.º 31
0
 def setKey(self, k, set):
     DOM.eventPreventDefault(DOM.eventGetCurrentEvent())
     if k == KeyboardListener.KEY_UP:
         self.key_up = set
     elif k == KeyboardListener.KEY_DOWN:
         self.key_down = set
     elif k == KeyboardListener.KEY_LEFT:
         self.key_left = set
     elif k == KeyboardListener.KEY_RIGHT:
         self.key_right = set
     elif k == 32:
         self.key_fire = set
Ejemplo n.º 32
0
    def onMouseDown(self, sender, x, y):
        self.dragWidget = sender
        event = DOM.eventGetCurrentEvent()
        self.mouseEvent = event
        button = DOM.eventGetButton(event)
        if button != Event.BUTTON_LEFT:
            return
#        x, y = eventCoordinates(event)
#        self.origMouseX = x
#        self.origMouseY = y
        self.dragging = DRAGGING_NO_MOVEMENT_YET
        self.drag_time = time.time()
        self.dragDataStore = DragDataStore()
Ejemplo n.º 33
0
    def onMouseDown(self, sender, x, y):
        self.dragWidget = sender
        event = DOM.eventGetCurrentEvent()
        self.mouseEvent = event
        button = DOM.eventGetButton(event)
        if button != Event.BUTTON_LEFT:
            return
#        x, y = eventCoordinates(event)
#        self.origMouseX = x
#        self.origMouseY = y
        self.dragging = DRAGGING_NO_MOVEMENT_YET
        self.drag_time = time.time()
        self.dragDataStore = DragDataStore()
Ejemplo n.º 34
0
 def onMouseUp(self, sender, x, y):
     event = DOM.eventGetCurrentEvent()
     event_button = DOM.eventGetButton(event)
     if event_button == Event.BUTTON_RIGHT:
         from edu.uca.renderable.block.MainBlock import MainBlock
         if self.buttonRightDown == self and not self.original and not isinstance(
                 self, MainBlock):
             print "click Right Button " + self.name
             self.buttonRightDown = None
             from edu.uca.util.Serializable import saveStackBlock, loadStackBlock
             cloneStack = loadStackBlock(saveStackBlock(self))
             cloneStack.changeTexts()
             self.blockPad.addBlock(cloneStack,
                                    self.getAbsoluteLeft() + 10,
                                    self.getAbsoluteTop() + 10, False)
         DOM.eventStopPropagation(event)
Ejemplo n.º 35
0
    def onKeyDown(self, sender, keycode, modifiers):
        event = DOM.eventGetCurrentEvent()
        DOM.eventPreventDefault(event)
        # ignore mouse position when arrow-key pressing
        if self.theChild.getHoverTouchingEnabled():
            self.theChild.setHoverTouchingEnabled(False)

        p = self.theChild.getTouchedPoint()
        c = self.theChild.getCurve(); # only one curve on chart
        iPoint = 0
        if p is not None:
            iPoint = c.getPointIndex(p)
        if keycode == KeyboardListener.KEY_LEFT:
            iPoint = (iPoint + N_POINTS) % (N_POINTS+1)
        elif keycode == KeyboardListener.KEY_RIGHT:
            iPoint = (iPoint + 1) % (N_POINTS+1)

        self.theChild.touch(c.getPoint(iPoint))
        self.theChild.update()
Ejemplo n.º 36
0
    def onClickDefault(self, sender):
        # don't shown property editor if they clicked on nothing
        if None == self.chart.getTouchedPoint():
            return

        event = DOM.eventGetCurrentEvent()

        # load properties of clicked-on slice into form
        self.copyChartPropertiesIntoForm(self.chart.getTouchedPoint())
        if self.isFirstTime:
            # initially put upper left corner wherever they clicked...
            self.setPopupPosition(
                        Window.getScrollLeft()+ DOM.eventGetClientX(event),
                        Window.getScrollTop() + DOM.eventGetClientX(event))
            self.show()
            self.isFirstTime = False

        else:
            # ...thereafter, just stay whereever they dragged it to
            self.show()
Ejemplo n.º 37
0
    def onClickDefault(self, sender):
        # don't shown property editor if they clicked on nothing
        if None == self.chart.getTouchedPoint():
            return

        event = DOM.eventGetCurrentEvent()

        # load properties of clicked-on slice into form
        self.copyChartPropertiesIntoForm(self.chart.getTouchedPoint())
        if self.isFirstTime:
            # initially put upper left corner wherever they clicked...
            self.setPopupPosition(
                Window.getScrollLeft() + DOM.eventGetClientX(event),
                Window.getScrollTop() + DOM.eventGetClientX(event))
            self.show()
            self.isFirstTime = False

        else:
            # ...thereafter, just stay whereever they dragged it to
            self.show()
Ejemplo n.º 38
0
 def onMouseDown(self, sender, x, y):
     """
     * Most browsers, by default, support the ability to
     * to "drag-copy" any web page image to the desktop.
     * But GChart's rendering makes extensive use of
     * images, so we need to override this default.
     *
     """
     event = DOM.eventGetCurrentEvent()
     DOM.eventPreventDefault(event)
     self.ctrlPressed = DOM.eventGetCtrlKey(event)
     self.altPressed = DOM.eventGetAltKey(event)
     x = self.getXAxis().getMouseCoordinate()
     y = self.getYAxis().getMouseCoordinate()
     if (min(self.p1.x, self.p2.x) <= x  and 
         x <= max(self.p1.x, self.p2.x)  and  
         min(self.p1.y, self.p2.y) <= y  and  
         y <= max(self.p1.y, self.p2.y)):
         return; # ignore mouse down inside selection rectangle
     
     self.p1.x = self.p2.x = x
     self.p1.y = self.p2.y = y
     xMin = self.getXAxis().getAxisMin()
     xMax = self.getXAxis().getAxisMax()
     yMin = self.getYAxis().getAxisMin()
     yMax = self.getYAxis().getAxisMax()
     self.initialPlotRegion.xMin = xMin
     self.initialPlotRegion.xMax = xMax
     self.initialPlotRegion.yMin = yMin
     self.initialPlotRegion.yMax = yMax
     if self.ctrlPressed:
         self.selecting = True
         self.moving = False
     else:
         self.selecting = False
         self.moving = True
     
     self.updateCursor()
Ejemplo n.º 39
0
    def onMouseMove(self, sender, x, y):
        event = DOM.eventGetCurrentEvent()
        self.mouseEvent = event
        button = DOM.eventGetButton(event)
        if not button == Event.BUTTON_LEFT:
            return
## The following commented code lets the native dnd happen in IE. sucks.
## But it may enable dragging our widgets out of IE into other apps.
#        else:
#            try:
#                self.dragWidget.getElement().dragDrop()
#                return
#            except:
#                pass

        # Adjust x and y to absolute coordinates.
        x, y = eventCoordinates(event)

        if self.dragging == DRAGGING_NO_MOVEMENT_YET:
            self.origMouseX = x
            self.origMouseY = y
            self.currentDragOperation = 'none'
            fromElement = self.dragWidget.getElement()
            # Is the widget itself draggable?
            try:
                draggable = fromElement.draggable
            except:
                draggable = False
            # if not, find the draggable element at (x, y) in the widget
            if not draggable:
                fromElement = findDraggable(sender.getElement(),
                    self.origMouseX, self.origMouseY)
            # Nothing draggable found. return.
            if fromElement is None:
                self.dragging = NOT_DRAGGING
                return
            # Get the location for the dragging widget

            #self.absParent = None

                #self.absParent = self.dragWidget.getParent()
                #self.absLeft = DOM.getStyleAttribute(fromElement, 'left')

                #print self.absLeft
                #self.absTop = DOM.getStyleAttribute(fromElement, 'top')
                #print self.absTop
                #self.origTop = DOM.getAbsoluteTop(fromElement) + parent.getAbsoluteTop()
                #self.origLeft = DOM.getAbsoluteLeft(fromElement) + parent.getAbsoluteLeft()
            self.origTop = DOM.getAbsoluteTop(fromElement)
            self.origLeft = DOM.getAbsoluteLeft(fromElement)
            #self.glassTop = DOM.getAbsoluteTop(fromElement.offsetParent)
            #self.glassLeft = DOM.getAbsoluteTop(fromElement.offsetParent)
            position_absolute = DOM.getStyleAttribute(fromElement,
                                'position') == 'absolute'
            if position_absolute:
                self.dragLeftOffset = (self.origMouseX -
                                DOM.getAbsoluteLeft(fromElement.offsetParent))
                self.dragTopOffset = (self.origMouseY -
                                DOM.getAbsoluteTop(fromElement.offsetParent))
            else:
                self.dragLeftOffset = self.origMouseX - self.origLeft
                self.dragTopOffset = self.origMouseY - self.origTop

# self.setDragImage(fromElement,
#                             self.origMouseX - self.origLeft,
#                             self.origMouseY - self.origTop)
            self.dragDataStore.elements = [fromElement]
            dragStartEvent = self.fireDNDEvent('dragstart', None,
                                               self.dragWidget)
            if not isCanceled(dragStartEvent):
                self.initFeedbackImage()
                RootPanel().add(self.draggingImage)
                self.setDragImageLocation(x, y)
                self.dragging = ACTIVELY_DRAGGING
                GlassWidget.show(self)
        elif self.dragging == ACTIVELY_DRAGGING:
            try:
                doc().selection.empty()
            except:
                wnd().getSelection().removeAllRanges()

            self.setDragImageLocation(x, y)

            # If we are still working on the previous iteration, or if we have
            # done this recently, we'll wait for the next event.
            if self.dragBusy or time.time() - self.drag_time < 0.25:
                return

            self.doDrag(event, x, y)
            self.drag_time = time.time()
Ejemplo n.º 40
0
 def onDoubleClick(self, sender=None):
     print 'name: ' + str(self.name)
     event = DOM.eventGetCurrentEvent()
     DOM.eventStopPropagation(event)
Ejemplo n.º 41
0
 def onKeyPress(self, sender, keycode, modifiers):
     evt = DOM.eventGetCurrentEvent()
     DOM.eventPreventDefault(evt)
Ejemplo n.º 42
0
 def onKeyUp(self, sender, keycode, modifiers):
     evt = DOM.eventGetCurrentEvent()
     DOM.eventCancelBubble(evt, True)
     DOM.eventPreventDefault(evt)
 def onMouseUp(self, sender, x, y):
     x, y = self.adjustMousePos(x, y)
     if self.mousehandler:
         self.mousetarget.onBrowserEvent(DOM.eventGetCurrentEvent())
     else:
         self.mousetarget.onMouseUp(sender, x, y)
Ejemplo n.º 44
0
    def onMouseMove(self, sender, x, y):
        event = DOM.eventGetCurrentEvent()
        self.mouseEvent = event
        button = DOM.eventGetButton(event)
        if not button == Event.BUTTON_LEFT:
            return
## The following commented code lets the native dnd happen in IE. sucks.
## But it may enable dragging our widgets out of IE into other apps.
#        else:
#            try:
#                self.dragWidget.getElement().dragDrop()
#                return
#            except:
#                pass

# Adjust x and y to absolute coordinates.
        x, y = eventCoordinates(event)

        if self.dragging == DRAGGING_NO_MOVEMENT_YET:
            self.origMouseX = x
            self.origMouseY = y
            self.currentDragOperation = 'none'
            fromElement = self.dragWidget.getElement()
            # Is the widget itself draggable?
            try:
                draggable = fromElement.draggable
            except:
                draggable = False
            # if not, find the draggable element at (x, y) in the widget
            if not draggable:
                fromElement = findDraggable(sender.getElement(),
                                            self.origMouseX, self.origMouseY)
            # Nothing draggable found. return.
            if fromElement is None:
                self.dragging = NOT_DRAGGING
                return
            # Get the location for the dragging widget

            #self.absParent = None

            #self.absParent = self.dragWidget.getParent()
            #self.absLeft = DOM.getStyleAttribute(fromElement, 'left')

            #print self.absLeft
            #self.absTop = DOM.getStyleAttribute(fromElement, 'top')
            #print self.absTop
            #self.origTop = DOM.getAbsoluteTop(fromElement) + parent.getAbsoluteTop()
            #self.origLeft = DOM.getAbsoluteLeft(fromElement) + parent.getAbsoluteLeft()
            self.origTop = DOM.getAbsoluteTop(fromElement)
            self.origLeft = DOM.getAbsoluteLeft(fromElement)
            #self.glassTop = DOM.getAbsoluteTop(fromElement.offsetParent)
            #self.glassLeft = DOM.getAbsoluteTop(fromElement.offsetParent)
            position_absolute = DOM.getStyleAttribute(fromElement,
                                                      'position') == 'absolute'
            if position_absolute:
                self.dragLeftOffset = (
                    self.origMouseX -
                    DOM.getAbsoluteLeft(fromElement.offsetParent))
                self.dragTopOffset = (
                    self.origMouseY -
                    DOM.getAbsoluteTop(fromElement.offsetParent))
            else:
                self.dragLeftOffset = self.origMouseX - self.origLeft
                self.dragTopOffset = self.origMouseY - self.origTop

# self.setDragImage(fromElement,
#                             self.origMouseX - self.origLeft,
#                             self.origMouseY - self.origTop)
            self.dragDataStore.elements = [fromElement]
            dragStartEvent = self.fireDNDEvent('dragstart', None,
                                               self.dragWidget)
            if not isCanceled(dragStartEvent):
                self.initFeedbackImage()
                RootPanel().add(self.draggingImage)
                self.setDragImageLocation(x, y)
                self.dragging = ACTIVELY_DRAGGING
                GlassWidget.show(self)
        elif self.dragging == ACTIVELY_DRAGGING:
            try:
                doc().selection.empty()
            except:
                wnd().getSelection().removeAllRanges()

            self.setDragImageLocation(x, y)

            # If we are still working on the previous iteration, or if we have
            # done this recently, we'll wait for the next event.
            if self.dragBusy or time.time() - self.drag_time < 0.25:
                return

            self.doDrag(event, x, y)
            self.drag_time = time.time()