[dconf] Implement the new GtkCellRenderer preferred layout methods, this fixes the crash in bug #637944 Also



commit 09b93207fd02189e43926e168a852d170c8c0a66
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri Jan 14 13:13:33 2011 -0600

    Implement the new GtkCellRenderer preferred layout methods, this fixes the crash in bug #637944
    Also get rid of a not-required construct method

 configure.ac           |    2 +-
 editor/dconf-view.vala |   41 ++++++++++++++++++++++++++++++++++-------
 2 files changed, 35 insertions(+), 8 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 17f5635..0488dc6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,7 +12,7 @@ AM_SILENT_RULES([yes])
 
 # Check for programs
 AC_PROG_CC
-AM_PROG_VALAC([0.11])
+AM_PROG_VALAC([0.11.4])
 
 # Gtk-doc support
 GTK_DOC_CHECK([1.15])
diff --git a/editor/dconf-view.vala b/editor/dconf-view.vala
index 760052c..42da5b6 100644
--- a/editor/dconf-view.vala
+++ b/editor/dconf-view.vala
@@ -97,8 +97,10 @@ private class KeyValueRenderer: Gtk.CellRenderer
         }
     }
 
-    construct
+    public KeyValueRenderer(DConfKeyView view)
     {
+        this.view = view;
+
         text_renderer = new Gtk.CellRendererText();
         text_renderer.editable = true;
         text_renderer.edited.connect(text_edited_cb);
@@ -119,11 +121,6 @@ private class KeyValueRenderer: Gtk.CellRenderer
         combo_renderer.edited.connect(text_edited_cb);
     }
 
-    public KeyValueRenderer(DConfKeyView view)
-    {
-        this.view = view;
-    }
-
     private Gtk.CellRenderer renderer
     {
         set {}
@@ -145,7 +142,7 @@ private class KeyValueRenderer: Gtk.CellRenderer
                      key.type_string == "d")
                 return spin_renderer;
             else
-                return text_renderer;            
+                return text_renderer;
         }
     }
 
@@ -159,6 +156,36 @@ private class KeyValueRenderer: Gtk.CellRenderer
         renderer.get_size(widget, cell_area, out x_offset, out y_offset, out width, out height);
     }
 
+    public override void get_preferred_width(Gtk.Widget widget,
+                                             out int    minimum_size,
+                                             out int    natural_size)
+    {
+        renderer.get_preferred_width(widget, out minimum_size, out natural_size);
+    }
+
+    public override void get_preferred_height_for_width(Gtk.Widget widget,
+                                                        int        width,
+                                                        out int    minimum_height,
+                                                        out int    natural_height)
+    {
+        renderer.get_preferred_height_for_width(widget, width, out minimum_height, out natural_height);
+    }
+
+    public override void get_preferred_height(Gtk.Widget widget,
+                                              out int    minimum_size,
+                                              out int    natural_size)
+    {
+        renderer.get_preferred_height(widget, out minimum_size, out natural_size);
+    }
+
+    public override void get_preferred_width_for_height(Gtk.Widget widget,
+                                                        int        height,
+                                                        out int    minimum_width,
+                                                        out int    natural_width)
+    {
+        renderer.get_preferred_width_for_height(widget, height, out minimum_width, out natural_width);
+    }
+
     public override void render(Cairo.Context context,
                                 Gtk.Widget    widget,
                                 Gdk.Rectangle background_area,



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