From 68514d83c1aaa0228b65d7c39164616e67a016bd Mon Sep 17 00:00:00 2001 From: ian-jeong Date: Mon, 29 Sep 2025 13:41:05 +0900 Subject: [PATCH] fix: center labels and remove buggy entry resizing logic --- lib/solaar/ui/rule_actions.py | 15 +++++++++++---- lib/solaar/ui/rule_conditions.py | 20 ++++++++++---------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/lib/solaar/ui/rule_actions.py b/lib/solaar/ui/rule_actions.py index 22ca0a02..1878bf60 100644 --- a/lib/solaar/ui/rule_actions.py +++ b/lib/solaar/ui/rule_actions.py @@ -53,6 +53,7 @@ class KeyPressUI(ActionUI): self.label = Gtk.Label( label=_("Simulate a chorded key click or depress or release.\nOn Wayland requires write access to /dev/uinput."), halign=Gtk.Align.CENTER, + justify=Gtk.Justification.CENTER, ) self.widgets[self.label] = (0, 0, 5, 1) self.del_btns = [] @@ -72,6 +73,7 @@ class KeyPressUI(ActionUI): def _create_field(self): field_entry = CompletionEntry(self.KEY_NAMES, halign=Gtk.Align.CENTER, valign=Gtk.Align.END, hexpand=True) field_entry.connect(GtkSignal.CHANGED.value, self._on_update) + field_entry.set_size_request(250, -1) self.fields.append(field_entry) self.widgets[field_entry] = (len(self.fields) - 1, 1, 1, 1) return field_entry @@ -119,7 +121,6 @@ class KeyPressUI(ActionUI): field_entry = self.fields[i] with self.ignore_changes(): field_entry.set_text(component.key_names[i]) - field_entry.set_size_request(int(0.3 * self.panel.get_toplevel().get_size()[0]), 0) field_entry.show_all() self.del_btns[i].show() for i in range(n, len(self.fields)): @@ -149,7 +150,9 @@ class MouseScrollUI(ActionUI): def create_widgets(self): self.widgets = {} self.label = Gtk.Label( - label=_("Simulate a mouse scroll.\nOn Wayland requires write access to /dev/uinput."), halign=Gtk.Align.CENTER + label=_("Simulate a mouse scroll.\nOn Wayland requires write access to /dev/uinput."), + halign=Gtk.Align.CENTER, + justify=Gtk.Justification.CENTER, ) self.widgets[self.label] = (0, 0, 4, 1) self.label_x = Gtk.Label(label="x", halign=Gtk.Align.END, valign=Gtk.Align.END, hexpand=True) @@ -205,7 +208,9 @@ class MouseClickUI(ActionUI): def create_widgets(self): self.widgets = {} self.label = Gtk.Label( - label=_("Simulate a mouse click.\nOn Wayland requires write access to /dev/uinput."), halign=Gtk.Align.CENTER + label=_("Simulate a mouse click.\nOn Wayland requires write access to /dev/uinput."), + halign=Gtk.Align.CENTER, + justify=Gtk.Justification.CENTER, ) self.widgets[self.label] = (0, 0, 4, 1) self.label_b = Gtk.Label(label=_("Button"), halign=Gtk.Align.END, valign=Gtk.Align.CENTER, hexpand=True) @@ -258,7 +263,9 @@ class ExecuteUI(ActionUI): def create_widgets(self): self.widgets = {} - self.label = Gtk.Label(label=_("Execute a command with arguments."), halign=Gtk.Align.CENTER) + self.label = Gtk.Label( + label=_("Execute a command with arguments."), halign=Gtk.Align.CENTER, justify=Gtk.Justification.CENTER + ) self.widgets[self.label] = (0, 0, 5, 1) self.fields = [] self.add_btn = Gtk.Button(label=_("Add argument"), halign=Gtk.Align.CENTER, valign=Gtk.Align.END, hexpand=True) diff --git a/lib/solaar/ui/rule_conditions.py b/lib/solaar/ui/rule_conditions.py index 600dcb3a..1f88c58d 100644 --- a/lib/solaar/ui/rule_conditions.py +++ b/lib/solaar/ui/rule_conditions.py @@ -48,7 +48,7 @@ class ProcessUI(ConditionUI): def create_widgets(self): self.widgets = {} - self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True) + self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True, justify=Gtk.Justification.CENTER) self.label.set_text(_("X11 active process. For use in X11 only.")) self.widgets[self.label] = (0, 0, 1, 1) self.field = Gtk.Entry(halign=Gtk.Align.CENTER, valign=Gtk.Align.CENTER, hexpand=True) @@ -78,7 +78,7 @@ class MouseProcessUI(ConditionUI): def create_widgets(self): self.widgets = {} - self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True) + self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True, justify=Gtk.Justification.CENTER) self.label.set_text(_("X11 mouse process. For use in X11 only.")) self.widgets[self.label] = (0, 0, 1, 1) self.field = Gtk.Entry(halign=Gtk.Align.CENTER, valign=Gtk.Align.CENTER, hexpand=True) @@ -119,7 +119,7 @@ class FeatureUI(ConditionUI): def create_widgets(self): self.widgets = {} - self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True) + self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True, justify=Gtk.Justification.CENTER) self.label.set_text(_("Feature name of notification triggering rule processing.")) self.widgets[self.label] = (0, 0, 1, 1) self.field = Gtk.ComboBoxText.new_with_entry() @@ -165,7 +165,7 @@ class ReportUI(ConditionUI): def create_widgets(self): self.widgets = {} - self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True) + self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True, justify=Gtk.Justification.CENTER) self.label.set_text(_("Report number of notification triggering rule processing.")) self.widgets[self.label] = (0, 0, 1, 1) self.field = Gtk.SpinButton.new_with_range(self.MIN_VALUE, self.MAX_VALUE, 1) @@ -197,7 +197,7 @@ class ModifiersUI(ConditionUI): def create_widgets(self): self.widgets = {} - self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True) + self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True, justify=Gtk.Justification.CENTER) self.label.set_text(_("Active keyboard modifiers. Not always available in Wayland.")) self.widgets[self.label] = (0, 0, 5, 1) self.labels = {} @@ -235,7 +235,7 @@ class KeyUI(ConditionUI): def create_widgets(self): self.widgets = {} - self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True) + self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True, justify=Gtk.Justification.CENTER) self.label.set_text( _( "Diverted key or button depressed or released.\n" @@ -287,7 +287,7 @@ class KeyIsDownUI(ConditionUI): def create_widgets(self): self.widgets = {} - self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True) + self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True, justify=Gtk.Justification.CENTER) self.label.set_text( _( "Diverted key or button is currently down.\n" @@ -327,7 +327,7 @@ class TestUI(ConditionUI): def create_widgets(self): self.widgets = {} - self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True) + self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True, justify=Gtk.Justification.CENTER) self.label.set_text(_("Test condition on notification triggering rule processing.")) self.widgets[self.label] = (0, 0, 4, 1) lbl = Gtk.Label(label=_("Test"), halign=Gtk.Align.CENTER, valign=Gtk.Align.END, hexpand=False, vexpand=False) @@ -433,7 +433,7 @@ class TestBytesUI(ConditionUI): self.fields = {} self.field_labels = {} self.widgets = {} - self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True) + self.label = Gtk.Label(valign=Gtk.Align.CENTER, hexpand=True, justify=Gtk.Justification.CENTER) self.label.set_text(_("Bit or range test on bytes in notification message triggering rule processing.")) self.widgets[self.label] = (0, 0, 5, 1) col = 0 @@ -534,6 +534,7 @@ class MouseGestureUI(ConditionUI): self.label = Gtk.Label( label=_("Mouse gesture with optional initiating button followed by zero or more mouse movements."), halign=Gtk.Align.CENTER, + justify=Gtk.Justification.CENTER, ) self.widgets[self.label] = (0, 0, 5, 1) self.del_btns = [] @@ -592,7 +593,6 @@ class MouseGestureUI(ConditionUI): field = self.fields[i] with self.ignore_changes(): field.get_child().set_text(component.movements[i]) - field.set_size_request(int(0.3 * self.panel.get_toplevel().get_size()[0]), 0) field.show_all() self.del_btns[i].show() for i in range(n, len(self.fields)):