bool WidgetEditorTool::mainWindowSeparatorEvent(QWidget *widget, QEvent *event) { QMainWindow *mw = qobject_cast<QMainWindow*>(widget); if (mw == 0) return false; if (event->type() != QEvent::MouseButtonPress && event->type() != QEvent::MouseMove && event->type() != QEvent::MouseButtonRelease) return false; QMouseEvent *e = static_cast<QMouseEvent*>(event); if (event->type() == QEvent::MouseButtonPress) { if (mw->isSeparator(e->pos())) { m_separator_drag_mw = mw; return true; } return false; } if (event->type() == QEvent::MouseMove) return m_separator_drag_mw == mw; if (event->type() == QEvent::MouseButtonRelease) { if (m_separator_drag_mw != mw) return false; m_separator_drag_mw = 0; return true; } return false; }