113 KiB
Changelog
[0.32.6]
9d1da74b(#1080 by @amrbashir) Fix crash on Windows because of missing functions on older Windows systems, regression in 0.32
[0.32.5]
08c9c4c6(#1078 by @amrbashir) FixWindow::set_focusregression on macOS
[0.32.4]
4679d683(#1056 by @dgerhardt) On Windows 11, fix incorrect window positioning and sizing onWM_DPICHANGED.
[0.32.3]
c91dcde7(#1075 by @Legend-Master) On Windows, fixWindow::inner_sizealways returns the restore size instead of the current size for maximized undecorated window
[0.32.2]
b296cf53(#1074 by @amrbashir) On Windows, addWindowExtWindows::has_undecorated_shadowto check if window has shadows for undecorated window or not.f4ec11d7(#1070 by @Legend-Master) Fix undecorated top left and right border resizing direction on Windows
[0.32.1]
1be722db(#1071 by @lucasfernog) Fix content protection on macOS crashing the app.
[0.32.0]
94afde98(#1040 by @Teddytrombone) Add missing function keys F13-F24 to linux implementation36645136(#1050 by @FabianLars) Raised MSRV to 1.748c8f0e8b(#1049 by @madsmtm) Useobjc2.6fda4984(#1048 by @madsmtm) macOS: RemoveFrom<ActivationPolicy>implementation forcocoa::appkit::NSApplicationActivationPolicy.28f728c7(#1068 by @Legend-Master) Updatewindowsto 0.605cc92980(#1052 by @amrbashir) On Windows, fix regressionWindow::inner_sizereporting larger size than what's visible for undecorated window.5cc92980(#1052 by @amrbashir) On Windows, undecorated window with shadows, now have native resize handles outside of the window client area.
[0.31.1]
83e35e96(#1036 by @FabioGNR) Callgtk::initwhen creating the eventloop to fix crashes with some gtk APIs.bb537fe9(#1039 by @amrbashir) On Windows, fix regression that causedWindow::set_sizeto have no effect at all for undecorated window with shadows.
[0.31.0]
5d6d7da0(#1017 by @amrbashir) On Windows, fix regression caused undecorated window with shadows to be slightly larger on creation.2e6cf1a4(#1022 by @Jnschrber) On Windows, fix crash on older windows versions that doesn't support dark mode.6b49f55a(#1016 by @Legend-Master) Expose raw gdk monitor throughMonitorHandleExtUnix::gdk_monitor720bd93f(#1018 by @amrbashir) On Windows, fix regression in initial window position when using logical positions.73741a75(#1008 by @amrbashir) Removeinstantdependency, changedStartCause::ResumeTimeReached,StartCause::WaitCancelledandControlFlow::WaitUntilto usestd::time::Instantinstead.fa9aaa60(#1019 by @amrbashir) On Windows, fix fullscreen for undecorated window have white borders.
[0.30.7]
97382238(#1007 by @amrbashir) On Windows, fixWindow::set_inner_sizeregression not handling borders correctly for undecorated window with shadows.97382238(#1007 by @amrbashir) On Windows, fixWindow::inner_sizeregression returning incorrect size for window with decorations.
[0.30.6]
1f72c246(#1002 by @ahqsoftwares) AddWindowExtUnix::set_badge_countfor Linux,WindowExtIos::set_badge_countfor iOS,WindowExtMacos::set_badge_labelfor Macos,MacdowExtWindows::set_overlay_iconfor Windows946f8049(#1005 by @lucasfernog) Fix memory leak on Android.aff33fbb(#1001 by @amrbashir) On Linux,Window::outer_position,Window::outer_sizeandWindowEvent::Movedto include/account for borders and titlebar.06d109fe(#993 by @amrbashir) On Windows, fixWindow::inner_sizereturns slightly larger than what's visible for undecorated windows but have shadows.edfbd364(#992 by @amrbashir) On Windows, fixWindowBuilder::with_positionwith a position on a non-primary monitor resulting in an incorrectly positioned window.
[0.30.5]
532b5ab0(#1000 by @amrbashir) Fixandroid_bindingmacro incorrect expansion.67e44e4c(#991 by @Legend-Master) Fix setting theme toNonecrashes the app on macOS
[0.30.4]
b404cde1(#995 by @amrbashir) AddWindowAttributes::background_color,WindowBuilder::with_background_color, andWindow::set_background_colorAPIs to set and change window background color.
[0.30.3]
4dcd2312(#979 by @Zamoca42) On Linux Wayland, changed the event handling for maximizing to process events sequentially to avoid "Error 71(Protocol error): dispatching to Wayland display".2ee007a5(#981 by @thep0y) AddWindow::is_always_on_topmethod to check if a window is always on top on macOS, Linux and Windows.4dcd2312(#979 by @Zamoca42) On Linux Wayland, fixed an issue where the window was not moving when dragging the header bar area.4dcd2312(#979 by @Zamoca42) On Linux Wayland, fixed an issue where the window was not resizing when dragging the window borders.4dcd2312(#979 by @Zamoca42) On Linux Wayland, added buttons for maximize and minimize in the title bar.2fffdc9d(#983 by @Legend-Master) Fix blinking title bar when changing system settings on Windows
[0.30.2]
016e122c(#978 by @Legend-Master) Fix changing the theme activates the window on Windows
[0.30.1]
ad652e50(#969 by @CampioneDev) On iOS, implementapplication:openURL:options:to handle custom URL schemes.1a085ade(#937 by @Legend-Master) Add a functionWindow::set_themeandEventLoopWindowTarget::set_themto set theme after window or event loop creation.
[0.30.0]
222d5786(#971 by @amrbashir) On Windows, fixWindow::monitor_from_pointandEventLoopTargetWindow::monitor_from_pointreturning invalid monitor handle.e47d4c4a(#967 by @amrbashir) On Linux, removed internal check for current desktop environment before applyingWindow::set_progress_barAPI. This should allowWindow::set_progress_barto work on KDE Plasma and similar environments that supportlibunityAPIs.9b5aa60b(#970 by @amrbashir) ChangedWindowExtWindows::set_skip_taskbarandWindowExtUnix::set_skip_taskbarto return a result instead of panicing internally.
[0.29.1]
4cd53415(#964 by @lucasfernog) Allow Android domain names to include_1as escaped_characters - required because_is the separator for domain parts.
[0.29.0]
e67cf1b2(#941 by @Sanae6) Prevent duplicate mouse press, release, and motion events from firing on Linux (fixes #939)b7dab732(#947 by @muwoo) FixWindow::request_user_attentionnot taking effect after minimizing the window by clicking the taskbar iconf54cc11e(#938 by @andrewbaxter) AddEventLoopWindowTargetExtUnix::gtk_appgetter.- `` Return a new
BadIcon::DimensionsZeroerror variant inIcon::from_rgbaif one of the passed icon dimensions is zero. 80e10084(#954 by @amrbashir) Return a newBadIcon::DimensionsZeroerror variant inIcon::from_rgbaif one of the passed icon dimensions is zero.80e10084(#954 by @amrbashir) Return a newBadIcon::DimensionsMultiplyOverflowerror variant inIcon::from_rgbaif dimensions multiplication overflowed.f5756196(#956 by @MarijnS95) Breaking change: Upgradendkcrate to0.9andndk-syscrate to0.6. Types from thendkcrate are used in public API surface. Breaking change: ChangeNativeKeyCode::Android(u32)type to usei32, which is the native type used by all Android API. Breaking change: Thesetupfunction passed toandroid_binding!()must now take a&ThreadLooperinstead of&ForeignLooper, matching thewrychange in https://github.com/tauri-apps/wry/pull/1296.f54cc11e(#938 by @andrewbaxter) AddWindowExtUnix::new_from_gtk_window.
[0.28.1]
7e8f75e9(#926 by @pewsheen) On macOS, addset_fullsize_content_viewandset_titlebar_transparenttoWindowto set the title bar style.3bbddc64(#931 by @muwoo) Breaking Change: On Windows,UserAttentionType::Informationalwill flash the taskbar icon 4 times only and not until the app recieves focus.29bee151(#935 by @renovate) Updatewindowscrate to0.57ab792dbd(#928 by @amrbashir) On Windows, always allow dark theme for app and window throughAllowDarkModeForAppandAllowDarkModeForWindow, which fixes an issue when callingIsDarkModeAllowedForWindow()
[0.28.0]
cd38f237(#912) AddEventLoopBuilderExtUnix::with_app_idon Linux to allow setting a unique app id for the underlying gtk application.2d6ad2de(#923) Fix unwanted deviation when dragging window around monitor boundaries on macOS.f06843be(#517) Addevent::Reopenfor handle click on dock icon on macOS.
[0.27.1]
9ef1379f(#901) On macOS, fix an issue where the set minimize maximize and close buttons would interfere with each other.5af059b1(#909) Updatewindowscrate to0.56
[0.27.0]
-
c2357732(#896) Replaceddpimodule with a re-export of thedpicrate which has a few breaking changes:- Replaced
LogicalPixelwithLogicalUnit - Replaced
PhysicalPixelwithPhysicalUnit - Removed
Size::width,Size::height,Position::x,Position::yandPixelUnit::value.
- Replaced
[0.26.2]
[0.26.1]
bug
[0.26.0]
2af91313(#880) Updated the minimum supported Rust version to 1.70.90ad07b3(#878) Breaking change: Removedwindow::hit_testfunction.2af91313(#880) Progress bar on Linux no longer relies on zbus. ChangedProgressBarState's fieldunity_uritodesktop_filename.90ad07b3(#878) On Windows and Linux, disable resizing undecorated windows when in fullscreen.90ad07b3(#878) On Windows, fix undecorated window resizing.89ce9d26(#874) On Windows, applyScaleFactorChangedif new size is different than what OS reported. This fixes an issue when moving the window to another monitor and immediately maximizing it, resulting in a maximized window (i.e haveWS_MAXIMIZEwindow style) but doesn't cover the monitor work area.
[0.25.0]
ae4b693d(#864) On Windows, RemoveWS_CAPTIONandWS_EX_WINDOWEDGEwindow styles when creating a child window.e10f6a68(#862) Breaking Change: ChangedWindowBuilderExtUnix::with_transient_forsignature to take&impl gtk::glib::IsA<gtk::Window>instead ofgtk::ApplicationWindowwhich covers more gtk window types and matches the underlying API call signature.
[0.24.1]
25a8836b(#860) Fix the app crash on restart due to Android context was not released. Release the Android context when the app is destroyed to avoid assertion failure.5eb2124e(#852) Enable macOS secure state restoration on OS versions that support it. This avoids 'WARNING: Secure coding is not enabled for restorable state!' on macOS Sonoma.f0bf850f(#859) DeriveDebug, Copy, Clone, PartialEq, Eq, HashforResizeDirection.29b01bff(#849) On Windows, removeSetWindowThemecall withDarkMode_Explorertheme which fixes a glitch downstream inmudacrate when manually drawing the menu bar.60bbcac1(#858) On Windows, fix when theShow window contents while draggingsetting is turned off in Windows, there is a window size issue when dragging between multi-monitors with different scaling.68803e67(#854) On Windows, fix consecutive calls towindow.set_fullscreen(Some(Fullscreen::Borderless(None)))resulting in losing previous window state when eventually exiting fullscreen usingwindow.set_fullscreen(None).
[0.24.0]
-
43c94f0b(#830) This patch contains a couple of changes to how the anroid macros:- Changed
android_bindingmacro 4th argument signature, which is a setup function that is called once when the event loop is first created, fromunsafe fn(JNIEnv, &ForeignLooper, GlobalRef)tounsafe fn(&str, JNIEnv, &ForeignLooper, GlobalRef). - Moved
android_fn!andgenerate_package_namemacro from crate rootplatform::android::prelude
- Changed
-
f497b5dc(#829) AddWindow::drag_resize_windowandResizeDirectionenum to initialize window resizing. Supported on Windows and Linux only. -
28b53f80(#705) FixWindow::primary_monitorpanicking on Linux when there is no primary monitor, e.g. with Wayland. -
e33104c2(#831) On macOS, fixWindowEvent::Destroyedmay fire twice. -
853101be(#821) This release includes an update toraw-window-handlecrate to0.6but will also provide a feature flags to select whichraw-window-handleto use:rwh_06(default):raw-window-handle@0.6rwh_05:raw-window-handle@0.5`rwh_04:raw-window-handle@0.4`
-
fce9d260(#844) On Windows, fixWindowBuilder::with_themehas no effect when forcing light theme on a dark mode system. -
c0278d83(#839) On Windows, removeWS_CLIPCHILDRENfrom window style
[0.23.0]
cf22c902(#85) Breaking change: Removed clipboard implementation. Usearboardcrate instead.081ba16a(#800) FixWindow::thememay return a theme different from the actual window's theme on Linux.32ce759e(#801) Updated to gtk 0.18 and Bump MSRV to 1.70.0.f569bbab(#815) FixWindow::current_monitorsometimes panicking on Linux when the window is invisible.7e854cb1(#817) On Windows, fix incorrect delta reported forDeviceEvent::MouseWheelevent.7e854cb1(#817) On Windows, fixWindow::set_progress_barincorrect states.7e854cb1(#817) Updatewindowsandwindows-implementcrate to0.51
[0.22.3]
[0.22.2]
[0.22.1]
6df56c2d(#751) On Windows, apply dark mode app-wide to some controls like context menus.6df56c2d(#751) On Windows, addEventLoopBuilderExtWindows::with_themeto control the app-wide theme.
[0.22.0]
-
d0b20c94(#778) This release contains a number of breaking changes that aimed at removing menus, system-tray and global-shortcuts features which have been moved to different crates,muda,tray-iconandglobal-hotkeyand here is a summary of the changes:- Removed
traycrago feature flag. - Removed
accelerator,menu,system_trayandglobal_shortcutmodules and all associated types. - Removed
Event::MenuEvent,Event::TrayEvent,Event::GlobalShortcutEvent,TrayEventandRectangletypes. - Added
EventLoopBuildertype. - Removed
EventLoop::with_user_event, instead useEventLoopBuilder::<T>::with_user_event().build(). - Removed
EventLoopExtWindows,EventLoopExtMacOSandEventLoopExtUnix, instead useEventLoopBuilderExtWindows,EventLoopBuilderExtMacOSandEventLoopBuilderExtUnix. - Changed
WindowExtWindows::hinstance,WindowExtWindows::hwndandMonitorHandleExtWindow::hmonitorto returnisizeinstead of*const c_void
- Removed
[0.21.1]
9a320882(#761) On Android, use a lockfree queue (crossbeam channel) to prevent deadlocks inside send_event.b31cb692(#772) On macOS, fixWindowExtMacOS::ns_viewreturning an invalid pointer if the view was replaced by a call tosetContentViewlater on.4d0e1862(#762) AddWindowExtWindows::set_rtlandWindowBuilderExtWindows::with_rtlto set right-to-left layout on Windows.75eb0c1e(#769) AddWindowBuilderExtWindows::with_window_classnameto set the name of the window class created/used to create windows.494e4585(#775) Ensure the macOS app delegate is defined before accessing it.
[0.21.0]
81329013(#743) On macOS, fix the unexpected shifting of the window when dragging after closing the share dialog.baa02977(#418) Added APIs for setting progress bars for the application icon on Linux (Unity only) and macOS, along with progress indicator for specific window on Windows.8f361f0c(#752) Handle universal links on iOS and sendEvent::Opened { urls }.bb3c53d1(#764) On macOS, fixSystemTrayEventnot emitted after callingset_menu.5af3da4a(#746) On macOS, forceNativeImageheight to be18to have consistent size for all icons and match custom icons.093d8fbc(#422) ImplementEvent::Openedon macOS for file association and deeplink support.e9875fe5(#755) On Windows, fix leak oftao::system_tray::Iconwhen callingtao::system_tray::SystemTray::set_iconand leak ofStringwhen callingtao::system_tray::SystemTray::set_tooltip.50e69d71(#749) On Windows, fix disablingresizablealso disabling maximize button and messing upWindow::set_maximized.
[0.20.0]
c6082173(#731) Fix build error on target i686-pc-windows-msvc90ce80cd(#732) Enable shadows by default for undecorated window on Windows.
[0.19.1]
- On Windows, fix auto-hide taskbar can't be shown when maximizing undecorated window.
- On Linux, fix
ShortcutManager::unregister_allmakingShortcutManager::registersucceed but no events are triggered. - On macOS, fix window frozed when starting with fullscreen.
[0.19.0]
- Breaking change: All ow specifying the android activity in
android_bindingmacro, instead of hard-codedTauriActivity. - Fix set_focus not working on Windows in some situations like interactive notifications.
[0.18.3]
- On macOS, fix wry window will crash if unfocused.
[0.18.2]
- fix not get actual ns_view when it's replace by setContentView
- Fix
Window::cursor_positionandEventLoopWindowTarget::cursor_positionscale on Linux and macOS. - On macOS, Fix
cursor_positionreturn incorrect position. - Fix arrow cursor icon on Linux
- e9eba855 chore: rename change file on 2023-02-22
- Attempt to get primary monitor on linux will now return None rather than panicking if monitor not found.
- On macOS, Remove linking to
ColorSync
[0.18.1]
- Retain NSMenu reference instead of autoreleasing it.
[0.18.0]
- Fix undecorated window shadow enabled by default on Windows.
- On Linux, Add wayland raw handle methods. (#685)
- Update
windows-rsto0.44which bumps the MSRV of this crate on Windows to1.64.
[0.17.0]
- Bump gtk version: 0.15 -> 0.16
- Add
Window::cursor_positionandEventLoopWindowTarget::cursor_positionto get the current mouse position. - On Linux, spawn device event thread only once instead of a new thread on each iteration of the event loop.
- On Windows, fix
Window::set_minimized(false)not working when the window was minimized usingWin + Dhotkey.
[0.16.0]
- Yanked
0.15.9and publish a new minor as0.15.9included breaking changes by depending ontao-macros.- 5397b8f6 chore: bump minor on 2023-01-11
[0.15.9]
- On Linux, Fix mnemonics for submenus.
- On iOS, add Sync trait to
EventLoopProxywhenThas Send trait. - On Linux, fix setting min/max size clears the other.
- Fix resize event emits before fullscreen actually exit.
- Add
WindowBuilder::with_visible_on_all_workspacesandWindow::set_visible_on_all_workspaces. - Add
WindowExtWindows::set_undecorated_shadowandWindowBuilderExtWindows::with_undecorated_shadowto draw the drop shadow behind a borderless window.
[0.15.8]
- Add
with_cursor_movedUnix extension trait method.
[0.15.7]
- On Linux, fix menu item mnemonics.
- On Windows, retain
WS_MAXIMIZEwindow style when unminimizing a maximized window. - On macOS, strip menu mnemonics for consistency with other platforms.
[0.15.6]
- Revert
nextRespondercall because this will bring key beep sound regression. We'll call the key equivalent in wry instead.
[0.15.5]
- Change
WebviewAttributes::focuseddefault totrue.- ece3e8f6 fix: default
focusedto true on 2022-11-20
- ece3e8f6 fix: default
- On Linux, wake the main context in
EventLoopProxy::send_event().
[0.15.4]
- On macOS, call next responder in view's keyDown and doCommandbySelector.
[0.15.3]
- On macOS, remove
doCommandBySelectorin view since this will block the key event to responder chain.
[0.15.2]
- On Windows, fix compliation regression introduced in 0.15.1 when
trayfeature is active
[0.15.1]
- On Windows, fix window always visible initially.
- ae06c3e2 fix(Windows): fix windows always visible initially on 2022-11-08
[0.15.0]
- Add support for parsing
ArrowUp,ArrowDown,ArrowLeftandArrowRightin a str as valid key. Previously onlyUp,Down,LeftandRightworked. - Add
WindowBuilder::with_content_protection. - On macOS, fix default cursor always being arrow cursor
- On Windows, fixed focus event emission on minimize.
- Update jni to 0.20.
- On Linux, add DeviceEvent::Key.
- fix(linux): Improve event loop process on Linux a bit. This changes only a few check and should make dragging windows on egui smoother.
- Fix inverted delta in
WindowEvent::MouseWheelon Linux - Add
EventLoopExtMacOS::set_activate_ignoring_other_appson macOS. - Add
WindowExtMacOS::set_allows_automatic_window_tabbing,WindowExtMacOS::allows_automatic_window_tabbing, andWindowBuilderExtMacOS::with_automatic_window_tabbingon macOS. - Support cross compiling for macos from a non macos host.
- Add
WindowExtMacOS::is_doucmented_editedandWindowExtMacOS::set_is_doucmented_editedon macOS. - On macOS, scale menu item icons height to 18.
- Add support for the "+" key in menu accelerators using
KeyCode::Plusor the "Plus" keyword. See documentation forKeyCode::Plusfor notes on platform-dependent behaviour. - Add the application name to the "Quit" and "Hide" native menu items on macOS.
- Fix the native Services menu on macOS.
- Scale the tray icon according to its aspect ratio on macOS.
- Add builder methods on Linux to control the drawing behavior of the window.
WindowBuilderExtUnix::with_double_buffered,WindowBuilderExtUnix::with_rgba_visualandWindowBuilderExtUnix::with_app_paintable - On Windows, show Window menu (also known as the System menu or Control menu) in response to Alt+Space.
- On Windows, fix icons specified on
WindowBuildernot taking effect for windows created after the firt one. - Added tabbing identifier APIs on macOS.
- On Linux, reduce channel redirect. Now sending user events and redraw request will send to event loops directly.
- Add
WindowBuilder::with_focusedto specify whether to initially focus the window or not. - Add APIs for disabling the individual window controls on desktop platforms,
Window::set_closable,Window::is_closable,WindowBuilder::with_closable,Window::set_minimizable,Window::is_minimizable,WindowBuilder::with_minimizable,Window::set_maximizable,Window::is_maximizable,WindowBuilder::with_maximizable. See the docs for platform-specific notes, especially regarding Linux. - Add
Window::titleto get the current window title. - Default to MOD_NOREPEAT for registering global shortcuts / hotkeys via win32 RegisterHotKey on Windows. This prevents shortcuts from repeatedly activating when the accelerator is pressed and held down, and ensures that we maintain platform-agnostic consistency.
[0.14.0]
- Implement "always on bottom" as contrary to "always on top".
- Fix calling android functions when package name contained escaped underscore.
- Add
Window::set_content_protectionfor macOS and Windows. -
- Add DeviceEventFilter on Windows.
- Breaking: On Windows, device events are now ignored for unfocused windows by default, use
EventLoopWindowTarget::set_device_event_filterto set the filter level. - 5bbd4f8f Add DeviceEventFilter on Windows (#465) on 2022-08-17
- Fix system tray creation after event loop starts on macOS.
- Fix resize doesn't work when calling with resizable. Also add platform specific note to
set_resizable. On Linux, most size methods like maximized are async and do not work well with calling sequentailly. For setting inner or outer size, you don't need to set resizable to true before it. It can resize no matter what. But if you insist to do so, it has a100, 100minimum limitation somehow. For maximizing, it requires resizable is true. If you really want to set resizable to false after it. You might need a mechanism to check the window is really maximized. - Add
Window::is_focused. - On Linux, fix global shortcut are never triggered when a Lock key is ON, eg. NumLock, CapsLock.
- Disables the global shortcut manager on wayland as its X11-specific.
- Added
SystemTrayExtMacOS::set_titletoSystemTrayandSystemTrayBuilderExtMacOS::with_titleto set the tray icon title on MacOS - Update
windows-rsto the latest 0.39.0 release.
The alloc feature has been removed, which means it no longer accepts Rust String or &str parameters and implicitly converts them to PWSTR or PSTR.
For string literals, that feature was replaced with s!() and w!() macros which null terminate the string literal at compile time and convert to UTF-16 if necessary. The s!() macro is fine, however the w!() macro uses HSTRING types from WinRT for maximum compatibility with WinRT types. Since Tao only uses Win32 APIs, this change relies on util::encode_wide to convert to a Vec<u16> instead.
[0.13.3]
- Implement custom protocol on Android.
- Changed
WebViewMessage::Evalto evaluate an specific script. - Fix webview initialization scripts implementation on Android.
- Removed the webview logic from the Android glue.
- Implement
SystemTray::set_tooltipandSystemTrayBuilder::with_tooltipon Windows.
[0.13.2]
- Remove the NSStatusItem from the menu bar when the
SystemTrayinstance is dropped. - Fixes
Window::is_decoratedalways returningtrueon macOS. - Fix theme feature to support Darker theme on Linux.
- Add
Window::is_minimized(). - Implement
SystemTrayBuilder::with_tooltipandSystemTray::set_tooltipon macOS. - On Windows, fix a ghost window appearing occasionally when clicking the tray icon.
- Added
SystemTrayBuilder::with_idand theidfield toEvent::TrayEventfor better multitray support. - Hide the app indicator when dropping
SystemTrayon Linux
[0.13.1]
- On Linux, fix Window can't be displayed on wayland.
[0.13.0]
- On Linux, receive only one draw event per cycle to prevent receiving infinite draw events.
-
- On Linux, add
EventLoopWindowTargetExtUnixfor methods to determine if the backend is x11 or wayland.
- On Linux, add
- On Linux, add
x11module for glutin internal use. This is basically just x11-dl, but winit secretly exports it. - On Linux, add
WindowBuilder::with_transparent_drawto disable the internal draw for transparent window and allows users to draw it manually. - db7e5cb4 feat(linux): Add necessary features for creating GL windows (#495) on 2022-07-25
- Breaking Updated
raw-window-handleto0.5and addedWindow::raw_display_handleandEventLoopWindowTarget::raw_display_handle. - On Windows, respect min/max inner sizes when creating the window.
[0.12.2]
- On Windows, fix assigning the wrong mintor rect to undecorated maximized window. This caused a blank window downstream in wry and tauri.
- Fixed set_inner_size is reset when resizable is set to false.
- On Windows, prevent ghost window from showing up in the taskbar after either several hours of use or restarting
explorer.exe. - Add theme feature on Linux.
- Fix maximizing window on Linux.
- On macOS, fallback resize event for NSWindow to handle.
- ab2e57e9 On macOS, fallback resize event for NSWindow to handle on 2022-07-12
- Add
CustomMenuItem::set_icon. Only implemented on macOS for now. - On Windows, subscribe to taskbar restart event and re-add the system tray icon. Also skip the window from the taskbar if it was already skipped.
- On Windows, fix focus events being sent to inactive windows.
[0.12.1]
- Revert #427 due to random crash caused by it.
[0.12.0]
- On macOS, fix native file dialogs hanging the event loop and
having multiple windows would prevent
run_returnfrom ever returning. - Fix maximizing window.
- On Windows, fix wrong fullscreen monitors being recognized when handling
WM_WINDOWPOSCHANGINGmessages - Fix global hide others shortcut.
- Fix window can't be hidden when maximized.
- On macOS,
WindowEvent::Resizedis now emitted inframeDidChangeinstead ofwindowDidResize. - On Linux, adds
SystemTrayBuilderExtLinux::with_temp_icon_dirwhich sets a custom temp icon dir to store generated icon files. This may be useful when the application requires icons to be stored in a specific location, such as when running in a Flatpak sandbox. - On Linux, store tray icons in
$XDG_RUNTIME_DIR. This is preferred over/tmp, because this directory (typically/run/user/{uid}) is only readable for the current user. While/tmpis shared with all users. - Do not emit the
ThemeChangedevent when the window theme is set and the system theme changes (the window keeps its theme in this scenario). - Remvoe
core-video-sysdependency. - The
themefunction nowTheme::Lighton macOS older than 10.14 and the initial theme setter has no effect instead of crashing the application. - Reduce
WM_PAINTsingal on event target window to prevent from webview2 delay.
[0.11.2]
- Fixes the
Ivar menu_on_left_click not found on class TaoTrayHandlerpanic on macOS.- 2cc163d2 fix(macos): crash on tray class usage on 2022-06-14
[0.11.1]
- Fix macOS
SystemTrayExtMacOSimplementation.- f42c1be1 fix: fix wrong macOS trait implementation on 2022-06-14
[0.11.0]
- Breaking change
SystemTrayBuilder::newandSystemTray::set_iconnow takessystem_tray::Iconon all platforms. - Allow to disable system tray menu only on Left Click.
- Connect mouse wheel event with GTK window.
- Support child window on Linux.
- Support theme on macOS.
- Add
Window::set_ignore_cursor_events
[0.10.0]
- Fix movable window background on macOS.
- Remove trivial tray features.
[0.9.1]
- Fix the size of the slice passed to
DragQueryFileWby passingstd::mem::transmute(path_buf.spare_capacity_mut())instead of&mut path_buf.
[0.9.0]
- Add standalone webview ndk port.
- Update the
windowscrate to the latest 0.37.0 release.
The #[implement] macro in windows-implement and the implement feature in windows depend on some const generic features which stabilized in rustc 1.61. The MSRV on Windows targets is effectively 1.61, but other targets do not require these features.
Since developers on non-Windows platforms are not always able to upgrade their toolchain with rustup, the package remains at 1.56. Windows developers may get less friendly compiler errors about using unstable language features until they upgrade their toolchain if they build tao without wry, which has some Windows-specific dependencies that transitively raise the MSRV for wry to 1.61.
[0.8.5]
- The
current_monitorfunction now fallbacks to the primary monitor when the window is invisible. - Change menubar background color to transparent on Linux when the window is transparent.
- Rename full screen menu label to "Toggle Full Screen".
[0.8.4]
- On Windows, remove the accelerator from
CustomMenuItem::titlereturnd string. - On Windows and Linux, increase the resizing area for borderless windows based on scale factor.
[0.8.3]
- Implement
Window::set_cursor_positionfor Linux.
[0.8.2]
- Do not fire
WindowEvent::Movedwhenis_maximizedis called on macOS.
[0.8.1]
- Fixes compilation when only the
trayfeature is enabled.
[0.8.0]
- Add
EventLoopWindowTargetExtMacOS::set_activation_policy_at_runtime. - On Windows and Linux, disable resizing maximized borderless windows.
- Breaking change: Renamed the
ayatanaCargo feature toayatana-tray, now the default feature for tray on Linux, and added thegtk-trayfeature. - On Windows, Fix
Window::set_inner_sizesetting a bigger size than requested.
[0.7.0]
- Fire
Event::LoopDestroyedwhen the macOS dockQuitmenu item is clicked. - Added
Event::DecorationsClick(Windows only). - Enhance the
MenuItem::Aboutmenu 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::Destroyedon Linux when theWindowis 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::Destroyedon macOS when theWindowis dropped. - Fix inconsist behaviour when setting menu on mac.
[0.6.4]
- Fix a deadlock on Windows when using
Window::set_visible(true)in theEventLoop::runclosure. - On Windows, apply maximize state before minimize. Fixes
Window::set_minimizednot working when the window is maximized.
[0.6.3]
- Revert Global Shortcut fix on Linux. See #331 for more information.
[0.6.2]
- Fixes the
set_fullscreenimplementation on Linux when theFullscreen::Borderlessvalue is set toNone.
[0.6.1]
- Fix global shortcut support on Linux (both x11 and wayland).
[0.6.0]
- Update to gtk 0.15
- Emit errors when parsing an invalid accelerator from a string.
- Add support for more accelerator keys:
,-.=;/\'`[]SpaceTabandF13-F24 - Increased Borderless window resizing inset.
- Update to 2021 edition and msrv to 1.56
- Breaking: Rename the
Exitvariant ofControlFlowtoExitWithCode, which holds a value to control the exit code after running. Add anExitconstant which aliases toExitWithCode(0)instead to avoid major breakage. This shouldn't affect most existing programs. - Fixes the
MenuItem::Quitbehavior on Windows. - Add support for
SPACEshortcut 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::ResizedandWindowEvent::Movedwhen 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
ColorSyncframework 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-handleto0.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
winapicrate references with thewindowscrate. The generated bindings are in thewebview2-com-syscrate to share types with WRY later. - Implement
CloneforEventLoopWindowTarget. - Update the
windowscrate to 0.25.0, which comes with pre-built libraries. Tao no longer depends onwebview2-com-systo generate bindings shared with WRY. - Update the
windowscrate to 0.29.0. - Update the
windowscrate 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_visibleandWindowBuilder::with_maximizednot behaving correctly. - On Windows, send correct position on system tray events.
- Add support for more accelerator keys:
,-.=;/\'`[]SpaceTabandF13-F24 - Allow more strings to parse to keycode, for example
,is now parsed as a comma. - Add macOS
show_application()method
[0.5.2]
- Fix missing
Synctrait on EventLoopProxy. This commit also introducescrossbeam-channelcrate which could also improve the performance.
[0.5.1]
- Remove feature flag that break doc builds
[0.5.0]
-
Move
global_shortcutmod to the lib root. -
Bump gtk-rs to version 0.14. This also introduces a new feature
ayatanafor developers to use updatedlibayatana-appindicatorsince the originallibappindicatoris 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 AcceleratorforSpace,Escape,MinusandEqualkeycode. -
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 whenSystemTrayis dropped. -
Add
MenuItem::SelectAllimplementation on windows. -
Add flags to support all other possible unix systems.
-
Fix confliction between
set_skip_taksbar(true)andset_visible(false).
[0.4.0]
- On Windows, Allow resizing of
decorations: falseaka borderless window. - Do not close the window on
CloseRequestedevent and let the user handle it, keeping compatibility with macOS and Windows behavior. - On Windows, fix Aero-Snap for
decorations: falseaka borderless window. - Implement
MonitorHandleand related methods on Linux. - Add
is_menu_visilbegetter onWindow - On macOS, make sure the
set_focusis triggered even if the window is not visible. - Fix
with_visible(bool)inWindowBuilderfor macOS. - Mark enums as
#[non_exhaustive]to prevent breaking changes on enum update. - Remove
with_focusandfocusfield inWindowAttribute. Useset_focusinstead in most cases. - Revert
d344825and moveset_skip_taskbarback behind aWindowExtWindowsandWindowExtUnix. SystemTrayexposeset_menuto 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_taskbarbehindWindowBuilderExtWindowsandWindowBuilderExtUnix.
[0.3.1]
- Add
window_idtoMenuEvent. - Prevent duplicate
MenuEventon window menu in Windows.
[0.3.0]
- Drop the event callback before exiting on macOS.
- Add
clipboardapi exposingread_textandwrite_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_visiblegetter onWindow - Breaking change: New keyboard API, including
AcceleratorandGlobalShortcut.
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_taskbaris renamed toset_skip_taskbar.
set_skip_taskbaris now available onWindowand is no longer behind a PlatformExt.set_skip_taskbartakes a boolean to either show or hide the window icon from the taskbar.- Add
with_skip_taskbartoWindowBuilder. - c0aac091 add
with_skip_taskbaron 2021-05-29 - Add
skip_taskbarimplementation for windows
[0.2.6]
- Add
is_decoratedgetter onWindow- 8237e2f3 add changefile on 2021-05-13
- Add
is_resizablegetter 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
[0.2.5]
- Fix Priority import on Linux.
- 20128896 Add change file on 2021-05-17
[0.2.4]
- Refactor control flow implementation to wait.
- f5514f04 Add change file on 2021-05-15
[0.2.3]
- Split feature flags (menu and tray).
- 0035ac31 Add changefile on 2021-05-10
[0.2.2]
- Add dox flag to skip link lib when building doc.
- 565114c1 Add dox flag on 2021-05-09
[0.2.1]
- Update covector script to fix doc build.
- 25f291f2 Update covector script to fix doc build on 2021-05-09
[0.2.0]
- 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.