summaryrefslogtreecommitdiff
diff options
authorDidier Roche <didier.roche@canonical.com>2011-02-11 09:43:32 +0100
committerDidier Roche <didier.roche@canonical.com>2011-02-11 09:43:32 +0100
commit2a9eef64330ce3cb6d99493e4080b0d21cae19a9 (patch)
treeb3568852952dd8e0bdda81e75f7fa522552d6076
parent656a292915846d20a7fe359afd5d7bfa8b6e73f9 (diff)
parentb503acf9ff45440742685cf98af03e6689343d10 (diff)
releasing version 3.4.2-0ubuntu23.4.2-0ubuntu2
(bzr r55.3.336)
-rw-r--r--debian/changelog7
-rw-r--r--src/BamfLauncherIcon.cpp41
-rw-r--r--src/BamfLauncherIcon.h8
-rw-r--r--src/Launcher.cpp30
-rw-r--r--src/LauncherIcon.cpp2
-rw-r--r--src/LauncherIcon.h4
-rw-r--r--src/PluginAdapter.cpp13
-rw-r--r--src/PluginAdapter.h4
-rwxr-xr-xtools/autopilot.py348
9 files changed, 257 insertions, 200 deletions
diff --git a/debian/changelog b/debian/changelog
index 0ba987956..05e069897 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+unity (3.4.2-0ubuntu2) natty; urgency=low
+
+ * backport some fixes from trunk like launcher can be wrongly shown
+ (LP: #716803)
+
+ -- Didier Roche <didrocks@ubuntu.com> Fri, 11 Feb 2011 09:43:29 +0100
+
unity (3.4.2-0ubuntu1) natty; urgency=low
* New upstream release:
diff --git a/src/BamfLauncherIcon.cpp b/src/BamfLauncherIcon.cpp
index df0112e01..a2d0b7a04 100644
--- a/src/BamfLauncherIcon.cpp
+++ b/src/BamfLauncherIcon.cpp
@@ -80,7 +80,7 @@ BamfLauncherIcon::Activate ()
}
else if (scaleWasActive)
{
- if (!Spread ())
+ if (!Spread (0, false))
{
PluginAdapter::Default ()->TerminateScale ();
Focus ();
@@ -93,7 +93,7 @@ BamfLauncherIcon::Activate ()
}
else if (active && !scaleWasActive)
{
- Spread ();
+ Spread (0, false);
}
}
@@ -103,6 +103,8 @@ BamfLauncherIcon::BamfLauncherIcon (Launcher* IconManager, BamfApplication *app,
m_App = app;
m_Screen = screen;
_remote_uri = 0;
+ _dnd_hover_timer = 0;
+ _dnd_hovered = false;
_menu_desktop_shortcuts = NULL;
char *icon_name = bamf_view_get_icon (BAMF_VIEW (m_App));
@@ -137,6 +139,7 @@ BamfLauncherIcon::BamfLauncherIcon (Launcher* IconManager, BamfApplication *app,
/* hack */
SetProgress (0.0f);
+
}
BamfLauncherIcon::~BamfLauncherIcon()
@@ -391,7 +394,7 @@ BamfLauncherIcon::Focus ()
}
bool
-BamfLauncherIcon::Spread ()
+BamfLauncherIcon::Spread (int state, bool force)
{
BamfView *view;
GList *children, *l;
@@ -410,11 +413,11 @@ BamfLauncherIcon::Spread ()
}
}
- if (windowList.size () > 1)
+ if (windowList.size () > 1 || (windowList.size () > 0 && force))
{
std::string *match = PluginAdapter::Default ()->MatchStringForXids (&windowList);
_launcher->SetLastSpreadIcon ((LauncherIcon *) this);
- PluginAdapter::Default ()->InitiateScale (match);
+ PluginAdapter::Default ()->InitiateScale (match, state);
delete match;
g_list_free (children);
return true;
@@ -891,12 +894,38 @@ BamfLauncherIcon::ValidateUrisForLaunch (std::list<char *> uris)
g_object_unref (info);
}
-
g_strfreev (mimes);
g_key_file_free (key_file);
return results;
}
+gboolean
+BamfLauncherIcon::OnDndHoveredTimeout (gpointer data)
+{
+ BamfLauncherIcon *self = (BamfLauncherIcon*) data;
+ if (self->_dnd_hovered && bamf_view_is_running (BAMF_VIEW (self->m_App)))
+ self->Spread (CompAction::StateInitEdgeDnd, true);
+
+ return false;
+}
+
+void
+BamfLauncherIcon::OnDndEnter ()
+{
+ _dnd_hovered = true;
+ _dnd_hover_timer = g_timeout_add (1000, &BamfLauncherIcon::OnDndHoveredTimeout, this);
+}
+
+void
+BamfLauncherIcon::OnDndLeave ()
+{
+ _dnd_hovered = false;
+
+ if (_dnd_hover_timer)
+ g_source_remove (_dnd_hover_timer);
+ _dnd_hover_timer = 0;
+}
+
nux::DndAction
BamfLauncherIcon::OnQueryAcceptDrop (std::list<char *> uris)
{
diff --git a/src/BamfLauncherIcon.h b/src/BamfLauncherIcon.h
index 9f48c3553..33d5e40d1 100644
--- a/src/BamfLauncherIcon.h
+++ b/src/BamfLauncherIcon.h
@@ -56,6 +56,8 @@ protected:
nux::DndAction OnQueryAcceptDrop (std::list<char *> uris);
void OnAcceptDrop (std::list<char *> uris);
+ void OnDndEnter ();
+ void OnDndLeave ();
std::list<char *> ValidateUrisForLaunch (std::list<char *> uris);
@@ -66,6 +68,8 @@ private:
std::map<std::string, DbusmenuMenuitem *> _menu_items;
DbusmenuMenuitem *_menu_desktop_shortcuts;
gchar *_remote_uri;
+ bool _dnd_hovered;
+ guint _dnd_hover_timer;
void EnsureWindowState ();
@@ -74,7 +78,7 @@ private:
void OpenInstanceWithUris (std::list<char *> uris);
void OpenInstance ();
void Focus ();
- bool Spread ();
+ bool Spread (int state, bool force);
void EnsureMenuItemsReady ();
@@ -92,6 +96,8 @@ private:
static void OnQuit (DbusmenuMenuitem *item, int time, BamfLauncherIcon *self);
static void OnLaunch (DbusmenuMenuitem *item, int time, BamfLauncherIcon *self);
static void OnTogglePin (DbusmenuMenuitem *item, int time, BamfLauncherIcon *self);
+
+ static gboolean OnDndHoveredTimeout (gpointer data);
};
#endif // BAMFLAUNCHERICON_H
diff --git a/src/Launcher.cpp b/src/Launcher.cpp
index be507d11b..2fdd70b7e 100644
--- a/src/Launcher.cpp
+++ b/src/Launcher.cpp
@@ -1203,8 +1203,10 @@ Launcher::EnsureHiddenState ()
bool must_be_hidden = _hide_on_drag_hover && _hidemode != LAUNCHER_HIDE_NEVER;
+ bool autohide_handle_hold = _autohide_handle && !_hidden;
+
if (must_be_hidden || (!mouse_over_launcher && !required_for_external_purpose &&
- !in_must_be_open_mode && _window_over_launcher && !_autohide_handle))
+ !in_must_be_open_mode && _window_over_launcher && !autohide_handle_hold))
SetHidden (true);
else
SetHidden (false);
@@ -1286,8 +1288,6 @@ Launcher::OnWindowMapped (guint32 xid)
{
g_timeout_add (200, &Launcher::OnUpdateDragManagerTimeout, this);
}
-
- EnsureHiddenState ();
}
void
@@ -1298,7 +1298,6 @@ Launcher::OnWindowUnmapped (guint32 xid)
{
g_timeout_add (200, &Launcher::OnUpdateDragManagerTimeout, this);
}
- EnsureHiddenState ();
}
void
@@ -1312,7 +1311,9 @@ Launcher::OnWindowMaybeIntellihide (guint32 xid)
EnsureHiddenState ();
}
else
+ {
CheckWindowOverLauncher ();
+ }
}
}
@@ -2919,10 +2920,17 @@ Launcher::ProcessDndLeave ()
_dnd_hovered_icon->SetQuirk (LauncherIcon::QUIRK_VISIBLE, false);
_dnd_hovered_icon->remove.emit (_dnd_hovered_icon);
- _steal_drag = false;
+ }
+
+ if (!_steal_drag && _dnd_hovered_icon)
+ {
+ _dnd_hovered_icon->SendDndLeave ();
_dnd_hovered_icon = 0;
}
+ _steal_drag = false;
+ _dnd_hovered_icon = 0;
+
EnsureHoverState ();
}
@@ -3040,12 +3048,20 @@ Launcher::ProcessDndMove (int x, int y, std::list<char *> mimes)
if (hovered_icon != _dnd_hovered_icon)
{
if (hovered_icon)
+ {
+ hovered_icon->SendDndEnter ();
_drag_action = hovered_icon->QueryAcceptDrop (_drag_data);
+ }
else
+ {
_drag_action = nux::DNDACTION_NONE;
+ }
+
+ if (_dnd_hovered_icon)
+ _dnd_hovered_icon->SendDndLeave ();
+
+ _dnd_hovered_icon = hovered_icon;
}
-
- _dnd_hovered_icon = hovered_icon;
}
bool accept;
diff --git a/src/LauncherIcon.cpp b/src/LauncherIcon.cpp
index 12f344604..3419e4cae 100644
--- a/src/LauncherIcon.cpp
+++ b/src/LauncherIcon.cpp
@@ -800,8 +800,6 @@ LauncherIcon::RemoveEntryRemote (LauncherEntryRemote *remote)
return;
_entry_list.remove (remote);
-
- printf ("Remove\n");
}
void
diff --git a/src/LauncherIcon.h b/src/LauncherIcon.h
index 6745714df..0b7091c22 100644
--- a/src/LauncherIcon.h
+++ b/src/LauncherIcon.h
@@ -135,6 +135,8 @@ public:
nux::DndAction QueryAcceptDrop (std::list<char *> paths) { return OnQueryAcceptDrop (paths); }
void AcceptDrop (std::list<char *> paths) { return OnAcceptDrop (paths); }
+ void SendDndEnter () { OnDndEnter (); }
+ void SendDndLeave () { OnDndLeave (); }
sigc::signal<void, int> MouseDown;
sigc::signal<void, int> MouseUp;
@@ -180,6 +182,8 @@ protected:
virtual nux::DndAction OnQueryAcceptDrop (std::list<char *> files) { return nux::DNDACTION_NONE; }
virtual void OnAcceptDrop (std::list<char *> files) {}
+ virtual void OnDndEnter () {}
+ virtual void OnDndLeave () {}
nux::BaseTexture * TextureFromGtkTheme (const char *name, int size);
nux::BaseTexture * TextureFromPath (const char *name, int size);
diff --git a/src/PluginAdapter.cpp b/src/PluginAdapter.cpp
index 86801088e..37bfc5143 100644
--- a/src/PluginAdapter.cpp
+++ b/src/PluginAdapter.cpp
@@ -146,7 +146,7 @@ MultiActionList::RemoveAction (CompAction *a)
}
void
-MultiActionList::InitiateAll (CompOption::Vector &extraArgs)
+MultiActionList::InitiateAll (CompOption::Vector &extraArgs, int state)
{
CompOption::Vector argument;
if (!m_ActionList.size ())
@@ -168,7 +168,7 @@ MultiActionList::InitiateAll (CompOption::Vector &extraArgs)
a = m_ActionList.front ();
/* Initiate the first available action with the arguments */
- a->initiate () (a, 0, argument);
+ a->initiate () (a, state, argument);
}
void
@@ -237,7 +237,7 @@ PluginAdapter::MatchStringForXids (std::list<Window> *windows)
}
void
-PluginAdapter::InitiateScale (std::string *match)
+PluginAdapter::InitiateScale (std::string *match, int state)
{
CompOption::Vector argument;
CompMatch m (*match);
@@ -252,15 +252,14 @@ PluginAdapter::InitiateScale (std::string *match)
{
if (m.evaluate (w))
{
- if (std::find (m_SpreadedWindows.begin (), m_SpreadedWindows.end (), w->id ()) ==
- m_SpreadedWindows.end ())
+ if (std::find (m_SpreadedWindows.begin (), m_SpreadedWindows.end (), w->id ()) == m_SpreadedWindows.end ())
m_SpreadedWindows.push_back (w->id ());
xids.push_back (w->id ());
}
}
initiate_spread.emit (xids);
- m_ScaleActionList.InitiateAll (argument);
+ m_ScaleActionList.InitiateAll (argument, state);
}
void
@@ -284,7 +283,7 @@ PluginAdapter::InitiateExpo ()
{
CompOption::Vector argument (0);
- m_ExpoActionList.InitiateAll (argument);
+ m_ExpoActionList.InitiateAll (argument, 0);
}
// WindowManager implementation
diff --git a/src/PluginAdapter.h b/src/PluginAdapter.h
index dd9e4c17a..379672469 100644
--- a/src/PluginAdapter.h
+++ b/src/PluginAdapter.h
@@ -35,7 +35,7 @@ public:
m_ActionList (n),
_primary_action (NULL) {};
- void InitiateAll (CompOption::Vector &extraArgs);
+ void InitiateAll (CompOption::Vector &extraArgs, int state);
void TerminateAll (CompOption::Vector &extraArgs);
void AddNewAction (CompAction *, bool primary);
@@ -64,7 +64,7 @@ public:
void OnScreenGrabbed ();
void OnScreenUngrabbed ();
- void InitiateScale (std::string *match);
+ void InitiateScale (std::string *match, int state = 0);
void TerminateScale ();
bool IsScaleActive ();
diff --git a/tools/autopilot.py b/tools/autopilot.py
index f6978c827..459a52e9d 100755
--- a/tools/autopilot.py
+++ b/tools/autopilot.py
@@ -31,206 +31,204 @@ class UnityUtil(object):
INTROSPECTION_IFACE = 'com.canonical.Unity.Debug.Introspection'
def __init__(self):
- self._bus = dbus.SessionBus()
- self._introspection_proxy_obj = self._bus.get_object(self.UNITY_BUS_NAME, self.INTROSPECTION_PATH)
- self._introspection_iface = dbus.Interface(self._introspection_proxy_obj,
- self.INTROSPECTION_IFACE)
+ self._bus = dbus.SessionBus()
+ self._introspection_proxy_obj = self._bus.get_object(self.UNITY_BUS_NAME, self.INTROSPECTION_PATH)
+ self._introspection_iface = dbus.Interface(self._introspection_proxy_obj,
+ self.INTROSPECTION_IFACE)
def run_unity(self):
- ''' Runs unity with --reset to ensure that a default Unity/compiz session
- is being tested. If unity --reset does not return 0, a CalledProcessError
- will be raised. No exception does not mean that everything is ok, is_running
- should still be called after.'''
- ret = subprocess.check_call ('unity', '--reset')
-
-
+ ''' Runs unity with --reset to ensure that a default Unity/compiz session
+ is being tested. If unity --reset does not return 0, a CalledProcessError
+ will be raised. No exception does not mean that everything is ok, is_running
+ should still be called after.'''
+ ret = subprocess.check_call ('unity', '--reset')
+
def is_running(self):
- '''Checks if Unity is running by examing the session bus, and checking if
- 'com.canonical.Unity' is currently owned.'''
- return self._bus.name_has_owner(self.UNITY_BUS_NAME)
-
+ '''Checks if Unity is running by examing the session bus, and checking if
+ 'com.canonical.Unity' is currently owned.'''
+ return self._bus.name_has_owner(self.UNITY_BUS_NAME)
+
class Mouse(object):
- '''Wrapper around xlib to make moving the mouse easier'''
+ '''Wrapper around xlib to make moving the mouse easier'''
- def __init__(self):
- self._display = Display()
+ def __init__(self):
+ self._display = Display()
- def press(self, button=1):
- '''Press mouse button at current mouse location'''
- fake_input(self._display, X.ButtonPress, button)
- self._display.sync()
+ def press(self, button=1):
+ '''Press mouse button at current mouse location'''
+ fake_input(self._display, X.ButtonPress, button)
+ self._display.sync()
- def release(self, button=1):
- '''Releases mouse button at current mouse location'''
- fake_input(self._display, X.ButtonRelease, button)
- self._display.sync()
+ def release(self, button=1):
+ '''Releases mouse button at current mouse location'''
+ fake_input(self._display, X.ButtonRelease, button)
+ self._display.sync()
- def click(self, button=1):
- '''Click mouse at current location'''
- self.press(button)
- sleep(0.25)
- self.release(button)
+ def click(self, button=1):
+ '''Click mouse at current location'''
+ self.press(button)
+ sleep(0.25)
+ self.release(button)
- def move(self, x, y):
- '''Moves mouse to location (x, y)'''
- def perform_move(x, y):
- fake_input(self._display, X.MotionNotify, x=x, y=y)
- self._display.sync()
- sleep(0.001)
+ def move(self, x, y):
+ '''Moves mouse to location (x, y)'''
+ def perform_move(x, y):
+ fake_input(self._display, X.MotionNotify, x=x, y=y)
+ self._display.sync()
+ sleep(0.001)
- dest_x, dest_y = x, y
- curr_x, curr_y = self.position()
-
- # calculate a path from our current position to our destination
- dy = float(curr_y - dest_y)
- dx = float(curr_x - dest_x)
- slope = dy/dx if dx > 0 else 0
- yint = curr_y - (slope * curr_x)
- xscale = 1 if dest_x > curr_x else -1
+ dest_x, dest_y = x, y
+ curr_x, curr_y = self.position()
- while (int(curr_x) != dest_x):
- curr_x += xscale;
- curr_y = int(slope * curr_x + yint) if curr_y > 0 else dest_y
+ # calculate a path from our current position to our destination
+ dy = float(curr_y - dest_y)
+ dx = float(curr_x - dest_x)
+ slope = dy/dx if dx > 0 else 0
+ yint = curr_y - (slope * curr_x)
+ xscale = 1 if dest_x > curr_x else -1
+
+ while (int(curr_x) != dest_x):
+ curr_x += xscale;
+ curr_y = int(slope * curr_x + yint) if curr_y > 0 else dest_y
- perform_move(curr_x, curr_y)
+ perform_move(curr_x, curr_y)
- if (curr_y != dest_y):
- yscale = 1 if dest_y > curr_y else -1
- while (curr_y != dest_y):
- curr_y += yscale
- perform_move(curr_x, curr_y)
+ if (curr_y != dest_y):
+ yscale = 1 if dest_y > curr_y else -1
+ while (curr_y != dest_y):
+ curr_y += yscale
+ perform_move(curr_x, curr_y)
-
- def position(self):
- '''Returns the current position of the mouse pointer'''
- coord = self._display.screen().root.query_pointer()._data
- x, y = coord["root_x"], coord["root_y"]
- return x, y
+ def position(self):
+ '''Returns the current position of the mouse pointer'''
+ coord = self._display.screen().root.query_pointer()._data
+ x, y = coord["root_x"], coord["root_y"]
+ return x, y
- def reset(self):
- fake_input (self._display, X.MotionNotify, x = 800, y = 500)
- self._display.sync()
+ def reset(self):
+ fake_input (self._display, X.MotionNotify, x = 800, y = 500)
+ self._display.sync()
class UnityTests(object):
- '''Runs a series of unity actions, triggering GL calls'''
+ '''Runs a series of unity actions, triggering GL calls'''
- _bfb_x = 24
- _bfb_y = 10
-
- # this is totally lame. This should not be hard coded, but until I can get
- # unity to run in gdb and debug why introspection is crashing and hardlocking
- # this is the best I can do.
- _dest_x = 32
- _dest_y = 57
+ _bfb_x = 24
+ _bfb_y = 10
- def __init__(self):
- self._mouse = Mouse()
- self._unity = UnityUtil()
+ # this is totally lame. This should not be hard coded, but until I can get
+ # unity to run in gdb and debug why introspection is crashing and hardlocking
+ # this is the best I can do.
+ _dest_x = 32
+ _dest_y = 57
+
+ def __init__(self):
+ self._mouse = Mouse()
+ self._unity = UnityUtil()
- def show_tooltip(self):
- '''Move mouse to a launcher and hover to show the tooltip'''
- print 'Showing tool tip...'
- self._mouse.reset()
- self._mouse.move (self._bfb_x, self._bfb_y)
- sleep (0.25)
- self._mouse.move(self._dest_x, self._dest_y)
- return self._unity.is_running()
+ def show_tooltip(self):
+ '''Move mouse to a launcher and hover to show the tooltip'''
+ print 'Showing tool tip...'
+ self._mouse.reset()
+ self._mouse.move (self._bfb_x, self._bfb_y)
+ sleep (0.25)
+ self._mouse.move(self._dest_x, self._dest_y)
+ return self._unity.is_running()
- def show_quicklist(self):
- '''Move mouse to a launcher and right click'''
- print 'Showing quicklist...'
- self._mouse.reset()
- self._mouse.move (self._bfb_x, self._bfb_y)
- sleep (0.25)
- self._mouse.move(self._dest_x, self._dest_y)
- sleep(0.25)
- self._mouse.click(button=3)
- sleep(2)
- # hides quicklist
- self._mouse.click(button=3)
- return self._unity.is_running()
+ def show_quicklist(self):
+ '''Move mouse to a launcher and right click'''
+ print 'Showing quicklist...'
+ self._mouse.reset()
+ self._mouse.move (self._bfb_x, self._bfb_y)
+ sleep (0.25)
+ self._mouse.move(self._dest_x, self._dest_y)
+ sleep(0.25)
+ self._mouse.click(button=3)
+ sleep(2)
+ # hides quicklist
+ self._mouse.click(button=3)
+ return self._unity.is_running()
- def drag_launcher(self):
- '''Click a launcher icon and drag down to move the whole launcher'''
- print 'Dragging entire launcher...'
- self._mouse.reset()
- self._mouse.move (self._bfb_x, self._bfb_y)
- sleep (0.25)
- self._mouse.move(self._dest_x, self._dest_y)
- sleep(0.25)
- print self._mouse.position()
- print 'pressing'
- self._mouse.press()
- self._mouse.move(self._dest_x, self._dest_y + 300)
- sleep(0.25)
- print 'releasing'
- self._mouse.release()
- return self._unity.is_running()
+ def drag_launcher(self):
+ '''Click a launcher icon and drag down to move the whole launcher'''
+ print 'Dragging entire launcher...'
+ self._mouse.reset()
+ self._mouse.move (self._bfb_x, self._bfb_y)
+ sleep (0.25)
+ self._mouse.move(self._dest_x, self._dest_y)
+ sleep(0.25)
+ print self._mouse.position()
+ print 'pressing'
+ self._mouse.press()
+ self._mouse.move(self._dest_x, self._dest_y + 300)
+ sleep(0.25)
+ print 'releasing'
+ self._mouse.release()
+ return self._unity.is_running()
- def drag_launcher_icon_along_edge_drop(self):
- '''Click a launcher icon and drag it along the edge of the launcher
- to test moving icons around on the launcher'''
- print 'Moving launcher icon along edge...'
- self._mouse.reset()
- self._mouse.move (self._bfb_x, self._bfb_y)
- sleep (0.25)
- self._mouse.move(self._dest_x, self._dest_y)
- self._mouse.press()
- self._mouse.move(self._dest_x + 25, self._dest_y)
- self._mouse.move(self._dest_x + 25, self._dest_y + 500)
- self._mouse.release()
- return self._unity.is_running()
+ def drag_launcher_icon_along_edge_drop(self):
+ '''Click a launcher icon and drag it along the edge of the launcher
+ to test moving icons around on the launcher'''
+ print 'Moving launcher icon along edge...'
+ self._mouse.reset()
+ self._mouse.move (self._bfb_x, self._bfb_y)
+ sleep (0.25)
+ self._mouse.move(self._dest_x, self._dest_y)
+ self._mouse.press()
+ self._mouse.move(self._dest_x + 25, self._dest_y)
+ self._mouse.move(self._dest_x + 25, self._dest_y + 500)
+ self._mouse.release()
+ return self._unity.is_running()
- def drag_launcher_icon_out_and_drop(self):
- '''Click a launcher icon and drag it straight out so that when dropped
- it returns to its original position'''
- print 'Dragging launcher straight out and dropping...'
- self._mouse.reset()
- self._mouse.move (self._bfb_x, self._bfb_y)
- sleep (0.25)
- self._mouse.move(self._dest_x, self._dest_y)
- self._mouse.press()
- self._mouse.move(self._dest_x + 300, self._dest_y)
- self._mouse.release()
- return self._unity.is_running()
+ def drag_launcher_icon_out_and_drop(self):
+ '''Click a launcher icon and drag it straight out so that when dropped
+ it returns to its original position'''
+ print 'Dragging launcher straight out and dropping...'
+ self._mouse.reset()
+ self._mouse.move (self._bfb_x, self._bfb_y)
+ sleep (0.25)
+ self._mouse.move(self._dest_x, self._dest_y)
+ self._mouse.press()
+ self._mouse.move(self._dest_x + 300, self._dest_y)
+ self._mouse.release()
+ return self._unity.is_running()
- def drag_launcher_icon_out_and_move(self):
- '''Click a launcher icon and drag it diagonally so that it changes position'''
- print 'Dragging a launcher icon out, and moving it...'''
- self._mouse.reset()
- self._mouse.move (self._bfb_x, self._bfb_y)
- sleep (0.25)
- self._mouse.move(self._dest_x, self._dest_y)
- self._mouse.press()
- self._mouse.move(self._dest_x + 300, self._dest_y)
- self._mouse.move(self._dest_x + 300, self._dest_y + 300)
- self._mouse.release()
- return self._unity.is_running()
+ def drag_launcher_icon_out_and_move(self):
+ '''Click a launcher icon and drag it diagonally so that it changes position'''
+ print 'Dragging a launcher icon out, and moving it...'''
+ self._mouse.reset()
+ self._mouse.move (self._bfb_x, self._bfb_y)
+ sleep (0.25)
+ self._mouse.move(self._dest_x, self._dest_y)
+ self._mouse.press()
+ self._mouse.move(self._dest_x + 300, self._dest_y)
+ self._mouse.move(self._dest_x + 300, self._dest_y + 300)
+ self._mouse.release()
+ return self._unity.is_running()
if __name__ == "__main__":
- tests = UnityTests()
- if (not tests.show_tooltip()):
- print 'FAIL: SHOW TOOLTIP CRASHED UNITY'
- exit (1)
- sleep(1.5)
- if (not tests.show_quicklist()):
- print 'FAIL: SHOW QUICKLIST CRASHED UNITY'
- exit (1)
- sleep(1.5)
- if (not tests.drag_launcher()):
- print 'FAIL: DRAG LAUNCHER CRASHED UNITY'
- exit (1)
- sleep(1.5)
- if (not tests.drag_launcher_icon_along_edge_drop()):
- print 'FAIL: DRAG LAUNCHER ICON ALONG EDGE CRASHED UNITY'
- exit (1)
- sleep(1.5)
- if (not tests.drag_launcher_icon_out_and_drop()):
- print 'FAIL: DRAG LAUNCHER ICON OUT AND DROP CRASHED UNITY'
- exit (1)
- sleep(1.5)
- if (not tests.drag_launcher_icon_out_and_move()):
- print 'FAIL: DRAG LAUNCHER ICON OUT AND MOVE CRASHED UNITY'
- exit (1)
+ tests = UnityTests()
+ if (not tests.show_tooltip()):
+ print 'FAIL: SHOW TOOLTIP CRASHED UNITY'
+ exit (1)
+ sleep(1.5)
+ if (not tests.show_quicklist()):
+ print 'FAIL: SHOW QUICKLIST CRASHED UNITY'
+ exit (1)
+ sleep(1.5)
+ if (not tests.drag_launcher()):
+ print 'FAIL: DRAG LAUNCHER CRASHED UNITY'
+ exit (1)
+ sleep(1.5)
+ if (not tests.drag_launcher_icon_along_edge_drop()):
+ print 'FAIL: DRAG LAUNCHER ICON ALONG EDGE CRASHED UNITY'
+ exit (1)
+ sleep(1.5)
+ if (not tests.drag_launcher_icon_out_and_drop()):
+ print 'FAIL: DRAG LAUNCHER ICON OUT AND DROP CRASHED UNITY'
+ exit (1)
+ sleep(1.5)
+ if (not tests.drag_launcher_icon_out_and_move()):
+ print 'FAIL: DRAG LAUNCHER ICON OUT AND MOVE CRASHED UNITY'
+ exit (1)
- print 'PASS'
+ print 'PASS'