summaryrefslogtreecommitdiffstats
path: root/src/ui/widget/dock-item.cpp
diff options
context:
space:
mode:
authorgustav_b <gustav_b@users.sourceforge.net>2007-09-25 23:23:44 +0000
committergustav_b <gustav_b@users.sourceforge.net>2007-09-25 23:23:44 +0000
commit8966f982ceca52727cdfeb1fa161eb67bc2994c4 (patch)
treece09494e740429b0a1df71c1d3a66557710e2eb4 /src/ui/widget/dock-item.cpp
parentremoved flop IM extension from POTFLES.in (diff)
downloadinkscape-8966f982ceca52727cdfeb1fa161eb67bc2994c4.tar.gz
inkscape-8966f982ceca52727cdfeb1fa161eb67bc2994c4.zip
Define DockItems' floating state properly. Fixes some issues with
floating docks. (bzr r3799)
Diffstat (limited to 'src/ui/widget/dock-item.cpp')
-rw-r--r--src/ui/widget/dock-item.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/ui/widget/dock-item.cpp b/src/ui/widget/dock-item.cpp
index 2187c33e9..74cc44be9 100644
--- a/src/ui/widget/dock-item.cpp
+++ b/src/ui/widget/dock-item.cpp
@@ -196,14 +196,8 @@ DockItem::isAttached() const
bool
DockItem::isFloating() const
{
- gboolean floating = FALSE;
- if (GDL_IS_DOCK (gdl_dock_object_get_parent_object (GDL_DOCK_OBJECT (_gdl_dock_item)))) {
- GdlDock* dock = GDL_DOCK (gdl_dock_object_get_parent_object (GDL_DOCK_OBJECT (_gdl_dock_item)));
- g_object_get (dock,
- "floating", &floating,
- NULL);
- }
- return floating;
+ return (GTK_WIDGET(gdl_dock_object_get_toplevel(GDL_DOCK_OBJECT (_gdl_dock_item))) !=
+ _dock.getGdlWidget());
}
bool
@@ -431,7 +425,7 @@ DockItem::_onStateChanged(State prev_state, State new_state)
{
_window = getWindow();
- if (new_state == FLOATING_STATE) {
+ if (new_state == FLOATING_STATE && _window) {
_window->signal_hide().connect(sigc::mem_fun(*this, &Inkscape::UI::Widget::DockItem::_onHideWindow));
_signal_key_press_event_connection =
_window->signal_key_press_event().connect(sigc::mem_fun(*this, &Inkscape::UI::Widget::DockItem::_onKeyPress));