Skip to content

Commit 8b7ac1a

Browse files
authored
feat: double-click tauri-drag-region to maximize, closes #1839 (#2106)
1 parent 2a6cfbf commit 8b7ac1a

File tree

3 files changed

+32
-8
lines changed

3 files changed

+32
-8
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
"tauri": patch
3+
---
4+
Double clicking a `data-tauri-drag-region` element will toggle the window maximized state.

core/tauri/scripts/core.js

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -191,14 +191,29 @@ if (!String.prototype.startsWith) {
191191

192192
// drag region
193193
document.addEventListener('mousedown', (e) => {
194-
// start dragging if the element has a `tauri-drag-region` data attribute
195-
if (e.target.hasAttribute('data-tauri-drag-region') && e.buttons === 1) {
196-
window.__TAURI__._invoke('tauri', {
197-
__tauriModule: "Window",
198-
message: {
199-
cmd: "startDragging",
200-
}
201-
}, _KEY_VALUE_)
194+
if (e.target.hasAttribute("data-tauri-drag-region") && e.buttons === 1) {
195+
// start dragging if the element has a `tauri-drag-region` data attribute and maximize on double-clicking it
196+
e.detail === 2
197+
? window.__TAURI__._invoke(
198+
"tauri",
199+
{
200+
__tauriModule: "Window",
201+
message: {
202+
cmd: "toggleMaximize",
203+
},
204+
},
205+
_KEY_VALUE_
206+
)
207+
: window.__TAURI__._invoke(
208+
"tauri",
209+
{
210+
__tauriModule: "Window",
211+
message: {
212+
cmd: "startDragging",
213+
},
214+
},
215+
_KEY_VALUE_
216+
);
202217
}
203218
})
204219

core/tauri/src/endpoints/window.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ pub enum Cmd {
6262
SetTitle(String),
6363
Maximize,
6464
Unmaximize,
65+
ToggleMaximize,
6566
Minimize,
6667
Unminimize,
6768
Show,
@@ -152,6 +153,10 @@ impl Cmd {
152153
Self::SetTitle(title) => window.set_title(&title)?,
153154
Self::Maximize => window.maximize()?,
154155
Self::Unmaximize => window.unmaximize()?,
156+
Self::ToggleMaximize => match window.is_maximized()? {
157+
true => window.unmaximize()?,
158+
false => window.maximize()?,
159+
},
155160
Self::Minimize => window.minimize()?,
156161
Self::Unminimize => window.unminimize()?,
157162
Self::Show => window.show()?,

0 commit comments

Comments
 (0)