[gnome-chess] view: make scene property construct-only



commit 48afadef23ccc24507cd0b4a4f245b8e653551eb
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Fri Dec 25 08:19:58 2020 -0600

    view: make scene property construct-only
    
    This improves robustness, because the code is not currently able to
    handle the scene being set twice.

 src/chess-view.vala  | 7 ++++++-
 src/gnome-chess.vala | 3 +--
 2 files changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/src/chess-view.vala b/src/chess-view.vala
index ed854d5..ef7e8ec 100644
--- a/src/chess-view.vala
+++ b/src/chess-view.vala
@@ -25,7 +25,7 @@ public class ChessView : Gtk.DrawingArea
     public ChessScene scene
     {
         get { return _scene; }
-        set
+        construct set
         {
             _scene = value;
             _scene.changed.connect (scene_changed_cb);
@@ -38,6 +38,11 @@ public class ChessView : Gtk.DrawingArea
         get { return square_size / 2; }
     }
 
+    public ChessView (ChessScene scene)
+    {
+        Object (scene: scene);
+    }
+
     construct
     {
         init_mouse ();
diff --git a/src/gnome-chess.vala b/src/gnome-chess.vala
index b8e4e7b..f8dea9d 100644
--- a/src/gnome-chess.vala
+++ b/src/gnome-chess.vala
@@ -192,9 +192,8 @@ Copyright © 2015–2016 Sahil Sareen""";
         settings.bind ("move-format", scene, "move-format", SettingsBindFlags.GET);
         settings.bind ("board-side", scene, "board-side", SettingsBindFlags.GET);
 
-        view = new ChessView ();
+        view = new ChessView (scene);
         view.set_size_request (100, 100);
-        view.scene = scene;
         main_box.insert_child_after (view, info_bar);
         view.show ();
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]