summaryrefslogtreecommitdiff
path: root/endless
diff options
context:
space:
mode:
Diffstat (limited to 'endless')
-rw-r--r--endless/eosflexygrid.c17
-rw-r--r--endless/eosflexygridcell.c17
-rw-r--r--endless/eospagemanager-private.h3
-rw-r--r--endless/eospagemanager.c32
-rw-r--r--endless/eoswindow.c59
5 files changed, 36 insertions, 92 deletions
diff --git a/endless/eosflexygrid.c b/endless/eosflexygrid.c
index d831163..81cf3ba 100644
--- a/endless/eosflexygrid.c
+++ b/endless/eosflexygrid.c
@@ -63,22 +63,11 @@ enum
LAST_SIGNAL
};
-#if GLIB_CHECK_VERSION (2, 37, 5)
-
-# define EOS_FLEXY_GRID_GET_PRIV(obj) \
+#define EOS_FLEXY_GRID_GET_PRIV(obj) \
((EosFlexyGridPrivate *) eos_flexy_grid_get_instance_private ((EosFlexyGrid *) (obj)))
G_DEFINE_TYPE_WITH_PRIVATE (EosFlexyGrid, eos_flexy_grid, GTK_TYPE_CONTAINER)
-#else
-
-# define EOS_FLEXY_GRID_GET_PRIV(obj) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EOS_TYPE_FLEXY_GRID, EosFlexyGridPrivate))
-
-G_DEFINE_TYPE (EosFlexyGrid, eos_flexy_grid, GTK_TYPE_CONTAINER)
-
-#endif /* GLIB_CHECK_VERSION (2, 37, 5) */
-
static guint grid_signals[LAST_SIGNAL] = { 0, };
static GParamSpec *grid_props[LAST_PROP] = { NULL, };
@@ -852,10 +841,6 @@ eos_flexy_grid_finalize (GObject *gobject)
static void
eos_flexy_grid_class_init (EosFlexyGridClass *klass)
{
-#if !GLIB_CHECK_VERSION (2, 37, 5)
- g_type_class_add_private (klass, sizeof (EosFlexyGridPrivate));
-#endif
-
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
gobject_class->finalize = eos_flexy_grid_finalize;
gobject_class->set_property = eos_flexy_grid_set_property;
diff --git a/endless/eosflexygridcell.c b/endless/eosflexygridcell.c
index 4091f06..726c7f1 100644
--- a/endless/eosflexygridcell.c
+++ b/endless/eosflexygridcell.c
@@ -21,22 +21,11 @@ typedef struct {
guint selected : 1;
} EosFlexyGridCellPrivate;
-#if GLIB_CHECK_VERSION (2, 37, 5)
-
-# define EOS_FLEXY_GRID_CELL_GET_PRIV(obj) \
+#define EOS_FLEXY_GRID_CELL_GET_PRIV(obj) \
((EosFlexyGridCellPrivate *) eos_flexy_grid_cell_get_instance_private ((EosFlexyGridCell *) (obj)))
G_DEFINE_TYPE_WITH_PRIVATE (EosFlexyGridCell, eos_flexy_grid_cell, GTK_TYPE_BIN)
-#else
-
-# define EOS_FLEXY_GRID_CELL_GET_PRIV(obj) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EOS_TYPE_FLEXY_GRID_CELL, EosFlexyGridCellPrivate))
-
-G_DEFINE_TYPE (EosFlexyGridCell, eos_flexy_grid_cell, GTK_TYPE_BIN)
-
-#endif /* GLIB_CHECK_VERSION (2, 37, 5) */
-
enum
{
PROP_0,
@@ -90,10 +79,6 @@ eos_flexy_grid_cell_get_property (GObject *gobject,
static void
eos_flexy_grid_cell_class_init (EosFlexyGridCellClass *klass)
{
-#if !GLIB_CHECK_VERSION (2, 37, 6)
- g_type_class_add_private (klass, sizeof (EosFlexyGridCellPrivate));
-#endif
-
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
gobject_class->set_property = eos_flexy_grid_cell_set_property;
gobject_class->get_property = eos_flexy_grid_cell_get_property;
diff --git a/endless/eospagemanager-private.h b/endless/eospagemanager-private.h
index 5a01637..c39a118 100644
--- a/endless/eospagemanager-private.h
+++ b/endless/eospagemanager-private.h
@@ -8,11 +8,10 @@
#include "eospagemanager.h"
#include <gtk/gtk.h>
-#include <pstack.h>
G_BEGIN_DECLS
-PStackTransitionType eos_page_manager_get_pstack_transition_type (EosPageManager *self);
+GtkStackTransitionType eos_page_manager_get_gtk_stack_transition_type (EosPageManager *self);
G_END_DECLS
diff --git a/endless/eospagemanager.c b/endless/eospagemanager.c
index 9a6d0b1..d8b7ea5 100644
--- a/endless/eospagemanager.c
+++ b/endless/eospagemanager.c
@@ -5,7 +5,6 @@
#include "eospagemanager-private.h"
#include <gtk/gtk.h>
-#include <pstack.h>
#include <string.h>
@@ -262,9 +261,8 @@ static void
set_visible_page_from_info (EosPageManager *self,
EosPageManagerPageInfo *info)
{
- /* FIXME when porting to GtkStack */
- PStack *stack = P_STACK (self->priv->stack);
- p_stack_set_visible_child (stack, info->page);
+ GtkStack *stack = GTK_STACK (self->priv->stack);
+ gtk_stack_set_visible_child (stack, info->page);
self->priv->visible_page_info = info;
@@ -906,7 +904,7 @@ eos_page_manager_init (EosPageManager *self)
gtk_widget_set_has_window (self_widget, FALSE);
/* TODO replace with GtkStack */
- self->priv->stack = p_stack_new ();
+ self->priv->stack = gtk_stack_new ();
gtk_widget_set_parent (self->priv->stack, self_widget);
}
@@ -1603,7 +1601,7 @@ eos_page_manager_get_transition_duration (EosPageManager *self)
{
g_return_val_if_fail (EOS_IS_PAGE_MANAGER (self), 0);
- return p_stack_get_transition_duration (P_STACK (self->priv->stack));
+ return gtk_stack_get_transition_duration (GTK_STACK (self->priv->stack));
}
/**
@@ -1620,7 +1618,7 @@ eos_page_manager_set_transition_duration (EosPageManager *self,
{
g_return_if_fail (EOS_IS_PAGE_MANAGER (self));
- p_stack_set_transition_duration (P_STACK (self->priv->stack), duration);
+ gtk_stack_set_transition_duration (GTK_STACK (self->priv->stack), duration);
g_object_notify (G_OBJECT (self), "transition-duration");
}
@@ -1657,7 +1655,7 @@ eos_page_manager_set_transition_type (EosPageManager *self,
g_return_if_fail (EOS_IS_PAGE_MANAGER (self));
self->priv->transition_type = transition_type;
- PStackTransitionType pstack_transition;
+ GtkStackTransitionType gtk_stack_transition;
switch (transition_type)
{
case EOS_PAGE_MANAGER_TRANSITION_TYPE_NONE:
@@ -1666,25 +1664,25 @@ eos_page_manager_set_transition_type (EosPageManager *self,
case EOS_PAGE_MANAGER_TRANSITION_TYPE_SLIDE_LEFT:
case EOS_PAGE_MANAGER_TRANSITION_TYPE_SLIDE_UP:
case EOS_PAGE_MANAGER_TRANSITION_TYPE_SLIDE_DOWN:
- pstack_transition = (PStackTransitionType)self->priv->transition_type;
+ gtk_stack_transition = (GtkStackTransitionType)self->priv->transition_type;
break;
default:
- pstack_transition = P_STACK_TRANSITION_TYPE_NONE;
+ gtk_stack_transition = GTK_STACK_TRANSITION_TYPE_NONE;
break;
}
- p_stack_set_transition_type (P_STACK (self->priv->stack),
- pstack_transition);
+ gtk_stack_set_transition_type (GTK_STACK (self->priv->stack),
+ gtk_stack_transition);
g_object_notify (G_OBJECT (self), "transition-type");
}
/*
- * eos_page_manager_get_pstack_transition_type:
+ * eos_page_manager_get_gtk_stack_transition_type:
* @self: the page manager
*
- * Gets the internal pstack transition type used to animate the page manager.
+ * Gets the internal gtk_stack transition type used to animate the page manager.
*/
-PStackTransitionType
-eos_page_manager_get_pstack_transition_type (EosPageManager *self)
+GtkStackTransitionType
+eos_page_manager_get_gtk_stack_transition_type (EosPageManager *self)
{
- return p_stack_get_transition_type (P_STACK (self->priv->stack));
+ return gtk_stack_get_transition_type (GTK_STACK (self->priv->stack));
}
diff --git a/endless/eoswindow.c b/endless/eoswindow.c
index 35547bb..d026e6b 100644
--- a/endless/eoswindow.c
+++ b/endless/eoswindow.c
@@ -11,7 +11,6 @@
#include "eosmainarea-private.h"
#include <gtk/gtk.h>
-#include <pstack.h>
/**
* SECTION:window
@@ -67,6 +66,7 @@ struct _EosWindowPrivate
GtkWidget *top_bar;
GtkWidget *main_area;
GtkWidget *overlay;
+ GtkSizeGroup *overlay_size_group;
GtkWidget *edge_finishing;
GtkWidget *current_background;
GtkWidget *next_background;
@@ -213,10 +213,10 @@ static void
sync_stack_animation (EosWindow *self)
{
EosPageManager *pm = EOS_PAGE_MANAGER (self->priv->page_manager);
- p_stack_set_transition_type (P_STACK (self->priv->background_stack),
- eos_page_manager_get_pstack_transition_type (pm));
- p_stack_set_transition_duration (P_STACK (self->priv->background_stack),
- eos_page_manager_get_transition_duration (pm));
+ gtk_stack_set_transition_type (GTK_STACK (self->priv->background_stack),
+ eos_page_manager_get_gtk_stack_transition_type (pm));
+ gtk_stack_set_transition_duration (GTK_STACK (self->priv->background_stack),
+ eos_page_manager_get_transition_duration (pm));
}
// Helper to generate frame css override
@@ -269,8 +269,8 @@ update_page_background (EosWindow *self)
gtk_widget_get_name (self->priv->next_background),
next_background_css_props);
override_background_css (self, background_css);
- p_stack_set_visible_child (P_STACK (self->priv->background_stack),
- self->priv->next_background);
+ gtk_stack_set_visible_child (GTK_STACK (self->priv->background_stack),
+ self->priv->next_background);
// Swap our background frames for next animation
GtkWidget *temp = self->priv->next_background;
self->priv->next_background = self->priv->current_background;
@@ -334,8 +334,8 @@ update_page (EosWindow *self)
update_page_left_topbar (self);
update_page_center_topbar (self);
update_page_background (self);
- p_stack_set_transition_type (P_STACK (self->priv->background_stack),
- P_STACK_TRANSITION_TYPE_NONE);
+ gtk_stack_set_transition_type (GTK_STACK (self->priv->background_stack),
+ GTK_STACK_TRANSITION_TYPE_NONE);
if (self->priv->current_page)
{
@@ -571,36 +571,6 @@ eos_window_class_init (EosWindowClass *klass)
g_object_class_install_properties (object_class, NPROPS, eos_window_props);
}
-#if GTK_CHECK_VERSION (3, 10, 0)
-#define our_window_close(w) gtk_window_close (w)
-#else
-static gboolean
-queue_close (gpointer user_data)
-{
- GtkWidget *window = user_data;
-
- GdkEvent *event = gdk_event_new (GDK_DELETE);
-
- event->any.window = gtk_widget_get_window (window);
- event->any.send_event = TRUE;
-
- gtk_main_do_event (event);
-
- gdk_event_free (event);
-
- return G_SOURCE_REMOVE;
-}
-
-static void
-our_window_close (GtkWindow *window)
-{
- if (!gtk_widget_get_realized (GTK_WIDGET (window)))
- return;
-
- gdk_threads_add_idle (queue_close, window);
-}
-#endif /* GTK_CHECK_VERSION (3, 10, 0) */
-
static void
on_minimize_clicked_cb (GtkWidget* top_bar)
{
@@ -614,7 +584,7 @@ on_close_clicked_cb (GtkWidget* top_bar)
{
GtkWidget *window = gtk_widget_get_toplevel (top_bar);
- our_window_close (GTK_WINDOW (window));
+ gtk_window_close (GTK_WINDOW (window));
}
/* Make sure that the edge finishing does not catch input events */
@@ -661,7 +631,7 @@ eos_window_init (EosWindow *self)
self->priv->overlay = gtk_overlay_new ();
gtk_container_add (GTK_CONTAINER (self), self->priv->overlay);
- self->priv->background_stack = p_stack_new ();
+ self->priv->background_stack = gtk_stack_new ();
gtk_container_add (GTK_CONTAINER (self->priv->overlay), self->priv->background_stack);
gchar *background_name1 = g_strdup_printf (BACKGROUND_FRAME_NAME_TEMPLATE, 1);
@@ -687,6 +657,13 @@ eos_window_init (EosWindow *self)
self->priv->main_area = eos_main_area_new ();
gtk_overlay_add_overlay (GTK_OVERLAY (self->priv->overlay), self->priv->main_area);
+ // We want the overlay to size to the main area, the widget on top. The
+ // overlay gets its size request from the widget on the bottom, the
+ // background frame with no minimum size. So we use a size group.
+ self->priv->overlay_size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
+ gtk_size_group_add_widget (self->priv->overlay_size_group, self->priv->background_stack);
+ gtk_size_group_add_widget (self->priv->overlay_size_group, self->priv->main_area);
+
self->priv->edge_finishing = gtk_drawing_area_new ();
gtk_widget_set_vexpand (self->priv->edge_finishing, FALSE);
gtk_widget_set_valign (self->priv->edge_finishing, GTK_ALIGN_START);