Commit graph

16 commits

Author SHA1 Message Date
Maximiliano Sandoval R
6121bb0a49
input-chooser: Only capture input while visible
Otherwise writing in the dialog would filter it even if the search bar
is not visible.
2023-11-19 20:48:26 +01:00
Maximiliano Sandoval R
769287a59b
input-chooser: Port to AdwWindow 2023-11-19 20:48:26 +01:00
Marco Melorio
acd3e4a9c6 keyboard: Fix "argument discards const qualifier" warning 2023-10-12 10:09:44 +02:00
Michael Catanzaro
fd296004e7 keyboard: Fix criticals when input chooser is destroyed
This fixes the first critical reported in #2616. And the second issue
reported there appears to be a GTK bug, so let's close #2616.

Fixes #2616
2023-08-24 08:16:47 +00:00
Robert Ancell
dd37cafb62 keyboard: Connect signal handlers in swapped form 2023-06-07 09:12:54 +12:00
Maksym Hazevych
08c2e69851 Resolving suggestions 2023-03-29 14:26:55 +13:00
Maksym Hazevych
e00f773b2f Remove unnecessary visibility change 2023-03-29 14:26:55 +13:00
Maksym Hazevych
5b988a6943 Replace all occurrences of 'gtk_widget_hide'
Replace all occurrences of 'gtk_widget_hide(smth)' with
'gtk_widget_set_visible(smth, FALSE)'.
2023-03-29 14:26:55 +13:00
Maksym Hazevych
d831e5cb48 Replace all occurrences of 'gtk_widget_show'
Replace all occurrences of 'gtk_widget_show(smth)' with
'gtk_widget_set_visible(smth, TRUE)'.
2023-03-29 14:26:55 +13:00
Nelson Benítez León
e865b14e3b keyboard: allow going back from CCInputChooser via single click
When adding new input sources, the first dialog shows a list of
languages, when single clicking one item you go to a subdialog
that has a 'go back' item, that item only works if double-clicking
it, but that is unintuitive because if you entered the dialog by
single click you also expect the 'go back' button to work by
single click too.

The subdialog is a GtkListBox configured to be double click,
because it has an 'Accept' header bar button and we don't
really want to activate the subdialog items by single click,
but the 'go back' row is special and as explained before it is
expected to work by single click too.

So this commit adds the required single click handler for the
'go back' rows created in CCInputChooser.

Fixes #1954
2023-02-14 03:24:20 +00:00
Alessandro Bono
19d83d6839 keyboard: Rewrite layout intersection algorithm
The current layout intersection algorithm compares pointers to strings.
It assumes that `gnome_xkb_info_get_layouts_for_country()` and
`gnome_xkb_info_get_layouts_for_language()` will return two GList
containing pointers to the same strings. Looking at libgnome-desktop[1]
it seems like this is the case: given the same layout, the same pointer
to the layout id will be stored in both lists. However, this is an
implementation detail and we should not rely on that.

Rewrite the intersection algorithm in order to compare the strings. While
at it, use a more efficient algorithm: add all the items of the first list
to a set, then iterate over the second list and check if the item is in
the set. If this happens, remove the item from the set and add it to the
intersection list.

Probably the layout lists are not big enough to notice the difference, but
the complexity goes from O(N*M) to O(N+M).

[1] 3c8834af09/libgnome-desktop/gnome-xkb-info.c (L281)
2023-02-10 11:32:05 +00:00
Sundeep Anand
b05990e024 keyboard: country matches should not be shown under a language name.
country_layouts are being appended to the layouts_with_locale which results in less relevant
layout groupings. for example, we if choose Hindi language which is an Indian language,
all Indian language layouts are shown within it - including Tamil, Bangla etc.

furthermore, language_layouts are also getting appended for countries where they may not
belong, for example, English (Ireland) is shown when we search India.

The layouts_with_locale table is filled as union however it yields better
search results if we change that to intersection.

Relates #2114
2023-02-09 14:12:27 +00:00
Felipe Borges
294156c0f9 Drop most uses of deprecated gtk_style_context_add/remove_class
GtkStyleContext will be deprecated in gtk 4.10.
https://docs.gtk.org/gtk4/class.StyleContext.html

This preserves code blocks where additional GtkStyleContext operations
were used, such as gtk_style_context_save/restore.
2023-01-05 18:55:51 +00:00
Christopher Davis
9a2cd1b5d2 keyboard: Don't dim input chooser icons
We generally don't dim icons in rows anymore.
2022-02-13 13:33:25 +00:00
Georges Basile Stavracas Neto
d7e794e7ab keyboard: Port to GTK4
Drop the wm-common insanity.
2021-12-14 22:34:21 -03:00
Ian Douglas Scott
8996ffac88 Move input sources from region panel to keyboard panel 2020-12-18 07:55:41 -08:00
Renamed from panels/region/cc-input-chooser.c (Browse further)