static void
mb_wm_client_menu_realize (MBWindowManagerClient *client)
{
  MBWindowManagerClientClass  *parent_klass = NULL;
  int our_type = MB_WM_TYPE_CLIENT_MENU;

  parent_klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS(client));
  /* Look back down class hierarchy until we find ourself, then
   * find our parent's realize. There must be a better way??? */
  while (MB_WM_OBJECT_CLASS(parent_klass)->type != our_type)
    parent_klass = MB_WM_CLIENT_CLASS(MB_WM_OBJECT_CLASS(parent_klass)->parent);
  parent_klass = MB_WM_CLIENT_CLASS(MB_WM_OBJECT_CLASS(parent_klass)->parent);

  if (parent_klass->realize)
    parent_klass->realize (client);

  /*
   * Must reparent the window to our root, otherwise we restacking of
   * pre-existing windows might fail.
   */
  if (client->xwin_frame)
    XReparentWindow(client->wmref->xdpy, client->xwin_frame,
                    client->wmref->root_win->xwindow, 0, 0);
  else
    XReparentWindow(client->wmref->xdpy, MB_WM_CLIENT_XWIN(client),
                    client->wmref->root_win->xwindow, 0, 0);
}
Example #2
0
}

static void
mb_wm_client_app_destroy (MBWMObject *this)
{
}


static int
mb_wm_client_app_init (MBWMObject *this, va_list vap)
{
  MBWindowManagerClient    *client     = MB_WM_CLIENT (this);
  MBWindowManager          *wm = NULL;
  MBWMClientAppClass       *app_class;

  app_class = MB_WM_CLIENT_APP_CLASS (MB_WM_OBJECT_GET_CLASS (this));

#if 0
  /*
   * Property parsing not needed for now, as there are no ClientApp specific
   * properties
   */
  prop = va_arg(vap, MBWMObjectProp);
  while (prop)
    {
      if (prop == MBWMObjectPropWm)
	{
	  wm = va_arg(vap, MBWindowManager *);
	  break;
	}
      else