Compare commits

..

71 Commits
43.1 ... 42.4

Author SHA1 Message Date
Georges Basile Stavracas Neto
ddfd4343e2 42.4 2022-10-17 23:09:19 -03:00
Alessandro Bono
608aac8fff net-device-ethernet: Don't check device iface name
If the interface name is wrong we shouldn't add the device in the first
place. The device comes from NM. If the interface name is wrong is a bug
at NM level.
2022-10-12 14:46:59 +02:00
Alessandro Bono
6f6fcb463c net-device-ethernet: Prevent double free
Fixes: ee53bfd8b6
2022-10-12 14:46:53 +02:00
Luciano da Silva Ribas
2145e0d8de network: Fixed Network profiles shown on wrong device
Added missing interface name during network profile creation.

Fixes #353
2022-10-12 10:54:27 +02:00
Felipe Borges
19d95a72fa user-accounts: Disconnect fingerprint reading devices when closing dialog
Otherwise when users close and reopen the window they will face a
“Failed to claim fingerprint device Synoptics Sensors: the device is
already claimed by another process” error message.

Fixes #1983
2022-09-23 09:49:17 +02:00
Felipe Borges
9d7d3d1781 printers: Set "use-underline" for Authenticate button in Jobs dialog
The label of the button indicates a mnemonic (_Authenticate).

Fixes #2062
2022-09-19 16:39:48 +02:00
Bastien Nocera
0fbe64d6d9 power: Don't assert if we can't find the widget for a profile
In some cases, it was possible for a profile to be set (directly, or
through a hold) even though it wasn't supported. Don't assert in those
cases.

