summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector@hecrj.dev>2024-09-11 00:10:04 +0200
committerLibravatar GitHub <noreply@github.com>2024-09-11 00:10:04 +0200
commit770176a4e19ef3db257daa311860b54a4ec14bc1 (patch)
tree651b1f649086fe1a0365d1c1d38a2b1dd3dcc49f
parent2a17afb7374deabcc7571688e58fcce01182d646 (diff)
parent190774258c3d2a32451b05738188973ae0393a42 (diff)
downloadiced-770176a4e19ef3db257daa311860b54a4ec14bc1.tar.gz
iced-770176a4e19ef3db257daa311860b54a4ec14bc1.tar.bz2
iced-770176a4e19ef3db257daa311860b54a4ec14bc1.zip
Merge pull request #2476 from alliby/master
Add `override_redirect` for X11 windows
Diffstat (limited to '')
-rw-r--r--core/src/window/settings/linux.rs6
-rw-r--r--winit/src/conversion.rs12
2 files changed, 14 insertions, 4 deletions
diff --git a/core/src/window/settings/linux.rs b/core/src/window/settings/linux.rs
index 009b9d9e..0a1e11cd 100644
--- a/core/src/window/settings/linux.rs
+++ b/core/src/window/settings/linux.rs
@@ -8,4 +8,10 @@ pub struct PlatformSpecific {
/// As a best practice, it is suggested to select an application id that match
/// the basename of the application’s .desktop file.
pub application_id: String,
+
+ /// Whether bypass the window manager mapping for x11 windows
+ ///
+ /// This flag is particularly useful for creating UI elements that need precise
+ /// positioning and immediate display without window manager interference.
+ pub override_redirect: bool,
}
diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs
index 585e2409..aaaca1a9 100644
--- a/winit/src/conversion.rs
+++ b/winit/src/conversion.rs
@@ -105,10 +105,14 @@ pub fn window_attributes(
{
use winit::platform::x11::WindowAttributesExtX11;
- attributes = attributes.with_name(
- &settings.platform_specific.application_id,
- &settings.platform_specific.application_id,
- );
+ attributes = attributes
+ .with_override_redirect(
+ settings.platform_specific.override_redirect,
+ )
+ .with_name(
+ &settings.platform_specific.application_id,
+ &settings.platform_specific.application_id,
+ );
}
#[cfg(feature = "wayland")]
{