static void hildon_program_init (HildonProgram *self) { HildonProgramPrivate *priv = HILDON_PROGRAM_GET_PRIVATE (self); g_assert (priv); priv->killable = FALSE; priv->window_count = 0; priv->is_topmost = FALSE; priv->window_group = GDK_WINDOW_XID (gdk_display_get_default_group (gdk_display_get_default())); priv->common_toolbar = NULL; priv->name = NULL; }
static gboolean InitGroupLeader(Window *groupLeader, Window *rootWindow) { Window myGroupLeader; Window myRootWindow; XSetWindowAttributes attr; GdkDisplay *gdkDisplay; GdkWindow *gdkLeader; attr.override_redirect = True; ASSERT(groupLeader); ASSERT(rootWindow); gdkDisplay = gdk_display_get_default(); gdkLeader = gdk_display_get_default_group(gdkDisplay); myGroupLeader = GDK_WINDOW_XWINDOW(gdkLeader); myRootWindow = GDK_ROOT_WINDOW(); ASSERT(myGroupLeader); ASSERT(myRootWindow); /* XXX: With g_set_prgname() being called, this can probably go away. */ XStoreName(GDK_DISPLAY(), myGroupLeader, VMUSER_TITLE); /* * Sanity check: Set the override redirect property on our group leader * window (not default), then re-parent it to the root window (default). * This makes sure that (a) a window manager can't re-parent our window, * and (b) that we remain a top-level window. */ XChangeWindowAttributes(GDK_DISPLAY(), myGroupLeader, CWOverrideRedirect, &attr); XReparentWindow(GDK_DISPLAY(), myGroupLeader, myRootWindow, 10, 10); XSync(GDK_DISPLAY(), FALSE); *groupLeader = myGroupLeader; *rootWindow = myRootWindow; return TRUE; }
static VALUE rg_default_group(VALUE self) { return GOBJ2RVAL(gdk_display_get_default_group(_SELF(self))); }