picoe / Eto

Cross platform GUI framework for desktop and mobile applications in .NET

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[GTK] Incrementing ProgressBar one-by-one maxes out at 28.

nvella opened this issue · comments

Expected Behavior

Progress bar value can be set arbitrarily.

Actual Behavior

On the GTK platform, incrementing progress bar Value, one-by-one, maxes out at 28. When incrementing Value by 2, it is able to make it to 100 successfully.

I was not able to reproduce via this method on the Mac64 platform, however I have observed similar behaviour with a Property binding. I think this could be down to an unrelated threading issue however.

image

Code that Demonstrates the Problem

using System;
using Eto;
using Eto.Forms;
using Eto.Drawing;

namespace EtoTest
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            Title = "My Eto Form";
            MinimumSize = new Size(200, 200);

            var progressBar = new ProgressBar();
            var button = new Button((_, _) =>
            {
                progressBar.Value += 1;
                Console.WriteLine($"{progressBar.Value} {progressBar.MinValue} {progressBar.MaxValue}");
            }) { Text = "Increment" };

            Content = new TableLayout(
                progressBar,
                button,
                null);

            var quitCommand = new Command { MenuText = "Quit", Shortcut = Application.Instance.CommonModifier | Keys.Q };
            quitCommand.Executed += (sender, e) => Application.Instance.Quit();

            var aboutCommand = new Command { MenuText = "About..." };
            aboutCommand.Executed += (sender, e) => new AboutDialog().ShowDialog(this);
        }
    }
}

Specifications

  • Version: Eto.Forms 2.7.5 on .NET 6
  • Platform(s): Gtk (gtk+3 via Homebrew version 3.24.38)
  • Operating System(s): macOS 14 Public Beta 2