@@ -240,19 +240,16 @@ void CDockWidgetTab::mouseReleaseEvent(QMouseEvent* ev)
240
240
// End of tab moving, change order now
241
241
if (d->isDraggingState (DraggingTab) && d->DockArea )
242
242
{
243
- if (d->DockWidget ->features () & CDockWidget::DockWidgetMovable) {
244
- // Find tab under mouse
245
- QPoint pos = d->DockArea ->mapFromGlobal (ev->globalPos ());
246
- int fromIndex = d->DockArea ->tabIndex (d->DockWidget );
247
- int toIndex = d->DockArea ->indexOfContentByTitlePos (pos, this );
248
- if (-1 == toIndex)
249
- {
250
- toIndex = d->DockArea ->count () - 1 ;
251
- }
252
- qDebug () << " Move tab from " << fromIndex << " to " << toIndex;
253
- d->DockArea ->reorderDockWidget (fromIndex, toIndex);
254
- }
255
-
243
+ // Find tab under mouse
244
+ QPoint pos = d->DockArea ->mapFromGlobal (ev->globalPos ());
245
+ int fromIndex = d->DockArea ->tabIndex (d->DockWidget );
246
+ int toIndex = d->DockArea ->indexOfContentByTitlePos (pos, this );
247
+ if (-1 == toIndex)
248
+ {
249
+ toIndex = d->DockArea ->count () - 1 ;
250
+ }
251
+ qDebug () << " Move tab from " << fromIndex << " to " << toIndex;
252
+ d->DockArea ->reorderDockWidget (fromIndex, toIndex);
256
253
}
257
254
258
255
if (!d->DragStartMousePosition .isNull ())
@@ -276,37 +273,36 @@ void CDockWidgetTab::mouseMoveEvent(QMouseEvent* ev)
276
273
return ;
277
274
}
278
275
276
+ // move floating winwdow
279
277
if (d->isDraggingState (DraggingFloatingWidget))
280
278
{
281
- if (d->DockWidget ->features () & CDockWidget::DockWidgetMovable) {
282
- d->FloatingWidget ->moveFloating ();
283
- }
279
+ d->FloatingWidget ->moveFloating ();
284
280
QFrame::mouseMoveEvent (ev);
285
281
return ;
286
282
}
287
283
288
284
// move tab
289
285
if (d->isDraggingState (DraggingTab))
290
286
{
291
- if (d-> DockWidget -> features () & CDockWidget::DockWidgetMovable) {
292
- d-> moveTab (ev);
293
- }
287
+ // Moving the tab is always allowed because it does not mean moving the
288
+ // dock widget around
289
+ d-> moveTab (ev);
294
290
}
295
291
296
292
bool MouseInsideTitleArea = d->titleAreaGeometryContains (ev->globalPos ());
297
293
if (!MouseInsideTitleArea)
298
294
{
299
- if (d->DockWidget ->features () & CDockWidget::DockWidgetMovable) {
295
+ // Floating is only allowed for widgets that are movable
296
+ if (d->DockWidget ->features ().testFlag (CDockWidget::DockWidgetMovable))
297
+ {
300
298
d->startFloating ();
301
299
}
302
300
return ;
303
301
}
304
302
else if (d->DockArea ->count () > 1
305
303
&& (ev->pos () - d->DragStartMousePosition ).manhattanLength () >= QApplication::startDragDistance ()) // Wait a few pixels before start moving
306
304
{
307
- if (d->DockWidget ->features () & CDockWidget::DockWidgetMovable) {
308
- d->DragState = DraggingTab;
309
- }
305
+ d->DragState = DraggingTab;
310
306
return ;
311
307
}
312
308
0 commit comments