diff --git a/docs/reference/st/st-docs.sgml.in b/docs/reference/st/st-docs.sgml.in
index 764c5ea3d..b1d07d017 100644
--- a/docs/reference/st/st-docs.sgml.in
+++ b/docs/reference/st/st-docs.sgml.in
@@ -35,7 +35,6 @@
Containers
-
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 8fc3291b4..d8dfde05a 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1348,9 +1348,9 @@ const MessageTray = new Lang.Class({
this._onStatusChanged(status);
}));
- this.actor = new St.Group({ name: 'message-tray',
- reactive: true,
- track_hover: true });
+ this.actor = new St.Widget({ name: 'message-tray',
+ reactive: true,
+ track_hover: true });
this.actor.connect('notify::hover', Lang.bind(this, this._onTrayHoverChanged));
this._notificationBin = new St.Bin();
diff --git a/js/ui/modalDialog.js b/js/ui/modalDialog.js
index 271880c37..1b6e37471 100644
--- a/js/ui/modalDialog.js
+++ b/js/ui/modalDialog.js
@@ -40,9 +40,9 @@ const ModalDialog = new Lang.Class({
this._hasModal = false;
this._shellReactive = params.shellReactive;
- this._group = new St.Group({ visible: false,
- x: 0,
- y: 0 });
+ this._group = new St.Widget({ visible: false,
+ x: 0,
+ y: 0 });
Main.uiGroup.add_actor(this._group);
let constraint = new Clutter.BindConstraint({ source: global.stage,
diff --git a/js/ui/overview.js b/js/ui/overview.js
index b274a8c8b..2fb28e318 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -126,8 +126,8 @@ const Overview = new Lang.Class({
this._spacing = 0;
- this._group = new St.Group({ name: 'overview',
- reactive: true });
+ this._group = new St.Widget({ name: 'overview',
+ reactive: true });
this._group._delegate = this;
this._group.connect('style-changed',
Lang.bind(this, function() {
diff --git a/js/ui/workspaceSwitcherPopup.js b/js/ui/workspaceSwitcherPopup.js
index 15383dbfa..51d2c2859 100644
--- a/js/ui/workspaceSwitcherPopup.js
+++ b/js/ui/workspaceSwitcherPopup.js
@@ -19,12 +19,12 @@ const WorkspaceSwitcherPopup = new Lang.Class({
Name: 'WorkspaceSwitcherPopup',
_init : function() {
- this.actor = new St.Group({ reactive: true,
- x: 0,
- y: 0,
- width: global.screen_width,
- height: global.screen_height,
- style_class: 'workspace-switcher-group' });
+ this.actor = new St.Widget({ reactive: true,
+ x: 0,
+ y: 0,
+ width: global.screen_width,
+ height: global.screen_height,
+ style_class: 'workspace-switcher-group' });
Main.uiGroup.add_actor(this.actor);
this._container = new St.BoxLayout({ style_class: 'workspace-switcher-container' });
diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js
index 1d18e0291..ed1a28323 100644
--- a/js/ui/workspaceThumbnail.js
+++ b/js/ui/workspaceThumbnail.js
@@ -156,9 +156,9 @@ const WorkspaceThumbnail = new Lang.Class({
this._removed = false;
- this.actor = new St.Group({ reactive: true,
- clip_to_allocation: true,
- style_class: 'workspace-thumbnail' });
+ this.actor = new St.Widget({ reactive: true,
+ clip_to_allocation: true,
+ style_class: 'workspace-thumbnail' });
this.actor._delegate = this;
this._contents = new Clutter.Group();
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index 0e1bee8da..925f791b2 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -29,7 +29,7 @@ const WorkspacesView = new Lang.Class({
Name: 'WorkspacesView',
_init: function(workspaces) {
- this.actor = new St.Group({ style_class: 'workspaces-view' });
+ this.actor = new St.Widget({ style_class: 'workspaces-view' });
// The actor itself isn't a drop target, so we don't want to pick on its area
this.actor.set_size(0, 0);
diff --git a/src/Makefile-st.am b/src/Makefile-st.am
index 8561f6193..6b97766b9 100644
--- a/src/Makefile-st.am
+++ b/src/Makefile-st.am
@@ -54,7 +54,6 @@ st_source_h = \
st/st-drawing-area.h \
st/st-entry.h \
st/st-focus-manager.h \
- st/st-group.h \
st/st-icon.h \
st/st-icon-colors.h \
st/st-im-text.h \
@@ -109,7 +108,6 @@ st_source_c = \
st/st-drawing-area.c \
st/st-entry.c \
st/st-focus-manager.c \
- st/st-group.c \
st/st-icon.c \
st/st-icon-colors.c \
st/st-im-text.c \
diff --git a/src/st/st-group.c b/src/st/st-group.c
deleted file mode 100644
index edf2671ed..000000000
--- a/src/st/st-group.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
-/*
- * st-group.c: A fixed layout container based on ClutterGroup
- *
- * Copyright 2010 Florian Müllner
- * Copyright 2010 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU Lesser General Public License,
- * version 2.1, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
- * more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/**
- * SECTION:st-group
- * @see_also:#ClutterGroup
- * @short_description: A fixed layout container
- *
- * A #StGroup is an Actor which contains multiple child actors positioned
- * relative to the #StGroup position. Other operations such as scaling,
- * rotating and clipping of the group will apply to the child actors.
- *
- * A #StGroup's size is defined by the size and position of its children;
- * it will be the smallest non-negative size that covers the right and bottom
- * edges of all of its children.
- *
- * Setting the size on a Group using #ClutterActor methods like
- * clutter_actor_set_size() will override the natural size of the Group,
- * however this will not affect the size of the children and they may still
- * be painted outside of the allocation of the group. One way to constrain
- * the visible area of a #StGroup to a specified allocation is to
- * explicitly set the size of the #StGroup and then use the
- * #ClutterActor:clip-to-allocation property.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include
-
-#include "st-group.h"
-#include "st-enum-types.h"
-#include "st-private.h"
-
-G_DEFINE_TYPE (StGroup, st_group, ST_TYPE_CONTAINER);
-
-static void
-st_group_get_preferred_width (ClutterActor *actor,
- gfloat for_height,
- gfloat *min_width_p,
- gfloat *natural_width_p)
-{
- StThemeNode *node = st_widget_get_theme_node (ST_WIDGET (actor));
- gdouble min_width, natural_width;
- gint css_width, css_min_width, css_max_width;
- ClutterActor *child;
-
- css_width = st_theme_node_get_width (node);
- css_min_width = st_theme_node_get_min_width (node);
- css_max_width = st_theme_node_get_max_width (node);
-
- /* We will always be at least 0 sized (ie, if all of the actors are
- * to the left of the origin we won't return a negative size)
- */
- min_width = 0;
- natural_width = 0;
-
- for (child = clutter_actor_get_first_child (actor);
- child != NULL;
- child = clutter_actor_get_next_sibling (child))
- {
- gfloat child_x, child_min, child_nat;
-
- child_x = clutter_actor_get_x (child);
-
- /* for_height is irrelevant to the fixed layout, so it's not used */
- _st_actor_get_preferred_width (child, -1, FALSE,
- &child_min, &child_nat);
-
- /* Track the rightmost edge */
- if (child_x + child_min > min_width)
- min_width = child_x + child_min;
-
- if (child_x + child_nat > natural_width)
- natural_width = child_x + child_nat;
- }
-
- /* The size is defined as the distance from the origin to the right-hand
- * edge of the rightmost actor, unless overridden with min-width
- */
- if (min_width_p)
- {
- if (css_min_width != -1)
- *min_width_p = css_min_width;
- else
- *min_width_p = min_width;
- }
-
- if (natural_width_p)
- {
- if (css_width != -1)
- natural_width = css_width;
- *natural_width_p = MIN (natural_width, css_max_width);
- }
-}
-
-static void
-st_group_get_preferred_height (ClutterActor *actor,
- gfloat for_width,
- gfloat *min_height_p,
- gfloat *natural_height_p)
-{
- StThemeNode *node = st_widget_get_theme_node (ST_WIDGET (actor));
- gdouble min_height, natural_height;
- gint css_height, css_min_height, css_max_height;
- ClutterActor *child;
-
- css_height = st_theme_node_get_height (node);
- css_min_height = st_theme_node_get_min_height (node);
- css_max_height = st_theme_node_get_max_height (node);
-
- /* We will always be at least 0 sized (ie, if all of the actors are
- * above of the origin we won't return a negative size)
- */
- min_height = 0;
- natural_height = 0;
-
- for (child = clutter_actor_get_first_child (actor);
- child != NULL;
- child = clutter_actor_get_next_sibling (child))
- {
- gfloat child_y, child_min, child_nat;
-
- child_y = clutter_actor_get_y (child);
-
- /* for_width is irrelevant to the fixed layout, so it's not used */
- _st_actor_get_preferred_height (child, -1, FALSE,
- &child_min, &child_nat);
-
- /* Track the bottommost edge */
- if (child_y + child_min > min_height)
- min_height = child_y + child_min;
-
- if (child_y + child_nat > natural_height)
- natural_height = child_y + child_nat;
- }
-
- /* The size is defined as the distance from the origin to the right-hand
- * edge of the rightmost actor, unless overridden with min-height
- */
- if (min_height_p)
- {
- if (css_min_height != -1)
- *min_height_p = css_min_height;
- else
- *min_height_p = min_height;
- }
-
- if (natural_height_p)
- {
- if (css_height != -1)
- natural_height = css_height;
- *natural_height_p = MIN (natural_height, css_max_height);
- }
-}
-
-static void
-st_group_allocate (ClutterActor *actor,
- const ClutterActorBox *box,
- ClutterAllocationFlags flags)
-{
- ClutterActor *child;
-
- CLUTTER_ACTOR_CLASS (st_group_parent_class)->allocate (actor, box, flags);
-
- for (child = clutter_actor_get_first_child (actor);
- child != NULL;
- child = clutter_actor_get_next_sibling (child))
- clutter_actor_allocate_preferred_size (child, flags);
-}
-
-static void
-st_group_show_all (ClutterActor *actor)
-{
- clutter_container_foreach (CLUTTER_CONTAINER (actor),
- CLUTTER_CALLBACK (clutter_actor_show),
- NULL);
- clutter_actor_show (actor);
-}
-
-static void
-st_group_hide_all (ClutterActor *actor)
-{
- clutter_actor_hide (actor);
- clutter_container_foreach (CLUTTER_CONTAINER (actor),
- CLUTTER_CALLBACK (clutter_actor_hide),
- NULL);
-}
-
-
-static void
-st_group_class_init (StGroupClass *klass)
-{
- ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
-
- actor_class->get_preferred_width = st_group_get_preferred_width;
- actor_class->get_preferred_height = st_group_get_preferred_height;
- actor_class->allocate = st_group_allocate;
- actor_class->show_all = st_group_show_all;
- actor_class->hide_all = st_group_hide_all;
-}
-
-static void
-st_group_init (StGroup *self)
-{
-}
-
-/**
- * st_group_new:
- *
- * Create a new #StGroup.
- *
- * Return value: the newly created #StGroup actor
- */
-StWidget *
-st_group_new (void)
-{
- return g_object_new (ST_TYPE_GROUP, NULL);
-}
diff --git a/src/st/st-group.h b/src/st/st-group.h
deleted file mode 100644
index af2428758..000000000
--- a/src/st/st-group.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
-/*
- * st-group.h: A fixed layout container based on ClutterGroup
- *
- * Copyright 2010 Florian Müllner
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU Lesser General Public License,
- * version 2.1, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
- * more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-#if !defined(ST_H_INSIDE) && !defined(ST_COMPILATION)
-#error "Only can be included directly.h"
-#endif
-
-#ifndef __ST_GROUP_H__
-#define __ST_GROUP_H__
-
-#include
-#include
-
-G_BEGIN_DECLS
-
-#define ST_TYPE_GROUP (st_group_get_type ())
-#define ST_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_GROUP, StGroup))
-#define ST_IS_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_GROUP))
-#define ST_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_GROUP, StGroupClass))
-#define ST_IS_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_GROUP))
-#define ST_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_GROUP, StGroupClass))
-
-typedef struct _StGroup StGroup;
-typedef struct _StGroupPrivate StGroupPrivate;
-typedef struct _StGroupClass StGroupClass;
-
-/**
- * StGroup:
- *
- * The #StGroup struct contains only private data
- */
-struct _StGroup
-{
- /*< private >*/
- StContainer parent_instance;
-};
-
-/**
- * StGroupClass:
- *
- * The #StGroupClass struct contains only private data
- */
-struct _StGroupClass
-{
- /*< private >*/
- StContainerClass parent_class;
-};
-
-GType st_group_get_type (void) G_GNUC_CONST;
-StWidget *st_group_new (void);
-
-G_END_DECLS
-
-#endif /* __ST_GROUP_H__ */