From e9d6631159c17f3625f60e778a4c05574a53db2f Mon Sep 17 00:00:00 2001 From: Dorota Czaplejewicz Date: Wed, 18 Dec 2019 19:56:02 +0000 Subject: [PATCH] tools: Add GTK's INHIBIT_OSK flag to the entry tester --- tests/entry.py | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/tests/entry.py b/tests/entry.py index 235a7931..5064a4fa 100644 --- a/tests/entry.py +++ b/tests/entry.py @@ -12,6 +12,19 @@ except AttributeError: print("Terminal purpose not available on this GTK version", file=sys.stderr) terminal = [] +def new_grid(items, set_type): + grid = Gtk.Grid(orientation='vertical', column_spacing=8, row_spacing=8) + i = 0 + for text, value in items: + l = Gtk.Label(label=text) + e = Gtk.Entry(hexpand=True) + set_type(e, value) + grid.attach(l, 0, i, 1, 1) + grid.attach(e, 1, i, 1, 1) + i += 1 + return grid + + class App(Gtk.Application): purposes = [ @@ -27,20 +40,23 @@ class App(Gtk.Application): ("PIN", Gtk.InputPurpose.PIN), ] + terminal + hints = [ + ("OSK provided", Gtk.InputHints.INHIBIT_OSK) + ] + def do_activate(self): w = Gtk.ApplicationWindow(application=self) - grid = Gtk.Grid(orientation='vertical', column_spacing=8, row_spacing=8) - i = 0 - for text, purpose in self.purposes: + notebook = Gtk.Notebook() + def add_purpose(entry, purpose): + entry.set_input_purpose(purpose) + def add_hint(entry, hint): + entry.set_input_hints(hint) + purpose_grid = new_grid(self.purposes, add_purpose) + hint_grid = new_grid(self.hints, add_hint) - l = Gtk.Label(label=text) - e = Gtk.Entry(hexpand=True) - e.set_input_purpose(purpose) - grid.attach(l, 0, i, 1, 1) - grid.attach(e, 1, i, 1, 1) - i += 1 - - w.add(grid) + notebook.append_page(purpose_grid, Gtk.Label(label="Purposes")) + notebook.append_page(hint_grid, Gtk.Label(label="Hints")) + w.add(notebook) w.show_all() app = App()