[pve-devel] [PATCH installer v2 14/15] ui: gtk3: allow passing of dialog parent window
Christoph Heiss
c.heiss at proxmox.com
Thu Oct 30 12:06:16 CET 2025
For GTK to properly z-order the dialog, i.e. so that it gets put on top,
the correct parent window must be specified.
By default this is the root window, but for some settings we open an
additional dialog window, in which these must be used as parent.
Signed-off-by: Christoph Heiss <c.heiss at proxmox.com>
---
Changes v1 -> v2:
* new patch
Proxmox/UI.pm | 12 ++++++------
Proxmox/UI/Gtk3.pm | 12 ++++++------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/Proxmox/UI.pm b/Proxmox/UI.pm
index 99988ab..55a78e4 100644
--- a/Proxmox/UI.pm
+++ b/Proxmox/UI.pm
@@ -48,13 +48,13 @@ my sub get_env {
}
sub message {
- my ($msg) = @_;
- get_ui()->message($msg);
+ my ($msg, $parentwindow) = @_;
+ get_ui()->message($msg, $parentwindow);
}
sub error {
- my ($msg) = @_;
- get_ui()->error($msg);
+ my ($msg, $parentwindow) = @_;
+ get_ui()->error($msg, $parentwindow);
}
sub finished {
@@ -63,8 +63,8 @@ sub finished {
}
sub prompt {
- my ($query) = @_;
- return get_ui()->prompt($query);
+ my ($query, $parentwindow) = @_;
+ return get_ui()->prompt($query, $parentwindow);
}
sub display_html {
diff --git a/Proxmox/UI/Gtk3.pm b/Proxmox/UI/Gtk3.pm
index 9af3d6a..82a4623 100644
--- a/Proxmox/UI/Gtk3.pm
+++ b/Proxmox/UI/Gtk3.pm
@@ -8,18 +8,18 @@ use Gtk3;
use base qw(Proxmox::UI::Base);
sub message {
- my ($self, $msg) = @_;
+ my ($self, $msg, $parentwindow) = @_;
- my $window = $self->{state}->{window};
+ my $window = $parentwindow // $self->{state}->{window};
my $dialog = Gtk3::MessageDialog->new($window, 'modal', 'info', 'ok', $msg);
$dialog->run();
$dialog->destroy();
}
sub error {
- my ($self, $msg) = @_;
+ my ($self, $msg, $parentwindow) = @_;
- my $window = $self->{state}->{window};
+ my $window = $parentwindow // $self->{state}->{window};
my $dialog = Gtk3::MessageDialog->new($window, 'modal', 'error', 'ok', $msg);
$dialog->run();
$dialog->destroy();
@@ -31,9 +31,9 @@ sub finished {
}
sub prompt {
- my ($self, $query) = @_;
+ my ($self, $query, $parentwindow) = @_;
- my $window = $self->{state}->{window};
+ my $window = $parentwindow // $self->{state}->{window};
my $dialog = Gtk3::MessageDialog->new($window, 'modal', 'question', 'ok-cancel', $query);
my $response = $dialog->run();
$dialog->destroy();
--
2.51.0
More information about the pve-devel
mailing list