Window handles placement not honoring GNOME desktop environment settings #102997

Closed
opened 2022-12-07 22:37:56 +01:00 by Markus · 7 comments

System Information
Operating system: Ubuntu 22.04
Graphics card: Radeon 6800XT

Blender Version
Broken: 3.4.0, branch: blender-v3.4-release, commit date: 2022-12-06 18:46, hash: a95bf1ac01, type: release
Worked: 3.3.1, branch: master, commit date: 2022-10-04 18:35, hash: b292cfe5a9, type: release

Short description of error
In Blender version 3.4, window handles (the buttons to minimize, maximize, close a window) of all Blender windows, main window and additional windows, are not rendered on the side configured in the desktop environment.

This is running under a vanilla Ubuntu GNOME session with GNOME 42.5. Display server is Wayland with 125% fractional scaling.

It appears that Blender 3.4 renders its own window frame and assumes window handles are always on the right even when the desktop environment is configured to place window handles on the left.

Exact steps for others to reproduce the error

  1. Log in to a vanilla GNOME desktop session under Ubuntu 22.04
  2. Open a terminal and change the GNOME settings so that window handles are on the left side with the following command:
`gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'`
  1. Assert window handles of the terminal session are now on the left hand side
  2. Run Blender 3.4
  3. Observe window handles of Blender are still rendered on the right hand side
**System Information** Operating system: Ubuntu 22.04 Graphics card: Radeon 6800XT **Blender Version** Broken: 3.4.0, branch: blender-v3.4-release, commit date: 2022-12-06 18:46, hash: a95bf1ac01be, type: release Worked: 3.3.1, branch: master, commit date: 2022-10-04 18:35, hash: b292cfe5a936, type: release **Short description of error** In Blender version 3.4, window handles (the buttons to minimize, maximize, close a window) of all Blender windows, main window and additional windows, are not rendered on the side configured in the desktop environment. This is running under a vanilla Ubuntu GNOME session with GNOME 42.5. Display server is Wayland with 125% fractional scaling. It appears that Blender 3.4 renders its own window frame and assumes window handles are always on the right even when the desktop environment is configured to place window handles on the left. **Exact steps for others to reproduce the error** 1. Log in to a vanilla GNOME desktop session under Ubuntu 22.04 2. Open a terminal and change the GNOME settings so that window handles are on the left side with the following command: ``` `gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'` ``` 3. Assert window handles of the terminal session are now on the left hand side 4. Run Blender 3.4 5. Observe window handles of Blender are still rendered on the right hand side
Author

Added subscriber: @rasterizer

Added subscriber: @rasterizer

Added subscriber: @ideasman42

Added subscriber: @ideasman42

Changed status from 'Needs Triage' to: 'Archived'

Changed status from 'Needs Triage' to: 'Archived'

Window decorations are handled by libdecor, recent support for GTK plugins looks like it's related but doesn't seem to handle button placement from what I can tell:
https://gitlab.gnome.org/jadahl/libdecor/-/merge_requests/43

This is closely related to #101176.

Closing, the issue can be reported to libdecor https://gitlab.gnome.org/jadahl/libdecor

Window decorations are handled by libdecor, recent support for GTK plugins looks like it's related but doesn't seem to handle button placement from what I can tell: https://gitlab.gnome.org/jadahl/libdecor/-/merge_requests/43 This is closely related to #101176. Closing, the issue can be reported to libdecor https://gitlab.gnome.org/jadahl/libdecor
Author

I reinstalled Ubuntu on my system because the window decorations of Blender 3.4 are correct in a vanilla installation of Ubuntu 22.04 in a VM.

Everything was fine and running with normal performance (i.e. I could no longer reproduce my report in #103000 ) until I installed the ffmpeg package. For whatever reason, this package depends on libdecor-0-0 and libdecor-0-plugin-1-cairo which then get installed as well. In a vanilla Ubuntu installation, these two are not installed.

Now, once libdecor is installed, the decorations of Blender windows are wrong as reported in #101176 and the performance issues I reported in #103000 appear.

@ideasman42 Is there any way I can prevent the official Blender build from using libdecor even when it is installed?

I reinstalled Ubuntu on my system because the window decorations of Blender 3.4 are correct in a vanilla installation of Ubuntu 22.04 in a VM. Everything was fine and running with normal performance (i.e. I could no longer reproduce my report in #103000 ) until I installed the `ffmpeg` package. For whatever reason, this package depends on `libdecor-0-0` and `libdecor-0-plugin-1-cairo` which then get installed as well. In a vanilla Ubuntu installation, these two are not installed. Now, once libdecor is installed, the decorations of Blender windows are wrong as reported in #101176 and the performance issues I reported in #103000 appear. @ideasman42 Is there any way I can prevent the official Blender build from using libdecor even when it is installed?

@rasterizer GNOME have chosen not to support server-side-decorations for Wayland native applications (X11 applications support them).

https://gitlab.gnome.org/GNOME/mutter/-/issues/217


In #102997#1461463, @rasterizer wrote:
@ideasman42 Is there any way I can prevent the official Blender build from using libdecor even when it is installed?

The only way is to switch back to X11, see: "Disabling Wayland" https://docs.blender.org/manual/en/latest/getting_started/installing/linux_windowing_environment.html

@rasterizer GNOME have chosen not to support server-side-decorations for Wayland native applications (X11 applications support them). https://gitlab.gnome.org/GNOME/mutter/-/issues/217 --- > In #102997#1461463, @rasterizer wrote: > @ideasman42 Is there any way I can prevent the official Blender build from using libdecor even when it is installed? The only way is to switch back to X11, see: "Disabling Wayland" https://docs.blender.org/manual/en/latest/getting_started/installing/linux_windowing_environment.html
Author

@ideasman42 Thanks. I switched back to the X11 path via environment variable.

While I get the point of using libdecor, the project appears understaffed and the code suffers from at least one severe bug (e.g. https:gitlab.freedesktop.org/libdecor/libdecor/-/issues/37 which in turn causes #103000) which in the end leads to a very bad Blender experience that requiresa lot// of digging to properly attribute to libdecor instead of Blender. I guess, in the end I would have hoped for Blender to be based on more stable dependencies for such a fundamental function like window handling.

@ideasman42 Thanks. I switched back to the X11 path via environment variable. While I get the point of using libdecor, the project appears understaffed and the code suffers from at least one severe bug (e.g. https:*gitlab.freedesktop.org/libdecor/libdecor/-/issues/37 which in turn causes #103000) which in the end leads to a very bad Blender experience that requires*a lot// of digging to properly attribute to libdecor instead of Blender. I guess, in the end I would have hoped for Blender to be based on more stable dependencies for such a fundamental function like window handling.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#102997
No description provided.