public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Shan Shaji <s.shaji@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH pve_flutter_frontend 1/3] fix: ui being inconsistent in overview pages
Date: Fri, 23 Oct 2026 13:40:34 +0200	[thread overview]
Message-ID: <20261023114036.70719-2-s.shaji@proxmox.com> (raw)
In-Reply-To: <20261023114036.70719-1-s.shaji@proxmox.com>

For the new Apple's duo device, in the folded state the camera and the
application dock are on the right side of the device. However, this
depends on the orientation, so they are not always on the right.
Since these are system intrusions and we are using SafeArea to avoid
them, wrapping the overview page in SafeArea is causing clipping in the
UI. In order to avoid this, remove the SafeArea widget.

It is safe to remove SafeArea because the top AppBar avoids intrusions
by default. For the left and right sides, individual padding is given to
each widget. As for the bottom, a placeholder widget with a height of
viewPadding.bottom [1] has been added.

- [1] https://api.flutter.dev/flutter/dart-ui/FlutterView-class.html

Signed-off-by: Shan Shaji <s.shaji@proxmox.com>
---
 lib/widgets/pve_lxc_overview.dart  | 8 +++-----
 lib/widgets/pve_node_overview.dart | 6 ++----
 lib/widgets/pve_qemu_overview.dart | 6 ++----
 3 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/lib/widgets/pve_lxc_overview.dart b/lib/widgets/pve_lxc_overview.dart
index 7caa5cf..b0b210a 100644
--- a/lib/widgets/pve_lxc_overview.dart
+++ b/lib/widgets/pve_lxc_overview.dart
@@ -65,9 +65,7 @@ class PveLxcOverview extends StatelessWidget {
                 title: Text(config?.hostname ?? 'CT $guestID'),
               ),
               backgroundColor: Theme.of(context).colorScheme.surfaceContainer,
-              body: SafeArea(
-                bottom: !Platform.isIOS,
-                child: SingleChildScrollView(
+              body: SingleChildScrollView(
                   child: Column(
                     children: <Widget>[
                       PveGuestOverviewHeader(
@@ -247,11 +245,11 @@ class PveLxcOverview extends StatelessWidget {
                                 subtitle: const Text('DNS Server'),
                               ),
                             ]),
-                      ]
+                      ],
+                      SizedBox(height: MediaQuery.of(context).viewPadding.bottom)
                     ],
                   ),
                 ),
-              ),
             );
           }),
     );
diff --git a/lib/widgets/pve_node_overview.dart b/lib/widgets/pve_node_overview.dart
index 092bb54..4ecdede 100644
--- a/lib/widgets/pve_node_overview.dart
+++ b/lib/widgets/pve_node_overview.dart
@@ -62,9 +62,7 @@ class PveNodeOverview extends StatelessWidget {
             ),
           ),
           backgroundColor: Theme.of(context).colorScheme.surfaceContainer,
-          body: SafeArea(
-            bottom: !Platform.isIOS,
-            child: SingleChildScrollView(
+          body: SingleChildScrollView(
               child: Column(
                 children: <Widget>[
                   if (rrd.isNotEmpty)
@@ -446,10 +444,10 @@ class PveNodeOverview extends StatelessWidget {
                           .data!
                           .compareTo((b.title as Text).data!)),
                   ),
+                  SizedBox(height: MediaQuery.of(context).viewPadding.bottom)
                 ],
               ),
             ),
-          ),
         );
       },
     );
diff --git a/lib/widgets/pve_qemu_overview.dart b/lib/widgets/pve_qemu_overview.dart
index 12e3b30..2f366a8 100644
--- a/lib/widgets/pve_qemu_overview.dart
+++ b/lib/widgets/pve_qemu_overview.dart
@@ -66,9 +66,7 @@ class PveQemuOverview extends StatelessWidget {
                 title: Text(config?.name ?? 'VM $guestID'),
               ),
               backgroundColor: Theme.of(context).colorScheme.surfaceContainer,
-              body: SafeArea(
-                bottom: !Platform.isIOS,
-                child: SingleChildScrollView(
+              body: SingleChildScrollView(
                     child: Column(
                   children: <Widget>[
                     PveGuestOverviewHeader(
@@ -236,9 +234,9 @@ class PveQemuOverview extends StatelessWidget {
                                 title: Text(net),
                               )
                           ]),
+                    SizedBox(height: MediaQuery.of(context).viewPadding.bottom)
                   ],
                 )),
-              ),
             );
           }),
     );
-- 
2.50.1





  reply	other threads:[~2026-10-23 11:40 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-23 11:40 [PATCH pve_flutter_frontend 0/3] fix: ui: clipping of ui elements in iPhone duo Shan Shaji
2026-10-23 11:40 ` Shan Shaji [this message]
2026-10-23 11:40 ` [PATCH pve_flutter_frontend 2/3] fix: ui: bottom overflow on apple's duo device Shan Shaji
2026-10-23 11:40 ` [PATCH pve_flutter_frontend 3/3] cleanup: run dart format Shan Shaji

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261023114036.70719-2-s.shaji@proxmox.com \
    --to=s.shaji@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal