Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix rendering of resized XWayland applications with client side decorations #3587

Merged

Conversation

tarek-y-ismail
Copy link
Contributor

@tarek-y-ismail tarek-y-ismail commented Sep 5, 2024

Previously, resizing didn't work at all unless you did a vertical resize followed by a horizontal one (or vice versa). Now, resizes work but only if you shrink the application. Any resizing outside application bounds stops after a couple of pixels.

@tarek-y-ismail tarek-y-ismail self-assigned this Sep 5, 2024
@tarek-y-ismail tarek-y-ismail requested a review from a team as a code owner September 5, 2024 14:26
@Saviq Saviq changed the title Half fix resizing XWayland applications with client side decorations Fix rendering of resized XWayland applications with client side decorations Sep 10, 2024
@AlanGriffiths
Copy link
Collaborator

Now, resizes work but only if you shrink the application. Any resizing outside application bounds stops after a couple of pixels

I can confirm this.

The fact this "works" is curious: It implies that some resizing code depends on both new width and new height being supplied. (Not just the dimension(s) that changed.) This might well be the simplest way to accommodate that.

The reason that moving the cursor outside the window stops the resizing is probably that target window loses focus. (With the SSD & wayland windows generally there's "start resize" message passed to the window manager (that initiates a "resize gesture".)

@tarek-y-ismail
Copy link
Contributor Author

The reason that moving the cursor outside the window stops the resizing is probably that target window loses focus

This will be fixed in another PR. I already had an attempt at fixing it, thinking that the issue was related to input event handling. I'll have another go at it soon™ going for the focus angle.

Copy link
Collaborator

@AlanGriffiths AlanGriffiths left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily the right thing, but an improvement

@AlanGriffiths AlanGriffiths added this pull request to the merge queue Nov 8, 2024
github-merge-queue bot pushed a commit that referenced this pull request Nov 8, 2024
…ations (#3587)

Previously, resizing didn't work at all unless you did a vertical resize
followed by a horizontal one (or vice versa). Now, resizes work but only
if you shrink the application. Any resizing outside application bounds
stops after a couple of pixels.
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 8, 2024
@tarek-y-ismail tarek-y-ismail added this pull request to the merge queue Nov 8, 2024
Merged via the queue into main with commit d466c0e Nov 8, 2024
37 checks passed
@tarek-y-ismail tarek-y-ismail deleted the fix-xwayland-client-side-decorations-broken-resize branch November 8, 2024 11:49
@AlanGriffiths AlanGriffiths mentioned this pull request Nov 28, 2024
github-merge-queue bot pushed a commit that referenced this pull request Dec 3, 2024
# rc1

  * New upstream release 2.19.0

    - ABI summary:
      . miral ABI unchanged at 7
      . mircommon ABI unchanged at 10
      . mircore ABI unchanged at 2
      . miroil ABI unchanged at 5
      . mirplatform ABI bumped to 30
      . mirserver ABI bumped to 61
      . mirwayland ABI unchanged at 5
      . mirplatformgraphics ABI unchanged at 22
      . mirinputplatform ABI unchanged at 9

    - Enhancements:
. [x11-kiosk] defer fullscreening of applications until they are placed
once (#3670)
. [x11-kiosk] Ensure windows are placed and repainted on X11 "CONFIGURE"
(#3619)
      . [x11-kiosk] change enable-x11 default to true
      . Initial atomic-kms platform
      . [Wayland] Add support for xdg_activation_v1 (#3639)
      . Do not default window size (especially to weird values) (#3623)
. DesktopFileManager::resolve_app_id no longer returns an app id with a
.desktop file suffix (Fixes #3608)
. [Configuration] Split options into global and per-module configuration
(#3590)

    - Bugs fixed:
      . Ensure we always send an initial output enter (#3680)
      . Fix stuck-frame-after-mode-switch bug (#3673)
. Fix rendering of resized XWayland applications with client side
decorations (#3587)
      . Aspect ratios shouldn't contain zero (Fixes: #3663)
      . Use PkgConfig to find development headers (#3661)
. Fix the inotify event handling in
ReloadingYamlFileDisplayConfig::auto_reload() (#3636)
. The `miral::ConfigFile` "Watcher" can be destroyed before the main
loop (Fixes: #3612)
      . [xwayland] Don't allow clients to place X11 windows (#3622)
. Surfaces track scale changes on outputs they appear on. (Fixes: #3552)
      . New attached windows need to be placed (#3676)

----
[Test
Plan](https://canonical-mir.readthedocs-hosted.com/latest/how-to/how-to-test-mir-for-a-release/)

### Platforms
|| 24.04 | 24.10 |
|-|-|-|
| gbm-kms |@AlanGriffiths|@AlanGriffiths|
| atomic-kms |@AlanGriffiths|@AlanGriffiths|
| eglstream-kms |@tarek-y-ismail||
| eglstream-kms + gbm-kms hybrid |@tarek-y-ismail||
| x11 |@AlanGriffiths|@AlanGriffiths|
| wayland |@AlanGriffiths|@AlanGriffiths|
| virtual |@AlanGriffiths|@AlanGriffiths|

### Console Providers
|| 24.04 | 24.10 |
|-|-|-|
| vt |@AlanGriffiths|@AlanGriffiths|
| logind |@AlanGriffiths|@AlanGriffiths|
| minimal |@AlanGriffiths||

### Window Manager Examples
|| 24.04 | 24.10 |
|-|-|-|
| --window-manager=floating |@AlanGriffiths|@AlanGriffiths|
| --window-manager=tiling |@AlanGriffiths||
| -kiosk |@AlanGriffiths||
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants