diff --git a/data/ui/window.ui b/data/ui/window.ui
index 5378fc88..13ecd1f8 100644
--- a/data/ui/window.ui
+++ b/data/ui/window.ui
@@ -8,6 +8,7 @@
800
600
False
+
@@ -110,10 +116,12 @@
True
True
True
+ True
@@ -144,4 +152,13 @@
+
+ False
+ views_stack
+
+
+ True
+
+
+
diff --git a/src/gcal-window.c b/src/gcal-window.c
index 5c3ab449..a89b1d22 100644
--- a/src/gcal-window.c
+++ b/src/gcal-window.c
@@ -980,6 +980,15 @@ gcal_window_class_init(GcalWindowClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, views_overlay);
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, views_stack);
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, views_switcher);
+ gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, popover);
+ gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, new_event_widget);
+
+ gtk_widget_class_bind_template_callback (widget_class, key_pressed);
+ gtk_widget_class_bind_template_callback (widget_class, search_toggled);
+ gtk_widget_class_bind_template_callback (widget_class, search_changed);
+ gtk_widget_class_bind_template_callback (widget_class, view_changed);
+ gtk_widget_class_bind_template_callback (widget_class, stack_transition_running);
+ gtk_widget_class_bind_template_callback (widget_class, date_updated);
}
static void
@@ -1029,8 +1038,6 @@ gcal_window_constructed (GObject *object)
/* header_bar: menu */
- gtk_menu_button_set_use_popover (GTK_MENU_BUTTON (priv->menu_button),
- TRUE);
builder = gtk_builder_new ();
gtk_builder_add_from_resource (builder,
"/org/gnome/calendar/menus.ui",
@@ -1049,7 +1056,6 @@ gcal_window_constructed (GObject *object)
priv->search_bar, "search-mode-enabled",
G_BINDING_BIDIRECTIONAL);
-
priv->views[GCAL_WINDOW_VIEW_WEEK] =
gcal_week_view_new (priv->manager);
gcal_week_view_set_first_weekday (
@@ -1086,18 +1092,7 @@ gcal_window_constructed (GObject *object)
"active-date",
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
- /* popover and content */
- priv->popover = gtk_popover_new (GTK_WIDGET(priv->views_stack));
-
- priv->new_event_widget = gcal_new_event_widget_new ();
-
- gtk_container_add (GTK_CONTAINER(priv->popover),
- GTK_WIDGET(priv->new_event_widget));
-
/* signals connection/handling */
- g_signal_connect (object, "key-press-event",
- G_CALLBACK (key_pressed), object);
-
/* HACK to ensure proper destroy of search-view widget */
g_signal_connect_swapped (priv->views_stack, "destroy",
G_CALLBACK (gtk_widget_destroy),
@@ -1120,19 +1115,6 @@ gcal_window_constructed (GObject *object)
}
}
- g_signal_connect (priv->search_bar, "notify::search-mode-enabled",
- G_CALLBACK (search_toggled), object);
- g_signal_connect (priv->search_entry, "search-changed",
- G_CALLBACK (search_changed), object);
-
- g_signal_connect (priv->views_stack, "notify::visible-child",
- G_CALLBACK (view_changed), object);
- g_signal_connect (priv->views_stack, "notify::transition-running",
- G_CALLBACK (stack_transition_running), object);
-
- g_signal_connect (priv->today_button, "clicked",
- G_CALLBACK (date_updated), object);
-
g_signal_connect (gcal_nav_bar_get_prev_button (GCAL_NAV_BAR (priv->nav_bar)),
"clicked", G_CALLBACK (date_updated), object);
g_signal_connect (gcal_nav_bar_get_next_button (GCAL_NAV_BAR (priv->nav_bar)),