From 2cf2a23500ed076369d8a86bf46340da9bca876d Mon Sep 17 00:00:00 2001 From: Mike Dilger Date: Thu, 30 Mar 2023 10:09:49 +1300 Subject: [PATCH] Fix UI issues with relays event was seen on --- src/ui/feed/note/mod.rs | 48 ++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/ui/feed/note/mod.rs b/src/ui/feed/note/mod.rs index 2072c73d..b0eb25d7 100644 --- a/src/ui/feed/note/mod.rs +++ b/src/ui/feed/note/mod.rs @@ -9,8 +9,8 @@ use crate::AVATAR_SIZE_F32; pub const AVATAR_SIZE_REPOST_F32: f32 = 27.0; // points, not pixels use eframe::egui::{self, Margin}; use egui::{ - Align, Context, Frame, Image, Label, Layout, RichText, Sense, Separator, Stroke, TextStyle, Ui, - Vec2, + Align, Align2, Context, Frame, Image, Label, Layout, RichText, Sense, Separator, Stroke, + TextStyle, Ui, Vec2, }; use nostr_types::{Event, EventDelegation, EventKind, IdHex, PublicKeyHex, Tag}; @@ -541,29 +541,29 @@ fn render_note_inner( ui.add_space(4.0); - let view_seen_response = - ui.add(Label::new(RichText::new("👁").size(12.0)).sense(Sense::hover())); - let popup_id = - ui.make_persistent_id(format!("event-seen-{}", event.id.as_hex_string())); - if view_seen_response.hovered() { - ui.memory_mut(|mem| mem.open_popup(popup_id)); + if ui + .add(Label::new(RichText::new("👁").size(12.0)).sense(Sense::hover())) + .hovered() + { + egui::Area::new(ui.next_auto_id()) + .movable(false) + .interactable(false) + .pivot(Align2::RIGHT_TOP) + .fixed_pos(ctx.pointer_hover_pos().unwrap_or_default()) + .constrain(true) + .show(ctx, |ui| { + ui.set_min_width(200.0); + egui::Frame::popup(&app.settings.theme.get_style()).show(ui, |ui| { + if let Some(urls) = GLOBALS.events.get_seen_on(&event.id) { + for url in urls.iter() { + ui.label(url.as_str()); + } + } else { + ui.label("unknown"); + } + }); + }); } - egui::popup::popup_above_or_below_widget( - ui, - popup_id, - &view_seen_response, - egui::AboveOrBelow::Below, - |ui| { - ui.set_min_width(200.0); - if let Some(urls) = GLOBALS.events.get_seen_on(&event.id) { - for url in urls.iter() { - ui.label(url.as_str()); - } - } else { - ui.label("unknown"); - } - }, - ); ui.label( RichText::new(crate::date_ago::date_ago(event.created_at))