diff options
-rw-r--r-- | src/arctica-greeter.vala | 3 | ||||
-rw-r--r-- | src/greeter-list.vala | 3 | ||||
-rw-r--r-- | src/list-stack.vala | 3 | ||||
-rw-r--r-- | src/main-window.vala | 56 | ||||
-rw-r--r-- | src/prompt-box.vala | 4 | ||||
-rw-r--r-- | src/shutdown-dialog.vala | 5 |
6 files changed, 56 insertions, 18 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 <mike.gabriel@das-netzwerkteam.de> - * 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); 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..88c6e7f 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 (); @@ -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 (); @@ -251,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 ()); } @@ -273,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()) { @@ -291,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: @@ -304,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; @@ -565,7 +603,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) { @@ -589,7 +627,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) { @@ -612,7 +650,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) { @@ -635,7 +673,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) { 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 <mike.gabriel@das-netzwerkteam.de> - * 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(); 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 <mike.gabriel@das-netzwerkteam.de> - * 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; |