Closes: #1504
2022-09-16 11:52:48 +02:00
Matthias Clasen
ae9f9df102 background: Allow all images
The code was filtering with a small list of known
image mimetypes, needlessly. Just allow any
image/* mimetypes.

Fixes: #2036
2022-09-16 11:49:31 +02:00
Felipe Borges
8052e1bc89 display: Fix primary monitor selection issue with AdwComboRow
We were connecting to the selected-index property when AdwComboRow
actually has a selected-item property. This is the same as
issue #2025

Fixes #2028
2022-09-12 14:02:04 +02:00
Felipe Borges
55b09def37 power: Fix "Power Button Behavior" setting now applying
The AdwComboRow widget has a selected-item property, while we were
connecting to selected-index (which doesn't exist.

It is likely that selected-index existed in the past in libhandy
or libadwaita and this is a regression during the port to GTK4.

Fixes #2025
2022-09-12 13:57:58 +02:00
Felipe Borges
7ac1301b26 power: Fix blank-screen settings not applying
The AdwComboRow widget has a selected-item property, while we were
connecting to selected-index (which doesn't exist.

It is likely that selected-index existed in the past in libhandy
or libadwaita and this is a regression during the port to GTK4.

Fixes #2025
2022-09-12 13:57:56 +02:00
Goran Vidović
2ca936f0e8 Update Croatian translation 2022-09-10 23:14:07 +00:00
Sveinn í Felli
8a3cc50ed6 Update Icelandic translation 2022-09-05 18:04:35 +00:00
Sveinn í Felli
086aaacab2 Update Icelandic translation 2022-09-05 14:55:56 +00:00
Goran Vidović
210d11b974 Update Croatian translation 2022-09-03 12:20:59 +00:00
Balázs Úr
9cafaf0606 Update Hungarian translation 2022-09-02 23:15:44 +00:00
Marek Černocký
3eba181d7b Updated Czech translation 2022-09-02 22:19:18 +02:00
Goran Vidović
7e726c0c46 Update Croatian translation 2022-08-26 10:45:47 +00:00
Yosef Or Boczko
1f28814b88 Update Hebrew translation 2022-08-22 19:59:59 +00:00
Goran Vidović
00c3fad3b1 Update Croatian translation 2022-08-18 14:48:27 +00:00
Jordi Mas
9c864bf34a Update Catalan translation 2022-08-13 13:55:03 +02:00
Daniel Mustieles
28af0f16d3 Updated Spanish translation 2022-08-08 12:41:35 +02:00
Benjamin Berg
4a20dcb2ed shell: Deactivate old panel before creating new one
We need to cancel internal operations before starting to create a new
panel, otherwise panels might be creating the same object for the cache
in parallel and this is not supported by the object cache.

The alternative to this would be to handle this inside the object
store to allow parallel creation of the same key.

Fixes: #1685
2022-08-04 11:34:30 +02:00
Andy Holmes
a8c1b82ed8 notifications: fix potential null dereference in app_info_get_id()
Although apparently unlikely, `strlen()` is called on the return value
of `desktop_id` instead of `ret`, which may result in a null
dereference.
2022-08-04 11:33:40 +02:00
David King
8ae2d124c7 network: Fix VPN with unescaped ampersand
Much like in commit 47c586a82e for the
wifi panel, fix escaping of titles for VPNs.

https://bugzilla.redhat.com/show_bug.cgi?id=2090996
2022-08-04 11:31:59 +02:00
Mpho Jele
f794b14bc9 user-accounts: Make back button switch to current user or panels list
When the window AdwLeaflet is folded the back button should either
switch to the panels list if the selected user is the current user
or switch to the current user if the selected user is from the
"other users" list
2022-08-04 11:30:33 +02:00
Mpho Jele
51fc40a60e user-accounts: Show the back button when window leaflet folds
Currently the back button is only shown when viewing a user from the
"other users" list.
These changes show the back button when the window AdwLeaflet is
folded or when the selected is from the "other users" list but never
when the window is not folded and the selected user is the current
user.

Fixes: #1719
2022-08-04 11:29:33 +02:00
Hendrik Müller
aad990ed17 wifi: Fix state of "Forget" button in "Known Wi-Fi Networks" dialog
The "Forget" button would only update it's sensitivity after the first
select and deselect, when selecting and deselecting rows in the
"Known Wi-Fi Networks" dialog.
When selecting the first row, it would go from disabled to enabled.
Then deselecting that row would cause the button to go from enabled to
disabled.
Selecting any rows after that would no longer update the sensitivity and
make the dialog essentially useless.

The issue was, that the signals "add" and "remove" where being
expected to be emitted when the connection list updates its rows.
However, neither CcWifiConnectionList nor GtkListBox emit these signals.
The fix was, to emit these two signals at the appropriate locations.
The signals have also been renamed to "add-row" and "remove-row" to
make their purpose more clear.

Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1824
Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1993
2022-08-04 11:27:54 +02:00
Aleksandr Melman
41e2f537e6 Update Russian translation 2022-08-01 13:12:09 +00:00
Zurab Kargareteli
bf0e6ccff2 Update Georgian translation 2022-07-22 13:43:54 +00:00
grumpey
7d884a6e9b background: Restore support for multiple file selection
This was previously implemented under !715 but we regressed during the port to GTK4.

Fixes #889
2022-07-12 09:27:24 +00:00
Jens Alpers
fe26b96b14 sharing: Don't set remote-desktop password entry if pw_generate fails
Fixes #1846
2022-07-11 14:30:47 +02:00
Pauli Virtanen
afadaf363c subprojects: revert accidental libgvc downgrade
Re-do the libgvc version upgrade from 8c84b9f0d3 ("subprojects: Update
libgvc"), which was accidentally reverted in 95de2049c7 ("shell:
Initialise locale early") without comment.
2022-07-07 16:26:28 +02:00
Nathan Follens
ed5693624b Update Dutch translation 2022-07-04 08:40:08 +00:00
Мирослав Николић
cbcb717f68 Update Serbian translation 2022-07-03 02:02:48 +00:00
Robert Ancell
3005d4abc1 Post-release version bump 2022-07-01 11:17:31 +12:00
Robert Ancell
ff5ab8f715 42.3 2022-07-01 11:12:42 +12:00
Gianvito Cavasoli
0151a0ac25 Update Italian translation 2022-06-28 11:14:45 +00:00
Jonas Ådahl
e6cc73fd1d display: Use virtual clone modes when mirroring
These are not real modes, but just as place holders when generating
'mirror' configurations. The clone modes will be just to match the
flag/dimension, while the actual mode applied will be individual for
each monitor.

This allows monitors to have their own refresh rates, which is possible
since a few mutter versions back. This also matches how mutter itself
generates mirror modes when doing so via the key binding.
2022-06-27 19:08:48 +02:00
Jonas Ådahl
b068891cf3 display: Add 'is_preferred()' mode getter 2022-06-27 19:08:48 +02:00
Pablo Correa Gómez
063d89abe8 user-accounts: run-passwd: Redirect stderr to stdout in the child
The previous code was prone to race conditions if the child already
started writing to stdout before the dup2 call happened. This has
been detected in postmarketOS[1] and I also reproduced it in Alpine
Linux. Since passwd writes to stderr and linux-pam to stdout, the
redirection was needed. However, linux-pam was failing with
"Conversation error" since an fprintf(stdout, ...) call wasn't
able to write to an already-closed stdout.

This problem is fixed by setting the redirection in the child setup
function and ignoring the stderr pipe. It also fixes a leak, where
the stderr fd was simply ignored and never closed.

[1] https://gitlab.com/postmarketOS/pmaports/-/issues/1449
2022-06-20 13:45:23 +12:00
Amy
8e6b89dbbd network: prevent crash by disconnecting device
When a device is registered with add_wifi_device, a corresponding signal
is registered for events. The associated remove_wifi_device clears the
associated pages, but does not disconnect the signal. This causes the
assertion NET_IS_DEVICE_WIFI to fail.

This patch corrects this error, resolving #1889 as per the suggested fix
from Benjamin (@bberg).
2022-06-20 13:32:50 +12:00
Maximiliano Sandoval R
a8b62b25e0 ce-page-details: Do not set children for CheckBtn
This widget does not support adding arbitrary children, a warning was
issued when it was disposed for still having children.
2022-06-20 13:25:08 +12:00
Milo Casagrande
b593dc4e64 Update Italian translation 2022-06-14 15:29:27 +00:00
Zurab Kargareteli
0d0504aea1 Update Georgian translation 2022-06-11 09:59:58 +00:00
Bastien Nocera
c928bd14b8 network: Fix Wi-Fi network with "&" in name not appearing
My neighbours' Wi-Fi makes the Wi-Fi panel throw an error:
(gnome-control-center:346639): Gtk-WARNING **: 15:16:21.993: Failed to set text 'Bbox Hugo & Laura' from markup due to error parsing markup: Error on line 1: Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity — escape ampersand as &

Escape the SSID before using it to set the label.


(cherry picked from commit 47c586a82e)
2022-06-10 11:28:52 +00:00
Robert Ancell
107685efdc Post-release version bump 2022-05-27 15:58:45 +12:00
Robert Ancell
0bbcc3b8b3 42.2 2022-05-27 15:53:24 +12:00
lsnow
099948e3ff applications: crash when switching between two apps
The GIcon returned by g_app_info_get_icon() does
not need to be freed.

See: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1817
2022-05-27 15:38:43 +12:00
Jeremy Bicha
c6a111c15e sharing: Turn off RDP gsettings key when turning off RDP
Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1825
2022-05-27 15:38:39 +12:00
Bastien Nocera
3b8fb9c0f3 shell: Initialise locale early
Otherwise glib will make internal calls before setlocale is called:
** (process:1124144): WARNING **: 10:16:58.983: dcgettext("(null)", "", 5) called before setlocale()

 #0  0x00007ffff7c80f77 in g_logv () at /lib64/libglib-2.0.so.0
 #1  0x00007ffff7c81233 in g_log () at /lib64/libglib-2.0.so.0
 #2  0x00007ffff7fbb6c6 in dcgettext (__domainname=<optimized out>, __msgid=0x7ffff7ce6c5a "", __category=<optimized out>) at ../../../../Projects/jhbuild/gettext-pseudolocale/gettext-pseudolocale.c:194
 #3  0x00007ffff7c6478e in _g_dgettext_should_translate () at /lib64/libglib-2.0.so.0
 #4  0x00007ffff7c6484b in g_dgettext () at /lib64/libglib-2.0.so.0
 #5  0x00007ffff7e98974 in g_application_class_intern_init () at /lib64/libgio-2.0.so.0
 #6  0x00007ffff7d9cfb8 in g_type_class_ref () at /lib64/libgobject-2.0.so.0
 #7  0x00007ffff7d9cc95 in g_type_class_ref () at /lib64/libgobject-2.0.so.0
 #8  0x00007ffff7d9cc95 in g_type_class_ref () at /lib64/libgobject-2.0.so.0
 #9  0x00007ffff7d9cc95 in g_type_class_ref () at /lib64/libgobject-2.0.so.0
 #10 0x00007ffff7d8671a in g_object_new_valist () at /lib64/libgobject-2.0.so.0
 #11 0x00007ffff7d867fd in g_object_new () at /lib64/libgobject-2.0.so.0
 #12 0x0000000000449bcc in cc_application_new () at ../../../../Projects/jhbuild/gnome-control-center/shell/cc-application.c:294
 #13 0x0000000000448fa6 in main (argc=1, argv=0x7fffffffd138) at ../../../../Projects/jhbuild/gnome-control-center/shell/main.c:55
2022-05-27 15:38:37 +12:00
Ian Douglas Scott
f185cda349 keyboard: Avoid segfault due to no "data" for custom_shortcut_add_row
Ultimately it would be good to get rid of the use of
`g_object_set_data`/`g_object_get_data` here, but this works for now.

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1373.
2022-05-27 15:38:34 +12:00
Sebastian Keller
af469c99b6 sound: Update theme directory modification time after bell sound changes
The sound plugin of gnome-settings-daemon which flushes the pulseaudio
sample cache does non-recursive monitoring of the sounds directory. If
the custom theme directory used for switching between bell sounds
already exists due to previous bell sound changes, subsequent changes
within that directory will not be noticed. The old bell sample will thus
remain in the cache until the next session restart. Avoid this problem
by manually updating the modification time of the directory.

The alternative solution of adding recursive monitoring to the sound
plugin would require significantly more complicated code as there is no
support for this in glib itself. Given that sound themes never really
caught on and there is an ongoing discussion of removing support for
them entirely, going with this simple solution seems like the better
choice.

Fixes: https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/issues/681
2022-05-27 15:38:31 +12:00
Robert Ancell
60e3f003bb applications: Update snap permissions code to recent changes
Fixes #1845
2022-05-26 11:41:40 +12:00
Christian Kirbach
3b9e94a03f Update German translation 2022-05-24 08:40:18 +00:00
Pawan Chitrakar
79c2c4578b Update Nepali translation 2022-05-22 08:07:28 +00:00
Robert Ancell
44bd8b4d9b applications: Fix CcInfoRow having the wrong parent.
Introduced in 9e38b89752


(cherry picked from commit fc1b750f19)
2022-05-17 00:58:19 +00:00
Jordi Mas
0a64988649 Update Catalan translation 2022-05-16 22:35:55 +02:00
Jordi Mas
c1520aac66 Update Catalan translation 2022-05-16 22:33:47 +02:00
Changwoo Ryu
a23cd79762 Update Korean translation 2022-05-16 12:08:20 +00:00
Felipe Borges
8df3f8c9e5 sharing: Let GtkWindowControls add its own buttons
On the Verify Encryption dialog we were adding a GtkWindowControls
widget with a button child. This is a misunderstanding of the behavior
of GtkWindowControls, which adds its own buttons to the window.

Let's remove our custom close-button and its callback, since the
previous commit disabled this codepath for hiding the dialog.
2022-05-13 15:35:30 +02:00
Felipe Borges
d39ec251af sharing: Set Verify Encryption dialog to "hide-on-close"
This way GtkWindow handles the hiding of the dialog instead of the
callback of the close-button.

Fixes #1832
2022-05-13 15:35:25 +02:00
Cheng-Chia Tseng
4ed667e4e5 Update Chinese (Taiwan) translation 2022-05-12 07:10:34 +00:00
Aurimas Černius
01a42dfea1 Updated Lithuanian translation 2022-05-08 22:02:12 +03:00
Kukuh Syafaat
49f5fd9b78 Update Indonesian translation 2022-05-08 04:59:58 +00:00
Sabri Ünal
d8aaec6a98 Update Turkish translation 2022-05-07 05:56:48 +00:00
Quentin PAGÈS
3481206fa9 Update Occitan translation 2022-05-05 18:04:04 +00:00
Sebastian Keller
da2f0e52c7 background: Make sure the size of the light/dark previews is the same
Without homogeneous columns the difference in the size of the light/dark
labels could cause one preview to be larger.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1810


(cherry picked from commit 5df1519d7d)
2022-05-05 13:31:28 +00:00
Felipe Borges
f8a05fe2dc connection-editor: Unparent child widget on dispose
WirelessSecurityWPAEAP is a GtkWidget owned by the CEPage8021xSecurity
widget, which is supposed to "unparent" it on "dispose" (since parents
hold a reference to child widgets). Instead we were calling
g_clear_object on it.

Fixes #1671
2022-05-04 10:28:31 +02:00
Alexander Shopov
946919c850 Update Bulgarian translation 2022-04-28 12:19:52 +00:00
Danial Behzadi
2d263f5ea9 Update Persian translation 2022-04-27 09:19:02 +00:00
349 changed files with 47740 additions and 100272 deletions

View File

@@ -222,7 +222,6 @@ test:
- build
script:
- dnf -y install setxkbmap
- *environment_information
- *run_tests
@@ -248,7 +247,7 @@ coverage:
BUILD_OPTS: "-Db_coverage=true"
coverage: '/^Lines:.\d+.\d+.(\d+\.\d+\%)/'
only:
- main@GNOME/gnome-control-center
- master@GNOME/gnome-control-center
script:
- *environment_information
@@ -288,7 +287,7 @@ pages:
paths:
- public
only:
- main@GNOME/gnome-control-center
- master@GNOME/gnome-control-center
except:
variables:
@@ -302,7 +301,7 @@ pages:
##
flatpak:
stage: manual
image: quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master
image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master
artifacts:
name: package
paths:
@@ -354,7 +353,7 @@ flatpak:
except:
- tags
- gnome-3-.*
- main@GNOME/gnome-control-center
- master@GNOME/gnome-control-center
# Runs the sanitizers [address, thread, undefined, and memory].

View File

@@ -4,7 +4,7 @@ Not following the communication guidelines [1] will mean your issue or comment
will be removed. Read it carefully before submitting this issue.
[1] https://gitlab.gnome.org/GNOME/gnome-control-center/blob/main/docs/CONTRIBUTING.md#communication-guideline
[1] https://gitlab.gnome.org/GNOME/gnome-control-center/blob/master/docs/CONTRIBUTING.md#communication-guideline
-->

View File

@@ -4,7 +4,7 @@ Not following the communication guidelines [1] will mean your issue or comment
will be removed. Read it carefully before submitting this issue.
[1] https://gitlab.gnome.org/GNOME/gnome-control-center/blob/main/docs/CONTRIBUTING.md#communication-guideline
[1] https://gitlab.gnome.org/GNOME/gnome-control-center/blob/master/docs/CONTRIBUTING.md#communication-guideline
-->

132
NEWS
View File

@@ -1,108 +1,74 @@
================
Version 43.1
Version 42.4
================
- Updated translations
Network
- Fix crashes editing networks
Power
- Don't assert if we can't find the widget for a profile
Printers
- Small visual improvements
================
Version 43.0
================
- Updated translations
================
Version 43.rc
================
- Fix initial AM/PM label value
- Remove no longer used icon
- Select panel only if non-folded when search is canceled
- Updated translations
Appearance
- Allow backgrounds to use any image format
Device Security
- Several UI improvements
Background
- Restore support for multiple file selection
- Allow more image formats
Display
- Fix primary monitor selection
Info
- Improve dark theme support
Keyboard
- Fix activation of input source toggle button
- Improve handling of Shift shortcuts
Network
- Fix network profiles shown on wrong device
- Various crash fixes
Power
- Fix blank screen and power button behavior settings
Printers
- Show empty state after removing last printer
Search
- Fix Move Up and Move Down actions
Sound
- Fix sound alert selection
Wacom
- Better support Wacom Express Key Remote
================
Version 43.beta
================
- Updated translations
Cellular
- Add WWAN 5G connection support
Device Security
- Polish failure messages
- Various style updates
Display
- Support privacy screens
Info
- Show build id in a separate row
Network
- Fix VPN empty state
Sound
- Update default sounds
- Fix blank-screen settings not applying
- Fix "Power Button Behavior" setting not applying
User Accounts
- Fix back button not appearing sometimes
- Disconnect fingerprint reading devices when closing dialog
Sharing
- Don't set remote-desktop password entry if pw_generate fails
- Don't assert if we can't find the widget for a profile
================
Version 43.alpha
Version 42.3
================
- Improved accessibility in various panels
- New Device Security panel
- Updated translations
Date & Time
- Update visual style of the timezone map
Display
- Various visual improvements
- Use virtual clone modes when mirroring
Network
- Prevent crash by disconnecting device.
- Fix Wi-Fi network with "&" in name not appearing.
- Fix warning when panel closed.
================
Version 42.2
================
- Updated translations
Applications
- Fix Snap permissions support failing to compile
- Fix CcInfoRow having the wrong parent
- Fix crash crash when switching between two apps
Background
- Make sure the size of the light/dark previews are the same
Keyboard
- Fix crash resetting all keyboard shortcuts
Network:
- Stop freeze when closing wired connection properties with Escape
Sharing
- Fix close button on Verify Encryption dialog
- Turn off RDP gsettings key when turning off RDP
Shell
- Initialise locale early
Sound
- Remove dog barking sounds
- Update theme correctly so other apps respond to change
================
Version 42.1

View File

@@ -1,6 +1,6 @@
[![Build Status](https://gitlab.gnome.org/GNOME/gnome-control-center/badges/main/pipeline.svg)](https://gitlab.gnome.org/GNOME/gnome-control-center/pipelines)
[![Coverage report](https://gitlab.gnome.org/GNOME/gnome-control-center/badges/main/coverage.svg)](https://gnome.pages.gitlab.gnome.org/gnome-control-center/)
[![License](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://gitlab.gnome.org/GNOME/gnome-control-center/blob/main/COPYING)
[![Build Status](https://gitlab.gnome.org/GNOME/gnome-control-center/badges/master/pipeline.svg)](https://gitlab.gnome.org/GNOME/gnome-control-center/pipelines)
[![Coverage report](https://gitlab.gnome.org/GNOME/gnome-control-center/badges/master/coverage.svg)](https://gnome.pages.gitlab.gnome.org/gnome-control-center/)
[![License](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://gitlab.gnome.org/GNOME/gnome-control-center/blob/master/COPYING)
GNOME Settings
====================
@@ -60,4 +60,4 @@ Note that GNOME Settings Flatpak will only work if you are running
the latest GNOME version in your host system.
[communication-guidelines]: https://gitlab.gnome.org/GNOME/gnome-control-center/blob/main/docs/CONTRIBUTING.md#communication-guidelines
[communication-guidelines]: https://gitlab.gnome.org/GNOME/gnome-control-center/blob/master/docs/CONTRIBUTING.md#communication-guidelines

1
build-aux/meson.build Normal file
View File

@@ -0,0 +1 @@
meson.add_install_script('meson/meson_post_install.py', control_center_datadir)

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env python3
import os
import subprocess
import sys
gsettingsschemadir = os.path.join(sys.argv[1], 'glib-2.0', 'schemas')
icondir = os.path.join(sys.argv[1], 'icons', 'hicolor')
if not os.environ.get('DESTDIR'):
print('Compiling gsettings schemas...')
subprocess.call(['glib-compile-schemas', gsettingsschemadir])
print('Update icon cache...')
subprocess.call(['gtk-update-icon-cache', '-f', '-t', icondir])

View File

@@ -209,4 +209,4 @@ available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
[maintainers]: https://gitlab.gnome.org/GNOME/gnome-control-center/blob/main/docs/MAINTAINERS.md
[maintainers]: https://gitlab.gnome.org/GNOME/gnome-control-center/blob/master/docs/MAINTAINERS.md

View File

@@ -50,7 +50,7 @@ by being explicit. Suggested acceptance phrase:
Urgency commits should never happen, but in case they're needed, they are defined by the following
criteria:
* On stable branches (or `main` right after a stable release)
* On stable branches (or master right after a stable release)
* Symptoms:
* Always OR often reproducible; AND
* Crash; OR
@@ -59,4 +59,4 @@ criteria:
* Quickly followed by an emergency release (at most 2 days after the commit)
[doap]: https://gitlab.gnome.org/GNOME/gnome-control-center/blob/main/gnome-control-center.doap
[doap]: https://gitlab.gnome.org/GNOME/gnome-control-center/blob/master/gnome-control-center.doap

View File

@@ -1,8 +1,8 @@
project(
'gnome-control-center', 'c',
version : '43.1',
version : '42.4',
license : 'GPL2+',
meson_version : '>= 0.57.0'
meson_version : '>= 0.53.0'
)
control_center_prefix = get_option('prefix')
@@ -50,17 +50,6 @@ foreach define: set_defines
config_h.set_quoted(define[0], define[1])
endforeach
distributor_logo = get_option('distributor_logo')
if (distributor_logo != '')
config_h.set_quoted('DISTRIBUTOR_LOGO', distributor_logo,
description: 'Define to absolute path of distributor logo')
dark_mode_distributor_logo = get_option('dark_mode_distributor_logo')
if (dark_mode_distributor_logo != '')
config_h.set_quoted('DARK_MODE_DISTRIBUTOR_LOGO', dark_mode_distributor_logo,
description: 'Define to absolute path of distributor logo for use in dark mode')
endif
endif
# meson does not support octal values, so it must be handled as a
# string. See: https://github.com/mesonbuild/meson/issues/2047
config_h.set('USER_DIR_MODE', '0700',
@@ -115,7 +104,7 @@ pulse_req_version = '>= 2.0'
libadwaita_dep = dependency(
'libadwaita-1',
version: '>= 1.2.alpha',
version: '>= 1.1',
fallback: ['libadwaita', 'libadwaita_dep'],
default_options: ['examples=false', 'introspection=disabled', 'tests=false', 'vapi=false'],
)
@@ -124,7 +113,7 @@ accounts_dep = dependency('accountsservice', version: '>= 0.6.39')
colord_dep = dependency('colord', version: '>= 0.1.34')
gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0', version: '>= 2.23.0')
gio_dep = dependency('gio-2.0')
glib_dep = dependency('glib-2.0', version: '>= 2.70.0')
glib_dep = dependency('glib-2.0', version: '>= 2.68.0')
gnome_desktop_dep = dependency('gnome-desktop-4')
gnome_bg_dep = dependency('gnome-bg-4')
gnome_rr_dep = dependency('gnome-rr-4')
@@ -281,6 +270,7 @@ install_subdir(
top_inc = include_directories('.')
shell_inc = include_directories('shell')
subdir('build-aux')
subdir('data/icons')
subdir('po')
subdir('panels')
@@ -295,11 +285,6 @@ if get_option('documentation')
subdir('man')
endif
gnome.post_install(
glib_compile_schemas: true,
gtk_update_icon_cache: true,
)
configure_file(
output: 'config.h',
configuration: config_h

View File

@@ -7,5 +7,3 @@ option('tracing', type: 'boolean', value: false, description: 'add extra debuggi
option('wayland', type: 'boolean', value: true, description: 'build with Wayland support')
option('profile', type: 'combo', choices: ['default','development'], value: 'default')
option('malcontent', type: 'boolean', value: false, description: 'build with malcontent support')
option('distributor_logo', type: 'string', description: 'absolute path to distributor logo for the About panel')
option('dark_mode_distributor_logo', type: 'string', description: 'absolute path to distributor logo dark mode variant')

View File

@@ -96,7 +96,6 @@ struct _CcApplicationsPanel
CcToggleRow *notification;
CcToggleRow *background;
CcToggleRow *wallpaper;
CcToggleRow *screenshot;
CcToggleRow *sound;
CcInfoRow *no_sound;
CcToggleRow *search;
@@ -516,37 +515,6 @@ wallpaper_cb (CcApplicationsPanel *self)
set_wallpaper_allowed (self, cc_toggle_row_get_allowed (self->wallpaper));
}
/* --- screenshot --- */
static void
get_screenshot_allowed (CcApplicationsPanel *self,
const gchar *app_id,
gboolean *set,
gboolean *allowed)
{
g_auto(GStrv) perms = get_portal_permissions (self, "screenshot", "screenshot", app_id);
*set = perms != NULL;
*allowed = perms == NULL || strcmp (perms[0], "no") != 0;
}
static void
set_screenshot_allowed (CcApplicationsPanel *self,
gboolean allowed)
{
const gchar *perms[2] = { NULL, NULL };
perms[0] = allowed ? "yes" : "no";
set_portal_permissions (self, "screenshot", "screenshot", self->current_app_id, perms);
}
static void
screenshot_cb (CcApplicationsPanel *self)
{
if (self->current_app_id)
set_screenshot_allowed (self, cc_toggle_row_get_allowed (self->screenshot));
}
/* --- shortcuts permissions (flatpak) --- */
static void
@@ -576,7 +544,7 @@ set_shortcuts_allowed (CcApplicationsPanel *self,
/* "GRANTED" and "DENIED" here match the values set by the "inhibit shortcut
* dialog" is GNOME Shell:
* https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/inhibitShortcutsDialog.js
* https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/master/js/ui/inhibitShortcutsDialog.js
*/
perms[0] = granted ? "GRANTED" : "DENIED";
perms[1] = NULL;
@@ -926,11 +894,6 @@ update_integration_section (CcApplicationsPanel *self,
gtk_widget_set_visible (GTK_WIDGET (self->wallpaper), set);
has_any |= set;
get_screenshot_allowed (self, portal_app_id, &set, &allowed);
cc_toggle_row_set_allowed (self->screenshot, allowed);
gtk_widget_set_visible (GTK_WIDGET (self->screenshot), set);
has_any |= set;
disabled = g_settings_get_boolean (self->privacy_settings, "disable-sound-output");
get_device_allowed (self, "speakers", portal_app_id, &set, &allowed);
cc_toggle_row_set_allowed (self->sound, allowed);
@@ -972,7 +935,6 @@ update_integration_section (CcApplicationsPanel *self,
gtk_widget_hide (GTK_WIDGET (self->background));
gtk_widget_hide (GTK_WIDGET (self->wallpaper));
gtk_widget_hide (GTK_WIDGET (self->screenshot));
gtk_widget_hide (GTK_WIDGET (self->sound));
gtk_widget_hide (GTK_WIDGET (self->no_sound));
gtk_widget_hide (GTK_WIDGET (self->camera));
@@ -1248,7 +1210,7 @@ update_total_size (CcApplicationsPanel *self)
g_object_set (self->total, "info", formatted_size, NULL);
/* Translators: '%s' is the formatted size, e.g. "26.2 MB" */
subtitle = g_strdup_printf (_("%s of disk space used."), formatted_size);
subtitle = g_strdup_printf (_("%s of disk space used"), formatted_size);
g_object_set (self->storage, "subtitle", subtitle, NULL);
}
@@ -1782,7 +1744,6 @@ cc_applications_panel_class_init (CcApplicationsPanelClass *klass)
gtk_widget_class_bind_template_child (widget_class, CcApplicationsPanel, notification);
gtk_widget_class_bind_template_child (widget_class, CcApplicationsPanel, background);
gtk_widget_class_bind_template_child (widget_class, CcApplicationsPanel, wallpaper);
gtk_widget_class_bind_template_child (widget_class, CcApplicationsPanel, screenshot);
gtk_widget_class_bind_template_child (widget_class, CcApplicationsPanel, shortcuts);
gtk_widget_class_bind_template_child (widget_class, CcApplicationsPanel, sidebar_box);
gtk_widget_class_bind_template_child (widget_class, CcApplicationsPanel, sidebar_listbox);
@@ -1804,7 +1765,6 @@ cc_applications_panel_class_init (CcApplicationsPanelClass *klass)
gtk_widget_class_bind_template_callback (widget_class, notification_cb);
gtk_widget_class_bind_template_callback (widget_class, background_cb);
gtk_widget_class_bind_template_callback (widget_class, wallpaper_cb);
gtk_widget_class_bind_template_callback (widget_class, screenshot_cb);
gtk_widget_class_bind_template_callback (widget_class, shortcuts_cb);
gtk_widget_class_bind_template_callback (widget_class, privacy_link_cb);
gtk_widget_class_bind_template_callback (widget_class, sound_cb);

View File

@@ -130,18 +130,11 @@
</child>
<child>
<object class="CcToggleRow" id="background">
<property name="title" translatable="yes">Run in Background</property>
<property name="title" translatable="yes">Run in background</property>
<property name="subtitle" translatable="yes">Allow activity when the app is closed.</property>
<signal name="notify::allowed" handler="background_cb" swapped="yes"/>
</object>
</child>
<child>
<object class="CcToggleRow" id="screenshot">
<property name="title" translatable="yes">Screenshots</property>
<property name="subtitle" translatable="yes">Take pictures of the screen at any time.</property>
<signal name="notify::allowed" handler="screenshot_cb" object="CcApplicationsPanel" swapped="yes"/>
</object>
</child>
<child>
<object class="CcToggleRow" id="wallpaper">
<property name="title" translatable="yes">Change Wallpaper</property>

View File

@@ -11,6 +11,6 @@ NoDisplay=true
StartupNotify=true
Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;X-GNOME-AccountSettings;
OnlyShowIn=GNOME;Unity;
# Translators: Search terms to find the Applications panel. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
# Translators: Search terms to find the Privacy panel. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=application;flatpak;permission;setting;
X-GNOME-ControlCenter-HasSidebar=true

View File

@@ -35,32 +35,6 @@ struct _BgWallpapersSource
G_DEFINE_TYPE (BgWallpapersSource, bg_wallpapers_source, BG_TYPE_SOURCE)
static int
sort_func (gconstpointer a,
gconstpointer b,
gpointer user_data)
{
CcBackgroundItem *item_a;
CcBackgroundItem *item_b;
const char *name_a;
const char *name_b;
item_a = (CcBackgroundItem *) a;
item_b = (CcBackgroundItem *) b;
name_a = cc_background_item_get_name (item_a);
name_b = cc_background_item_get_name (item_b);
if (name_a && strcmp (name_a, "Default Background") == 0)
return -1;
if (name_b && strcmp (name_b, "Default Background") == 0)
return 1;
return strcmp (cc_background_item_get_name (item_a),
cc_background_item_get_name (item_b));
}
static void
load_wallpapers (gchar *key,
CcBackgroundItem *item,
@@ -74,7 +48,7 @@ load_wallpapers (gchar *key,
if (deleted)
return;
g_list_store_insert_sorted (store, item, sort_func, NULL);
g_list_store_append (store, item);
}
static void

View File

@@ -157,11 +157,6 @@ create_widget_func (gpointer model_item,
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), check);
if (button)
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), button);
gtk_accessible_update_property (GTK_ACCESSIBLE (overlay),
GTK_ACCESSIBLE_PROPERTY_LABEL,
cc_background_item_get_name (item),
-1);
child = gtk_flow_box_child_new ();
gtk_widget_set_halign (child, GTK_ALIGN_CENTER);

