From e0acacd0f3bbee7a510689e1023150c458532ee0 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Tue, 8 Apr 2025 18:42:50 +0200 Subject: Fix size and position of elements --- src/greeter-list.vala | 3 +-- src/list-stack.vala | 3 ++- src/main-window.vala | 1 + src/prompt-box.vala | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/greeter-list.vala b/src/greeter-list.vala index 04d4ed4..da4f3e9 100644 --- a/src/greeter-list.vala +++ b/src/greeter-list.vala @@ -283,7 +283,6 @@ public abstract class GreeterList : FadableBox protected void redraw_greeter_box () { - queue_allocate (); Gtk.Allocation allocation; greeter_box.get_allocation (out allocation); queue_draw_area (allocation.x, allocation.y, allocation.width, allocation.height); @@ -298,7 +297,6 @@ public abstract class GreeterList : FadableBox } selected_entry.add_message (text, is_error); - redraw_greeter_box (); } public DashEntry add_prompt (string text, bool secret = false) @@ -870,6 +868,7 @@ public abstract class GreeterList : FadableBox /* Limit the number of characters in case a cat is sitting on the keyboard... */ entry.max_length = MAX_FIELD_SIZE; + queue_resize (); } protected virtual void authentication_complete_cb () diff --git a/src/list-stack.vala b/src/list-stack.vala index d87b37a..4f74ea7 100644 --- a/src/list-stack.vala +++ b/src/list-stack.vala @@ -1,7 +1,7 @@ /* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 4 -*- * * Copyright (C) 2011,2012 Canonical Ltd - * Copyright (C) 2023 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -35,6 +35,7 @@ public class ListStack : Gtk.Fixed construct { + resize_mode = Gtk.ResizeMode.QUEUE; var greeter = new ArcticaGreeter(); width = greeter.grid_size * GreeterList.BOX_WIDTH; diff --git a/src/main-window.vala b/src/main-window.vala index fc8d95a..c32c82a 100644 --- a/src/main-window.vala +++ b/src/main-window.vala @@ -145,6 +145,7 @@ public class MainWindow : Gtk.Window align.add (hbox); align = new Gtk.Alignment (0.5f, 0.5f, 0.0f, 0.0f); + align.resize_mode = Gtk.ResizeMode.QUEUE; align.set_size_request (greeter.grid_size, -1); align.margin_bottom = greeter.menubar_height; /* offset for menubar at top */ align.show (); diff --git a/src/prompt-box.vala b/src/prompt-box.vala index 1254d14..e29d6ef 100644 --- a/src/prompt-box.vala +++ b/src/prompt-box.vala @@ -2,7 +2,7 @@ * * Copyright (C) 2011,2012 Canonical Ltd * Copyright (C) 2015,2017 Mike Gabriel - * Copyright (C) 2023 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -96,6 +96,7 @@ public class PromptBox : FadableBox construct { + resize_mode = Gtk.ResizeMode.QUEUE; var greeter = new ArcticaGreeter(); set_start_row (); @@ -569,7 +570,6 @@ public class PromptBox : FadableBox public void add_message (string text, bool is_error) { var label = new FadingLabel (text); - label.set_line_wrap (true); var style_ctx = label.get_style_context(); -- cgit v1.2.3 From b5c6f857c0fb7ee576467684c07ab4f2229f7e30 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Tue, 8 Apr 2025 18:44:12 +0200 Subject: src/main-window.vala: Fix DBusConnection.call --- src/main-window.vala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main-window.vala b/src/main-window.vala index c32c82a..2b58bd9 100644 --- a/src/main-window.vala +++ b/src/main-window.vala @@ -566,7 +566,7 @@ public class MainWindow : Gtk.Window DBusConnection pConnection = Bus.get_sync (BusType.SESSION); Variant pActive = new Variant.boolean (!bActive); Variant pTuple = new Variant("(sva{sv})", "onboard", pActive, null); - pConnection.call ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); + pConnection.call.begin ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); } catch (Error pError) { @@ -590,7 +590,7 @@ public class MainWindow : Gtk.Window DBusConnection pConnection = Bus.get_sync (BusType.SESSION); Variant pActive = new Variant.boolean (!bActive); Variant pTuple = new Variant("(sva{sv})", "contrast", pActive, null); - pConnection.call ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); + pConnection.call.begin ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); } catch (Error pError) { @@ -613,7 +613,7 @@ public class MainWindow : Gtk.Window DBusConnection pConnection = Bus.get_sync (BusType.SESSION); Variant pActive = new Variant.boolean (!bActive); Variant pTuple = new Variant("(sva{sv})", "orca", pActive, null); - pConnection.call ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); + pConnection.call.begin ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); } catch (Error pError) { @@ -636,7 +636,7 @@ public class MainWindow : Gtk.Window DBusConnection pConnection = Bus.get_sync (BusType.SESSION); Variant pActive = new Variant.boolean (!bActive); Variant pTuple = new Variant("(sva{sv})", "magnifier", pActive, null); - pConnection.call ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); + pConnection.call.begin ("org.ayatana.indicator.a11y", "/org/ayatana/indicator/a11y", "org.gtk.Actions", "SetState", pTuple, null, DBusCallFlags.NONE, -1, null); } catch (Error pError) { -- cgit v1.2.3 From a0e8568f6759f9df1364ba16255d3de85436f029 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Tue, 8 Apr 2025 18:45:39 +0200 Subject: src/main-window.vala: Fix content_box.margin_right and margin_left --- src/main-window.vala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main-window.vala b/src/main-window.vala index 2b58bd9..176001b 100644 --- a/src/main-window.vala +++ b/src/main-window.vala @@ -133,7 +133,7 @@ public class MainWindow : Gtk.Window if (content_align == "center") { // offset for back button - align.margin_right = greeter.grid_size; + align.margin_end = greeter.grid_size; } align.show (); @@ -252,8 +252,8 @@ public class MainWindow : Gtk.Window if (content_box != null) { var content_align = AGSettings.get_string(AGSettings.KEY_CONTENT_ALIGN); - content_box.margin_left = get_grid_offset (get_allocated_width ()) + (content_align == "left" ? greeter.grid_size : 0); - content_box.margin_right = get_grid_offset (get_allocated_width ()) + (content_align == "right" ? greeter.grid_size : 0); + content_box.margin_start = get_grid_offset (get_allocated_width ()) + (content_align == "left" ? greeter.grid_size : 0); + content_box.margin_end = get_grid_offset (get_allocated_width ()) + (content_align == "right" ? greeter.grid_size : 0); content_box.margin_top = get_grid_offset (get_allocated_height ()); content_box.margin_bottom = get_grid_offset (get_allocated_height ()); } -- cgit v1.2.3 From c2bc2ca75c9bc300e235c145fb6bb459b3ea77a9 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Tue, 8 Apr 2025 18:46:27 +0200 Subject: src/main-window.vala: Drop deprecated Gdk.Screen.get_* functions --- src/main-window.vala | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/main-window.vala b/src/main-window.vala index 176001b..88c6e7f 100644 --- a/src/main-window.vala +++ b/src/main-window.vala @@ -274,6 +274,39 @@ public class MainWindow : Gtk.Window _set_struts (MenubarPositions.TOP, greeter.menubar_height); } + private void getScreenSize (out int nScreenWidth, out int nScreenHeight) + { + Gdk.Display pDisplay = Gdk.Display.get_default (); + int nMonitors = pDisplay.get_n_monitors (); + + if (nMonitors == 0) + { + nScreenWidth = 0; + nScreenHeight = 0; + + return; + } + + int x0 = int.MAX; + int y0 = int.MAX; + int x1 = int.MIN; + int y1 = int.MIN; + + for (int nMonitor = 0; nMonitor < nMonitors; nMonitor++) + { + Gdk.Monitor pMonitor = pDisplay.get_monitor (nMonitor); + Gdk.Rectangle cRectangle = pMonitor.get_geometry (); + + x0 = int.min (x0, cRectangle.x); + y0 = int.min (y0, cRectangle.y); + x1 = int.max (x1, cRectangle.x + cRectangle.width); + y1 = int.max (y1, cRectangle.y + cRectangle.height); + } + + nScreenWidth = x1 - x0; + nScreenHeight = y1 - y0; + } + private void _set_struts (uint position, long menubar_size) { if (!get_realized()) { @@ -292,6 +325,10 @@ public class MainWindow : Gtk.Window /* Subtract (non-scaled) 5px border + 2px extra spacing (to make indicator menus render nicely below menubar) */ menubar_size = menubar_size - 7; + int nScreenWidth = 0; + int nScreenHeight = 0; + getScreenSize (out nScreenWidth, out nScreenHeight); + // Struts dependent on position switch (position) { case MenubarPositions.TOP: @@ -305,13 +342,13 @@ public class MainWindow : Gtk.Window struts[Struts.LEFT_END] = (primary_monitor.y + primary_monitor.height) * scale - 1; break; case MenubarPositions.RIGHT: - struts[Struts.RIGHT] = (menubar_size + screen.get_width() - primary_monitor.x - primary_monitor.width) * scale; + struts[Struts.RIGHT] = (menubar_size + nScreenWidth - primary_monitor.x - primary_monitor.width) * scale; struts[Struts.RIGHT_START] = primary_monitor.y * scale; struts[Struts.RIGHT_END] = (primary_monitor.y + primary_monitor.height) * scale - 1; break; case MenubarPositions.BOTTOM: default: - struts[Struts.BOTTOM] = (menubar_size + screen.get_height() - primary_monitor.y - primary_monitor.height) * scale; + struts[Struts.BOTTOM] = (menubar_size + nScreenHeight - primary_monitor.y - primary_monitor.height) * scale; struts[Struts.BOTTOM_START] = primary_monitor.x * scale; struts[Struts.BOTTOM_END] = (primary_monitor.x + primary_monitor.width) * scale - 1; break; -- cgit v1.2.3 From 88c789a6df9005f9a42b4296d2497173e5ad5279 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Tue, 8 Apr 2025 18:47:38 +0200 Subject: src/arctica-greeter.vala: Drop unused wm_message_pid --- src/arctica-greeter.vala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/arctica-greeter.vala b/src/arctica-greeter.vala index 93c88e2..5eb8a59 100644 --- a/src/arctica-greeter.vala +++ b/src/arctica-greeter.vala @@ -2,7 +2,7 @@ * * Copyright (C) 2011 Canonical Ltd * Copyright (C) 2015-2017 Mike Gabriel - * Copyright (C) 2023-2024 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -1144,7 +1144,6 @@ public class ArcticaGreeter : Object try { string[] argv; - Pid wm_message_pid = 0; Shell.parse_argv ("%s-message disable-keybindings".printf(wm), out argv); -- cgit v1.2.3 From 9153eef0511a125ce769049d8a000977a02698a6 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Tue, 8 Apr 2025 18:48:39 +0200 Subject: src/shutdown-dialog: Fix possible null warning --- src/shutdown-dialog.vala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/shutdown-dialog.vala b/src/shutdown-dialog.vala index d243188..ec565b9 100644 --- a/src/shutdown-dialog.vala +++ b/src/shutdown-dialog.vala @@ -2,7 +2,7 @@ * * Copyright (C) 2013 Canonical Ltd * Copyright (C) 2015,2016 Mike Gabriel - * Copyright (C) 2023 Robert Tari + * Copyright (C) 2023-2025 Robert Tari * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as @@ -306,7 +306,8 @@ public class ShutdownDialog : Gtk.Fixed var focused = pWindow.get_focus (); if ((null != focused) && (focused is DialogButton)) { - (focused as DialogButton).clicked (); + DialogButton pButton = (DialogButton) focused; + pButton.clicked (); } --default_action_time_supplemental; -- cgit v1.2.3