diff --git a/shell/view/clipboardmenu.py b/shell/view/clipboardmenu.py index cd521e07..3d555e1e 100644 --- a/shell/view/clipboardmenu.py +++ b/shell/view/clipboardmenu.py @@ -21,16 +21,19 @@ class ClipboardMenu(Menu): def __init__(self, name, percent): Menu.__init__(self, name) - - self._progress_bar = ClipboardMenuItem(percent) - self._root.append(self._progress_bar) + + if percent < 100: + self._progress_bar = ClipboardMenuItem(percent) + self._root.append(self._progress_bar) + else: + self._progress_bar = None self._remove_icon = None self._stop_icon = None - self._create_icons(percent) + self._update_icons(percent) - def _create_icons(self, percent): + def _update_icons(self, percent): if percent == 100: if not self._remove_icon: self._remove_icon = CanvasIcon(icon_name='stock-remove') @@ -49,5 +52,6 @@ class ClipboardMenu(Menu): self._remove_icon = None def set_percent(self, percent): - self._progress_bar.set_property('percent', percent) - self._create_icons(percent) + if self._progress_bar: + self._progress_bar.set_property('percent', percent) + self._update_icons(percent) diff --git a/shell/view/frame/clipboardbox.py b/shell/view/frame/clipboardbox.py index 98a30a00..0a5a8849 100644 --- a/shell/view/frame/clipboardbox.py +++ b/shell/view/frame/clipboardbox.py @@ -139,9 +139,14 @@ class ClipboardBox(hippo.CanvasBox): return True; def motion_notify_event_cb(self, widget, event): - + if not self._pressed_button: return True + + # if the mouse button is not pressed, no drag should occurr + if not event.state & gtk.gdk.BUTTON1_MASK: + self._pressed_button = None + return True logging.debug("motion_notify_event_cb") @@ -152,10 +157,10 @@ class ClipboardBox(hippo.CanvasBox): y = event.y state = event.state - if widget.drag_check_threshold(self._press_start_x, - self._press_start_y, - x, - y): + if widget.drag_check_threshold(int(self._press_start_x), + int(self._press_start_y), + int(x), + int(y)): targets = self._get_targets_for_dnd( self._last_clicked_icon.get_object_id()) diff --git a/shell/view/frame/clipboardpanelwindow.py b/shell/view/frame/clipboardpanelwindow.py index 08344c93..7ad801c7 100644 --- a/shell/view/frame/clipboardpanelwindow.py +++ b/shell/view/frame/clipboardpanelwindow.py @@ -30,8 +30,7 @@ class ClipboardPanelWindow(PanelWindow): # Offering dnd drags self.drag_source_set(0, [], 0) self.add_events(gtk.gdk.BUTTON_PRESS_MASK | - gtk.gdk.POINTER_MOTION_MASK | - gtk.gdk.POINTER_MOTION_HINT_MASK) + gtk.gdk.POINTER_MOTION_HINT_MASK) self.connect("motion_notify_event", box.motion_notify_event_cb) self.connect("button_press_event", box.button_press_event_cb) self.connect("drag_end", box.drag_end_cb)