Skip to content

Commit

Permalink
chore: update to tao@0.22 (#997)
Browse files Browse the repository at this point in the history
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
  • Loading branch information
3 people authored Aug 13, 2023
1 parent e47562f commit b0a08b1
Show file tree
Hide file tree
Showing 18 changed files with 236 additions and 340 deletions.
5 changes: 5 additions & 0 deletions .changes/tao-0.22.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"wry": "minor"
---

Update `tao` to version `0.22` which has removed the global-shortcut, menus and tray features, see [tao@v0.22 release](https://github.com/tauri-apps/tao/releases/tag/tao-v0.22.0).
6 changes: 3 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,17 +75,17 @@ jobs:
${{ matrix.platform }}-stable-cargo-core-
- name: build wry
run: cargo build --features tray --target ${{ matrix.platform.target }}
run: cargo build --target ${{ matrix.platform.target }}

- name: build tests and examples
shell: bash
if: (
!contains(matrix.platform.target, 'android') &&
!contains(matrix.platform.target, 'ios'))
run: cargo test --no-run --verbose --features tray --target ${{ matrix.platform.target }}
run: cargo test --no-run --verbose --target ${{ matrix.platform.target }}

- name: run tests
if: (
!contains(matrix.platform.target, 'android') &&
!contains(matrix.platform.target, 'ios'))
run: cargo test --verbose --features tray --target ${{ matrix.platform.target }}
run: cargo test --verbose --target ${{ matrix.platform.target }}
5 changes: 2 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ categories = [ "gui" ]

[package.metadata.docs.rs]
default-features = false
features = [ "dox", "file-drop", "protocol", "tray" ]
features = [ "dox", "file-drop", "protocol" ]
targets = [
"x86_64-unknown-linux-gnu",
"x86_64-pc-windows-msvc",
Expand All @@ -27,7 +27,6 @@ objc-exception = [ "objc/exception" ]
file-drop = [ ]
protocol = [ ]
dox = [ "tao/dox", "webkit2gtk/dox", "soup3/dox" ]
tray = [ "tao/tray" ]
devtools = [ ]
transparent = [ ]
fullscreen = [ ]
Expand All @@ -41,7 +40,7 @@ serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
thiserror = "1.0"
url = "2.4"
tao = { version = "0.21", default-features = false, features = [ "serde" ] }
tao = { version = "0.22", default-features = false, features = [ "serde" ] }
http = "0.2.9"

[dev-dependencies]
Expand Down
8 changes: 1 addition & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ Tao uses [gtk-rs](https://gtk-rs.org/) and its related libraries for window crea

```bash
sudo pacman -S webkit2gtk-4.1
sudo pacman -S libappindicator-gtk3 # For tray feature
```

The `libayatana-indicator` package can be installed from the Arch User Repository (AUR).
Expand All @@ -90,17 +89,12 @@ The `libayatana-indicator` package can be installed from the Arch User Repositor

```bash
sudo apt install libwebkit2gtk-4.1-dev
# For tray feature, choose one of following package
sudo apt install libayatana-appindicator3-dev
sudo apt install libappindicator3-dev
```

#### Fedora

```bash
sudo dnf install gtk3-devel webkit2gtk4.1-devel
# For tray feature
sudo dnf install libappindicator-gtk3-devel
```

Fedora does not have the Ayatana package yet, so you need to use the GTK one, see the [feature flags documentation](https://docs.rs/wry/latest/wry/#feature-flags).
Expand All @@ -121,7 +115,7 @@ WebView2 provided by Microsoft Edge Chromium is used. So wry supports Windows 7,

### Android / iOS

Wry supports mobile with the help of [`tauri-mobile`](https://github.com/tauri-apps/tauri-mobile) CLI to create template project. If you are interested in playing or hacking it, please follow [MOBILE.md](MOBILE.md).
Wry supports mobile with the help of [`tauri-mobile`](https://github.com/tauri-apps/tauri-mobile) CLI to create template project. If you are interested in playing or hacking it, please follow [MOBILE.md](MOBILE.md).

If you wish to create Android project yourself, there are a few kotlin files that are needed to run wry on Android and you have to set the following environment variables:

Expand Down
14 changes: 0 additions & 14 deletions examples/README.md

This file was deleted.

10 changes: 5 additions & 5 deletions examples/custom_titlebar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ fn main() -> wry::Result<()> {
use wry::{
application::{
event::{Event, StartCause, WindowEvent},
event_loop::{ControlFlow, EventLoop},
event_loop::{ControlFlow, EventLoopBuilder},
window::{Window, WindowBuilder},
},
webview::WebViewBuilder,
};

enum UserEvents {
enum UserEvent {
CloseWindow,
}

let event_loop = EventLoop::<UserEvents>::with_user_event();
let event_loop = EventLoopBuilder::<UserEvent>::with_user_event().build();
let window = WindowBuilder::new()
.with_decorations(false)
.build(&event_loop)
Expand Down Expand Up @@ -124,7 +124,7 @@ fn main() -> wry::Result<()> {
window.set_maximized(!window.is_maximized());
}
if req == "close" {
let _ = proxy.send_event(UserEvents::CloseWindow);
let _ = proxy.send_event(UserEvent::CloseWindow);
}
if req == "drag_window" {
let _ = window.drag_window();
Expand All @@ -149,7 +149,7 @@ fn main() -> wry::Result<()> {
event: WindowEvent::CloseRequested,
..
}
| Event::UserEvent(UserEvents::CloseWindow) => {
| Event::UserEvent(UserEvent::CloseWindow) => {
let _ = webview.take();
*control_flow = ControlFlow::Exit
}
Expand Down
4 changes: 2 additions & 2 deletions examples/download_event.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ fn main() -> wry::Result<()> {
use wry::{
application::{
event::{Event, StartCause, WindowEvent},
event_loop::{ControlFlow, EventLoop},
event_loop::{ControlFlow, EventLoopBuilder},
window::WindowBuilder,
},
webview::WebViewBuilder,
Expand All @@ -29,7 +29,7 @@ fn main() -> wry::Result<()> {
Rejected(String),
}

let event_loop: EventLoop<UserEvent> = EventLoop::with_user_event();
let event_loop = EventLoopBuilder::<UserEvent>::with_user_event().build();
let proxy = event_loop.create_proxy();
let window = WindowBuilder::new()
.with_title("Hello World")
Expand Down
10 changes: 5 additions & 5 deletions examples/eval_js.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ fn main() -> wry::Result<()> {
use wry::{
application::{
event::{Event, StartCause, WindowEvent},
event_loop::{ControlFlow, EventLoop},
event_loop::{ControlFlow, EventLoopBuilder},
window::{Window, WindowBuilder},
},
webview::WebViewBuilder,
};

enum UserEvents {
enum UserEvent {
ExecEval,
}

let event_loop = EventLoop::<UserEvents>::with_user_event();
let event_loop = EventLoopBuilder::<UserEvent>::with_user_event().build();
let proxy = event_loop.create_proxy();

let window = WindowBuilder::new()
Expand All @@ -25,7 +25,7 @@ fn main() -> wry::Result<()> {

let ipc_handler = move |_: &Window, req: String| {
if req == "exec-eval" {
let _ = proxy.send_event(UserEvents::ExecEval);
let _ = proxy.send_event(UserEvent::ExecEval);
}
};

Expand All @@ -42,7 +42,7 @@ fn main() -> wry::Result<()> {
*control_flow = ControlFlow::Wait;

match event {
Event::UserEvent(UserEvents::ExecEval) => {
Event::UserEvent(UserEvent::ExecEval) => {
// String
_webview
.evaluate_script_with_callback(
Expand Down
108 changes: 0 additions & 108 deletions examples/menu.rs

This file was deleted.

18 changes: 9 additions & 9 deletions examples/multi_window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@ fn main() -> wry::Result<()> {
use wry::{
application::{
event::{Event, StartCause, WindowEvent},
event_loop::{ControlFlow, EventLoop, EventLoopProxy, EventLoopWindowTarget},
event_loop::{ControlFlow, EventLoopBuilder, EventLoopProxy, EventLoopWindowTarget},
window::{Window, WindowBuilder, WindowId},
},
webview::{WebView, WebViewBuilder},
};

enum UserEvents {
enum UserEvent {
CloseWindow(WindowId),
NewWindow,
}

fn create_new_window(
title: String,
event_loop: &EventLoopWindowTarget<UserEvents>,
proxy: EventLoopProxy<UserEvents>,
event_loop: &EventLoopWindowTarget<UserEvent>,
proxy: EventLoopProxy<UserEvent>,
) -> (WindowId, WebView) {
let window = WindowBuilder::new()
.with_title(title)
Expand All @@ -30,10 +30,10 @@ fn main() -> wry::Result<()> {
let window_id = window.id();
let handler = move |window: &Window, req: String| match req.as_str() {
"new-window" => {
let _ = proxy.send_event(UserEvents::NewWindow);
let _ = proxy.send_event(UserEvent::NewWindow);
}
"close" => {
let _ = proxy.send_event(UserEvents::CloseWindow(window.id()));
let _ = proxy.send_event(UserEvent::CloseWindow(window.id()));
}
_ if req.starts_with("change-title") => {
let title = req.replace("change-title:", "");
Expand All @@ -58,7 +58,7 @@ fn main() -> wry::Result<()> {
(window_id, webview)
}

let event_loop = EventLoop::<UserEvents>::with_user_event();
let event_loop = EventLoopBuilder::<UserEvent>::with_user_event().build();
let mut webviews = HashMap::new();
let proxy = event_loop.create_proxy();

Expand All @@ -82,15 +82,15 @@ fn main() -> wry::Result<()> {
*control_flow = ControlFlow::Exit
}
}
Event::UserEvent(UserEvents::NewWindow) => {
Event::UserEvent(UserEvent::NewWindow) => {
let new_window = create_new_window(
format!("Window {}", webviews.len() + 1),
event_loop,
proxy.clone(),
);
webviews.insert(new_window.0, new_window.1);
}
Event::UserEvent(UserEvents::CloseWindow(id)) => {
Event::UserEvent(UserEvent::CloseWindow(id)) => {
webviews.remove(&id);
if webviews.is_empty() {
*control_flow = ControlFlow::Exit
Expand Down
4 changes: 2 additions & 2 deletions examples/navigation_event.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ fn main() -> wry::Result<()> {
use wry::{
application::{
event::{Event, StartCause, WindowEvent},
event_loop::{ControlFlow, EventLoop},
event_loop::{ControlFlow, EventLoopBuilder},
window::WindowBuilder,
},
webview::WebViewBuilder,
Expand All @@ -16,7 +16,7 @@ fn main() -> wry::Result<()> {
Navigation(String),
}

let event_loop: EventLoop<UserEvent> = EventLoop::with_user_event();
let event_loop = EventLoopBuilder::<UserEvent>::with_user_event().build();
let proxy = event_loop.create_proxy();
let window = WindowBuilder::new()
.with_title("Hello World")
Expand Down
Loading

0 comments on commit b0a08b1

Please sign in to comment.