All pastes #29639 Raw Edit

Anonymous

public text v1 · immutable
#29639 ·published 2005-11-20 16:42 UTC
rendered paste body
static PyObject *wait_till_gui_not_exist (PyObject *self, PyObject *args)
{
  int time_wait = 30; // Max wait for 30 seconds
  char *window;
  char *env_sleep = NULL;
  time_t start, cur;
  Accessible *accessible = NULL;

  if (!PyArg_ParseTuple (args, "s", &window))
    return PyErr_Format (ldtp_error, "%s %s %d", "Argument missing / invalid", __FILE__, __LINE__);

  /*
    Copied from LTFX source code
  */
  start = cur = time (NULL);

  if ((env_sleep = getenv ("GUI_TIMEOUT")) != NULL)
    {
      time_wait = atoi (env_sleep);
      if (time_wait == 0)
        time_wait = 30;
    }

  accessible = get_gui_handle (appmap, window, window);

  while ((difftime (cur, start) < time_wait) && (accessible != NULL))
    {
      nSleep (0, 15000);

      cur = time (NULL);
      if (accessible)
        {
          Accessible_unref (accessible);
          accessible = NULL;
        }
      accessible = get_gui_handle (appmap, window, window);
    }

  if (accessible == NULL)
    return Py_BuildValue ("i", 1);
  else
    {
      Accessible_unref (accessible);
      return Py_BuildValue ("i", 0);
    }
}