From da97f9c3b608a238a5862bd67992f65866e1df4f Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Tue, 8 Dec 2020 23:03:16 +0100
Subject: Displayed loaded content in its view panel.

---
 src/gui/editor.c      | 13 ++++++++++++-
 src/gui/panels/view.c | 15 +++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/gui/editor.c b/src/gui/editor.c
index 1665ff4..c7c2d37 100644
--- a/src/gui/editor.c
+++ b/src/gui/editor.c
@@ -1030,11 +1030,22 @@ static void on_editor_content_available(GStudyProject *project, GLoadedContent *
 static void on_editor_loaded_content_added(GStudyProject *project, GLoadedContent *content, void *unused)
 {
     GPanelItem *panel;                      /* Nouveau panneau à integrer  */
+    GPanelItemClass *class;                 /* Classe associée au panneau  */
+#ifndef NDEBUG
+    bool status;                            /* Bilan de mise en place      */
+#endif
     GtkWidget *selected;                    /* Interface de prédilection   */
 
     panel = g_view_panel_new(G_NAMED_WIDGET(content));
 
-    register_panel_item(G_TYPE_VIEW_PANEL, get_main_configuration());
+    class = G_PANEL_ITEM_GET_CLASS(panel);
+
+#ifndef NDEBUG
+    status = gtk_panel_item_class_setup_configuration(class, get_main_configuration());
+    assert(status);
+#else
+    gtk_panel_item_class_setup_configuration(class, get_main_configuration());
+#endif
 
     selected = g_editor_item_get_widget(G_EDITOR_ITEM(panel));
 
diff --git a/src/gui/panels/view.c b/src/gui/panels/view.c
index 26dc820..391c9c6 100644
--- a/src/gui/panels/view.c
+++ b/src/gui/panels/view.c
@@ -29,7 +29,10 @@
 
 
 #include "../panel-int.h"
+#include "../core/global.h"
+#include "../core/items.h"
 #include "../../gtkext/named.h"
+#include "../../plugins/pglist.h"
 
 
 
@@ -250,12 +253,24 @@ static char *g_view_panel_class_get_path(const GViewPanelClass *class)
 GPanelItem *g_view_panel_new(GNamedWidget *widget)
 {
     GPanelItem *result;                     /* Structure à retourner       */
+    GtkTiledGrid *grid;                     /* Composant d'affichage       */
 
     result = g_object_new(G_TYPE_VIEW_PANEL, NULL);
 
     result->widget = widget;
     g_object_ref(G_OBJECT(widget));
 
+    grid = get_tiled_grid();
+
+    g_signal_connect_swapped(result, "dock-request", G_CALLBACK(gtk_tiled_grid_add), grid);
+    g_signal_connect_swapped(result, "undock-request", G_CALLBACK(gtk_tiled_grid_remove), grid);
+
+    gtk_dockable_setup_dnd(GTK_DOCKABLE(result));
+
+    register_editor_item(G_EDITOR_ITEM(result));
+
+    notify_panel_creation(result);
+
     return result;
 
 }
-- 
cgit v0.11.2-87-g4458