summaryrefslogtreecommitdiffstats
path: root/src/widgets/sp-widget.cpp
diff options
context:
space:
mode:
authorAlex Valavanis <valavanisalex@gmail.com>2012-07-23 16:19:50 +0000
committerAlex Valavanis <valavanisalex@gmail.com>2012-07-23 16:19:50 +0000
commit1c78495f3dd05febf84085cb665fc83d338ec2c3 (patch)
tree5a776301cbcfc87435c8d26ffee557847400e47d /src/widgets/sp-widget.cpp
parentAbort configuration if GTK+ 3 dependencies are unfulfilled (diff)
downloadinkscape-1c78495f3dd05febf84085cb665fc83d338ec2c3.tar.gz
inkscape-1c78495f3dd05febf84085cb665fc83d338ec2c3.zip
Drop use of size-request in button and sp-widget (GTK3)
(bzr r11564)
Diffstat (limited to 'src/widgets/sp-widget.cpp')
-rw-r--r--src/widgets/sp-widget.cpp38
1 files changed, 22 insertions, 16 deletions
diff --git a/src/widgets/sp-widget.cpp b/src/widgets/sp-widget.cpp
index 58b33a489..8d840da25 100644
--- a/src/widgets/sp-widget.cpp
+++ b/src/widgets/sp-widget.cpp
@@ -41,7 +41,7 @@ public:
static void dispose(GObject *object);
static void show(GtkWidget *widget);
static void hide(GtkWidget *widget);
- static void sizeRequest(GtkWidget *widget, GtkRequisition *requisition);
+
#if GTK_CHECK_VERSION(3,0,0)
static void getPreferredWidth(GtkWidget *widget,
gint *minimal_width,
@@ -52,8 +52,10 @@ public:
gint *natural_height);
static gboolean draw(GtkWidget *widget, cairo_t *cr);
#else
+ static void sizeRequest(GtkWidget *widget, GtkRequisition *requisition);
static gboolean expose(GtkWidget *widget, GdkEventExpose *event);
#endif
+
static void sizeAllocate(GtkWidget *widget, GtkAllocation *allocation);
static void modifySelectionCB(Application *inkscape, Selection *selection, guint flags, SPWidget *spw);
static void changeSelectionCB(Application *inkscape, Selection *selection, SPWidget *spw);
@@ -247,31 +249,35 @@ gboolean SPWidgetImpl::expose(GtkWidget *widget, GdkEventExpose *event)
return FALSE;
}
-void SPWidgetImpl::sizeRequest(GtkWidget *widget, GtkRequisition *requisition)
+#if GTK_CHECK_VERSION(3,0,0)
+void SPWidgetImpl::getPreferredWidth(GtkWidget *widget, gint *minimal_width, gint *natural_width)
{
GtkBin *bin = GTK_BIN(widget);
GtkWidget *child = gtk_bin_get_child(bin);
- if (child) {
- gtk_widget_size_request(child, requisition);
+ if(child) {
+ gtk_widget_get_preferred_width(child, minimal_width, natural_width);
}
}
-#if GTK_CHECK_VERSION(3,0,0)
-void SPWidgetImpl::getPreferredWidth(GtkWidget *widget, gint *minimal_width, gint *natural_width)
+void SPWidgetImpl::getPreferredHeight(GtkWidget *widget, gint *minimal_height, gint *natural_height)
{
- GtkRequisition requisition;
- sizeRequest(widget, &requisition);
- *minimal_width = requisition.width;
- *natural_width = requisition.width;
-}
+ GtkBin *bin = GTK_BIN(widget);
+ GtkWidget *child = gtk_bin_get_child(bin);
-void SPWidgetImpl::getPreferredHeight(GtkWidget *widget, gint *minimal_height, gint *natural_height)
+ if(child) {
+ gtk_widget_get_preferred_height(child, minimal_height, natural_height);
+ }
+}
+#else
+void SPWidgetImpl::sizeRequest(GtkWidget *widget, GtkRequisition *requisition)
{
- GtkRequisition requisition;
- sizeRequest(widget, &requisition);
- *minimal_height = requisition.height;
- *natural_height = requisition.height;
+ GtkBin *bin = GTK_BIN(widget);
+ GtkWidget *child = gtk_bin_get_child(bin);
+
+ if (child) {
+ gtk_widget_size_request(child, requisition);
+ }
}
#endif