summaryrefslogtreecommitdiffstats
path: root/src/ui/widget/dock.cpp
diff options
context:
space:
mode:
authorgustav_b <gustav_b@users.sourceforge.net>2007-10-25 21:34:38 +0000
committergustav_b <gustav_b@users.sourceforge.net>2007-10-25 21:34:38 +0000
commitf5f6fea84318ddca44391d86c0f9a606498e78be (patch)
tree4f05abbe97cb18fafcab715f370baa63b85f2232 /src/ui/widget/dock.cpp
parentKhmer translations updated (diff)
downloadinkscape-f5f6fea84318ddca44391d86c0f9a606498e78be.tar.gz
inkscape-f5f6fea84318ddca44391d86c0f9a606498e78be.zip
Dockable dialogs: Allow in-dock dialogs to be expanded even if there's
no "slack". (bzr r3960)
Diffstat (limited to 'src/ui/widget/dock.cpp')
-rw-r--r--src/ui/widget/dock.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/ui/widget/dock.cpp b/src/ui/widget/dock.cpp
index ae19ed8d6..1ca2580ba 100644
--- a/src/ui/widget/dock.cpp
+++ b/src/ui/widget/dock.cpp
@@ -80,6 +80,7 @@ Dock::Dock(Gtk::Orientation orientation)
g_object_set (GDL_DOCK_OBJECT(_gdl_dock)->master,
"switcher-style", gdl_switcher_style,
+ "expand-direction", GDL_DOCK_EXPANSION_DIRECTION_DOWN,
NULL);
GdlDockBarStyle gdl_dock_bar_style =
@@ -91,6 +92,9 @@ Dock::Dock(Gtk::Orientation orientation)
g_signal_connect(G_OBJECT(INKSCAPE), "dialogs_hide", G_CALLBACK(hideCallback), (void *)this);
g_signal_connect(G_OBJECT(INKSCAPE), "dialogs_unhide", G_CALLBACK(unhideCallback), (void *)this);
+ g_signal_connect(_paned->gobj(), "button-press-event", G_CALLBACK(_on_paned_button_event), (void *)this);
+ g_signal_connect(_paned->gobj(), "button-release-event", G_CALLBACK(_on_paned_button_event), (void *)this);
+
signal_layout_changed().connect(sigc::mem_fun(*this, &Inkscape::UI::Widget::Dock::_onLayoutChanged));
}
@@ -230,7 +234,6 @@ void
Dock::_onLayoutChanged()
{
if (isEmpty()) {
-
if (hasIconifiedItems())
_scrolled_window->set_size_request(_default_dock_bar_width);
else
@@ -238,10 +241,28 @@ Dock::_onLayoutChanged()
getParentPaned()->set_position(INT_MAX);
} else {
+ // unset any forced size requests
+ _paned->get_child1()->set_size_request(-1, -1);
_scrolled_window->set_size_request(-1);
}
}
+void
+Dock::_onPanedButtonEvent(GdkEventButton *event)
+{
+ if (event->button == 1 && event->type == GDK_BUTTON_PRESS)
+ /* unset size request when starting a drag */
+ _paned->get_child1()->set_size_request(-1, -1);
+}
+
+gboolean
+Dock::_on_paned_button_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
+{
+ if (Dock *dock = static_cast<Dock *>(user_data))
+ dock->_onPanedButtonEvent(event);
+
+ return FALSE;
+}
const Glib::SignalProxyInfo
Dock::_signal_layout_changed_proxy =