View File

@@ -63,9 +63,9 @@ struct _CcBackgroundPanel
CcBackgroundItem *current_background;
CcBackgroundChooser *background_chooser;
CcBackgroundPreview *default_preview;
CcBackgroundPreview *light_preview;
CcBackgroundPreview *dark_preview;
GtkToggleButton *default_toggle;
GtkToggleButton *light_toggle;
GtkToggleButton *dark_toggle;
};
@@ -84,7 +84,7 @@ load_custom_css (CcBackgroundPanel *self)
}
static void
reload_color_scheme_toggles (CcBackgroundPanel *self)
reload_light_dark_toggles (CcBackgroundPanel *self)
{
GDesktopColorScheme scheme;
@@ -92,7 +92,7 @@ reload_color_scheme_toggles (CcBackgroundPanel *self)
if (scheme == G_DESKTOP_COLOR_SCHEME_DEFAULT)
{
gtk_toggle_button_set_active (self->default_toggle, TRUE);
gtk_toggle_button_set_active (self->light_toggle, TRUE);
}
else if (scheme == G_DESKTOP_COLOR_SCHEME_PREFER_DARK)
{
@@ -100,7 +100,7 @@ reload_color_scheme_toggles (CcBackgroundPanel *self)
}
else
{
gtk_toggle_button_set_active (self->default_toggle, FALSE);
gtk_toggle_button_set_active (self->light_toggle, FALSE);
gtk_toggle_button_set_active (self->dark_toggle, FALSE);
}
}
@@ -149,9 +149,9 @@ set_color_scheme (CcBackgroundPanel *self,
/* Color schemes */
static void
on_color_scheme_toggle_active_cb (CcBackgroundPanel *self)
on_light_dark_toggle_active_cb (CcBackgroundPanel *self)
{
if (gtk_toggle_button_get_active (self->default_toggle))
if (gtk_toggle_button_get_active (self->light_toggle))
set_color_scheme (self, G_DESKTOP_COLOR_SCHEME_DEFAULT);
else if (gtk_toggle_button_get_active (self->dark_toggle))
set_color_scheme (self, G_DESKTOP_COLOR_SCHEME_PREFER_DARK);
@@ -182,7 +182,7 @@ update_preview (CcBackgroundPanel *panel)
CcBackgroundItem *current_background;
current_background = panel->current_background;
cc_background_preview_set_item (panel->default_preview, current_background);
cc_background_preview_set_item (panel->light_preview, current_background);
cc_background_preview_set_item (panel->dark_preview, current_background);
}
@@ -389,12 +389,12 @@ cc_background_panel_class_init (CcBackgroundPanelClass *klass)
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/background/cc-background-panel.ui");
gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, background_chooser);
gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, default_preview);
gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, light_preview);
gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, dark_preview);
gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, default_toggle);
gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, light_toggle);
gtk_widget_class_bind_template_child (widget_class, CcBackgroundPanel, dark_toggle);
gtk_widget_class_bind_template_callback (widget_class, on_color_scheme_toggle_active_cb);
gtk_widget_class_bind_template_callback (widget_class, on_light_dark_toggle_active_cb);
gtk_widget_class_bind_template_callback (widget_class, on_chooser_background_chosen_cb);
gtk_widget_class_bind_template_callback (widget_class, on_add_picture_button_clicked_cb);
}
@@ -433,11 +433,11 @@ cc_background_panel_init (CcBackgroundPanel *panel)
g_signal_connect_object (panel->settings, "changed", G_CALLBACK (on_settings_changed), panel, G_CONNECT_SWAPPED);
/* Interface settings */
reload_color_scheme_toggles (panel);
reload_light_dark_toggles (panel);
g_signal_connect_object (panel->interface_settings,
"changed::" INTERFACE_COLOR_SCHEME_KEY,
G_CALLBACK (reload_color_scheme_toggles),
G_CALLBACK (reload_light_dark_toggles),
panel,
G_CONNECT_SWAPPED);

