Skip to content

Enhancement: Enable adaptive tiling behavior across all move modes #426

@gooselabz

Description

@gooselabz

Current Behavior

Adaptive Tiling mode and Favorite Layout mode operate independently with strict boundaries:

  • When default mode is Favorite Layout: Cannot drop a window to half of a favorite layout tile (adaptive splitting is unavailable)
  • When default mode is Adaptive: Cannot drop a window into empty favorite tile areas - adaptive mode falls back to edge tiling when no windows are tiled

Proposed Enhancement

Enable adaptive tiling behavior to work regardless of tile state (full or empty), allowing seamless interaction between modes:

  • When default mode is Favorite Layout: Allow dropping windows to half of favorite layout tiles by hovering edges (adaptive behavior)
  • When default mode is Adaptive: Allow dropping windows into empty favorite tile spaces using the free screen rects

Benefits

  1. More intuitive workflow: Users don't need to switch modes to access adaptive splitting on favorite layouts
  2. Consistent behavior: Adaptive tiling works everywhere, not just on already-tiled windows
  3. Backward compatible: Doesn't break existing usage patterns - only adds functionality
  4. Better UX: Reduces mode-switching friction for advanced tiling scenarios

Implementation Details

The changes modify moveHandler.js:

  1. _adaptiveTilingPreview(): Remove early return when no windows are tiled; use _freeScreenRects for empty spaces
  2. _favoriteLayoutTilingPreview(): Add adaptive splitting logic (25% edge zones) to allow half-tiling within favorite rects

Testing

Tested on GNOME 48 with both default move modes. The enhancement works as expected without breaking existing functionality.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementImprove this extensions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions