Commit graph

118 commits

Author SHA1 Message Date
Benjamin Berg
7631faa88f region: Explicitly update LC_* even when matching LANG
localed will not update the LC_* variables if they are not given. This
means that should the user switch the formats away from LANG and then
back, they will not be reset appropriately.

Simply always setting the variables even if the match will fix this.
2019-10-17 00:32:34 +00:00
Philip Chimento
412472c16d region: Fix crash in keyboard layout population
The previous code would crash if 'variants' was null and 'layouts' had
more than one element in it.
2019-09-12 18:10:20 +00:00
Michael Catanzaro
a22da99aaf Replace unsafe setlocale() use with uselocale()
setlocale() is not threadsafe except when used only to query the locale
without changing it. Let's use uselocale() instead, which changes the
locale only on the calling thread. Much better.
2019-07-03 17:15:33 -05:00
Georges Basile Stavracas Neto
75f150d5a2 shell: Add position to cc_shell_embed_widget_in_header()
So we can control where the widget should be added to. The
main window only supports left and right positions.

https://gitlab.gnome.org/GNOME/gnome-control-center/issues/528
2019-05-21 12:59:36 -03:00
Robert Ancell
d34bbda386 region: Fix input source options not being applied.
This was broken in a86cf1eca2 (3.32) when the input options dialog was converted
into a GtkPopover. Previously two GSettings objects were used, with one set to
'delay-apply' mode. The input source option didn't apply the changes.

The 'delay-apply' mode is from the original commit d3852fc831, however code was
simplified in b3199dd to only set one setting. This meant that the delay is no
longer necessary.

Fixes #440
2019-04-09 14:14:31 +12:00
Robert Ancell
03f516174d region: Stop input list being scrollable
The new add row should always be visibile and this list is not likely
to contain many rows. The panel is scrollable so this handles this edge case.
2019-02-04 13:56:41 +00:00
Robert Ancell
18007a17c1 region: Make rows reorderable with drag and drop
Drop toolbar - all functionality is now in rows.

This matches the new designs in
https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/region-and-language/region-and-language.png
2019-02-04 13:56:41 +00:00
Robert Ancell
4d5626d066 region: Convert add input button to a row
This matches the new designs in
https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/region-and-language/region-and-language.png
2019-02-04 13:56:41 +00:00
Robert Ancell
a193417b32 region: Reduce size of input rows
This matches the new designs in
https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/region-and-language/region-and-language.png
2019-02-04 13:56:41 +00:00
Robert Ancell
0a70d5ab34 region: Move input settings button inside each row
This matches the new designs in
https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/region-and-language/region-and-language.png
2019-02-04 13:56:41 +00:00
Robert Ancell
7a9d2b83df region: Move show layout button inside each row
This matches the new designs in
https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/region-and-language/region-and-language.png
2019-02-04 13:56:41 +00:00
Robert Ancell
d4683a9ddd region: Move remove button inside each row
This matches the new designs in
https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/region-and-language/region-and-language.png
2019-02-04 13:56:41 +00:00
Robert Ancell
9285c4392e region: Use CcInputRow type in RowData 2019-02-04 13:56:40 +00:00
Robert Ancell
4f6e897b58 region: Use g_signal_connect_object for all signal handlers
This ensures they wont be called when the handling object is destroyed.
Also connect all in "swapped" form for improved readability.
2018-11-05 11:07:58 +00:00
Robert Ancell
9c655bfba0 region: Create classes for input sources 2018-10-24 04:50:29 +00:00
Robert Ancell
1ea0f875ee region: Update CcInputChooser GTK+ code
- Move more code into the .ui file
- Don't save the dialog between runs - it's cheap to generate on demand
- Hold references on data passed to dialog
- Connect signals in "swapped" form
- Use standard naming format for signal callbacks
2018-10-17 22:34:52 +00:00
Robert Ancell
b76baab697 region: Refactor input modification code to be async safe.
The previous code had a number of issues:
- It used a shared 'op' enum value for the operation - a second operation would
  overwrite this.
- It acted on the row selected at the time the operation was requested - this
  could have changed by the time the operation occurred.

Solved by passing all the required data though the async methods.
2018-10-11 22:30:38 +00:00
Robert Ancell
70fe645502 region: Tidy up GtkWidget variables
- Use correct types for each widget
- Put variables together in alphabetical order in the class
- Drop unused IDs
- Rename .ui file to match .c file
2018-10-10 23:04:10 +00:00
Andrea Azzarone
88ca2fcdc4 region: Autodisconnect IBusBus "connected" handler
Use g_signal_connect_object to ensure handler is not run after object is
destroyed.

Fixes: GNOME/gnome-control-center#223
2018-10-08 13:09:10 +01:00
Robert Ancell
a2daee0c7f region: Use GtkTemplate for input chooser dialog 2018-09-19 16:31:47 +02:00
Robert Ancell
5d167f024f region: Simplify placeholder input row
Instead of adding/removing a row, create one in the .ui file and show/hide it.
2018-09-17 09:37:45 +02:00
Robert Ancell
a86cf1eca2 region: Use a GtkPopover instead of GtkDialog for input options
As per design:
https://wiki.gnome.org/Design/SystemSettings/RegionAndLanguage
2018-09-14 15:47:36 +00:00
Robert Ancell
66981da275 region: Make full widget for input rows
The row widgets are not full GtkWidgets. This means they are harder
to understand, use g_object_set_data which looses type safety and
cause the one .c file to be overly large.

Update this code to use a CcInputRow widget that uses GTK+ best
practice.
2018-09-11 10:40:27 +12:00
Robert Ancell
37d02369b7 region: Cancel async permission requests when panel is closed 2018-09-10 15:45:31 +00:00
Robert Ancell
d4340c4efc region: Fix language section not being marked insensitive
This is due to the widget not being extracted from region.ui and was introduced
in 5c418b8983.
2018-09-10 14:55:57 +00:00
Robert Ancell
0bdeb39319 region: Replace tab characters with spaces 2018-09-10 14:49:32 +00:00
Robert Ancell
b718a20713 region: Don't leak GFile objects
Creating the restart file leaked GFile objects. It also stored the path in the
object, which is unnecessary as it can just be generated on demand.

This leak has was introduced when the feature was in
db551f1c5d
2018-09-10 14:43:04 +00:00
Robert Ancell
f036b3a706 region: Remove duplicate cancellable code
There was a GCancellable used for IBus operations that was generated each time
an operation was done. The cancellable was only used to cancel such operations
when the panel is closed. We can just use the shared cancellable for this.
2018-09-10 15:51:53 +12:00
Georges Basile Stavracas Neto
fc29c0c5a8 Revert "region: Cache D-Bus proxy"
This reverts commit 10dfbb526e.
2018-08-27 12:56:20 +00:00
Robert Ancell
148e4c8fd0 common: Use GtkTemplate for the language chooser dialog 2018-07-18 22:39:32 +00:00
Robert Ancell
0f60dd1b71 region: Use GtkTemplate for format chooser dialog 2018-07-14 16:14:57 +00:00
Robert Ancell
556388f373 region: Fix small memory leak
Was introduced in 79e00c3
2018-07-02 21:52:03 +00:00
Robert Ancell
9a7850a7aa region: Move callbacks into .ui file 2018-06-03 00:41:58 +00:00
Georges Basile Stavracas Neto
d357f1de9e region: Remove unused variable 2018-05-30 17:42:07 -03:00
Robert Ancell
5c418b8983 region: Use GtkTemplate 2018-05-29 11:38:39 +12:00
Robert Ancell
5be47a16a5 region: Replace GObject boilerplace with G_DECLARE_TYPE 2018-05-29 11:27:04 +12:00
Robert Ancell
79e00c37b0 region: Use g_auto for variables 2018-05-28 23:09:27 +00:00
Benjamin Berg
c2f601a9d4 Move common panel code from shell/ to panel/common
This creates a new static library called libwidget which the shell links
against.
2018-04-17 15:26:59 +02:00
Georges Basile Stavracas Neto
10dfbb526e region: Cache D-Bus proxy 2018-04-06 22:23:39 -03:00
Allan Day
87568e9250 Harmonize list box row layouts
While it isn't possible, or even advisable, to make all the list
box rows the same height, using a number of standard heights will
make the control center feel more harmoneous.

