summaryrefslogtreecommitdiffstats
path: root/src/widgets/desktop-widget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/desktop-widget.cpp')
-rw-r--r--src/widgets/desktop-widget.cpp37
1 files changed, 35 insertions, 2 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index bb1a0908c..44d3c2f9a 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -253,7 +253,14 @@ Geom::Point
SPDesktopWidget::window_get_pointer()
{
gint x,y;
- gdk_window_get_pointer(gtk_widget_get_window(GTK_WIDGET(canvas)), &x, &y, NULL);
+ GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(canvas));
+
+#if GTK_CHECK_VERSION(3,0,0)
+ GdkDisplay *display = gdk_window_get_display(window);
+ gdk_window_get_device_position(window, display->core_pointer, &x, &y, NULL);
+#else
+ gdk_window_get_pointer(window, &x, &y, NULL);
+#endif
return Geom::Point(x,y);
}
@@ -325,10 +332,20 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
dtw->_interaction_disabled_counter = 0;
/* Main table */
+#if GTK_CHECK_VERSION(3,0,0)
+ dtw->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ gtk_box_new(GTK_BOX(dtw->vbox), FALSE);
+#else
dtw->vbox = gtk_vbox_new (FALSE, 0);
+#endif
gtk_container_add( GTK_CONTAINER(dtw), GTK_WIDGET(dtw->vbox) );
+#if GTK_CHECK_VERSION(3,0,0)
+ dtw->statusbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_box_set_homogeneous(GTK_BOX(dtw->statusbar), FALSE);
+#else
dtw->statusbar = gtk_hbox_new (FALSE, 0);
+#endif
//gtk_widget_set_usize (dtw->statusbar, -1, BOTTOM_BAR_HEIGHT);
gtk_box_pack_end (GTK_BOX (dtw->vbox), dtw->statusbar, FALSE, TRUE, 0);
@@ -336,11 +353,16 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
using Inkscape::UI::Dialogs::SwatchesPanel;
dtw->panels = new SwatchesPanel("/embedded/swatches");
- dtw->panels->setOrientation( Gtk::ANCHOR_SOUTH );
+ dtw->panels->setOrientation(SP_ANCHOR_SOUTH);
gtk_box_pack_end( GTK_BOX( dtw->vbox ), GTK_WIDGET(dtw->panels->gobj()), FALSE, TRUE, 0 );
}
+#if GTK_CHECK_VERSION(3,0,0)
+ dtw->hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_box_set_homogeneous(GTK_BOX(dtw->hbox), FALSE);
+#else
dtw->hbox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_end( GTK_BOX (dtw->vbox), dtw->hbox, TRUE, TRUE, 0 );
gtk_widget_show(dtw->hbox);
@@ -395,7 +417,12 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
gtk_table_attach (GTK_TABLE (canvas_tbl), dtw->hscrollbar, 1, 2, 2, 3, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(GTK_SHRINK), 0, 0);
/* Vertical scrollbar and the sticky zoom button */
+#if GTK_CHECK_VERSION(3,0,0)
+ dtw->vscrollbar_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ gtk_box_new(GTK_BOX(dtw->vscrollbar_box), FALSE);
+#else
dtw->vscrollbar_box = gtk_vbox_new (FALSE, 0);
+#endif
dtw->sticky_zoom = sp_button_new_from_data ( Inkscape::ICON_SIZE_DECORATION,
SP_BUTTON_TYPE_TOGGLE,
NULL,
@@ -573,7 +600,13 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
gtk_label_set_markup (GTK_LABEL (dtw->select_status), _("<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; use selector (arrow) to move or transform them."));
// space label 2 pixels from left edge
gtk_container_add (GTK_CONTAINER (dtw->select_status_eventbox), dtw->select_status);
+#if GTK_CHECK_VERSION(3,0,0)
+ gtk_box_pack_start(GTK_BOX(dtw->statusbar),
+ gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0),
+ FALSE, FALSE, 2);
+#else
gtk_box_pack_start (GTK_BOX (dtw->statusbar), gtk_hbox_new(FALSE, 0), FALSE, FALSE, 2);
+#endif
gtk_box_pack_start (GTK_BOX (dtw->statusbar), dtw->select_status_eventbox, TRUE, TRUE, 0);
gtk_widget_show_all (dtw->vbox);