From 591fda8045b88ea0edbc5676e2814fb9acb2d6f6 Mon Sep 17 00:00:00 2001 From: DK Liao Date: Mon, 23 Oct 2023 19:37:35 +0800 Subject: [PATCH] chore(gtk): use the re-exported modules in gtk crate instead (#1042) * Switch to using re-exported modules in gtk * Added change file --- .changes/gtkreexport.md | 5 +++++ Cargo.toml | 3 --- src/lib.rs | 4 ++-- src/webview/webkitgtk/file_drop.rs | 4 ++-- src/webview/webkitgtk/mod.rs | 12 +++++----- .../webkitgtk/synthetic_mouse_events.rs | 22 ++++++++++--------- src/webview/webkitgtk/undecorated_resizing.rs | 12 +++++----- src/webview/webkitgtk/web_context.rs | 8 +++---- 8 files changed, 37 insertions(+), 33 deletions(-) create mode 100644 .changes/gtkreexport.md diff --git a/.changes/gtkreexport.md b/.changes/gtkreexport.md new file mode 100644 index 000000000..7cd401e4c --- /dev/null +++ b/.changes/gtkreexport.md @@ -0,0 +1,5 @@ +--- +"wry": patch +--- + +Use `gtk`'s re-exported modules instead. \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 952e9a6da..ee41b6a78 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,10 +51,7 @@ base64 = "0.21" javascriptcore-rs = { version = "=1.1.1", features = [ "v2_28" ] } webkit2gtk = { version = "=2.0", features = [ "v2_38" ] } webkit2gtk-sys = "=2.0" -gio = "0.18" -glib = "0.18" gtk = "0.18" -gdk = "0.18" soup3 = "0.5" winit = { version = "0.29", package = "winit-gtk", features = [ "serde" ], optional = true } diff --git a/src/lib.rs b/src/lib.rs index c51413e89..82439669c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -114,7 +114,7 @@ pub enum Error { target_os = "openbsd" ))] #[error(transparent)] - GlibError(#[from] glib::Error), + GlibError(#[from] gtk::glib::Error), #[cfg(any( target_os = "linux", target_os = "dragonfly", @@ -123,7 +123,7 @@ pub enum Error { target_os = "openbsd" ))] #[error(transparent)] - GlibBoolError(#[from] glib::BoolError), + GlibBoolError(#[from] gtk::glib::BoolError), #[cfg(any( target_os = "linux", target_os = "dragonfly", diff --git a/src/webview/webkitgtk/file_drop.rs b/src/webview/webkitgtk/file_drop.rs index 0d7547b70..22845bbcd 100644 --- a/src/webview/webkitgtk/file_drop.rs +++ b/src/webview/webkitgtk/file_drop.rs @@ -84,9 +84,9 @@ pub(crate) fn connect_drag_event( let w = window; webview.connect_drag_failed(move |_, _, _| { if listener_ref.0(&w, FileDropEvent::Cancelled) { - glib::Propagation::Stop + gtk::glib::Propagation::Stop } else { - glib::Propagation::Proceed + gtk::glib::Propagation::Proceed } }); } diff --git a/src/webview/webkitgtk/mod.rs b/src/webview/webkitgtk/mod.rs index c4e3d60cf..999975238 100644 --- a/src/webview/webkitgtk/mod.rs +++ b/src/webview/webkitgtk/mod.rs @@ -2,9 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -use gdk::EventMask; -use gio::Cancellable; -use gtk::prelude::*; +use gtk::{gdk::EventMask, gio::Cancellable, prelude::*}; #[cfg(any(debug_assertions, feature = "devtools"))] use std::sync::atomic::{AtomicBool, Ordering}; use std::{ @@ -260,11 +258,11 @@ impl InnerWebView { // Transparent if attributes.transparent { - webview.set_background_color(&gdk::RGBA::new(0., 0., 0., 0.)); + webview.set_background_color(>k::gdk::RGBA::new(0., 0., 0., 0.)); } else { // background color if let Some(background_color) = attributes.background_color { - webview.set_background_color(&gdk::RGBA::new( + webview.set_background_color(>k::gdk::RGBA::new( background_color.0 as _, background_color.1 as _, background_color.2 as _, @@ -444,7 +442,7 @@ impl InnerWebView { } pub fn set_background_color(&self, background_color: RGBA) -> Result<()> { - self.webview.set_background_color(&gdk::RGBA::new( + self.webview.set_background_color(>k::gdk::RGBA::new( background_color.0 as _, background_color.1 as _, background_color.2 as _, @@ -479,7 +477,7 @@ impl InnerWebView { webkit2gtk::WebsiteDataManagerExtManual::clear( &data_manger, webkit2gtk::WebsiteDataTypes::ALL, - glib::TimeSpan::from_seconds(0), + gtk::glib::TimeSpan::from_seconds(0), None::<&Cancellable>, |_| {}, ); diff --git a/src/webview/webkitgtk/synthetic_mouse_events.rs b/src/webview/webkitgtk/synthetic_mouse_events.rs index 2efe58cb4..e7253fa5f 100644 --- a/src/webview/webkitgtk/synthetic_mouse_events.rs +++ b/src/webview/webkitgtk/synthetic_mouse_events.rs @@ -1,7 +1,9 @@ use std::{cell::RefCell, rc::Rc}; -use gdk::{EventButton, ModifierType}; -use gtk::prelude::*; +use gtk::{ + gdk::{EventButton, ModifierType}, + prelude::*, +}; use webkit2gtk::{WebView, WebViewExt}; pub fn setup(webview: &WebView) { @@ -17,7 +19,7 @@ pub fn setup(webview: &WebView) { bf_state_c.set(BACK); webview.run_javascript( &create_js_mouse_event(event, true, &bf_state_c), - None::<&gio::Cancellable>, + None::<>k::gio::Cancellable>, |_| {}, ); } @@ -27,7 +29,7 @@ pub fn setup(webview: &WebView) { bf_state_c.set(FORWARD); webview.run_javascript( &create_js_mouse_event(event, true, &bf_state_c), - None::<&gio::Cancellable>, + None::<>k::gio::Cancellable>, |_| {}, ); } @@ -35,9 +37,9 @@ pub fn setup(webview: &WebView) { } if inhibit { - glib::Propagation::Stop + gtk::glib::Propagation::Stop } else { - glib::Propagation::Proceed + gtk::glib::Propagation::Proceed } }); @@ -51,7 +53,7 @@ pub fn setup(webview: &WebView) { bf_state_c.remove(BACK); webview.run_javascript( &create_js_mouse_event(event, false, &bf_state_c), - None::<&gio::Cancellable>, + None::<>k::gio::Cancellable>, |_| {}, ); } @@ -61,16 +63,16 @@ pub fn setup(webview: &WebView) { bf_state_c.remove(FORWARD); webview.run_javascript( &create_js_mouse_event(event, false, &bf_state_c), - None::<&gio::Cancellable>, + None::<>k::gio::Cancellable>, |_| {}, ); } _ => {} } if inhibit { - glib::Propagation::Stop + gtk::glib::Propagation::Stop } else { - glib::Propagation::Proceed + gtk::glib::Propagation::Proceed } }); } diff --git a/src/webview/webkitgtk/undecorated_resizing.rs b/src/webview/webkitgtk/undecorated_resizing.rs index 8e15a4930..f4fb5f8bf 100644 --- a/src/webview/webkitgtk/undecorated_resizing.rs +++ b/src/webview/webkitgtk/undecorated_resizing.rs @@ -1,6 +1,8 @@ use crate::application::platform::unix::*; -use gdk::{Cursor, WindowEdge}; -use gtk::prelude::*; +use gtk::{ + gdk::{Cursor, WindowEdge}, + prelude::*, +}; use webkit2gtk::WebView; pub fn setup(webview: &WebView) { @@ -37,7 +39,7 @@ pub fn setup(webview: &WebView) { } } } - glib::Propagation::Proceed + gtk::glib::Propagation::Proceed }); webview.connect_button_press_event(move |webview, event| { if event.button() == 1 { @@ -63,7 +65,7 @@ pub fn setup(webview: &WebView) { } } } - glib::Propagation::Proceed + gtk::glib::Propagation::Proceed }); webview.connect_touch_event(|webview, event| { // This one should be GtkBox @@ -96,6 +98,6 @@ pub fn setup(webview: &WebView) { } } } - glib::Propagation::Proceed + gtk::glib::Propagation::Proceed }); } diff --git a/src/webview/webkitgtk/web_context.rs b/src/webview/webkitgtk/web_context.rs index cd0b3c5e0..00292ac47 100644 --- a/src/webview/webkitgtk/web_context.rs +++ b/src/webview/webkitgtk/web_context.rs @@ -8,7 +8,7 @@ use crate::{ webview::{web_context::WebContextData, RequestAsyncResponder}, Error, }; -use glib::FileError; +use gtk::glib::FileError; use http::{header::CONTENT_TYPE, Request, Response as HttpResponse}; use std::{ borrow::Cow, @@ -362,7 +362,7 @@ where let http_request = match http_request.body(body) { Ok(req) => req, Err(_) => { - request.finish_error(&mut glib::Error::new( + request.finish_error(&mut gtk::glib::Error::new( // TODO: use UriError when we can use 2_66 webkit2gtk feature flag FileError::Exist, "Could not get uri.", @@ -375,7 +375,7 @@ where let responder: Box>)> = Box::new(move |http_response| { let buffer = http_response.body(); - let input = gio::MemoryInputStream::from_bytes(&glib::Bytes::from(buffer)); + let input = gtk::gio::MemoryInputStream::from_bytes(>k::glib::Bytes::from(buffer)); let content_type = http_response .headers() .get(CONTENT_TYPE) @@ -400,7 +400,7 @@ where handler(http_request, RequestAsyncResponder { responder }); } else { - request.finish_error(&mut glib::Error::new( + request.finish_error(&mut gtk::glib::Error::new( FileError::Exist, "Could not get uri.", ));