Adust the height of the list box rows in Color, Date & Time,
Mouse & Touchpad, Network, Privacy, Region & Language, Sharing
and Universal Access. Makes standard rows that contain labels
and/or controls 58px tall. Some other rows, such as those which
contain two lines of text, are allowed to be taller.

https://bugzilla.gnome.org/show_bug.cgi?id=786384
2017-08-20 18:38:48 +02:00
Felipe Borges
db551f1c5d region: Make the "Restart" notification persistent
When the Language is changed in the Region panel, a "Restart"
notification is shown, but if the user closes the window without
acting on the restart session notification, there is no way to
get back to it.

This way we create a temporary file in the g_get_user_runtime_dir ()
directory flagging whether we should present the "Restart"
notification.

https://bugzilla.gnome.org/show_bug.cgi?id=702351
2017-07-10 15:27:34 +02:00
Felipe Borges
79295b6260 region: Drop "restart" in-app notification
This changes are based on the mockups available at
https://wiki.gnome.org/Design/SystemSettings/RegionAndLanguage

https://bugzilla.gnome.org/show_bug.cgi?id=702351
2017-07-10 15:27:34 +02:00
Felipe Borges
a739ebf377 region: Embed "Restart session" button below the Language entry
This change is based on the mockups available at
https://wiki.gnome.org/Design/SystemSettings/RegionAndLanguage

https://bugzilla.gnome.org/show_bug.cgi?id=702351
2017-07-10 15:27:34 +02:00
Mohammed Sadiq
aebf04f6f2 region: Fix memory leak
The returned result of g_variant_get_strv() has to be freed
when no-longer needed

https://bugzilla.gnome.org/show_bug.cgi?id=782047
2017-05-02 12:55:04 +02:00
Felipe Borges
6f51428094 region: Use GtkRevealer instead of GdNotification
GtkRevealer combined with the "app-notification" class is enough
to represent the notification concept nowadays.

https://bugzilla.gnome.org/show_bug.cgi?id=775183
2016-11-29 15:50:50 +01:00
Rui Matos
bbdcaaa039 region: Avoid a crash on panel destruction
GtkListBox might emit the row-selected signal while being destroyed
and our row-selected handler accesses widgets owned by GtkBuilder so,
depending on the order on which the builder destroys its objects, we
could crash on the signal handler when destroying the builder.

Using g_signal_connect_object() avoids this issue by disconnecting us
before our finalize() runs.

https://bugzilla.gnome.org/show_bug.cgi?id=770563
2016-08-30 17:16:39 +02:00
Allan Day
ed34cd7d04 region: improve spacing
The layout of the panel felt constrained and wasn't consistent
with the other panels. More vertical spacing required.

https://bugzilla.gnome.org/show_bug.cgi?id=764645
2016-08-23 15:54:45 +01:00
Cosimo Cecchi
b3199dd641 region: remove handling of current input source GSetting
This is not read anymore by gnome-shell or gnome-settings-daemon, and
there's no point for gnome-control-center to read or write it anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=766846
2016-05-25 11:00:41 -07:00
Cosimo Cecchi
8dbd9ed592 region: don't access priv pointer before checking no error
If the GCancellable is cancelled by the finalize() function, the
callback will still be called potentially with an instance of the
panel that's not valid anymore.
To avoid crashing in that case, only access the priv pointer
when we have no error.

https://bugzilla.gnome.org/show_bug.cgi?id=761846
2016-02-11 20:01:25 +01:00
Jiro Matsuzawa
5ae47f0305 region: Give mnemonic to labelled widgets
https://bugzilla.gnome.org/show_bug.cgi?id=736606
2016-01-18 15:50:20 +01:00