View File

@@ -27,13 +27,10 @@
<property name="margin-bottom">12</property>
<property name="hexpand">True</property>
<child>
<object class="GtkToggleButton" id="default_toggle">
<accessibility>
<relation name="labelled-by">default_label</relation>
</accessibility>
<signal name="notify::active" handler="on_color_scheme_toggle_active_cb" swapped="true"/>
<object class="GtkToggleButton" id="light_toggle">
<signal name="notify::active" handler="on_light_dark_toggle_active_cb" swapped="true"/>
<child>
<object class="CcBackgroundPreview" id="default_preview"/>
<object class="CcBackgroundPreview" id="light_preview"/>
</child>
<style>
<class name="background-preview-button"/>
@@ -45,8 +42,8 @@
</object>
</child>
<child>
<object class="GtkLabel" id="default_label">
<property name="label" translatable="yes">Default</property>
<object class="GtkLabel">
<property name="label" translatable="yes">Light</property>
<layout>
<property name="column">0</property>
<property name="row">1</property>
@@ -55,11 +52,8 @@
</child>
<child>
<object class="GtkToggleButton" id="dark_toggle">
<property name="group">default_toggle</property>
<accessibility>
<relation name="labelled-by">dark_label</relation>
</accessibility>
<signal name="notify::active" handler="on_color_scheme_toggle_active_cb" swapped="true"/>
<property name="group">light_toggle</property>
<signal name="notify::active" handler="on_light_dark_toggle_active_cb" swapped="true"/>
<child>
<object class="CcBackgroundPreview" id="dark_preview">
<property name="is-dark">True</property>
@@ -75,7 +69,7 @@
</object>
</child>
<child>
<object class="GtkLabel" id="dark_label">
<object class="GtkLabel">
<property name="label" translatable="yes">Dark</property>
<layout>
<property name="column">1</property>

