static Bool
mb_wm_decor_reparent (MBWMDecor *decor)
{
  MBWindowManager *wm;

  if (decor->parent_client == NULL)
    return False;

  MBWM_MARK();

  wm = decor->parent_client->wmref;

  /* FIXME: Check if we already have a parent here */

  mb_wm_util_async_trap_x_errors_warn(wm->xdpy, "XReparentWindow");

  XReparentWindow (wm->xdpy,
		   decor->xwin,
		   decor->parent_client->xwin_frame,
		   decor->geom.x,
		   decor->geom.y);

  mb_wm_util_async_untrap_x_errors();

  return True;
}
static void
mb_wm_client_note_class_init (MBWMObjectClass *klass)
{
  MBWindowManagerClientClass *client;

  MBWM_MARK();

  client = (MBWindowManagerClientClass *)klass;

  client->client_type  = MBWMClientTypeNote;

#if MBWM_WANT_DEBUG
  klass->klass_name = "MBWMClientNote";
#endif
}
static void
mb_wm_client_menu_class_init (MBWMObjectClass *klass)
{
  MBWindowManagerClientClass *client;

  MBWM_MARK();

  client = (MBWindowManagerClientClass *)klass;

  client->client_type  = MBWMClientTypeMenu;
  client->geometry     = mb_wm_client_menu_request_geometry;
  client->realize      = mb_wm_client_menu_realize;

#if MBWM_WANT_DEBUG
  klass->klass_name = "MBWMClientMenu";
#endif
}
static void
mb_wm_client_desktop_class_init (MBWMObjectClass *klass)
{
  MBWindowManagerClientClass *client;
  MBWMClientDesktopClass * client_desktop;

  MBWM_MARK();

  client     = (MBWindowManagerClientClass *)klass;
  client_desktop = (MBWMClientDesktopClass *)klass;

  client->client_type    = MBWMClientTypeDesktop;
  client->geometry       = mb_wm_client_desktop_request_geometry;
  client->stacking_layer = mb_wm_client_desktop_stacking_layer;
  client->theme_change   = mb_wm_client_desktop_theme_change;

#if MBWM_WANT_DEBUG
  klass->klass_name = "MBWMClientDesktop";
#endif
}
Example #5
0
static void
mb_wm_client_base_class_init (MBWMObjectClass *klass)
{
  MBWindowManagerClientClass *client;

  MBWM_MARK();

  client = (MBWindowManagerClientClass *)klass;

  client->realize  = mb_wm_client_base_realize;
  client->geometry = mb_wm_client_base_request_geometry;
  client->stack    = mb_wm_client_base_stack;
  client->show     = mb_wm_client_base_show;
  client->hide     = mb_wm_client_base_hide;
  client->sync     = mb_wm_client_base_display_sync;
  client->focus    = mb_wm_client_base_focus;

#if MBWM_WANT_DEBUG
  klass->klass_name = "MBWMClientBase";
#endif
}