diff options
Diffstat (limited to 'endless')
-rw-r--r-- | endless/eosflexygrid.c | 17 | ||||
-rw-r--r-- | endless/eosflexygridcell.c | 17 | ||||
-rw-r--r-- | endless/eospagemanager-private.h | 3 | ||||
-rw-r--r-- | endless/eospagemanager.c | 32 | ||||
-rw-r--r-- | endless/eoswindow.c | 59 |
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); |