View File

@@ -11,4 +11,4 @@ StartupNotify=true
Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;X-GNOME-PersonalizationSettings;
OnlyShowIn=GNOME;
# Translators: Search terms to find the Appearance panel. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=Background;Wallpaper;Screen;Desktop;Style;Light;Dark;Appearance;
Keywords=Background;Wallpaper;Screen;Desktop;Style;Light;Dark;

View File

@@ -12,6 +12,7 @@ background-preview .window {
background-preview .window .header-bar {
min-height: 15px;
box-shadow: inset 0 -1px @borders;
}
background-preview .window.light {
@@ -19,10 +20,6 @@ background-preview .window.light {
color: alpha(black, .8);
}
background-preview .window.light .header-bar {
box-shadow: inset 0 -1px alpha(black, .07);
}
background-preview .window.front.light .header-bar {
background-color: #ebebeb;
}
@@ -32,10 +29,6 @@ background-preview .window.dark {
color: white;
}
background-preview .window.dark .header-bar {
box-shadow: inset 0 -1px alpha(black, .36);
}
background-preview .window.front.dark .header-bar {
background-color: #303030;
}

View File

@@ -117,8 +117,8 @@ class GccDBusTestCase(DBusTestCase):
adapter.UpdateProperties('org.bluez.Adapter1',
{'Powered': dbus.Boolean(self.hci0_powered, variant_level=1)})
self.devices = []
self.add_device('hci0', '22:33:44:55:66:77', "Bastienʼs mouse", True, 0x580, 'input-mouse')
self.add_device('hci0', '22:33:44:55:66:78', 'Bloutouf keyboard & keys', True, 0x540, 'input-keyboard')
self.add_device('hci0', '22:33:44:55:66:77', "Bastien's mouse", True, 0x580, 'input-mouse')
self.add_device('hci0', '22:33:44:55:66:78', 'Bloutouf keyboard', True, 0x540, 'input-keyboard')
self.add_device('hci0', '60:8B:0E:55:66:79', 'iPhoone 19S', True, 0x20C, 'phone')
# Uncategorised audio device
self.add_device('hci0', '22:33:44:55:66:79', 'MEGA Speakers', True, 0x200400, 'audio-card')

View File

@@ -7,9 +7,6 @@
<child>
<object class="GtkSwitch" id="enable_switch">
<property name="valign">center</property>
<accessibility>
<property name="label" translatable="yes">Enable</property>
</accessibility>
<signal name="state-set" handler="enable_switch_state_set_cb" object="CcBluetoothPanel" swapped="yes"/>
</object>
</child>

View File

@@ -4,9 +4,6 @@
<child type="titlebar-end">
<object class="GtkSwitch" id="main_switch">
<accessibility>
<property name="label" translatable="yes">Enable</property>
</accessibility>
<property name="valign">center</property>
</object>
</child>

View File

@@ -15,5 +15,5 @@ X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-control-center
X-GNOME-Bugzilla-Component=privacy
X-GNOME-Bugzilla-Version=@VERSION@
# Translators: Search terms to find the Camera panel. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=camera;photos;video;webcam;lock;private;privacy;
# Translators: Search terms to find the Privacy panel. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=screen;lock;diagnostics;crash;private;recent;temporary;tmp;index;name;network;identity;

View File

@@ -603,6 +603,96 @@ cc_color_calibrate_cancel (CcColorCalibrate *calibrate)
g_main_loop_quit (calibrate->loop);
}
static gboolean
cc_color_calibrate_move_and_resize_window (GtkWindow *window,
CdDevice *device,
GError **error)
{
g_autoptr(GListModel) monitors = NULL;
g_autoptr(GdkMonitor) monitor = NULL;
const gchar *xrandr_name;
gboolean ret = TRUE;
GdkRectangle rect;
GdkDisplay *display;
gint i;
gint monitor_num = -1;
gint num_monitors;
/* find the monitor num of the device output */
display = gdk_display_get_default ();
monitors = gdk_display_get_monitors (display);
num_monitors = g_list_model_get_n_items (monitors);
xrandr_name = cd_device_get_metadata_item (device, CD_DEVICE_METADATA_XRANDR_NAME);
for (i = 0; i < num_monitors; i++)
{
g_autoptr(GdkMonitor) m = NULL;
const gchar *plug_name;
m = g_list_model_get_item (monitors, i);
plug_name = gdk_monitor_get_model (m);
if (g_strcmp0 (plug_name, xrandr_name) == 0)
monitor_num = i;
}
if (monitor_num == -1)
{
ret = FALSE;
g_set_error (error,
CD_SESSION_ERROR,
CD_SESSION_ERROR_INTERNAL,
"failed to find output %s",
xrandr_name);
goto out;
}
/* move the window, and set it to the right size */
monitor = g_list_model_get_item (monitors, monitor_num);
gdk_monitor_get_geometry (monitor, &rect);
g_debug ("Setting window to %ix%i with size %ix%i",
rect.x, rect.y, rect.width, rect.height);
out:
return ret;
}
#if 0
static void
cc_color_calibrate_window_realize_cb (CcColorCalibrate *self)
{
GtkWidget *widget;
widget = GTK_WIDGET (gtk_builder_get_object (self->builder,
"dialog_calibrate"));
gtk_window_fullscreen (GTK_WINDOW (widget));
gtk_window_maximize (GTK_WINDOW (widget));
}
static gboolean
cc_color_calibrate_window_state_cb (CcColorCalibrate *calibrate,
GdkEvent *event)
{
gboolean ret;
g_autoptr(GError) error = NULL;
GdkEventWindowState *event_state = (GdkEventWindowState *) event;
GtkWindow *window;
window = GTK_WINDOW (gtk_builder_get_object (calibrate->builder,
"dialog_calibrate"));
/* check event */
if (event->type != GDK_WINDOW_STATE)
return TRUE;
if (event_state->changed_mask != GDK_WINDOW_STATE_FULLSCREEN)
return TRUE;
/* resize to the correct screen */
ret = cc_color_calibrate_move_and_resize_window (window,
calibrate->device,
&error);
if (!ret)
g_warning ("Failed to resize window: %s", error->message);
return TRUE;
}
#endif
static void
cc_color_calibrate_button_done_cb (CcColorCalibrate *calibrate)
{
@@ -899,6 +989,14 @@ cc_color_calibrate_start (CcColorCalibrate *calibrate,
return TRUE;
}
static gboolean
cc_color_calibrate_delete_event_cb (CcColorCalibrate *calibrate)
{
/* do not destroy the window */
cc_color_calibrate_cancel (calibrate);
return TRUE;
}
static void
cc_color_calibrate_finalize (GObject *object)
{
@@ -981,6 +1079,19 @@ cc_color_calibrate_init (CcColorCalibrate *calibrate)
/* setup the specialist calibration window */
window = GTK_WINDOW (gtk_builder_get_object (calibrate->builder,
"dialog_calibrate"));
/*
g_signal_connect_object (window, "draw",
G_CALLBACK (cc_color_calibrate_alpha_window_draw), calibrate, G_CONNECT_SWAPPED);
g_signal_connect_object (window, "realize",
G_CALLBACK (cc_color_calibrate_window_realize_cb), calibrate, G_CONNECT_SWAPPED);
g_signal_connect_object (window, "window-state-event",
G_CALLBACK (cc_color_calibrate_window_state_cb), calibrate, G_CONNECT_SWAPPED);
g_signal_connect_object (window, "delete-event",
G_CALLBACK (cc_color_calibrate_delete_event_cb), calibrate, G_CONNECT_SWAPPED);
cc_color_calibrate_alpha_screen_changed_cb (calibrate);
g_signal_connect_object (window, "screen-changed",
G_CALLBACK (cc_color_calibrate_alpha_screen_changed_cb), calibrate, G_CONNECT_SWAPPED);
*/
calibrate->window = window;
}

View File

@@ -112,17 +112,9 @@ cc_language_row_new (const gchar *locale_id)
self->language_local = get_language_label (language_code, modifier, NULL);
gtk_label_set_label (self->language_label, self->language);
if (country_code == NULL)
{
self->country = NULL;
self->country_local = NULL;
}
else
{
self->country = gnome_get_country_from_code (country_code, locale_id);
self->country_local = gnome_get_country_from_code (country_code, NULL);
gtk_label_set_label (self->country_label, self->country);
}
self->country = gnome_get_country_from_code (country_code, locale_id);
self->country_local = gnome_get_country_from_code (country_code, NULL);
gtk_label_set_label (self->country_label, self->country);
return self;
}

View File

@@ -27,7 +27,6 @@
<child>
<object class="GtkLabel" id="title">
<property name="halign">start</property>
<property name="wrap">True</property>
<!-- Actual string set in code -->
<property name="label"></property>
<attributes>
@@ -38,7 +37,6 @@
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="wrap">True</property>
<property name="label" translatable="yes">Some settings must be unlocked before they can be changed.</property>
</object>
</child>
@@ -57,7 +55,6 @@
<object class="GtkLockButton" id="lock_button">
<property name="receives-default">True</property>
<property name="label" translatable="yes">Unlock…</property>
<property name="valign">GTK_ALIGN_CENTER</property>
</object>
</child>
</object>

View File

@@ -108,7 +108,6 @@ time_editor_time_changed_cb (CcTimeEditor *self)
{
g_assert (CC_IS_TIME_EDITOR (self));
time_editor_clock_changed_cb (self);
g_signal_emit (self, signals[TIME_CHANGED], 0);
}

View File

@@ -568,8 +568,6 @@ cc_time_entry_set_time (CcTimeEntry *self,
self->minute = CLAMP (minute, 0, 59);
cc_time_entry_set_am_pm (self, is_am_pm);
g_signal_emit (self, signals[TIME_CHANGED], 0);
time_entry_fill_time (self);
}

View File

@@ -168,9 +168,6 @@
<child>
<object class="GtkSwitch" id="network_time_switch">
<property name="valign">center</property>
<accessibility>
<property name="label" translatable="yes">Enable</property>
</accessibility>
</object>
</child>
</object>
@@ -208,9 +205,6 @@
<child>
<object class="GtkSwitch" id="auto_timezone_switch">
<property name="valign">center</property>
<accessibility>
<property name="label" translatable="yes">Enabled</property>
</accessibility>
</object>
</child>
</object>

View File

@@ -48,8 +48,11 @@ struct _CcTimezoneMap
GdkTexture *orig_background_dim;
GdkTexture *background;
GdkTexture *color_map;
GdkTexture *pin;
gdouble selected_offset;
TzDB *tzdb;
TzLocation *location;
@@ -82,6 +85,7 @@ cc_timezone_map_dispose (GObject *object)
{
CcTimezoneMap *self = CC_TIMEZONE_MAP (object);
g_clear_object (&self->color_map);
g_clear_object (&self->orig_background);
g_clear_object (&self->orig_background_dim);
g_clear_object (&self->background);
@@ -282,8 +286,12 @@ cc_timezone_map_snapshot (GtkWidget *widget,
GtkSnapshot *snapshot)
{
CcTimezoneMap *map = CC_TIMEZONE_MAP (widget);
g_autoptr(GdkTexture) orig_highlight = NULL;
g_autofree gchar *file = NULL;
g_autoptr(GError) err = NULL;
gdouble pointx, pointy;
gint width, height;
char buf[16];
width = gtk_widget_get_width (widget);
height = gtk_widget_get_height (widget);
@@ -293,6 +301,35 @@ cc_timezone_map_snapshot (GtkWidget *widget,
map->background,
&GRAPHENE_RECT_INIT (0, 0, width, height));
/* paint highlight */
if (gtk_widget_is_sensitive (widget))
{
file = g_strdup_printf (DATETIME_RESOURCE_PATH "/timezone_%s.png",
g_ascii_formatd (buf, sizeof (buf),
"%g", map->selected_offset));
}
else
{
file = g_strdup_printf (DATETIME_RESOURCE_PATH "/timezone_%s_dim.png",
g_ascii_formatd (buf, sizeof (buf),
"%g", map->selected_offset));
}
orig_highlight = texture_from_resource (file, &err);
if (!orig_highlight)
{
g_warning ("Could not load highlight: %s",
(err) ? err->message : "Unknown Error");
}
else
{
gtk_snapshot_append_texture (snapshot,
orig_highlight,
&GRAPHENE_RECT_INIT (0, 0, width, height));
}
if (map->location)
{
pointx = convert_longitude_to_x (map->location->longitude, width);
@@ -389,6 +426,8 @@ set_location (CcTimezoneMap *map,
info = tz_info_from_location (map->location);
map->selected_offset = tz_location_get_base_utc_offset (map->location)
/ (60.0*60.0);
gtk_widget_queue_draw (GTK_WIDGET (map));
g_signal_emit (map, signals[LOCATION_CHANGED], 0, map->location);
@@ -460,6 +499,14 @@ cc_timezone_map_init (CcTimezoneMap *map)
g_clear_error (&err);
}
map->color_map = texture_from_resource (DATETIME_RESOURCE_PATH "/cc.png", &err);
if (!map->color_map)
{
g_warning ("Could not load background image: %s",
(err) ? err->message : "Unknown error");
g_clear_error (&err);
}
map->pin = texture_from_resource (DATETIME_RESOURCE_PATH "/pin.png", &err);
if (!map->pin)
{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 94 KiB

BIN
panels/datetime/data/cc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

After

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 995 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 868 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Some files were not shown because too many files have changed in this diff Show More