- On Windows, remove the accelerator from
CustomMenuItem::title
returnd string. - On Windows and Linux, increase the resizing area for borderless windows based on scale factor.
- Implement
Window::set_cursor_position
for Linux.
- Do not fire
WindowEvent::Moved
whenis_maximized
is called on macOS.
- Fixes compilation when only the
tray
feature is enabled.
- Add
EventLoopWindowTargetExtMacOS::set_activation_policy_at_runtime
. - On Windows and Linux, disable resizing maximized borderless windows.
- Breaking change: Renamed the
ayatana
Cargo feature toayatana-tray
, now the default feature for tray on Linux, and added thegtk-tray
feature. - On Windows, Fix
Window::set_inner_size
setting a bigger size than requested.
- Fire
Event::LoopDestroyed
when the macOS dockQuit
menu item is clicked. - Added
Event::DecorationsClick
(Windows only). - Enhance the
MenuItem::About
menu on Linux. Breaking change: The About variant now uses an struct instead of a string. - Fixes the About menu on Linux not being shown.
- Properly fire
WindowEvent::Destroyed
on Linux when theWindow
is dropped. - Properly change the window to fullscreen state if the builder instructs it to use
Fullscreen::Borderless(None)
. - Fixes system tray item titles on Windows by forcing the string to be null-terminated.
- Properly fire
WindowEvent::Destroyed
on macOS when theWindow
is dropped. - Fix inconsist behaviour when setting menu on mac.
- Fix a deadlock on Windows when using
Window::set_visible(true)
in theEventLoop::run
closure. - On Windows, apply maximize state before minimize. Fixes
Window::set_minimized
not working when the window is maximized.
- Revert Global Shortcut fix on Linux. See #331 for more information.
- Fixes the
set_fullscreen
implementation on Linux when theFullscreen::Borderless
value is set toNone
.
- Fix global shortcut support on Linux (both x11 and wayland).
- Update to gtk 0.15
- Emit errors when parsing an invalid accelerator from a string.
- Add support for more accelerator keys:
,
-
.
=
;
/
\
'
`
[
]
Space
Tab
andF13
-F24
- Increased Borderless window resizing inset.
- Update to 2021 edition and msrv to 1.56
- Breaking: Rename the
Exit
variant ofControlFlow
toExitWithCode
, which holds a value to control the exit code after running. Add anExit
constant which aliases toExitWithCode(0)
instead to avoid major breakage. This shouldn't affect most existing programs. - Fixes the
MenuItem::Quit
behavior on Windows. - Add support for
SPACE
shortcut key on Windows. - Fix linux native menu items not working.
-
- Fix resizing undecorated window on Linux.
- Undecorated window can be resized using touch on Linux.
- 0dd71973 Merge next back to dev branch (#305) on 2022-02-05
- Fix focus events not firing on Linux
- Add monitor selection when fullscreen on Linux and close possible way to create VideoMode on Linux since gtk doesn't acutally have such feature.
- Add run_return trait on Linux
window.set_skip_taskbar()
on Linux will now also skip the pager (Alt+Tab), this matches the behavior on Windows.- Update tray dependency version.
- Fix deadlock when unregistering shortcut on Linux.
- Fire
WindowEvent::Resized
andWindowEvent::Moved
when window is min/maximized on Linux to align with Windows behavior. - Fix menubar missing on borderless window.
- Fix core-video-sys dependency.
- Fix linking to the
ColorSync
framework on macOS 10.7, and in newer Rust versions. - Allow more strings to parse to keycode, for example
,
is now parsed as a comma. -
- Update
raw-window-handle
to0.4
- Update
- Add
raw_window_handle()
implementation on linux. - 0dd71973 Merge next back to dev branch (#305) on 2022-02-05
- Fix click events missing whe tray has menu.
- Add macOS
show_application()
method - Add new_any_thread to Unix event loop.
- Replace all of the
winapi
crate references with thewindows
crate. The generated bindings are in thewebview2-com-sys
crate to share types with WRY later. - Implement
Clone
forEventLoopWindowTarget
. - Update the
windows
crate to 0.25.0, which comes with pre-built libraries. Tao no longer depends onwebview2-com-sys
to generate bindings shared with WRY. - Update the
windows
crate to 0.29.0. - Update the
windows
crate to 0.30.0. This version re-introduced a lot of new-types for things like HWND, LRESULT, WPARAM, LPARAM, etc. - Fix using
WindowBuilder::with_visible
andWindowBuilder::with_maximized
not behaving correctly. - On Windows, send correct position on system tray events.
- Add support for more accelerator keys:
,
-
.
=
;
/
\
'
`
[
]
Space
Tab
andF13
-F24
- Allow more strings to parse to keycode, for example
,
is now parsed as a comma. - Add macOS
show_application()
method
- Fix missing
Sync
trait on EventLoopProxy. This commit also introducescrossbeam-channel
crate which could also improve the performance.
- Remove feature flag that break doc builds
-
Move
global_shortcut
mod to the lib root. -
Bump gtk-rs to version 0.14. This also introduces a new feature
ayatana
for developers to use updatedlibayatana-appindicator
since the originallibappindicator
is no longer maintained. -
Remove Clipboard MenuItem on Linux since they only work on a few sepcific widget.
-
Fixes incorrect monitor size on Linux.
-
Fix
no key equivalent for Accelerator
forSpace
,Escape
,Minus
andEqual
keycode. -
Fix incorrect macOS Redo and Close Window shortcuts
-
- Support macOS tray icon template to adjust automatically based on taskbar color.
-
Images you mark as template images should consist of only black and clear colors. You can use the alpha channel in the image to adjust the opacity of black content, however.
-
577458c4 feat(tray): Support macOS icon template (#162) on 2021-07-29
-
macOS: Add
with_parent_window()
onWindowBuilder
. -
Removed
SystemTrayExtWindows::remove()
, the icon will be automatically removed whenSystemTray
is dropped. -
Add
MenuItem::SelectAll
implementation on windows. -
Add flags to support all other possible unix systems.
-
Fix confliction between
set_skip_taksbar(true)
andset_visible(false)
.
- On Windows, Allow resizing of
decorations: false
aka borderless window. - Do not close the window on
CloseRequested
event and let the user handle it, keeping compatibility with macOS and Windows behavior. - On Windows, fix Aero-Snap for
decorations: false
aka borderless window. - Implement
MonitorHandle
and related methods on Linux. - Add
is_menu_visilbe
getter onWindow
- On macOS, make sure the
set_focus
is triggered even if the window is not visible. - Fix
with_visible(bool)
inWindowBuilder
for macOS. - Mark enums as
#[non_exhaustive]
to prevent breaking changes on enum update. - Remove
with_focus
andfocus
field inWindowAttribute
. Useset_focus
instead in most cases. - Revert d344825 and move
set_skip_taskbar
back behind aWindowExtWindows
andWindowExtUnix
. SystemTray
exposeset_menu
to update the system tray menu once created.- Only show window behaviour when it is visible. winuser::ShowWindow will show the window and make with_visible(false) obsolete.
- Add
with_skip_taskbar
behindWindowBuilderExtWindows
andWindowBuilderExtUnix
.
- Add
window_id
toMenuEvent
. - Prevent duplicate
MenuEvent
on window menu in Windows.
- Drop the event callback before exiting on macOS.
- Add
clipboard
api exposingread_text
andwrite_text
. - Fix LoopDestroyed to really exit the application.
- 55e52a91 Fix LoopDestroy condition to really exit the app on 2021-06-01
- Implement all control flow variants
- 16e2ac06 Add change file on 2021-05-19
- Add checks before focusing window
- 1bd3b1c0 Add change file on 2021-05-22
- Add
is_visible
getter onWindow
- Breaking change: New keyboard API, including
Accelerator
andGlobalShortcut
.
WindowEvent::ModifiersChanged
is emitted when a new keyboard modifier is pressed. This is your responsibility to keep a local state. When the modifier is released, ModifiersState::empty()
is emitted.
WindowEvent::KeyboardInput
as been refactored and is exposing the event KeyEvent
.
All menus (ContextMenu
and MenuBar
), now includes Accelerator
support on Windows, macOS and Linux.
New modules available: keyboard
, accelerator
and platform::global_shortcut
.
Please refer to the docs and examples for more details.
System tray now expose set_icon()
to update the tray icon after initialization. The system_tray::SystemTrayBuilder
has been moved to the root of the package as a module and available on Windows, Linux and macOS, only when the tray
feature is enabled. Windows expose a remove()
function available with SystemTrayExtWindows
.
Menu builder has been rebuilt from scratch, exposing 2 different types, ContextMenu
and MenuBar
.
Please refer to the docs and examples for more details.
- 7546dbd1 refactor: menu & tray (#77) on 2021-06-03
- Fix match branch of run loop observer on iOS.
- 4e9fede6 Add change file on 2021-05-23
-
skip_taskbar
is renamed toset_skip_taskbar
.
set_skip_taskbar
is now available onWindow
and is no longer behind a PlatformExt.set_skip_taskbar
takes a boolean to either show or hide the window icon from the taskbar.- Add
with_skip_taskbar
toWindowBuilder
. - c0aac091 add
with_skip_taskbar
on 2021-05-29 - Add
skip_taskbar
implementation for windows
- Add
is_decorated
getter onWindow
- 8237e2f3 add changefile on 2021-05-13
- Add
is_resizable
getter onWindow
- c87f3bf9 add changefile on 2021-05-13
- Fix panic from borrowing in event loop on linux.
- 12d7ccbc Fix event loop on linux on 2021-05-17
- Implement
set_focus()
andwith_focus()
for macOS, Windows and Linux.- 448e4c17 Add change file on 2021-05-07
- Fix Priority import on Linux.
- 20128896 Add change file on 2021-05-17
- Refactor control flow implementation to wait.
- f5514f04 Add change file on 2021-05-15
- Split feature flags (menu and tray).
- 0035ac31 Add changefile on 2021-05-10
- Add dox flag to skip link lib when building doc.
- 565114c1 Add dox flag on 2021-05-09
- Update covector script to fix doc build.
- 25f291f2 Update covector script to fix doc build on 2021-05-09
- Update README and bump version.
- 324eca05 Update README.md on 2021-05-08
- Implement menu item varients for Linux.
- 0637570f Add change file on 2021-05-06
- Implement status bar on Linux.
- Implement basic menu builder for macOS, Windows and Linux.
- Add menu feature flag and rename status bar to system tray.
- 06d95ad0 Cargo fmt & clippy on 2021-05-08
- Implement basic menu builder for macOS, Windows and Linux.