editors/lapce: Fix menu display / Improve port

- Fix menu display: https://github.com/lapce/floem/pull/443
- Add desktop file and icon

PR:		278950
main
Mikael Urankar 2024-05-14 08:23:19 +01:00 committed by Nuno Teixeira
parent 83e384a6dc
commit b9beff3734
4 changed files with 129 additions and 10 deletions

View File

@ -2,7 +2,7 @@ PORTNAME= lapce
DISTVERSIONPREFIX= v
DISTVERSION= 0.4.0-16 # Cargo.lock patched: `make patch cargo-crates`
DISTVERSIONSUFFIX= -g985b07c
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= editors
MAINTAINER= eduardo@FreeBSD.org
@ -17,15 +17,18 @@ NOT_FOR_ARCHS_REASON_i386= doesn't build: [zstd-sys 2.0.1+zstd.1.5.2] AR_i686_un
LIB_DEPENDS= libssh2.so:security/libssh2 \
libgit2.so:devel/libgit2
RUN_DEPENDS= xdg-desktop-portal>0:deskutils/xdg-desktop-portal
USES= cargo dos2unix gmake localbase:ldflags perl5 pkgconfig ssl xorg
USES= cargo desktop-file-utils dos2unix gmake localbase:ldflags perl5 pkgconfig ssl xorg
USE_GITHUB= yes
USE_XORG= xcb
DOS2UNIX_FILES= cargo-crates/slotmap-1.0.7/src/lib.rs
PLIST_FILES= bin/lapce \
bin/lapce-proxy
bin/lapce-proxy \
share/applications/dev.lapce.lapce.desktop \
share/pixmaps/dev.lapce.lapce.png
PORTSCOUT= skipv:0.6.0
@ -36,9 +39,14 @@ CARGO_ENV= RUSTC_BOOTSTRAP=1 OPENSSL_NO_VENDOR=1
# Do not LTO and strip binaries while WIP:
# https://github.com/lapce/lapce/issues/2748
LTO_UNSAFE= yes
#post-install:
post-install:
# ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/lapce
# ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/lapce-proxy
${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
${INSTALL_DATA} ${WRKSRC}/extra/images/logo.png \
${STAGEDIR}${PREFIX}/share/pixmaps/dev.lapce.lapce.png
${INSTALL_DATA} ${WRKSRC}/extra/linux/dev.lapce.lapce.desktop \
${STAGEDIR}${PREFIX}/share/applications
post-patch:
@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/cargo-crates/fontdb-0.16.2/src/lib.rs

View File

@ -1,4 +1,4 @@
TIMESTAMP = 1715251140
TIMESTAMP = 1715629174
SHA256 (rust/crates/Inflector-0.11.4.crate) = fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3
SIZE (rust/crates/Inflector-0.11.4.crate) = 17438
SHA256 (rust/crates/ab_glyph-0.2.21.crate) = 5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39

View File

@ -1,11 +1,22 @@
https://github.com/lapce/cosmic-text/pull/6
--- cargo-crates/floem-cosmic-text-0.7.2/src/font/fallback/mod.rs.orig 2024-05-09 07:49:44 UTC
+++ cargo-crates/floem-cosmic-text-0.7.2/src/font/fallback/mod.rs
@@ -11,7 +11,7 @@ use self::platform::*;
@@ -10,7 +10,7 @@ use self::platform::*;
use self::platform::*;
#[cfg(not(any(target_os = "linux", target_os = "macos", target_os = "windows",)))]
-#[path = "other.rs"]
+#[path = "unix.rs"]
-#[cfg(not(any(target_os = "linux", target_os = "macos", target_os = "windows",)))]
+#[cfg(not(any(target_os = "linux", target_os = "macos", target_os = "windows", target_os = "freebsd",)))]
#[path = "other.rs"]
mod platform;
@@ -18,7 +18,7 @@ mod platform;
#[path = "macos.rs"]
mod platform;
-#[cfg(target_os = "linux")]
+#[cfg(any(target_os = "linux", target_os = "freebsd"))]
#[path = "unix.rs"]
mod platform;
#[cfg(target_os = "macos")]

View File

@ -0,0 +1,100 @@
https://github.com/lapce/floem/pull/443
--- ../floem-8f5a9c5c2bee1bb0355c7a058b6e39be42878534/src/app_handle.rs.orig 2024-05-13 13:05:01 UTC
+++ ../floem-8f5a9c5c2bee1bb0355c7a058b6e39be42878534/src/app_handle.rs
@@ -85,7 +85,7 @@ impl ApplicationHandle {
}
}
}
- #[cfg(target_os = "linux")]
+ #[cfg(any(target_os = "linux", target_os = "freebsd"))]
AppUpdateEvent::MenuAction {
window_id,
action_id,
--- ../floem-8f5a9c5c2bee1bb0355c7a058b6e39be42878534/src/app.rs.orig 2024-05-13 13:04:56.470939000 +0200
+++ ../floem-8f5a9c5c2bee1bb0355c7a058b6e39be42878534/src/app.rs 2024-05-13 13:05:40.873460000 +0200
@@ -64,7 +64,7 @@ pub(crate) enum AppUpdateEvent {
RequestTimer {
timer: Timer,
},
- #[cfg(target_os = "linux")]
+ #[cfg(any(target_os = "linux", target_os = "freebsd"))]
MenuAction {
window_id: WindowId,
action_id: usize,
--- ../floem-8f5a9c5c2bee1bb0355c7a058b6e39be42878534/src/window_handle.rs.orig 2024-05-13 13:05:07.252707000 +0200
+++ ../floem-8f5a9c5c2bee1bb0355c7a058b6e39be42878534/src/window_handle.rs 2024-05-13 13:15:25.162556000 +0200
@@ -17,9 +17,9 @@ use peniko::kurbo::{Affine, Point, Rect, Size, Vec2};
use image::DynamicImage;
use peniko::kurbo::{Affine, Point, Rect, Size, Vec2};
-#[cfg(target_os = "linux")]
+#[cfg(any(target_os = "linux", target_os = "freebsd"))]
use crate::unit::UnitExt;
-#[cfg(target_os = "linux")]
+#[cfg(any(target_os = "linux", target_os = "freebsd"))]
use crate::views::{container, stack};
use crate::{
animate::{AnimPropKind, AnimUpdateMsg, AnimValue, AnimatedProp, SizeUnit},
@@ -73,7 +73,7 @@ pub(crate) struct WindowHandle {
pub(crate) cursor_position: Point,
pub(crate) window_position: Point,
pub(crate) last_pointer_down: Option<(u8, Point, Instant)>,
- #[cfg(target_os = "linux")]
+ #[cfg(any(target_os = "linux", target_os = "freebsd"))]
pub(crate) context_menu: RwSignal<Option<(Menu, Point)>>,
}
@@ -96,13 +96,13 @@ impl WindowHandle {
set_current_view(id);
- #[cfg(target_os = "linux")]
+ #[cfg(any(target_os = "linux", target_os = "freebsd"))]
let context_menu = scope.create_rw_signal(None);
- #[cfg(not(target_os = "linux"))]
+ #[cfg(not(any(target_os = "linux", target_os = "freebsd")))]
let view = with_scope(scope, move || view_fn(window_id));
- #[cfg(target_os = "linux")]
+ #[cfg(any(target_os = "linux", target_os = "freebsd"))]
let view = with_scope(scope, move || {
stack((
container(view_fn(window_id)).style(|s| s.size(100.pct(), 100.pct())),
@@ -139,7 +139,7 @@ impl WindowHandle {
modifiers: Modifiers::default(),
cursor_position: Point::ZERO,
window_position: Point::ZERO,
- #[cfg(target_os = "linux")]
+ #[cfg(any(target_os = "linux", target_os = "freebsd"))]
context_menu,
last_pointer_down: None,
};
@@ -835,7 +835,7 @@ impl WindowHandle {
self.show_context_menu(platform_menu, pos);
#[cfg(target_os = "windows")]
self.show_context_menu(platform_menu, pos);
- #[cfg(target_os = "linux")]
+ #[cfg(any(target_os = "linux", target_os = "freebsd"))]
self.show_context_menu(menu, platform_menu, pos);
}
UpdateMessage::WindowMenu { menu } => {
@@ -1139,7 +1139,7 @@ impl WindowHandle {
}
}
- #[cfg(target_os = "linux")]
+ #[cfg(any(target_os = "linux", target_os = "freebsd"))]
fn show_context_menu(
&self,
menu: Menu,
@@ -1199,7 +1199,7 @@ pub(crate) fn set_current_view(id: ViewId) {
});
}
-#[cfg(target_os = "linux")]
+#[cfg(any(target_os = "linux", target_os = "freebsd"))]
fn context_menu_view(
cx: Scope,
window_id: WindowId,