fix flake and scroll

This commit is contained in:
MeexReay 2025-04-16 03:09:53 +03:00
parent e90b94a694
commit 4f78d48b10
2 changed files with 8 additions and 8 deletions

View File

@ -12,7 +12,7 @@
systems = [ "x86_64-linux" ]; systems = [ "x86_64-linux" ];
perSystem = { config, self', pkgs, lib, system, ... }: perSystem = { config, self', pkgs, lib, system, ... }:
let let
devDeps = with pkgs; [ pkg-config openssl ]; devDeps = with pkgs; [ pkg-config openssl gtk4 pango ];
cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml); cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml);
msrv = cargoToml.package.rust-version; msrv = cargoToml.package.rust-version;

View File

@ -5,7 +5,7 @@ use colored::{Color, Colorize};
use gtk4::gdk::Display; use gtk4::gdk::Display;
use gtk4::gdk_pixbuf::PixbufLoader; use gtk4::gdk_pixbuf::PixbufLoader;
use gtk4::glib::clone::Downgrade; use gtk4::glib::clone::Downgrade;
use gtk4::glib::{idle_add_local, idle_add_local_once, ControlFlow, source::timeout_add_once}; use gtk4::glib::{idle_add_local, idle_add_local_once, ControlFlow, source::timeout_add_local_once};
use gtk4::{glib, glib::clone, Align, Box as GtkBox, Label, ScrolledWindow}; use gtk4::{glib, glib::clone, Align, Box as GtkBox, Label, ScrolledWindow};
use gtk4::{CssProvider, Entry, Orientation, Overlay, Picture}; use gtk4::{CssProvider, Entry, Orientation, Overlay, Picture};
use gtk4::prelude::*; use gtk4::prelude::*;
@ -364,9 +364,9 @@ fn load_css() {
} }
fn on_add_message(ctx: Arc<Context>, ui: &UiModel, message: String) { fn on_add_message(ctx: Arc<Context>, ui: &UiModel, message: String) {
if let Some((date, ip, content, nick)) = parse_message(message.clone()) {
let hbox = GtkBox::new(Orientation::Horizontal, 2); let hbox = GtkBox::new(Orientation::Horizontal, 2);
if let Some((date, ip, content, nick)) = parse_message(message.clone()) {
if let Some(ip) = ip { if let Some(ip) = ip {
if ctx.enable_ip_viewing { if ctx.enable_ip_viewing {
let ip = Label::builder() let ip = Label::builder()
@ -425,8 +425,6 @@ fn on_add_message(ctx: Arc<Context>, ui: &UiModel, message: String) {
.build(); .build();
hbox.append(&content); hbox.append(&content);
ui.chat_box.append(&hbox);
} else { } else {
let content = Label::builder() let content = Label::builder()
.label(message) .label(message)
@ -434,10 +432,12 @@ fn on_add_message(ctx: Arc<Context>, ui: &UiModel, message: String) {
.css_classes(["message-content"]) .css_classes(["message-content"])
.build(); .build();
ui.chat_box.append(&content); hbox.append(&content);
} }
timeout_add_once(Duration::from_millis(10), move || { ui.chat_box.append(&hbox);
timeout_add_local_once(Duration::from_millis(100), move || {
GLOBAL.with(|global| { GLOBAL.with(|global| {
if let Some((ui, _)) = &*global.borrow() { if let Some((ui, _)) = &*global.borrow() {
let o = &ui.chat_scrolled; let o = &ui.chat_scrolled;