/* make sure the window is visible. */
client_find_onscreen(self, &newx, &newy,
- self->frame->area.width,
- self->frame->area.height,
+ self->area.width,
+ self->area.height,
/* non-normal clients has less rules, and
windows that are being restored from a
session do also. we can assume you want
gint x = self->area.x;
gint y = self->area.y;
if (client_find_onscreen(self, &x, &y,
- self->frame->area.width,
- self->frame->area.height, rude)) {
+ self->area.width,
+ self->area.height, rude)) {
client_move(self, x, y);
}
}
self->type == OB_CLIENT_TYPE_SPLASH);
}
+gboolean client_application(ObClient *self)
+{
+ return (self->type == OB_CLIENT_TYPE_NORMAL ||
+ self->type == OB_CLIENT_TYPE_DIALOG);
+}
+
static void client_apply_startup_state(ObClient *self, gint x, gint y)
{
gboolean pos = FALSE; /* has the window's position been configured? */
{
return self->group && self->group->members->next;
}
+
+gboolean client_has_application_group_siblings(ObClient *self)
+{
+ GSList *it;
+
+ if (!self->group) return FALSE;
+
+ for (it = self->group->members; it; it = g_slist_next(it)) {
+ ObClient *c = it->data;
+ if (c != self && client_application(c))
+ return TRUE;
+ }
+ return FALSE;
+}