Merge lp:~darkxst/gnome-control-center/vanilla3.8 into lp:~ubuntu-desktop/gnome-control-center/ubuntu

Proposed by Tim Lunn
Status: Merged
Merged at revision: 642
Proposed branch: lp:~darkxst/gnome-control-center/vanilla3.8
Merge into: lp:~ubuntu-desktop/gnome-control-center/ubuntu
Diff against target: 10741 lines (+782/-7168)
75 files modified
debian/changelog (+54/-1)
debian/control (+33/-13)
debian/control.in (+20/-11)
debian/gnome-control-center-data.install (+0/-5)
debian/gnome-control-center.install (+1/-2)
debian/libgnome-control-center1.symbols (+6/-0)
debian/patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch (+0/-86)
debian/patches/0001-rfkill-glib-Don-t-use-g_assert_not_reached-in-type_t.patch (+0/-27)
debian/patches/02_new_goa.patch (+46/-0)
debian/patches/05_run_update_manager.patch (+0/-13)
debian/patches/06_handle_passwd_with_ldap.patch (+0/-19)
debian/patches/11_power-configure_lid_action.patch (+0/-149)
debian/patches/12_add_never_turn_screen_off.patch (+0/-29)
debian/patches/51_unity_options_in_display_panel.patch (+0/-592)
debian/patches/52_region_language.patch (+0/-652)
debian/patches/53_use_ubuntu_help.patch (+0/-282)
debian/patches/54_enable_alt_tap_in_shortcut.patch (+0/-58)
debian/patches/55_user_accounts_hide_controls.patch (+0/-148)
debian/patches/56_use_ubuntu_info_branding.patch (+0/-26)
debian/patches/58_hide_gdm_notifications.patch (+0/-17)
debian/patches/58_ubuntu_icon_views_redesign.patch (+0/-70)
debian/patches/59_install_gcm_components_on_demand.patch (+0/-231)
debian/patches/60_ubuntu_nav_bar.patch (+0/-406)
debian/patches/61_workaround_online_account.patch (+0/-16)
debian/patches/64_restore_terminal_keyboard_shortcut.patch (+0/-13)
debian/patches/90_force_fallback.patch (+0/-22)
debian/patches/91_unity_no_printing_panel.patch (+0/-12)
debian/patches/92_ubuntu_system_proxy.patch (+0/-217)
debian/patches/97_unity_power_ui.patch (+0/-160)
debian/patches/98_default_sound_theme.patch (+0/-16)
debian/patches/99_add_lock-on-suspend.patch (+0/-77)
debian/patches/accounts_fix_unsetting_icon.patch (+0/-16)
debian/patches/classic_use_sound_indicator.patch (+0/-10)
debian/patches/deal_with_null_ssid.patch (+0/-33)
debian/patches/dont_download_local_image.patch (+0/-28)
debian/patches/gcc_not_in_unity.patch (+33/-74)
debian/patches/git-add-21_9_display.patch (+0/-18)
debian/patches/git-background-lock-screen.patch (+0/-854)
debian/patches/git-background-remove-unused-widget.patch (+0/-116)
debian/patches/git-fix-background-panel-crash.patch (+0/-65)
debian/patches/git-rename-bluetooth-panel.patch (+0/-94)
debian/patches/git-sound-fix-port-handling.patch (+0/-24)
debian/patches/git_add_printer_crash.patch (+0/-45)
debian/patches/git_drop_ibus_engine_whitelist.patch (+0/-245)
debian/patches/git_fix_libbackground_linking.patch (+24/-0)
debian/patches/git_hide_unavailable_layout_settings_btn.patch (+0/-27)
debian/patches/git_iconview_columns.patch (+0/-16)
debian/patches/git_keyboard_grp_xkb_option.patch (+0/-83)
debian/patches/git_keyboard_update_input_switch.patch (+0/-22)
debian/patches/git_move_rr_labeler.patch (+0/-801)
debian/patches/git_new_goa_build.patch (+0/-61)
debian/patches/git_no_glxinfo.patch (+0/-151)
debian/patches/git_power_gsd_proxies.patch (+0/-19)
debian/patches/git_region_update_input_switch.patch (+0/-54)
debian/patches/git_rename_natural_scrolling.patch (+0/-26)
debian/patches/git_restore_mouse_speed.patch (+0/-32)
debian/patches/git_set_a11y_wm_theme.patch (+0/-60)
debian/patches/git_shell_use_view_style_class.patch (+0/-32)
debian/patches/git_show_per_window_input_settings.patch (+0/-306)
debian/patches/more-power-suspend-options.patch (+0/-32)
debian/patches/rename_screenshot_media_keys.patch (+0/-26)
debian/patches/revert_git_dont_hide_zoom.patch (+78/-0)
debian/patches/revert_git_drop_library.patch (+0/-165)
debian/patches/sanitize_ssid_convert_utf8.patch (+0/-78)
debian/patches/series (+8/-50)
debian/patches/ubuntu-gnome-version.patch (+103/-0)
debian/patches/ubuntu_external_panels.patch (+372/-0)
debian/patches/ubuntu_update_lock_and_power_settings.patch (+0/-45)
debian/patches/ubuntu_update_translations_template.patch (+0/-26)
debian/patches/unity_background_is_appareance.patch (+0/-15)
debian/patches/unity_no_zoom_controls.patch (+0/-27)
debian/patches/zz_add_fallback_panels_dir.patch (+0/-18)
debian/rules (+4/-2)
debian/searchingthedashlegalnotice.html (+0/-1)
debian/source/include-binaries (+0/-1)
To merge this branch: bzr merge lp:~darkxst/gnome-control-center/vanilla3.8
Reviewer Review Type Date Requested Status
Ubuntu Desktop Pending
Review via email: mp+205876@code.launchpad.net
To post a comment you must log in.
634. By Tim Lunn

remove remaining ubuntu-isms

635. By Tim Lunn

Rebase on current gnome-control-center in utopic

636. By Tim Lunn

remaining minor fixes from merge

637. By Tim Lunn

clean up changelog

638. By Tim Lunn

Merge logo changes
* debian/patches/ubuntu-gnome-version.patch: Merge build-time versioned
  logo from unity-control-center (LP: #1299912)
* debian/rules: generate logo
* debian/control.in: build-depend on ubuntu font and valac, also add
  build-dep on libkrb5-dev to fix FTBS on utopic

639. By Tim Lunn

rebase patch

640. By Tim Lunn

debian/control.in: Add build-depends on libnm-glib-vpn-dev (>= 0.9.8),
libmm-glib-dev and libsmbclient-dev, remove a few duplicated build-deps

641. By Tim Lunn

missing comma

642. By Tim Lunn

Add bug ref (LP: #1316383)

643. By Tim Lunn

* debian/patches/56_use_ubuntu_info_branding.patch:
  - Keep using this branding patch for now

644. By Tim Lunn

missing patch

645. By Tim Lunn

fix up branding to use gresources

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed file 'debian/UbuntuLogo.png'
2Binary files debian/UbuntuLogo.png 2013-06-17 13:33:37 +0000 and debian/UbuntuLogo.png 1970-01-01 00:00:00 +0000 differ
3=== added file 'debian/UbuntuLogoBlank.png'
4Binary files debian/UbuntuLogoBlank.png 1970-01-01 00:00:00 +0000 and debian/UbuntuLogoBlank.png 2014-05-06 09:05:46 +0000 differ
5=== modified file 'debian/changelog'
6--- debian/changelog 2014-04-10 15:24:53 +0000
7+++ debian/changelog 2014-05-06 09:05:46 +0000
8@@ -1,3 +1,57 @@
9+gnome-control-center (1:3.8.6-0ubuntu1~utopic2) utopic; urgency=medium
10+
11+ [ Robert Ancell ]
12+ * New upstream release (LP: #1316383)
13+ * Drop all Unity customizations
14+ * debian/control:
15+ - Build-depend on valac, libgirepository1.0-dev
16+ - Use standards-version 3.9.4
17+ * debian/gnome-control-center.sh:
18+ * debian/patches/02_new_goa.patch:
19+ - Build against newer libgoa
20+ * debian/patches/git_iconview_columns.patch:
21+ - Set the number of columns, that seems needed with new GTK versions
22+
23+ [ Tim Lunn ]
24+ * debian/control.in: Add build-depends on libnm-glib-vpn-dev (>= 0.9.8),
25+ libmm-glib-dev and libsmbclient-dev, remove a few duplicated build-deps
26+ * debian/patches: drop all Ubuntu specific patches
27+ * debian/patches/52_region_language.patch:
28+ - Adapt region panel to use Ubuntu style regions and UTF-8
29+ * debian/patches/56_use_ubuntu_info_branding.patch:
30+ - Keep using this branding patch for now
31+ * debian/patches/64_restore_terminal_keyboard_shortcut.patch:
32+ - Bring back terminal shortcut
33+ * debian/patches/92_ubuntu_system_proxy.patch:
34+ - Add system proxy support
35+ * debian/patches/99_add_lock-on-suspend.patch:
36+ - Add option to lock on suspend
37+ * debian/patches/git_rename_natural_scrolling.patch:
38+ - change potentially offensive string
39+ * debian/patches/git-background-*.patch:
40+ - Allow setting a different background for the GNOME Shell lock
41+ screen (LP: #1219188)
42+ * debian/patches/revert_git_dont_hide_zoom.patch:
43+ - Bring back zoom settings
44+ * debian/patches/ubuntu-external-panels.patch:
45+ - Reimplement support for external panels
46+ * debian/libgnome-control-center1.symbols:
47+ - Add new symbols from external panel patch
48+ * debian/patches/git_keyboard_grp_xkb_option.patch:
49+ - Dropped, included in new version
50+
51+ -- Robert Ancell <robert.ancell@canonical.com> Wed, 04 Dec 2013 11:03:26 +1300
52+
53+gnome-control-center (1:3.6.3-0ubuntu57) utopic; urgency=medium
54+
55+ * debian/patches/ubuntu-gnome-version.patch: Merge build-time versioned
56+ logo from unity-control-center (LP: #1299912)
57+ * debian/rules: generate logo
58+ * debian/control.in: build-depend on ubuntu font and valac, also add
59+ build-dep on libkrb5-dev to fix FTBS on utopic
60+
61+ -- Tim Lunn <tim@feathertop.org> Mon, 05 May 2014 08:37:17 +1000
62+
63 gnome-control-center (1:3.6.3-0ubuntu56) trusty; urgency=medium
64
65 * debian/patches/git_keyboard_grp_xkb_option.patch:
66@@ -68,7 +122,6 @@
67
68 -- Iain Lane <iain.lane@canonical.com> Fri, 06 Dec 2013 12:43:49 +0000
69
70-
71 gnome-control-center (1:3.6.3-0ubuntu48) trusty; urgency=low
72
73 * debian/patches/git_iconview_columns.patch:
74
75=== modified file 'debian/control'
76--- debian/control 2013-10-31 00:54:13 +0000
77+++ debian/control 2014-05-06 09:05:46 +0000
78@@ -7,14 +7,15 @@
79 Priority: optional
80 Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
81 XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
82-Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>, Jeremy Bicha <jbicha@ubuntu.com>
83-Standards-Version: 3.9.3
84+Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
85+Standards-Version: 3.9.4
86 Build-Depends: autotools-dev,
87 cdbs (>= 0.4.41),
88 debhelper (>= 9),
89 desktop-file-utils,
90 dh-autoreconf,
91 gtk-doc-tools,
92+ libgirepository1.0-dev (>= 0.9.7),
93 gnome-common,
94 gnome-pkg-tools (>= 0.10),
95 gnome-settings-daemon-dev (>= 3.8.4),
96@@ -23,42 +24,50 @@
97 intltool (>= 0.37.1),
98 libcanberra-gtk3-dev,
99 libcheese-gtk-dev (>= 2.91.91.1),
100- libcolord-dev,
101+ libcolord-dev (>= 0.1.29),
102+ libcolord-gtk-dev (>= 0.1.24),
103 libcups2-dev,
104 libdbus-1-dev (>= 0.32),
105 libdbus-glib-1-dev (>= 0.32),
106 libgdk-pixbuf2.0-dev (>= 2.23.0),
107- libglib2.0-dev (>= 2.31.2),
108+ libglib2.0-dev (>= 2.35.1),
109 libgnome-bluetooth-dev (>= 3.3.4),
110- libgnome-desktop-3-dev (>= 3.5.91),
111+ libgnome-desktop-3-dev (>= 3.7.5),
112 libgnome-menu-3-dev,
113 libgnomekbd-dev,
114- libgoa-1.0-dev (>= 3.5.90),
115+ libgoa-1.0-dev (>= 3.10.0),
116+ libaccountsservice-dev (>= 0.6.30),
117 libgstreamer-plugins-base0.10-dev,
118- libgtk-3-dev (>= 3.5.13),
119+ libgtk-3-dev (>= 3.7.7),
120 libgtop2-dev,
121 libibus-1.0-dev (>= 1.5.0),
122- libnm-glib-dev (>= 0.9) [linux-any],
123- libnm-gtk-dev (>= 0.9) [linux-any],
124- libnm-util-dev (>= 0.9) [linux-any],
125+ libkrb5-dev,
126+ libnm-glib-dev (>= 0.9.8) [linux-any],
127+ libnm-glib-vpn-dev (>= 0.9.8) [linux-any],
128+ libnm-gtk-dev (>= 0.9.7.995) [linux-any],
129+ libnm-util-dev (>= 0.9.8) [linux-any],
130+ libmm-glib-dev [linux-any],
131 libnotify-dev (>= 0.7.3),
132 libpolkit-gobject-1-dev (>= 0.103),
133 libpulse-dev (>= 1:2.0),
134 libpwquality-dev,
135+ libsmbclient-dev,
136 # libsocialweb-client-dev,
137 libupower-glib-dev (>= 0.9.1),
138 libsystemd-login-dev,
139- libwacom-dev (>= 0.6),
140+ libwacom-dev (>= 0.7),
141 libx11-dev,
142 libxft-dev (>= 2.1.2),
143 libxkbfile-dev,
144 libxklavier-dev (>= 5.1),
145 libxml2-dev,
146 locales,
147- network-manager-dev (>= 0.9) [linux-any],
148+ network-manager-dev (>= 0.9.8) [linux-any],
149 shared-mime-info,
150+ ttf-ubuntu-font-family,
151 libwebkitgtk-3.0-dev,
152 libgl1-mesa-dev,
153+ valac (>= 0.20.0),
154 Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/gnome-control-center/ubuntu
155
156 Package: gnome-control-center
157@@ -86,7 +95,8 @@
158 mousetweaks,
159 policykit-1-gnome,
160 libcanberra-pulse,
161- system-config-printer-gnome
162+ system-config-printer-gnome,
163+ gnome-control-center-shared-data
164 Replaces: gnome-bluetooth (<< 3.4.0)
165 Breaks: gnome-power-manager (<< 3.0),
166 gnome-session (<< 3.0),
167@@ -137,6 +147,16 @@
168 This package contains data files (icons, pixmaps, locales files) needed by
169 the configuration applets in the gnome-control-center package.
170
171+Package: gnome-control-center-shared-data
172+Architecture: all
173+Section: gnome
174+Depends: ${misc:Depends}
175+Replaces: gnome-control-center-data (<< 1:3.6.3-0ubuntu54)
176+Conflicts: gnome-control-center-data (<< 1:3.6.3-0ubuntu54)
177+Description: configuration applets for GNOME - shared data
178+ This package contains datas that are used by gnome-control-center and the
179+ new unity-control-center
180+
181 Package: libgnome-control-center-dev
182 Architecture: any
183 Section: libdevel
184
185=== modified file 'debian/control.in'
186--- debian/control.in 2014-03-21 11:25:33 +0000
187+++ debian/control.in 2014-05-06 09:05:46 +0000
188@@ -4,13 +4,14 @@
189 Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
190 XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
191 Uploaders: @GNOME_TEAM@
192-Standards-Version: 3.9.3
193+Standards-Version: 3.9.4
194 Build-Depends: autotools-dev,
195 cdbs (>= 0.4.41),
196 debhelper (>= 9),
197 desktop-file-utils,
198 dh-autoreconf,
199 gtk-doc-tools,
200+ libgirepository1.0-dev (>= 0.9.7),
201 gnome-common,
202 gnome-pkg-tools (>= 0.10),
203 gnome-settings-daemon-dev (>= 3.8.4),
204@@ -19,42 +20,50 @@
205 intltool (>= 0.37.1),
206 libcanberra-gtk3-dev,
207 libcheese-gtk-dev (>= 2.91.91.1),
208- libcolord-dev,
209+ libcolord-dev (>= 0.1.29),
210+ libcolord-gtk-dev (>= 0.1.24),
211 libcups2-dev,
212 libdbus-1-dev (>= 0.32),
213 libdbus-glib-1-dev (>= 0.32),
214 libgdk-pixbuf2.0-dev (>= 2.23.0),
215- libglib2.0-dev (>= 2.31.2),
216+ libglib2.0-dev (>= 2.35.1),
217 libgnome-bluetooth-dev (>= 3.3.4),
218- libgnome-desktop-3-dev (>= 3.5.91),
219+ libgnome-desktop-3-dev (>= 3.7.5),
220 libgnome-menu-3-dev,
221 libgnomekbd-dev,
222- libgoa-1.0-dev (>= 3.5.90),
223+ libgoa-1.0-dev (>= 3.10.0),
224+ libaccountsservice-dev (>= 0.6.30),
225 libgstreamer-plugins-base0.10-dev,
226- libgtk-3-dev (>= 3.5.13),
227+ libgtk-3-dev (>= 3.7.7),
228 libgtop2-dev,
229 libibus-1.0-dev (>= 1.5.0),
230- libnm-glib-dev (>= 0.9) [linux-any],
231- libnm-gtk-dev (>= 0.9) [linux-any],
232- libnm-util-dev (>= 0.9) [linux-any],
233+ libkrb5-dev,
234+ libnm-glib-dev (>= 0.9.8) [linux-any],
235+ libnm-glib-vpn-dev (>= 0.9.8) [linux-any],
236+ libnm-gtk-dev (>= 0.9.7.995) [linux-any],
237+ libnm-util-dev (>= 0.9.8) [linux-any],
238+ libmm-glib-dev [linux-any],
239 libnotify-dev (>= 0.7.3),
240 libpolkit-gobject-1-dev (>= 0.103),
241 libpulse-dev (>= 1:2.0),
242 libpwquality-dev,
243+ libsmbclient-dev,
244 # libsocialweb-client-dev,
245 libupower-glib-dev (>= 0.9.1),
246 libsystemd-login-dev,
247- libwacom-dev (>= 0.6),
248+ libwacom-dev (>= 0.7),
249 libx11-dev,
250 libxft-dev (>= 2.1.2),
251 libxkbfile-dev,
252 libxklavier-dev (>= 5.1),
253 libxml2-dev,
254 locales,
255- network-manager-dev (>= 0.9) [linux-any],
256+ network-manager-dev (>= 0.9.8) [linux-any],
257 shared-mime-info,
258+ ttf-ubuntu-font-family,
259 libwebkitgtk-3.0-dev,
260 libgl1-mesa-dev,
261+ valac (>= 0.20.0),
262 Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/gnome-control-center/ubuntu
263
264 Package: gnome-control-center
265
266=== modified file 'debian/gnome-control-center-data.install'
267--- debian/gnome-control-center-data.install 2014-03-21 11:25:33 +0000
268+++ debian/gnome-control-center-data.install 2014-05-06 09:05:46 +0000
269@@ -1,12 +1,7 @@
270-etc/xdg/autostart
271-etc/xdg/menus
272-debian/searchingthedashlegalnotice.html /usr/share/gnome-control-center
273 usr/share/gnome-control-center
274 usr/share/sounds
275-usr/share/desktop-directories
276 usr/share/locale
277 usr/share/icons
278 usr/share/polkit-1
279 #debian/gnome-control-center.pkla /var/lib/polkit-1/localauthority/10-vendor.d/
280 debian/source_gnome-control-center.py /usr/share/apport/package-hooks
281-debian/UbuntuLogo.png /usr/share/gnome-control-center/ui
282
283=== modified file 'debian/gnome-control-center.install'
284--- debian/gnome-control-center.install 2013-07-08 17:05:39 +0000
285+++ debian/gnome-control-center.install 2014-05-06 09:05:46 +0000
286@@ -1,4 +1,3 @@
287-usr/bin
288-usr/lib/*/control-center-1/panels/*.so
289+usr/bin/gnome-control-center
290 usr/share/applications
291 usr/share/man
292
293=== modified file 'debian/libgnome-control-center1.symbols'
294--- debian/libgnome-control-center1.symbols 2014-02-26 18:20:56 +0000
295+++ debian/libgnome-control-center1.symbols 2014-05-06 09:05:46 +0000
296@@ -1,17 +1,23 @@
297 libgnome-control-center.so.1 libgnome-control-center1 #MINVER#
298 * Build-Depends-Package: libgnome-control-center-dev
299 cc_editable_entry_get_editable@Base 1:3.1.3
300+ cc_editable_entry_get_ellipsize@Base 1:3.8.6
301+ cc_editable_entry_get_max_width_chars@Base 1:3.8.6
302 cc_editable_entry_get_scale@Base 1:3.1.3
303 cc_editable_entry_get_selectable@Base 1:3.1.4
304 cc_editable_entry_get_text@Base 1:3.1.3
305 cc_editable_entry_get_type@Base 1:3.1.3
306 cc_editable_entry_get_weight@Base 1:3.1.3
307+ cc_editable_entry_get_width_chars@Base 1:3.8.6
308 cc_editable_entry_new@Base 1:3.1.3
309 cc_editable_entry_set_editable@Base 1:3.1.3
310+ cc_editable_entry_set_ellipsize@Base 1:3.8.6
311+ cc_editable_entry_set_max_width_chars@Base 1:3.8.6
312 cc_editable_entry_set_scale@Base 1:3.1.3
313 cc_editable_entry_set_selectable@Base 1:3.1.4
314 cc_editable_entry_set_text@Base 1:3.1.3
315 cc_editable_entry_set_weight@Base 1:3.1.3
316+ cc_editable_entry_set_width_chars@Base 1:3.8.6
317 cc_panel_get_help_uri@Base 1:3.5.2
318 cc_panel_get_permission@Base 1:3.1.3
319 cc_panel_get_shell@Base 1:2.91.2
320
321=== removed file 'debian/patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch'
322--- debian/patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch 2013-12-06 14:51:08 +0000
323+++ debian/patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch 1970-01-01 00:00:00 +0000
324@@ -1,86 +0,0 @@
325-From 82e6777cb1a32edb9c85b85c0c3768f9ca62c4c2 Mon Sep 17 00:00:00 2001
326-From: Marco Barisione <marco.barisione@collabora.co.uk>
327-Date: Wed, 21 Aug 2013 11:48:25 +0100
328-Subject: [PATCH] online-accounts: use the async function to get all the
329- providers
330-
331-https://bugzilla.gnome.org/show_bug.cgi?id=706148
332----
333- panels/online-accounts/cc-online-accounts-panel.c | 49 ++++++++++++++++++-----
334- 1 file changed, 40 insertions(+), 9 deletions(-)
335-
336-Index: b/panels/online-accounts/cc-online-accounts-panel.c
337-===================================================================
338---- a/panels/online-accounts/cc-online-accounts-panel.c
339-+++ b/panels/online-accounts/cc-online-accounts-panel.c
340-@@ -596,9 +596,17 @@
341-
342- /* ---------------------------------------------------------------------------------------------------- */
343-
344-+typedef struct
345-+{
346-+ GoaPanel *panel;
347-+} AddAccountData;
348-+
349- static void
350--add_account (GoaPanel *panel)
351-+get_all_providers_cb (GObject *source,
352-+ GAsyncResult *res,
353-+ gpointer user_data)
354- {
355-+ AddAccountData *data = user_data;
356- GtkWindow *parent;
357- GtkWidget *dialog;
358- gint response;
359-@@ -609,12 +617,15 @@
360-
361- providers = NULL;
362-
363-- parent = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (panel))));
364-+ providers = NULL;
365-+ if (!goa_provider_get_all_finish (&providers, res, NULL))
366-+ goto out;
367-+
368-+ parent = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (data->panel))));
369-
370-- dialog = goa_panel_add_account_dialog_new (panel->client);
371-+ dialog = goa_panel_add_account_dialog_new (data->panel->client);
372- gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
373-
374-- providers = goa_provider_get_all ();
375- for (l = providers; l != NULL; l = l->next)
376- {
377- GoaProvider *provider;
378-@@ -643,11 +654,11 @@
379- {
380- GtkTreeIter iter;
381- /* navigate to newly created object */
382-- if (goa_panel_accounts_model_get_iter_for_object (panel->accounts_model,
383-+ if (goa_panel_accounts_model_get_iter_for_object (data->panel->accounts_model,
384- object,
385- &iter))
386- {
387-- gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (panel->accounts_treeview)),
388-+ gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (data->panel->accounts_treeview)),
389- &iter);
390- }
391- g_object_unref (object);
392-@@ -675,6 +686,18 @@
393- out:
394- g_list_foreach (providers, (GFunc) g_object_unref, NULL);
395- g_list_free (providers);
396-+ g_clear_object (&data->panel);
397-+ g_slice_free (AddAccountData, data);
398-+}
399-+
400-+static void
401-+add_account (GoaPanel *panel)
402-+{
403-+ AddAccountData *data;
404-+
405-+ data = g_slice_new0 (AddAccountData);
406-+ data->panel = g_object_ref_sink (panel);
407-+ goa_provider_get_all (get_all_providers_cb, data);
408- }
409-
410- /* ---------------------------------------------------------------------------------------------------- */
411
412=== removed file 'debian/patches/0001-rfkill-glib-Don-t-use-g_assert_not_reached-in-type_t.patch'
413--- debian/patches/0001-rfkill-glib-Don-t-use-g_assert_not_reached-in-type_t.patch 2013-10-23 17:02:34 +0000
414+++ debian/patches/0001-rfkill-glib-Don-t-use-g_assert_not_reached-in-type_t.patch 1970-01-01 00:00:00 +0000
415@@ -1,27 +0,0 @@
416-From 90f49a4d5dd646b8fce10f61a9231db4973a907b Mon Sep 17 00:00:00 2001
417-From: Adel Gadllah <adel.gadllah@gmail.com>
418-Date: Thu, 16 May 2013 15:41:17 +0200
419-Subject: [PATCH] rfkill-glib: Don't use g_assert_not_reached in type_to_string
420-
421-New kernel versions can add new RFKILL types, we should now crash here,
422-just say that we don't know what the switch is.
423----
424- panels/network/rfkill-glib.c | 2 +-
425- 1 file changed, 1 insertion(+), 1 deletion(-)
426-
427-diff --git a/panels/network/rfkill-glib.c b/panels/network/rfkill-glib.c
428-index e27ca40..7c9ee3c 100644
429---- a/panels/network/rfkill-glib.c
430-+++ b/panels/network/rfkill-glib.c
431-@@ -80,7 +80,7 @@ type_to_string (unsigned int type)
432- case RFKILL_TYPE_WWAN:
433- return "WWAN";
434- default:
435-- g_assert_not_reached ();
436-+ return "UNKNOWN";
437- }
438- }
439-
440---
441-1.8.3.2
442-
443
444=== added file 'debian/patches/02_new_goa.patch'
445--- debian/patches/02_new_goa.patch 1970-01-01 00:00:00 +0000
446+++ debian/patches/02_new_goa.patch 2014-05-06 09:05:46 +0000
447@@ -0,0 +1,46 @@
448+Index: gnome-control-center-3.8.6/panels/online-accounts/cc-online-accounts-panel.c
449+===================================================================
450+--- gnome-control-center-3.8.6.orig/panels/online-accounts/cc-online-accounts-panel.c 2013-12-12 14:00:10.759923318 +1300
451++++ gnome-control-center-3.8.6/panels/online-accounts/cc-online-accounts-panel.c 2013-12-12 14:00:10.755923318 +1300
452+@@ -617,8 +617,11 @@
453+ /* ---------------------------------------------------------------------------------------------------- */
454+
455+ static void
456+-add_account (CcGoaPanel *panel)
457++get_all_providers_cb (GObject *source,
458++ GAsyncResult *res,
459++ gpointer user_data)
460+ {
461++ CcGoaPanel *panel = CC_GOA_PANEL (user_data);
462+ GtkWindow *parent;
463+ GtkWidget *dialog;
464+ gint response;
465+@@ -629,12 +632,14 @@
466+
467+ providers = NULL;
468+
469++ if (!goa_provider_get_all_finish (&providers, res, NULL))
470++ goto out;
471++
472+ parent = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (panel))));
473+
474+ dialog = goa_panel_add_account_dialog_new (panel->client);
475+ gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
476+
477+- providers = goa_provider_get_all ();
478+ for (l = providers; l != NULL; l = l->next)
479+ {
480+ GoaProvider *provider;
481+@@ -697,6 +703,12 @@
482+ g_list_free (providers);
483+ }
484+
485++static void
486++add_account (CcGoaPanel *panel)
487++{
488++ goa_provider_get_all (get_all_providers_cb, panel);
489++}
490++
491+ /* ---------------------------------------------------------------------------------------------------- */
492+
493+ static void
494
495=== removed file 'debian/patches/05_run_update_manager.patch'
496--- debian/patches/05_run_update_manager.patch 2013-07-05 13:31:20 +0000
497+++ debian/patches/05_run_update_manager.patch 1970-01-01 00:00:00 +0000
498@@ -1,13 +0,0 @@
499-Index: b/panels/info/cc-info-panel.c
500-===================================================================
501---- a/panels/info/cc-info-panel.c
502-+++ b/panels/info/cc-info-panel.c
503-@@ -1900,7 +1900,7 @@
504- {
505- GError *error;
506- error = NULL;
507-- g_spawn_command_line_async ("gpk-update-viewer", &error);
508-+ g_spawn_command_line_async ("update-manager", &error);
509- if (error != NULL)
510- {
511- g_warning ("unable to launch Software Updates: %s", error->message);
512
513=== removed file 'debian/patches/06_handle_passwd_with_ldap.patch'
514--- debian/patches/06_handle_passwd_with_ldap.patch 2013-07-05 13:31:20 +0000
515+++ debian/patches/06_handle_passwd_with_ldap.patch 1970-01-01 00:00:00 +0000
516@@ -1,19 +0,0 @@
517-Description: Handle the case where passwd re-asks for the current password when it was entered incorrectly (when using LDAP)
518- Based on a patch from Ryan Tandy
519-Author: Chris Coulson <chris.coulson@canonical.com>
520-Bug-Ubuntu: https:/launchpad.net/bugs/607357
521-Forwarded: no
522-
523-Index: b/panels/user-accounts/run-passwd.c
524-===================================================================
525---- a/panels/user-accounts/run-passwd.c
526-+++ b/panels/user-accounts/run-passwd.c
527-@@ -408,7 +408,7 @@
528-
529- if (is_string_complete (str->str, "assword: ", "failure", "wrong", "error", NULL)) {
530-
531-- if (strstr (str->str, "assword: ") != NULL) {
532-+ if (strstr (str->str, "assword: ") != NULL && strstr (str->str, "incorrect") == NULL) {
533- /* Authentication successful */
534-
535- passwd_handler->backend_state = PASSWD_STATE_NEW;
536
537=== removed file 'debian/patches/11_power-configure_lid_action.patch'
538--- debian/patches/11_power-configure_lid_action.patch 2013-09-09 14:28:59 +0000
539+++ debian/patches/11_power-configure_lid_action.patch 1970-01-01 00:00:00 +0000
540@@ -1,149 +0,0 @@
541-Subject: [PATCH] power: Add configuration for lid action
542-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=659045
543-Bug-Ubuntu: https://bugs.launchpad.net/bugs/792636
544---- a/panels/power/cc-power-panel.c
545-+++ b/panels/power/cc-power-panel.c
546-@@ -932,6 +932,7 @@
547- set_ac_battery_ui_mode (CcPowerPanel *self)
548- {
549- gboolean has_batteries = FALSE;
550-+ gboolean has_lid = FALSE;
551- gboolean ret;
552- GError *error = NULL;
553- GPtrArray *devices;
554-@@ -964,7 +965,13 @@
555- }
556- }
557- g_ptr_array_unref (devices);
558-+
559-+ has_lid = up_client_get_lid_is_present (self->priv->up_client);
560-+
561- out:
562-+ gtk_widget_set_visible (WID (priv->builder, "combobox_lid_ac"), has_lid);
563-+ gtk_widget_set_visible (WID (priv->builder, "label_lid_action"), has_lid);
564-+ gtk_widget_set_visible (WID (priv->builder, "combobox_lid_battery"), has_batteries && has_lid);
565- gtk_widget_set_visible (WID (priv->builder, "label_header_battery"), has_batteries);
566- gtk_widget_set_visible (WID (priv->builder, "label_header_ac"), has_batteries);
567- gtk_widget_set_visible (WID (priv->builder, "combobox_sleep_battery"), has_batteries);
568-@@ -1080,6 +1087,26 @@
569- G_CALLBACK (activate_link_cb),
570- self);
571-
572-+ value = g_settings_get_enum (self->priv->gsd_settings, "lid-close-ac-action");
573-+ widget = GTK_WIDGET (gtk_builder_get_object (self->priv->builder,
574-+ "combobox_lid_ac"));
575-+ disable_unavailable_combo_items (self, GTK_COMBO_BOX (widget));
576-+ set_value_for_combo (GTK_COMBO_BOX (widget), value);
577-+ g_object_set_data (G_OBJECT(widget), "_gsettings_key", "lid-close-ac-action");
578-+ g_signal_connect (widget, "changed",
579-+ G_CALLBACK (combo_enum_changed_cb),
580-+ self);
581-+
582-+ value = g_settings_get_enum (self->priv->gsd_settings, "lid-close-battery-action");
583-+ widget = GTK_WIDGET (gtk_builder_get_object (self->priv->builder,
584-+ "combobox_lid_battery"));
585-+ disable_unavailable_combo_items (self, GTK_COMBO_BOX (widget));
586-+ set_value_for_combo (GTK_COMBO_BOX (widget), value);
587-+ g_object_set_data (G_OBJECT(widget), "_gsettings_key", "lid-close-battery-action");
588-+ g_signal_connect (widget, "changed",
589-+ G_CALLBACK (combo_enum_changed_cb),
590-+ self);
591-+
592- widget = WID (self->priv->builder, "vbox_power");
593- gtk_widget_reparent (widget, (GtkWidget *) self);
594- }
595---- a/panels/power/power.ui
596-+++ b/panels/power/power.ui
597-@@ -53,6 +53,28 @@
598- </row>
599- </data>
600- </object>
601-+ <object class="GtkListStore" id="liststore_lid">
602-+ <columns>
603-+ <!-- column-name name -->
604-+ <column type="gchararray"/>
605-+ <!-- column-name value -->
606-+ <column type="gint"/>
607-+ <!-- column-name sensitive -->
608-+ <column type="gboolean"/>
609-+ </columns>
610-+ <data>
611-+ <row>
612-+ <col id="0" translatable="yes">Suspend</col>
613-+ <col id="1">1</col>
614-+ <col id="2">True</col>
615-+ </row>
616-+ <row>
617-+ <col id="0" translatable="yes">Do nothing</col>
618-+ <col id="1">5</col>
619-+ <col id="2">True</col>
620-+ </row>
621-+ </data>
622-+ </object>
623- <object class="GtkWindow" id="window_power">
624- <property name="can_focus">False</property>
625- <property name="resizable">False</property>
626-@@ -172,6 +194,50 @@
627- <property name="top_attach">2</property>
628- </packing>
629- </child>
630-+ <child>
631-+ <object class="GtkLabel" id="label_lid_action">
632-+ <property name="visible">True</property>
633-+ <property name="can_focus">False</property>
634-+ <property name="halign">end</property>
635-+ <property name="label" translatable="yes">When the lid is closed</property>
636-+ </object>
637-+ <packing>
638-+ <property name="left_attach">0</property>
639-+ <property name="top_attach">3</property>
640-+ </packing>
641-+ </child>
642-+ <child>
643-+ <object class="GtkComboBox" id="combobox_lid_battery">
644-+ <property name="visible">True</property>
645-+ <property name="can_focus">False</property>
646-+ <property name="model">liststore_lid</property>
647-+ <property name="hexpand">True</property>
648-+ <accessibility>
649-+ <relation type="labelled-by" target="label_header_battery"/>
650-+ <relation type="labelled-by" target="label_lid_action"/>
651-+ </accessibility>
652-+ </object>
653-+ <packing>
654-+ <property name="left_attach">1</property>
655-+ <property name="top_attach">3</property>
656-+ </packing>
657-+ </child>
658-+ <child>
659-+ <object class="GtkComboBox" id="combobox_lid_ac">
660-+ <property name="visible">True</property>
661-+ <property name="can_focus">False</property>
662-+ <property name="model">liststore_lid</property>
663-+ <property name="hexpand">True</property>
664-+ <accessibility>
665-+ <relation type="labelled-by" target="label_header_ac"/>
666-+ <relation type="labelled-by" target="label_lid_action"/>
667-+ </accessibility>
668-+ </object>
669-+ <packing>
670-+ <property name="left_attach">2</property>
671-+ <property name="top_attach">3</property>
672-+ </packing>
673-+ </child>
674- </object>
675- <packing>
676- <property name="expand">False</property>
677-@@ -352,9 +418,12 @@
678- </object>
679- <object class="GtkSizeGroup" id="sizegroup_combos">
680- <widgets>
681-+ <widget name="combobox_lid_battery"/>
682-+ <widget name="combobox_lid_ac"/>
683- <widget name="combobox_critical"/>
684- <widget name="combobox_sleep_battery"/>
685- <widget name="combobox_sleep_ac"/>
686-+ <widget name="combobox_sleep_ac"/>
687- </widgets>
688- </object>
689- </interface>
690
691=== removed file 'debian/patches/12_add_never_turn_screen_off.patch'
692--- debian/patches/12_add_never_turn_screen_off.patch 2013-07-05 13:31:20 +0000
693+++ debian/patches/12_add_never_turn_screen_off.patch 1970-01-01 00:00:00 +0000
694@@ -1,29 +0,0 @@
695-Index: b/panels/screen/cc-screen-panel.c
696-===================================================================
697---- a/panels/screen/cc-screen-panel.c
698-+++ b/panels/screen/cc-screen-panel.c
699-@@ -402,8 +402,7 @@
700- gtk_tree_model_get (model, &iter,
701- 1, &value_tmp,
702- -1);
703-- if (value == value_tmp ||
704-- (value_tmp > value_prev && value < value_tmp))
705-+ if (value == value_tmp)
706- {
707- gtk_combo_box_set_active_iter (combo_box, &iter);
708- return;
709-Index: b/panels/screen/screen.ui
710-===================================================================
711---- a/panels/screen/screen.ui
712-+++ b/panels/screen/screen.ui
713-@@ -84,6 +84,10 @@
714- <col id="0" translatable="yes">1 hour</col>
715- <col id="1">3600</col>
716- </row>
717-+ <row>
718-+ <col id="0" translatable="yes">Never</col>
719-+ <col id="1">0</col>
720-+ </row>
721- </data>
722- </object>
723- <object class="GtkWindow" id="window1">
724
725=== removed file 'debian/patches/51_unity_options_in_display_panel.patch'
726--- debian/patches/51_unity_options_in_display_panel.patch 2013-07-05 13:31:20 +0000
727+++ debian/patches/51_unity_options_in_display_panel.patch 1970-01-01 00:00:00 +0000
728@@ -1,592 +0,0 @@
729-Index: gnome-control-center-3.4.2/panels/display/cc-display-panel.c
730-===================================================================
731---- gnome-control-center-3.4.2.orig/panels/display/cc-display-panel.c 2012-05-15 12:18:30.000000000 +0200
732-+++ gnome-control-center-3.4.2/panels/display/cc-display-panel.c 2012-07-23 10:26:57.281976435 +0200
733-@@ -54,6 +54,13 @@
734- #define MINIMUM_WIDTH 675
735- #define MINIMUM_HEIGHT 530
736-
737-+#define UNITY_GSETTINGS_SCHEMA "org.compiz.unityshell"
738-+#define UNITY_GSETTINGS_PATH "/org/compiz/profiles/unity/plugins/unityshell/"
739-+#define UNITY_LAUNCHER_ALL_MONITORS_KEY "num-launchers"
740-+#define UNITY_STICKY_EDGE_KEY "launcher-capture-mouse"
741-+#define UNITY2D_GSETTINGS_MAIN "com.canonical.Unity2d"
742-+#define UNITY2D_GSETTINGS_LAUNCHER "com.canonical.Unity2d.Launcher"
743-+
744- enum {
745- TEXT_COL,
746- WIDTH_COL,
747-@@ -72,6 +79,9 @@
748- GnomeRROutputInfo *current_output;
749-
750- GSettings *clock_settings;
751-+ GSettings *unity_settings;
752-+ GSettings *unity2d_settings_main;
753-+ GSettings *unity2d_settings_launcher;
754- GtkBuilder *builder;
755- guint focus_id;
756-
757-@@ -119,6 +129,8 @@
758- guint n_properties,
759- GObjectConstructParam *properties);
760- static void on_screen_changed (GnomeRRScreen *scr, gpointer data);
761-+static void refresh_unity_launcher_placement (CcDisplayPanel *self);
762-+static gboolean unity_launcher_on_all_monitors (GSettings *settings);
763-
764- static void
765- cc_display_panel_get_property (GObject *object,
766-@@ -168,6 +180,13 @@
767- if (self->priv->clock_settings != NULL)
768- g_object_unref (self->priv->clock_settings);
769-
770-+ if (self->priv->unity2d_settings_main != NULL)
771-+ g_object_unref (self->priv->unity2d_settings_main);
772-+ if (self->priv->unity2d_settings_launcher != NULL)
773-+ g_object_unref (self->priv->unity2d_settings_launcher);
774-+ if (self->priv->unity_settings != NULL)
775-+ g_object_unref (self->priv->unity_settings);
776-+
777- shell = cc_panel_get_shell (CC_PANEL (self));
778- if (shell != NULL)
779- {
780-@@ -223,6 +242,12 @@
781- }
782-
783- static gboolean
784-+is_unity_session (void)
785-+{
786-+ return (g_strcmp0 (g_getenv("XDG_CURRENT_DESKTOP"), "Unity") == 0);
787-+}
788-+
789-+static gboolean
790- should_show_resolution (gint output_width,
791- gint output_height,
792- gint width,
793-@@ -262,6 +287,9 @@
794- gnome_rr_labeler_show (self->priv->labeler);
795-
796- select_current_output_from_dialog_position (self);
797-+
798-+ if (is_unity_session ())
799-+ refresh_unity_launcher_placement (self);
800- }
801-
802- static void
803-@@ -599,6 +627,10 @@
804- gtk_widget_set_sensitive (self->priv->clone_checkbox, mirror_is_supported);
805- gtk_widget_set_sensitive (self->priv->clone_label, mirror_is_supported);
806-
807-+ /* set inactive the launcher placement choice */
808-+ gtk_widget_set_sensitive (WID ("launcher_placement_combo"), !mirror_is_active);
809-+ gtk_widget_set_sensitive (WID ("stickyedge_switch"), !mirror_is_active);
810-+
811- g_signal_handlers_unblock_by_func (self->priv->clone_checkbox, G_CALLBACK (on_clone_changed), self);
812- }
813-
814-@@ -838,6 +870,7 @@
815- rebuild_on_off_radios (self);
816- rebuild_resolution_combo (self);
817- rebuild_rotation_combo (self);
818-+ refresh_unity_launcher_placement (self);
819-
820- self->priv->ignore_gui_changes = FALSE;
821- }
822-@@ -1722,6 +1755,10 @@
823- outputs = gnome_rr_config_get_outputs (self->priv->current_configuration);
824- for (i = 0; outputs[i] != NULL; ++i)
825- gnome_rr_output_info_set_primary (outputs[i], outputs[i] == output);
826-+
827-+ gtk_widget_queue_draw (WID ("self->priv->area"));
828-+ /* refresh the combobox */
829-+ refresh_unity_launcher_placement (self);
830- }
831-
832- static void
833-@@ -2073,7 +2110,30 @@
834- g_object_unref (layout);
835- cairo_restore (cr);
836-
837-- if (gnome_rr_output_info_get_primary (output))
838-+ /* Only display a launcher on all or primary monitor */
839-+ if (is_unity_session ())
840-+ {
841-+ if (gnome_rr_output_info_is_active (output) && (unity_launcher_on_all_monitors (self->priv->unity_settings) || gnome_rr_output_info_get_primary (output)))
842-+ {
843-+ cairo_rectangle (cr, x, y, 10, h * scale + 0.5);
844-+ cairo_set_source_rgb (cr, 0, 0, 0);
845-+ foo_scroll_area_add_input_from_fill (FOO_SCROLL_AREA (self->priv->area),
846-+ cr,
847-+ (FooScrollAreaEventFunc) on_top_bar_event,
848-+ self);
849-+ cairo_fill (cr);
850-+
851-+ cairo_set_source_rgb (cr, 0.25, 0.25, 0.25);
852-+ cairo_rectangle (cr, x + 1, y + 6, 8, 8);
853-+ cairo_rectangle (cr, x + 1, y + 16, 8, 8);
854-+ cairo_rectangle (cr, x + 1, y + 26, 8, 8);
855-+ cairo_rectangle (cr, x + 1, y + 36, 8, 8);
856-+ cairo_rectangle (cr, x + 1, y + h * scale + 0.5 - 10, 8, 8);
857-+ cairo_fill (cr);
858-+ }
859-+ }
860-+
861-+ if (gnome_rr_output_info_get_primary (output) && !is_unity_session ())
862- {
863- const char *clock_format;
864- char *text;
865-@@ -2556,6 +2616,233 @@
866- }
867-
868- static void
869-+stickyedge_widget_refresh (GtkSwitch *switcher, GSettings *settings)
870-+{
871-+ gboolean stickyedge_enabled = g_settings_get_boolean (settings, UNITY_STICKY_EDGE_KEY);
872-+
873-+ gtk_switch_set_active (switcher, stickyedge_enabled);
874-+}
875-+
876-+static void
877-+ext_stickyedge_changed_callback (GSettings* settings,
878-+ guint key,
879-+ gpointer user_data)
880-+{
881-+ stickyedge_widget_refresh (GTK_SWITCH (user_data), settings);
882-+}
883-+
884-+static void
885-+on_stickyedge_changed (GtkSwitch *switcher, GParamSpec *pspec, gpointer user_data)
886-+{
887-+ CcDisplayPanel *self = CC_DISPLAY_PANEL (user_data);
888-+ gboolean enabled = gtk_switch_get_active (GTK_SWITCH (switcher));
889-+
890-+ /* 3d */
891-+ g_settings_set_boolean (self->priv->unity_settings, UNITY_STICKY_EDGE_KEY, enabled);
892-+ /* 2d */
893-+ if (self->priv->unity2d_settings_main)
894-+ g_settings_set_boolean (self->priv->unity2d_settings_main, "sticky-edges", enabled);
895-+}
896-+
897-+static gboolean
898-+unity_launcher_on_all_monitors (GSettings *settings)
899-+{
900-+ gint value = g_settings_get_int (settings, UNITY_LAUNCHER_ALL_MONITORS_KEY);
901-+ return (value == 0);
902-+}
903-+
904-+static GdkPixbuf*
905-+get_monitor_pixbuf (CcDisplayPanel *self, GnomeRROutputInfo *output)
906-+{
907-+ GdkRGBA color;
908-+ cairo_surface_t *cairo_surface;
909-+ cairo_t *cr;
910-+ int monitor_width = 30;
911-+ int monitor_height = 15;
912-+
913-+ gnome_rr_labeler_get_rgba_for_output (self->priv->labeler, output, &color);
914-+
915-+ cairo_surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, monitor_width, monitor_height);
916-+ cr = cairo_create (cairo_surface);
917-+ cairo_surface_destroy (cairo_surface);
918-+ cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
919-+ cairo_paint (cr);
920-+
921-+ cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
922-+ cairo_set_source_rgb (cr, color.red, color.green, color.blue);
923-+ cairo_rectangle (cr, 0.5, 0.5, monitor_width - 1, monitor_height - 1);
924-+ cairo_fill (cr);
925-+
926-+ cairo_set_line_width (cr, 1);
927-+ cairo_set_source_rgba (cr, 0, 0, 0, 1.0);
928-+ cairo_rectangle (cr, 0.5, 0.5, monitor_width - 1, monitor_height - 1);
929-+ cairo_stroke (cr);
930-+
931-+ return gdk_pixbuf_get_from_surface (cairo_get_target (cr), 0, 0, monitor_width, monitor_height);
932-+}
933-+
934-+static void
935-+refresh_unity_launcher_placement (CcDisplayPanel *self)
936-+{
937-+ GtkWidget *launcher_placement_combo = WID ("launcher_placement_combo");
938-+ GtkListStore *liststore;
939-+ GtkTreeIter iter;
940-+ GList *connected_outputs = NULL;
941-+ GList *list;
942-+ gboolean launcher_on_all_monitors = unity_launcher_on_all_monitors (self->priv->unity_settings);
943-+ gint index_of_primary_screen = 0;
944-+ gint i;
945-+
946-+ liststore = (GtkListStore *) gtk_builder_get_object (self->priv->builder, "available_launcher_placement_store");
947-+ gtk_list_store_clear (liststore);
948-+
949-+ connected_outputs = list_connected_outputs (self, NULL, NULL);
950-+ for (list = connected_outputs, i = 0; list != NULL; list = list->next)
951-+ {
952-+ char *monitor_name;
953-+ GdkPixbuf *monitor_pixbuf;
954-+ GnomeRROutputInfo *output = list->data;
955-+
956-+ if (!gnome_rr_output_info_is_active (output))
957-+ continue;
958-+
959-+ gtk_list_store_append (liststore, &iter);
960-+ monitor_name = g_strdup (gnome_rr_output_info_get_display_name (output));
961-+ monitor_pixbuf = get_monitor_pixbuf (self, output);
962-+
963-+ gtk_list_store_set (liststore, &iter, 0, monitor_pixbuf, 1, monitor_name, -1);
964-+
965-+ /* select it if primary and only one launcher */
966-+ if (gnome_rr_output_info_get_primary (output) && (!launcher_on_all_monitors))
967-+ index_of_primary_screen = i;
968-+ i++;
969-+
970-+ g_object_unref (monitor_pixbuf);
971-+ g_free (monitor_name);
972-+ }
973-+
974-+ // FIXME: check autosort?
975-+ gtk_list_store_append (liststore, &iter);
976-+ gtk_list_store_set (liststore, &iter, 0, NULL, 1, _("All displays"), -1);
977-+
978-+ if (launcher_on_all_monitors)
979-+ index_of_primary_screen = i;
980-+
981-+ gtk_combo_box_set_active (GTK_COMBO_BOX (launcher_placement_combo), index_of_primary_screen);
982-+}
983-+
984-+static gboolean
985-+switcher_set_to_launcher_on_all_monitors (CcDisplayPanel *self)
986-+{
987-+ GtkComboBox *combo = GTK_COMBO_BOX (WID ("launcher_placement_combo"));
988-+ gint active = gtk_combo_box_get_active (combo);
989-+ gint number_items = gtk_tree_model_iter_n_children (gtk_combo_box_get_model (combo),
990-+ NULL);
991-+ return (active == number_items - 1);
992-+}
993-+
994-+static void
995-+ext_launcher_placement_changed_callback (GSettings* settings,
996-+ guint key,
997-+ gpointer user_data)
998-+{
999-+ // add some crazyness as 2d/3d are not using the same keys
1000-+ CcDisplayPanel *self = CC_DISPLAY_PANEL (user_data);
1001-+ gint launcher_unity_value = 0;
1002-+
1003-+ // two options support: all monitors (0)i or just primary desktop (hence set to 1, not any other number)
1004-+ if (! switcher_set_to_launcher_on_all_monitors (self))
1005-+ launcher_unity_value = 1;
1006-+
1007-+ if (g_settings_get_int (settings, UNITY_LAUNCHER_ALL_MONITORS_KEY) != launcher_unity_value)
1008-+ refresh_unity_launcher_placement (self);
1009-+}
1010-+
1011-+static void
1012-+on_launcher_placement_combo_changed (GtkComboBox *combo, CcDisplayPanel *self)
1013-+{
1014-+ gint active = gtk_combo_box_get_active (combo);
1015-+ gint i;
1016-+ gint index_on_combo = 0;
1017-+
1018-+ if (active < 0)
1019-+ return;
1020-+ gint value = 0;
1021-+ gboolean on_all_monitors = switcher_set_to_launcher_on_all_monitors (self);
1022-+
1023-+ if (!on_all_monitors) {
1024-+ value = 1;
1025-+ // set the primary output if needed
1026-+ GnomeRROutputInfo **outputs = gnome_rr_config_get_outputs (self->priv->current_configuration);
1027-+
1028-+ for (i = 0; outputs[i] != NULL; ++i)
1029-+ {
1030-+ GnomeRROutputInfo *output = outputs[i];
1031-+ if (!gnome_rr_output_info_is_active (output))
1032-+ continue;
1033-+
1034-+ if ((active == index_on_combo) && !gnome_rr_output_info_get_primary (output))
1035-+ {
1036-+ set_primary_output (self, output);
1037-+ break;
1038-+ }
1039-+ index_on_combo++;
1040-+ }
1041-+ }
1042-+
1043-+ /* 3d */
1044-+ if (self->priv->unity_settings)
1045-+ g_settings_set_int (self->priv->unity_settings, UNITY_LAUNCHER_ALL_MONITORS_KEY, value);
1046-+ /* 2d */
1047-+ if (self->priv->unity2d_settings_launcher)
1048-+ g_settings_set_boolean (self->priv->unity2d_settings_launcher, "only-one-launcher", !on_all_monitors);
1049-+}
1050-+
1051-+static void
1052-+setup_unity_settings (CcDisplayPanel *self)
1053-+{
1054-+ const gchar * const *schemas;
1055-+
1056-+ /* Only use the unity-2d schema if it's installed */
1057-+ schemas = g_settings_list_schemas ();
1058-+ while (*schemas != NULL)
1059-+ {
1060-+ if (g_strcmp0 (*schemas, UNITY2D_GSETTINGS_LAUNCHER) == 0)
1061-+ {
1062-+ self->priv->unity2d_settings_main = g_settings_new (UNITY2D_GSETTINGS_MAIN);
1063-+ self->priv->unity2d_settings_launcher = g_settings_new (UNITY2D_GSETTINGS_LAUNCHER);
1064-+ break;
1065-+ }
1066-+ schemas++;
1067-+ }
1068-+ schemas = g_settings_list_relocatable_schemas ();
1069-+ while (*schemas != NULL)
1070-+ {
1071-+ if (g_strcmp0 (*schemas, UNITY_GSETTINGS_SCHEMA) == 0)
1072-+ {
1073-+ self->priv->unity_settings = g_settings_new_with_path (UNITY_GSETTINGS_SCHEMA, UNITY_GSETTINGS_PATH);
1074-+ break;
1075-+ }
1076-+ schemas++;
1077-+ }
1078-+
1079-+ if (!self->priv->unity_settings)
1080-+ return;
1081-+
1082-+ GtkWidget *sticky_edge_switch = WID ("stickyedge_switch");
1083-+ g_signal_connect (sticky_edge_switch, "notify::active",
1084-+ G_CALLBACK (on_stickyedge_changed), self);
1085-+ g_signal_connect (self->priv->unity_settings, "changed::" UNITY_STICKY_EDGE_KEY,
1086-+ G_CALLBACK (ext_stickyedge_changed_callback), sticky_edge_switch);
1087-+ stickyedge_widget_refresh (GTK_SWITCH (sticky_edge_switch), self->priv->unity_settings);
1088-+
1089-+ g_signal_connect (G_OBJECT (WID ("launcher_placement_combo")), "changed",
1090-+ G_CALLBACK (on_launcher_placement_combo_changed), self);
1091-+ g_signal_connect (self->priv->unity_settings, "changed::" UNITY_LAUNCHER_ALL_MONITORS_KEY,
1092-+ G_CALLBACK (ext_launcher_placement_changed_callback), self);
1093-+}
1094-+
1095-+static void
1096- cc_display_panel_init (CcDisplayPanel *self)
1097- {
1098- }
1099-@@ -2572,7 +2859,7 @@
1100- CcDisplayPanel *self;
1101- CcShell *shell;
1102- GtkWidget *toplevel;
1103-- gchar *objects[] = {"display-panel", NULL};
1104-+ gchar *objects[] = {"display-panel", "available_launcher_placement_store", NULL};
1105-
1106- obj = G_OBJECT_CLASS (cc_display_panel_parent_class)->constructor (gtype, n_properties, properties);
1107- self = CC_DISPLAY_PANEL (obj);
1108-@@ -2661,6 +2948,18 @@
1109- g_signal_connect_swapped (WID ("apply_button"),
1110- "clicked", G_CALLBACK (apply), self);
1111-
1112-+ /* Unity settings */
1113-+ if (is_unity_session ())
1114-+ setup_unity_settings (self);
1115-+ else
1116-+ {
1117-+ gtk_widget_hide (WID ("unity_launcher_placement_sep"));
1118-+ gtk_widget_hide (WID ("launcher_placement_label"));
1119-+ gtk_widget_hide (WID ("sticky_edge_label"));
1120-+ gtk_widget_hide (WID ("launcher_placement_combo"));
1121-+ gtk_widget_hide (WID ("stickyedge_switch"));
1122-+ }
1123-+
1124- gtk_widget_show (self->priv->panel);
1125- gtk_container_add (GTK_CONTAINER (self), self->priv->panel);
1126-
1127-@@ -2675,4 +2974,3 @@
1128- CC_TYPE_DISPLAY_PANEL,
1129- "display", 0);
1130- }
1131--
1132-Index: gnome-control-center-3.4.2/panels/display/display-capplet.ui
1133-===================================================================
1134---- gnome-control-center-3.4.2.orig/panels/display/display-capplet.ui 2012-03-05 15:04:55.000000000 +0100
1135-+++ gnome-control-center-3.4.2/panels/display/display-capplet.ui 2012-07-23 10:26:45.805976846 +0200
1136-@@ -1,6 +1,14 @@
1137- <?xml version="1.0"?>
1138- <interface>
1139- <requires lib="gtk+" version="2.16"/>
1140-+ <object class="GtkListStore" id="available_launcher_placement_store">
1141-+ <columns>
1142-+ <!-- column-name MONITOR_PREVIEW -->
1143-+ <column type="GdkPixbuf"/>
1144-+ <!-- column-name LAUNCHER_PLACEMENT_NAME -->
1145-+ <column type="gchararray"/>
1146-+ </columns>
1147-+ </object>
1148- <!-- interface-naming-policy toplevel-contextual -->
1149- <object class="GtkWindow" id="window1">
1150- <child>
1151-@@ -96,56 +104,89 @@
1152- <child>
1153- <object class="GtkTable" id="table1">
1154- <property name="visible">True</property>
1155-- <property name="n_rows">3</property>
1156-+ <property name="n_rows">5</property>
1157- <property name="n_columns">2</property>
1158- <property name="column_spacing">12</property>
1159- <property name="row_spacing">6</property>
1160- <child>
1161-- <object class="GtkAlignment" id="alignment4">
1162-+ <object class="GtkLabel" id="label2">
1163-+ <property name="visible">True</property>
1164-+ <property name="xalign">1</property>
1165-+ <property name="label" translatable="yes">_Resolution</property>
1166-+ <property name="use_underline">True</property>
1167-+ <property name="mnemonic_widget">resolution_combo</property>
1168-+ <style>
1169-+ <class name="dim-label"/>
1170-+ </style>
1171-+ </object>
1172-+ <packing>
1173-+ <property name="x_options">GTK_FILL</property>
1174-+ <property name="y_options"></property>
1175-+ </packing>
1176-+ </child>
1177-+ <child>
1178-+ <object class="GtkLabel" id="label5">
1179-+ <property name="visible">True</property>
1180-+ <property name="xalign">1</property>
1181-+ <property name="label" translatable="yes">R_otation</property>
1182-+ <property name="mnemonic_widget">rotation_combo</property>
1183-+ <property name="use_underline">True</property>
1184-+ <style>
1185-+ <class name="dim-label"/>
1186-+ </style>
1187-+ </object>
1188-+ <packing>
1189-+ <property name="top_attach">1</property>
1190-+ <property name="bottom_attach">2</property>
1191-+ <property name="x_options">GTK_FILL</property>
1192-+ <property name="y_options"></property>
1193-+ </packing>
1194-+ </child>
1195-+ <child>
1196-+ <object class="GtkSeparator" id="unity_launcher_placement_sep">
1197- <property name="visible">True</property>
1198-- <child>
1199-- <placeholder/>
1200-- </child>
1201- </object>
1202- <packing>
1203-- <property name="left_attach">1</property>
1204-- <property name="right_attach">2</property>
1205- <property name="top_attach">2</property>
1206- <property name="bottom_attach">3</property>
1207-- <property name="x_options"></property>
1208-+ <property name="left_attach">0</property>
1209-+ <property name="right_attach">2</property>
1210-+ <property name="x_options">GTK_FILL</property>
1211- <property name="y_options"></property>
1212- </packing>
1213- </child>
1214- <child>
1215-- <object class="GtkLabel" id="label2">
1216-+ <object class="GtkLabel" id="launcher_placement_label">
1217- <property name="visible">True</property>
1218- <property name="xalign">1</property>
1219-- <property name="label" translatable="yes">_Resolution</property>
1220-+ <property name="label" translatable="yes">L_auncher placement</property>
1221-+ <property name="mnemonic_widget">launcher_placement_combo</property>
1222- <property name="use_underline">True</property>
1223-- <property name="mnemonic_widget">resolution_combo</property>
1224- <style>
1225- <class name="dim-label"/>
1226- </style>
1227- </object>
1228- <packing>
1229-+ <property name="top_attach">3</property>
1230-+ <property name="bottom_attach">4</property>
1231- <property name="x_options">GTK_FILL</property>
1232- <property name="y_options"></property>
1233- </packing>
1234- </child>
1235- <child>
1236-- <object class="GtkLabel" id="label5">
1237-+ <object class="GtkLabel" id="sticky_edge_label">
1238- <property name="visible">True</property>
1239- <property name="xalign">1</property>
1240-- <property name="label" translatable="yes">R_otation</property>
1241-- <property name="mnemonic_widget">rotation_combo</property>
1242-+ <property name="label" translatable="yes">S_ticky edges</property>
1243-+ <property name="mnemonic_widget">stickyedge_switch</property>
1244- <property name="use_underline">True</property>
1245- <style>
1246- <class name="dim-label"/>
1247- </style>
1248- </object>
1249- <packing>
1250-- <property name="top_attach">1</property>
1251-- <property name="bottom_attach">2</property>
1252-+ <property name="top_attach">4</property>
1253-+ <property name="bottom_attach">5</property>
1254- <property name="x_options">GTK_FILL</property>
1255- <property name="y_options"></property>
1256- </packing>
1257-@@ -179,6 +220,63 @@
1258- </packing>
1259- </child>
1260- <child>
1261-+ <object class="GtkComboBox" id="launcher_placement_combo">
1262-+ <property name="visible">True</property>
1263-+ <property name="can_focus">False</property>
1264-+ <property name="model">available_launcher_placement_store</property>
1265-+ <property name="id_column">1</property>
1266-+ <child>
1267-+ <object class="GtkCellRendererPixbuf" id="monitor_preview_renderer"/>
1268-+ <attributes>
1269-+ <attribute name="pixbuf">0</attribute>
1270-+ </attributes>
1271-+ </child>
1272-+ <child>
1273-+ <object class="GtkCellRendererText" id="launcher_placement_name_renderer"/>
1274-+ <attributes>
1275-+ <attribute name="text">1</attribute>
1276-+ </attributes>
1277-+ </child>
1278-+ </object>
1279-+ <packing>
1280-+ <property name="left_attach">1</property>
1281-+ <property name="right_attach">2</property>
1282-+ <property name="top_attach">3</property>
1283-+ <property name="bottom_attach">4</property>
1284-+ <property name="y_options"></property>
1285-+ </packing>
1286-+ </child>
1287-+ <child>
1288-+ <object class="GtkHBox" id="hbox4">
1289-+ <property name="visible">True</property>
1290-+ <property name="spacing">12</property>
1291-+ <child>
1292-+ <object class="GtkSwitch" id="stickyedge_switch">
1293-+ <property name="visible">True</property>
1294-+ <property name="can_focus">True</property>
1295-+ <property name="receives_default">False</property>
1296-+ <property name="active">True</property>
1297-+ </object>
1298-+ <packing>
1299-+ <property name="expand">False</property>
1300-+ <property name="fill">False</property>
1301-+ <property name="pack_type">end</property>
1302-+ <property name="position">1</property>
1303-+ </packing>
1304-+ </child>
1305-+ </object>
1306-+ <packing>
1307-+ <property name="left_attach">1</property>
1308-+ <property name="right_attach">2</property>
1309-+ <property name="top_attach">4</property>
1310-+ <property name="bottom_attach">5</property>
1311-+ <property name="y_options"></property>
1312-+ <property name="expand">False</property>
1313-+ <property name="fill">False</property>
1314-+ <property name="position">0</property>
1315-+ </packing>
1316-+ </child>
1317-+ <child>
1318- <placeholder/>
1319- </child>
1320- </object>
1321
1322=== added file 'debian/patches/52_region_language.patch'
1323--- debian/patches/52_region_language.patch 1970-01-01 00:00:00 +0000
1324+++ debian/patches/52_region_language.patch 2014-05-06 09:05:46 +0000
1325@@ -0,0 +1,586 @@
1326+Description: Adapts the region capplet and the language chooser in the user accounts capplet
1327+Forwarded: https://bugzilla.gnome.org/695939, https://bugzilla.gnome.org/695940
1328+Author: Gunnar Hjalmarsson <gunnarhj@ubuntu.com>
1329+Last-Update: 2013-03-21
1330+
1331+ Some background that explains the need for this patch:
1332+
1333+ * Ubuntu isn't shipped with all languages installed and all locales generated.
1334+ Instead the users install the needed language pack(s), and the corresponding
1335+ locales are generated.
1336+
1337+ * The code in accountsservice for handling languages has been extended via Ubuntu
1338+ specific patches. That code is shared by multiple packages. Currently those
1339+ packages are:
1340+ - gnome-control-center
1341+ - language-selector (Xubuntu and Lubuntu will keep using the language-selector
1342+ UI for now)
1343+ - lightdm (for the language chooser in lightdm-gtk-greeter)
1344+
1345+ With this patch applied, the g-c-c region capplet and the language chooser in the
1346+ user accounts capplet behave approximately the same way as language-selector. No
1347+ migration code needed when standard Ubuntu drops the language-selector UI.
1348+
1349+ Compared with how the region capplet in g-c-c works out of the box, this patch
1350+ results in:
1351+
1352+ * Languages are dealt with using 'll' and 'll_CC' language codes instead of
1353+ complete locale names.
1354+
1355+ * Selected language is stored in both LANGUAGE and LANG.
1356+
1357+ * Only one language list that shows the translations belonging to the installed
1358+ language packs (not a 'short' and a 'long' list).
1359+
1360+ * User level settings of language and regional formats are stored as
1361+ accountsservice properties and in ~/.pam_environment.
1362+
1363+ * All the formats related locale categories set, not just a subset.
1364+
1365+ The following changes now live in gnome-desktop3
1366+
1367+ * Translation @variants, e.g. ca@valencia, are displayed properly.
1368+
1369+ * Locales stored with codeset '.UTF-8' instead of '.utf8'.
1370+
1371+ * The 'common_name' field taken into account when parsing the iso-codes XML files
1372+ for language names.
1373+
1374+From 785b001bbc1d9cca74745ea6dfb75d60f3b5b7a9 Mon Sep 17 00:00:00 2001
1375+From: Tim Lunn <tim@feathertop.org>
1376+Date: Fri, 12 Apr 2013 08:55:40 +1000
1377+Subject: [PATCH] Ubuntu changes required for proper region support.
1378+
1379+---
1380+ panels/common/cc-common-language.c | 110 +++++++++++++++++++++++++++---
1381+ panels/common/cc-common-language.h | 3 +
1382+ panels/common/cc-language-chooser.c | 5 +-
1383+ panels/region/cc-format-chooser.c | 2 +
1384+ panels/region/cc-input-chooser.c | 4 +-
1385+ panels/region/cc-region-panel.c | 127 ++++++++++++++++++++++++++---------
1386+ panels/user-accounts/um-user-panel.c | 11 ++-
1387+ 7 files changed, 216 insertions(+), 46 deletions(-)
1388+
1389+--- a/panels/common/cc-common-language.c
1390++++ b/panels/common/cc-common-language.c
1391+@@ -321,6 +321,67 @@
1392+ return language;
1393+ }
1394+
1395++gchar *
1396++cc_common_language_get_property (const gchar *prop_name)
1397++{
1398++ GDBusConnection *bus;
1399++ gchar *user_path;
1400++ GError *error = NULL;
1401++ GVariant *properties;
1402++ GVariantIter *iter;
1403++ gchar *key;
1404++ GVariant *value;
1405++ gchar *ret = NULL;
1406++
1407++ if (g_strcmp0 (prop_name, "Language") != 0 && g_strcmp0 (prop_name, "FormatsLocale") != 0) {
1408++ g_warning ("Invalid argument: '%s'", prop_name);
1409++ return ret;
1410++ }
1411++
1412++ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
1413++ user_path = g_strdup_printf ("/org/freedesktop/Accounts/User%i", getuid ());
1414++
1415++ properties = g_dbus_connection_call_sync (bus,
1416++ "org.freedesktop.Accounts",
1417++ user_path,
1418++ "org.freedesktop.DBus.Properties",
1419++ "GetAll",
1420++ g_variant_new ("(s)", "org.freedesktop.Accounts.User"),
1421++ G_VARIANT_TYPE ("(a{sv})"),
1422++ G_DBUS_CALL_FLAGS_NONE,
1423++ -1,
1424++ NULL,
1425++ &error);
1426++ if (!properties) {
1427++ g_warning ("Error calling GetAll() when retrieving properties for %s: %s", user_path, error->message);
1428++ g_error_free (error);
1429++ /* g_hash_table_lookup() is not NULL-safe, so don't return NULL */
1430++ if (g_strcmp0 (prop_name, "Language") == 0)
1431++ ret = g_strdup ("en");
1432++ else
1433++ ret = g_strdup ("en_US.UTF-8");
1434++ goto out;
1435++ }
1436++
1437++ g_variant_get (properties, "(a{sv})", &iter);
1438++ while (g_variant_iter_loop (iter, "{&sv}", &key, &value)) {
1439++ if (g_strcmp0 (key, prop_name) == 0) {
1440++ g_variant_get (value, "s", &ret);
1441++ break;
1442++ }
1443++ }
1444++
1445++ g_variant_unref (properties);
1446++ g_variant_iter_free (iter);
1447++
1448++out:
1449++ g_object_unref (bus);
1450++ g_free (user_path);
1451++
1452++ return ret;
1453++}
1454++
1455++
1456+ typedef struct {
1457+ GtkListStore *store;
1458+ gboolean user_lang;
1459+@@ -428,7 +489,7 @@
1460+ char *lang;
1461+ gboolean found;
1462+
1463+- lang = cc_common_language_get_current_language ();
1464++ lang = cc_common_language_get_property ("Language");
1465+ g_debug ("Trying to select lang '%s' in treeview", lang);
1466+ model = gtk_tree_view_get_model (treeview);
1467+ found = FALSE;
1468+@@ -513,6 +574,7 @@
1469+ return lang;
1470+ }
1471+
1472++/*
1473+ static void
1474+ add_other_users_language (GHashTable *ht)
1475+ {
1476+@@ -573,6 +635,7 @@
1477+
1478+ g_object_unref (proxy);
1479+ }
1480++*/
1481+
1482+ static void
1483+ insert_language (GHashTable *ht,
1484+@@ -596,10 +659,10 @@
1485+
1486+ g_debug ("We have translations for %s", lang);
1487+
1488+- if (g_str_has_suffix (lang, ".utf8"))
1489++ if (g_str_has_suffix (lang, ".UTF-8"))
1490+ key = g_strdup (lang);
1491+ else
1492+- key = g_strdup_printf ("%s.utf8", lang);
1493++ key = g_strdup_printf ("%s.UTF-8", lang);
1494+
1495+ label_own_lang = gnome_get_language_from_locale (key, key);
1496+ label_current_lang = gnome_get_language_from_locale (key, NULL);
1497+@@ -625,9 +688,18 @@
1498+ cc_common_language_get_initial_languages (void)
1499+ {
1500+ GHashTable *ht;
1501++ gchar **langs;
1502++ gint i;
1503+
1504+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
1505+
1506++ langs = gnome_get_all_locales ();
1507++ for (i = 0; langs[i]; i++) {
1508++ char *language = strtok (langs[i], ".");
1509++ insert_language (ht, language);
1510++ }
1511++ g_strfreev (langs);
1512++/*
1513+ insert_language (ht, "en_US");
1514+ insert_language (ht, "en_GB");
1515+ insert_language (ht, "de_DE");
1516+@@ -637,7 +709,7 @@
1517+ insert_language (ht, "ja_JP");
1518+ insert_language (ht, "ru_RU");
1519+ insert_language (ht, "ar_EG");
1520+-
1521++*/
1522+ return ht;
1523+ }
1524+
1525+@@ -651,10 +723,10 @@
1526+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
1527+
1528+ /* Add the languages used by other users on the system */
1529+- add_other_users_language (ht);
1530++ // add_other_users_language (ht);
1531+
1532+ /* Add current locale */
1533+- name = cc_common_language_get_current_language ();
1534++ name = cc_common_language_get_property ("Language");
1535+ if (g_hash_table_lookup (ht, name) == NULL) {
1536+ language = gnome_get_language_from_locale (name, NULL);
1537+ g_hash_table_insert (ht, name, language);
1538+@@ -703,6 +775,28 @@
1539+ return ht;
1540+ }
1541+
1542++void
1543++cc_common_language_get_locale (const gchar *language, gchar **locale){
1544++ gchar *command;
1545++ GError *error = NULL;
1546++ /* Get locale that corresponds to the language */
1547++ command = g_strconcat ("/usr/share/language-tools/language2locale ", language, NULL);
1548++ if (!g_spawn_command_line_sync (command, locale, NULL, NULL, &error)) {
1549++ g_warning ("Couldn't get LANG locale: %s", error->message);
1550++ g_error_free (error);
1551++ g_free (command);
1552++
1553++ return;
1554++ }
1555++
1556++ g_free (command);
1557++ g_strchomp (*locale);
1558++ if (strlen (*locale) == 0) {
1559++ g_warning ("Couldn't get LANG locale -- Copying interrupted");
1560++ return;
1561++ }
1562++
1563++}
1564+ static void
1565+ foreach_user_lang_cb (gpointer key,
1566+ gpointer value,
1567+@@ -734,7 +828,7 @@
1568+ user_langs = cc_common_language_get_initial_languages ();
1569+
1570+ /* Add the current locale first */
1571+- name = cc_common_language_get_current_language ();
1572++ name = cc_common_language_get_property ("Language");
1573+ display = g_hash_table_lookup (user_langs, name);
1574+ if (!display) {
1575+ insert_language (user_langs, name);
1576+@@ -750,8 +844,8 @@
1577+ g_hash_table_foreach (user_langs, (GHFunc) foreach_user_lang_cb, store);
1578+
1579+ /* And now the "Other…" selection */
1580+- gtk_list_store_append (store, &iter);
1581+- gtk_list_store_set (store, &iter, LOCALE_COL, NULL, DISPLAY_LOCALE_COL, _("Other…"), -1);
1582++ //gtk_list_store_append (store, &iter);
1583++ //gtk_list_store_set (store, &iter, LOCALE_COL, NULL, DISPLAY_LOCALE_COL, _("Other…"), -1);
1584+
1585+ g_hash_table_destroy (user_langs);
1586+ }
1587+--- a/panels/common/cc-common-language.h
1588++++ b/panels/common/cc-common-language.h
1589+@@ -45,6 +45,7 @@
1590+ GHashTable *user_langs);
1591+ gboolean cc_common_language_has_font (const gchar *locale);
1592+ gchar *cc_common_language_get_current_language (void);
1593++gchar *cc_common_language_get_property (const gchar *prop_name);
1594+
1595+ GHashTable *cc_common_language_get_initial_languages (void);
1596+ GHashTable *cc_common_language_get_user_languages (void);
1597+@@ -57,6 +58,8 @@
1598+
1599+ void cc_common_language_add_user_languages (GtkTreeModel *model);
1600+
1601++void cc_common_language_get_locale (const gchar *language, gchar **locale);
1602++
1603+ G_END_DECLS
1604+
1605+ #endif
1606+--- a/panels/common/cc-language-chooser.c
1607++++ b/panels/common/cc-language-chooser.c
1608+@@ -1,5 +1,4 @@
1609+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
1610+- *
1611++/*
1612+ * Copyright (C) 2013 Red Hat, Inc
1613+ *
1614+ * This program is free software; you can redistribute it and/or modify
1615+@@ -79,7 +78,9 @@
1616+ egg_list_box_refilter (EGG_LIST_BOX (priv->language_list));
1617+ }
1618+ } else {
1619++
1620+ gtk_widget_set_opacity (check, 0.0);
1621++
1622+ }
1623+ }
1624+ g_list_free (children);
1625+--- a/panels/region/cc-format-chooser.c
1626++++ b/panels/region/cc-format-chooser.c
1627+@@ -170,7 +170,9 @@
1628+
1629+ } else {
1630+ /* mark as unselected */
1631++
1632+ gtk_widget_set_opacity (check, 0.0);
1633++
1634+ }
1635+ }
1636+ g_list_free (children);
1637+--- a/panels/region/cc-input-chooser.c
1638++++ b/panels/region/cc-input-chooser.c
1639+@@ -909,7 +909,7 @@
1640+ lang_code != NULL &&
1641+ country_code != NULL)
1642+ {
1643+- gchar *locale = g_strdup_printf ("%s_%s.utf8", lang_code, country_code);
1644++ gchar *locale = g_strdup_printf ("%s_%s.UTF-8", lang_code, country_code);
1645+
1646+ info = g_hash_table_lookup (priv->locales, locale);
1647+ if (info)
1648+@@ -1034,7 +1034,7 @@
1649+ if (!gnome_parse_locale (*locale, &lang_code, &country_code, NULL, NULL))
1650+ continue;
1651+
1652+- simple_locale = g_strdup_printf ("%s_%s.utf8", lang_code, country_code);
1653++ simple_locale = g_strdup_printf ("%s_%s.UTF-8", lang_code, country_code);
1654+ if (g_hash_table_contains (priv->locales, simple_locale))
1655+ {
1656+ g_free (simple_locale);
1657+--- a/panels/region/cc-region-panel.c
1658++++ b/panels/region/cc-region-panel.c
1659+@@ -404,14 +404,55 @@
1660+ }
1661+
1662+ static void
1663++set_formats_locale (const gchar *formats_locale)
1664++{
1665++ GDBusProxy *proxy;
1666++ GError *error = NULL;
1667++ gchar *user_path;
1668++ GVariant *ret;
1669++
1670++ user_path = g_strdup_printf ("/org/freedesktop/Accounts/User%i", getuid ());
1671++ proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
1672++ G_DBUS_PROXY_FLAGS_NONE,
1673++ NULL,
1674++ "org.freedesktop.Accounts",
1675++ user_path,
1676++ "org.freedesktop.Accounts.User",
1677++ NULL,
1678++ &error);
1679++ if (!proxy) {
1680++ g_warning ("Couldn't get accountsservice proxy for %s: %s", user_path, error->message);
1681++ g_error_free (error);
1682++ g_free (user_path);
1683++ return;
1684++ }
1685++
1686++ ret = g_dbus_proxy_call_sync (proxy,
1687++ "SetFormatsLocale",
1688++ g_variant_new ("(s)", formats_locale),
1689++ G_DBUS_CALL_FLAGS_NONE,
1690++ -1,
1691++ NULL,
1692++ &error);
1693++ if (!ret) {
1694++ g_warning ("Couldn't set FormatsLocale: %s", error->message);
1695++ g_error_free (error);
1696++ } else
1697++ g_variant_unref (ret);
1698++
1699++ g_object_unref (proxy);
1700++ g_free (user_path);
1701++}
1702++
1703++static void
1704+ update_region (CcRegionPanel *self,
1705+ const gchar *region)
1706+ {
1707+- CcRegionPanelPrivate *priv = self->priv;
1708++ CcRegionPanelPrivate *priv = self->priv;
1709+
1710+ if (g_strcmp0 (region, priv->region) == 0)
1711+ return;
1712+-
1713++ set_formats_locale(region);
1714+ g_settings_set_string (priv->locale_settings, KEY_REGION, region);
1715+ maybe_notify (self, LC_TIME, region);
1716+ }
1717+@@ -545,7 +586,7 @@
1718+ CcRegionPanelPrivate *priv = self->priv;
1719+
1720+ g_free (priv->region);
1721+- priv->region = g_settings_get_string (priv->locale_settings, KEY_REGION);
1722++ priv->region = cc_common_language_get_property ("FormatsLocale");
1723+ update_region_label (self);
1724+ }
1725+
1726+@@ -576,14 +617,16 @@
1727+ {
1728+ CcRegionPanelPrivate *priv = self->priv;
1729+ const gchar *language;
1730+-
1731+- if (act_user_is_loaded (priv->user))
1732++ const gchar *locale;
1733++ if (act_user_is_loaded (priv->user)){
1734+ language = act_user_get_language (priv->user);
1735++ cc_common_language_get_locale (language, &locale);
1736++ }
1737+ else
1738+- language = "en_US.utf-8";
1739++ locale = "en_US.UTF-8";
1740+
1741+ g_free (priv->language);
1742+- priv->language = g_strdup (language);
1743++ priv->language = g_strdup (locale);
1744+ update_language_label (self);
1745+ }
1746+
1747+@@ -1428,6 +1471,16 @@
1748+ update_buttons (self);
1749+ }
1750+
1751++static gchar *
1752++strip_quotes (const gchar *str)
1753++{
1754++ if ((g_str_has_prefix (str, "\"") && g_str_has_suffix (str, "\""))
1755++ || (g_str_has_prefix (str, "'") && g_str_has_suffix (str, "'")))
1756++ return g_strndup (str + 1, strlen (str) - 2);
1757++ else
1758++ return g_strdup (str);
1759++}
1760++
1761+ static void
1762+ on_localed_properties_changed (GDBusProxy *proxy,
1763+ GVariant *changed_properties,
1764+@@ -1442,34 +1495,49 @@
1765+ const gchar **strv;
1766+ gsize len;
1767+ gint i;
1768+- const gchar *lang, *messages, *time;
1769++ gchar *lang, *language, *messages, *time;
1770+
1771+ strv = g_variant_get_strv (v, &len);
1772+
1773+- lang = messages = time = NULL;
1774++ lang = language = messages = time = NULL;
1775+ for (i = 0; strv[i]; i++) {
1776+ if (g_str_has_prefix (strv[i], "LANG=")) {
1777+- lang = strv[i] + strlen ("LANG=");
1778++ lang = strip_quotes (strv[i] + strlen ("LANG="));
1779++ } else if (g_str_has_prefix (strv[i], "LANGUAGE=")) {
1780++ gchar *tmp = strip_quotes (strv[i] + strlen ("LANGUAGE="));
1781++ gchar **tokens = g_strsplit (tmp, ":", 2);
1782++ language = g_strdup (tokens[0]);
1783++ g_free (tmp);
1784++ g_strfreev (tokens);
1785+ } else if (g_str_has_prefix (strv[i], "LC_MESSAGES=")) {
1786+- messages = strv[i] + strlen ("LC_MESSAGES=");
1787++ messages = strip_quotes (strv[i] + strlen ("LC_MESSAGES="));
1788+ } else if (g_str_has_prefix (strv[i], "LC_TIME=")) {
1789+- time = strv[i] + strlen ("LC_TIME=");
1790++ time = strip_quotes (strv[i] + strlen ("LC_TIME="));
1791+ }
1792+ }
1793++ g_free (strv);
1794++
1795+ if (!lang) {
1796+- lang = "";
1797++ lang = g_strdup ("en_US.UTF-8");
1798+ }
1799+- if (!messages) {
1800+- messages = lang;
1801++ if (!language) {
1802++ if (messages)
1803++ language = g_strdup (messages);
1804++ else
1805++ language = g_strdup (lang);
1806+ }
1807+ if (!time) {
1808+- time = lang;
1809++ time = g_strdup (lang);
1810+ }
1811+ g_free (priv->system_language);
1812+- priv->system_language = g_strdup (messages);
1813++ priv->system_language = g_strdup (language);
1814+ g_free (priv->system_region);
1815+ priv->system_region = g_strdup (time);
1816+ g_variant_unref (v);
1817++ g_free (lang);
1818++ g_free (language);
1819++ g_free (messages);
1820++ g_free (time);
1821+
1822+ update_language_label (self);
1823+ }
1824+@@ -1539,29 +1607,28 @@
1825+ CcRegionPanelPrivate *priv = self->priv;
1826+ GVariantBuilder *b;
1827+ gchar *s;
1828++ gchar *lang;
1829++ gint i;
1830++
1831++ cc_common_language_get_locale (priv->system_language, &lang);
1832+
1833+ b = g_variant_builder_new (G_VARIANT_TYPE ("as"));
1834+- s = g_strconcat ("LANG=", priv->system_language, NULL);
1835++ s = g_strconcat ("LANG=", lang, NULL);
1836+ g_variant_builder_add (b, "s", s);
1837+ g_free (s);
1838+
1839+- if (g_strcmp0 (priv->system_language, priv->system_region) != 0) {
1840+- s = g_strconcat ("LC_TIME=", priv->system_region, NULL);
1841+- g_variant_builder_add (b, "s", s);
1842+- g_free (s);
1843+- s = g_strconcat ("LC_NUMERIC=", priv->system_region, NULL);
1844+- g_variant_builder_add (b, "s", s);
1845+- g_free (s);
1846+- s = g_strconcat ("LC_MONETARY=", priv->system_region, NULL);
1847+- g_variant_builder_add (b, "s", s);
1848+- g_free (s);
1849+- s = g_strconcat ("LC_MEASUREMENT=", priv->system_region, NULL);
1850+- g_variant_builder_add (b, "s", s);
1851+- g_free (s);
1852+- s = g_strconcat ("LC_PAPER=", priv->system_region, NULL);
1853++ s = g_strconcat ("LANGUAGE=", priv->system_language, NULL);
1854++ g_variant_builder_add (b, "s", s);
1855++ g_free (s);
1856++ const gchar *format_categories[] = { "LC_NUMERIC", "LC_TIME",
1857++ "LC_MONETARY", "LC_PAPER", "LC_IDENTIFICATION", "LC_NAME",
1858++ "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT", NULL };
1859++ for (i = 0; format_categories[i] != NULL; i++) {
1860++ s = g_strconcat (format_categories[i], "=", priv->system_region, NULL);
1861+ g_variant_builder_add (b, "s", s);
1862+ g_free (s);
1863+ }
1864++
1865+ g_dbus_proxy_call (priv->localed,
1866+ "SetLocale",
1867+ g_variant_new ("(asb)", b, TRUE),
1868+--- a/panels/user-accounts/um-user-panel.c
1869++++ b/panels/user-accounts/um-user-panel.c
1870+@@ -697,8 +697,9 @@
1871+ cc_common_language_add_user_languages (model);
1872+
1873+ lang = g_strdup (act_user_get_language (user));
1874++ cc_common_language_get_locale (lang, &lang);
1875+ if (!lang)
1876+- lang = cc_common_language_get_current_language ();
1877++ lang = cc_common_language_get_property ("Language");
1878+ if (cc_common_language_get_iter_for_language (model, lang, &iter))
1879+ um_editable_combo_set_active_iter (UM_EDITABLE_COMBO (widget), &iter);
1880+ g_free (lang);
1881+@@ -824,8 +825,9 @@
1882+ }
1883+ else {
1884+ lang = g_strdup (act_user_get_language (user));
1885++ cc_common_language_get_locale (lang, &lang);
1886+ if (!lang) {
1887+- lang = cc_common_language_get_current_language ();
1888++ lang = cc_common_language_get_property ("Language");
1889+ }
1890+ }
1891+ cc_common_language_get_iter_for_language (model, lang, &iter);
1892+@@ -845,6 +847,7 @@
1893+ GtkTreeModel *model;
1894+ GtkTreeIter iter;
1895+ gchar *lang;
1896++ gchar *locale;
1897+ ActUser *user;
1898+
1899+ if (!um_editable_combo_get_active_iter (combo, &iter))
1900+@@ -855,8 +858,10 @@
1901+ model = um_editable_combo_get_model (combo);
1902+
1903+ gtk_tree_model_get (model, &iter, 0, &lang, -1);
1904++ cc_common_language_get_locale(act_user_get_language (user),&locale);
1905++
1906+ if (lang) {
1907+- if (g_strcmp0 (lang, act_user_get_language (user)) != 0) {
1908++ if (g_strcmp0 (lang, locale) != 0) {
1909+ act_user_set_language (user, lang);
1910+ }
1911+ g_free (lang);
1912
1913=== removed file 'debian/patches/52_region_language.patch'
1914--- debian/patches/52_region_language.patch 2013-07-05 22:08:12 +0000
1915+++ debian/patches/52_region_language.patch 1970-01-01 00:00:00 +0000
1916@@ -1,652 +0,0 @@
1917-Description: Adapts the region capplet and the language chooser in the user accounts capplet
1918-Forwarded: https://bugzilla.gnome.org/695939, https://bugzilla.gnome.org/695940
1919-Author: Gunnar Hjalmarsson <gunnarhj@ubuntu.com>
1920-Last-Update: 2013-03-21
1921-
1922- Some background that explains the need for this patch:
1923-
1924- * Ubuntu isn't shipped with all languages installed and all locales generated.
1925- Instead the users install the needed language pack(s), and the corresponding
1926- locales are generated.
1927-
1928- * The code in accountsservice for handling languages has been extended via Ubuntu
1929- specific patches. That code is shared by multiple packages. Currently those
1930- packages are:
1931- - gnome-control-center
1932- - language-selector (Xubuntu and Lubuntu will keep using the language-selector
1933- UI for now)
1934- - lightdm (for the language chooser in lightdm-gtk-greeter)
1935-
1936- With this patch applied, the g-c-c region capplet and the language chooser in the
1937- user accounts capplet behave approximately the same way as language-selector. No
1938- migration code needed when standard Ubuntu drops the language-selector UI.
1939-
1940- Compared with how the region capplet in g-c-c works out of the box, this patch
1941- results in:
1942-
1943- * Languages are dealt with using 'll' and 'll_CC' language codes instead of
1944- complete locale names.
1945-
1946- * Selected language is stored in both LANGUAGE and LANG.
1947-
1948- * Only one language list that shows the translations belonging to the installed
1949- language packs (not a 'short' and a 'long' list).
1950-
1951- * User level settings of language and regional formats are stored as
1952- accountsservice properties and in ~/.pam_environment.
1953-
1954- * All the formats related locale categories set, not just a subset.
1955-
1956- * Translation @variants, e.g. ca@valencia, are displayed properly.
1957-
1958- * Locales stored with codeset '.UTF-8' instead of '.utf8'.
1959-
1960- * The 'common_name' field taken into account when parsing the iso-codes XML files
1961- for language names.
1962-
1963-Index: gnome-control-center-3.6.3/panels/common/cc-common-language.c
1964-===================================================================
1965---- gnome-control-center-3.6.3.orig/panels/common/cc-common-language.c 2013-03-15 17:20:48.939849976 +0100
1966-+++ gnome-control-center-3.6.3/panels/common/cc-common-language.c 2013-03-21 14:22:09.358586554 +0100
1967-@@ -326,6 +326,66 @@
1968- return language;
1969- }
1970-
1971-+gchar *
1972-+cc_common_language_get_property (const gchar *prop_name)
1973-+{
1974-+ GDBusConnection *bus;
1975-+ gchar *user_path;
1976-+ GError *error = NULL;
1977-+ GVariant *properties;
1978-+ GVariantIter *iter;
1979-+ gchar *key;
1980-+ GVariant *value;
1981-+ gchar *ret = NULL;
1982-+
1983-+ if (g_strcmp0 (prop_name, "Language") != 0 && g_strcmp0 (prop_name, "FormatsLocale") != 0) {
1984-+ g_warning ("Invalid argument: '%s'", prop_name);
1985-+ return ret;
1986-+ }
1987-+
1988-+ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
1989-+ user_path = g_strdup_printf ("/org/freedesktop/Accounts/User%i", getuid ());
1990-+
1991-+ properties = g_dbus_connection_call_sync (bus,
1992-+ "org.freedesktop.Accounts",
1993-+ user_path,
1994-+ "org.freedesktop.DBus.Properties",
1995-+ "GetAll",
1996-+ g_variant_new ("(s)", "org.freedesktop.Accounts.User"),
1997-+ G_VARIANT_TYPE ("(a{sv})"),
1998-+ G_DBUS_CALL_FLAGS_NONE,
1999-+ -1,
2000-+ NULL,
2001-+ &error);
2002-+ if (!properties) {
2003-+ g_warning ("Error calling GetAll() when retrieving properties for %s: %s", user_path, error->message);
2004-+ g_error_free (error);
2005-+ /* g_hash_table_lookup() is not NULL-safe, so don't return NULL */
2006-+ if (g_strcmp0 (prop_name, "Language") == 0)
2007-+ ret = g_strdup ("en");
2008-+ else
2009-+ ret = g_strdup ("en_US.UTF-8");
2010-+ goto out;
2011-+ }
2012-+
2013-+ g_variant_get (properties, "(a{sv})", &iter);
2014-+ while (g_variant_iter_loop (iter, "{&sv}", &key, &value)) {
2015-+ if (g_strcmp0 (key, prop_name) == 0) {
2016-+ g_variant_get (value, "s", &ret);
2017-+ break;
2018-+ }
2019-+ }
2020-+
2021-+ g_variant_unref (properties);
2022-+ g_variant_iter_free (iter);
2023-+
2024-+out:
2025-+ g_object_unref (bus);
2026-+ g_free (user_path);
2027-+
2028-+ return ret;
2029-+}
2030-+
2031- static void
2032- languages_foreach_cb (gpointer key,
2033- gpointer value,
2034-@@ -407,7 +467,7 @@
2035- char *lang;
2036- gboolean found;
2037-
2038-- lang = cc_common_language_get_current_language ();
2039-+ lang = cc_common_language_get_property ("Language");
2040- g_debug ("Trying to select lang '%s' in treeview", lang);
2041- model = gtk_tree_view_get_model (treeview);
2042- found = FALSE;
2043-@@ -440,6 +500,7 @@
2044- g_warning ("Could not find current language '%s' in the treeview", lang);
2045- }
2046-
2047-+/*
2048- static void
2049- add_other_users_language (GHashTable *ht)
2050- {
2051-@@ -519,6 +580,7 @@
2052-
2053- g_object_unref (proxy);
2054- }
2055-+*/
2056-
2057- GHashTable *
2058- cc_common_language_get_initial_languages (void)
2059-@@ -530,6 +592,7 @@
2060- ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
2061-
2062- /* Add some common languages first */
2063-+/*
2064- g_hash_table_insert (ht, g_strdup ("en_US.utf8"), g_strdup (_("English")));
2065- if (gdm_language_has_translations ("en_GB"))
2066- g_hash_table_insert (ht, g_strdup ("en_GB.utf8"), g_strdup (_("British English")));
2067-@@ -550,12 +613,29 @@
2068- if (gdm_language_has_translations ("ar") ||
2069- gdm_language_has_translations ("ar_EG"))
2070- g_hash_table_insert (ht, g_strdup ("ar_EG.utf8"), g_strdup (_("Arabic")));
2071--
2072-+*/
2073- /* Add the languages used by other users on the system */
2074-- add_other_users_language (ht);
2075-+// add_other_users_language (ht);
2076-+
2077-+ /* Add installed languages */
2078-+ gchar *avail_languages;
2079-+ GError *error = NULL;
2080-+ if (g_spawn_command_line_sync ("/usr/share/language-tools/language-options",
2081-+ &avail_languages, NULL, NULL, &error)) {
2082-+ name = strtok (avail_languages, "\n");
2083-+ while (name != NULL) {
2084-+ language = gdm_get_language_from_name (name, NULL);
2085-+ g_hash_table_insert (ht, g_strdup (name), language);
2086-+ name = strtok (NULL, "\n");
2087-+ }
2088-+ g_free (avail_languages);
2089-+ } else {
2090-+ g_warning ("Couldn't get available languages: %s", error->message);
2091-+ g_error_free (error);
2092-+ }
2093-
2094-- /* Add current locale */
2095-- name = cc_common_language_get_current_language ();
2096-+ /* Add current language */
2097-+ name = cc_common_language_get_property ("Language");
2098- if (g_hash_table_lookup (ht, name) == NULL) {
2099- language = gdm_get_language_from_name (name, NULL);
2100- g_hash_table_insert (ht, name, language);
2101-Index: gnome-control-center-3.6.3/panels/common/cc-common-language.h
2102-===================================================================
2103---- gnome-control-center-3.6.3.orig/panels/common/cc-common-language.h 2013-03-15 17:20:48.939849976 +0100
2104-+++ gnome-control-center-3.6.3/panels/common/cc-common-language.h 2013-03-15 17:20:48.903849975 +0100
2105-@@ -45,6 +45,7 @@
2106- GHashTable *user_langs);
2107- gboolean cc_common_language_has_font (const gchar *locale);
2108- gchar *cc_common_language_get_current_language (void);
2109-+gchar *cc_common_language_get_property (const gchar *prop_name);
2110-
2111- GHashTable *cc_common_language_get_initial_languages (void);
2112- GHashTable *cc_common_language_get_initial_regions (const gchar *lang);
2113-Index: gnome-control-center-3.6.3/panels/common/cc-language-chooser.c
2114-===================================================================
2115---- gnome-control-center-3.6.3.orig/panels/common/cc-language-chooser.c 2013-03-15 17:20:48.939849976 +0100
2116-+++ gnome-control-center-3.6.3/panels/common/cc-language-chooser.c 2013-03-15 17:20:48.919849976 +0100
2117-@@ -105,8 +105,8 @@
2118-
2119- user_langs = cc_common_language_get_initial_languages ();
2120-
2121-- /* Add the current locale first */
2122-- name = cc_common_language_get_current_language ();
2123-+ /* Add the current language first */
2124-+ name = cc_common_language_get_property ("Language");
2125- display = g_hash_table_lookup (user_langs, name);
2126-
2127- gtk_list_store_append (store, &iter);
2128-@@ -118,8 +118,8 @@
2129- g_hash_table_foreach (user_langs, (GHFunc) languages_foreach_cb, store);
2130-
2131- /* And now the "Other..." selection */
2132-- gtk_list_store_append (store, &iter);
2133-- gtk_list_store_set (store, &iter, LOCALE_COL, NULL, DISPLAY_LOCALE_COL, _("Other..."), -1);
2134-+// gtk_list_store_append (store, &iter);
2135-+// gtk_list_store_set (store, &iter, LOCALE_COL, NULL, DISPLAY_LOCALE_COL, _("Other..."), -1);
2136-
2137- g_hash_table_destroy (user_langs);
2138- }
2139-Index: gnome-control-center-3.6.3/panels/common/gdm-languages.c
2140-===================================================================
2141---- gnome-control-center-3.6.3.orig/panels/common/gdm-languages.c 2013-03-15 17:20:48.939849976 +0100
2142-+++ gnome-control-center-3.6.3/panels/common/gdm-languages.c 2013-03-15 17:20:48.923849976 +0100
2143-@@ -224,6 +224,7 @@
2144- const char *codeset,
2145- const char *modifier)
2146- {
2147-+ const char *adj_codeset;
2148- char *name;
2149-
2150- g_assert (language[0] != 0);
2151-@@ -231,12 +232,17 @@
2152- g_assert (codeset == NULL || codeset[0] != 0);
2153- g_assert (modifier == NULL || modifier[0] != 0);
2154-
2155-+ if (g_strcmp0 (codeset, "utf8") == 0) {
2156-+ adj_codeset = "UTF-8";
2157-+ } else
2158-+ adj_codeset = codeset;
2159-+
2160- name = g_strdup_printf ("%s%s%s%s%s%s%s",
2161- language,
2162- territory != NULL? "_" : "",
2163- territory != NULL? territory : "",
2164- codeset != NULL? "." : "",
2165-- codeset != NULL? codeset : "",
2166-+ codeset != NULL? adj_codeset : "",
2167- modifier != NULL? "@" : "",
2168- modifier != NULL? modifier : "");
2169-
2170-@@ -854,6 +860,7 @@
2171- const char *ccode_longT;
2172- const char *ccode;
2173- const char *ccode_id;
2174-+ const char *lang_common_name;
2175- const char *lang_name;
2176-
2177- if (! (g_str_equal (element_name, "iso_639_entry") || g_str_equal (element_name, "iso_639_3_entry"))
2178-@@ -865,6 +872,7 @@
2179- ccode_longB = NULL;
2180- ccode_longT = NULL;
2181- ccode_id = NULL;
2182-+ lang_common_name = NULL;
2183- lang_name = NULL;
2184-
2185- while (*attr_names && *attr_values) {
2186-@@ -901,6 +909,11 @@
2187- }
2188- ccode_id = *attr_values;
2189- }
2190-+ } else if (g_str_equal (*attr_names, "common_name")) {
2191-+ /* skip if empty */
2192-+ if (**attr_values) {
2193-+ lang_common_name = *attr_values;
2194-+ }
2195- } else if (g_str_equal (*attr_names, "name")) {
2196- lang_name = *attr_values;
2197- }
2198-@@ -909,6 +922,10 @@
2199- ++attr_values;
2200- }
2201-
2202-+ if (lang_common_name != NULL) {
2203-+ lang_name = lang_common_name;
2204-+ }
2205-+
2206- if (lang_name == NULL) {
2207- return;
2208- }
2209-@@ -1131,6 +1148,7 @@
2210- char *langinfo_codeset;
2211- char *translated_language;
2212- char *translated_territory;
2213-+ char *modifier;
2214- gboolean is_utf8 = TRUE;
2215-
2216- g_return_val_if_fail (name != NULL, NULL);
2217-@@ -1153,12 +1171,13 @@
2218- language_code = NULL;
2219- territory_code = NULL;
2220- codeset_code = NULL;
2221-+ modifier = NULL;
2222-
2223- gdm_parse_language_name (name,
2224- &language_code,
2225- &territory_code,
2226- &codeset_code,
2227-- NULL);
2228-+ &modifier);
2229-
2230- if (language_code == NULL) {
2231- goto out;
2232-@@ -1184,7 +1203,7 @@
2233- translated_territory);
2234- }
2235-
2236-- language_name_get_codeset_details (name, &langinfo_codeset, &is_utf8);
2237-+// language_name_get_codeset_details (name, &langinfo_codeset, &is_utf8);
2238-
2239- if (codeset_code == NULL && langinfo_codeset != NULL) {
2240- codeset_code = g_strdup (langinfo_codeset);
2241-@@ -1196,6 +1215,10 @@
2242- codeset_code);
2243- }
2244-
2245-+ if (modifier != NULL) {
2246-+ g_string_append_printf (full_language, " - %s", modifier);
2247-+ }
2248-+
2249- out:
2250- g_free (language_code);
2251- g_free (territory_code);
2252-@@ -1203,6 +1226,7 @@
2253- g_free (langinfo_codeset);
2254- g_free (translated_language);
2255- g_free (translated_territory);
2256-+ g_free (modifier);
2257-
2258- if (full_language->len == 0) {
2259- g_string_free (full_language, TRUE);
2260-Index: gnome-control-center-3.6.3/panels/region/gnome-region-panel-formats.c
2261-===================================================================
2262---- gnome-control-center-3.6.3.orig/panels/region/gnome-region-panel-formats.c 2013-03-15 17:20:48.939849976 +0100
2263-+++ gnome-control-center-3.6.3/panels/region/gnome-region-panel-formats.c 2013-03-15 17:20:48.927849976 +0100
2264-@@ -31,6 +31,7 @@
2265- #include "cc-language-chooser.h"
2266- #include "gdm-languages.h"
2267- #include "gnome-region-panel-formats.h"
2268-+#include "gnome-region-panel-system.h"
2269-
2270- static void
2271- display_date (GtkLabel *label, GDateTime *dt, const gchar *format)
2272-@@ -149,6 +150,46 @@
2273- g_free (active_id);
2274- }
2275-
2276-+static void
2277-+set_formats_locale (const gchar *formats_locale)
2278-+{
2279-+ GDBusProxy *proxy;
2280-+ GError *error = NULL;
2281-+ gchar *user_path;
2282-+ GVariant *ret;
2283-+
2284-+ user_path = g_strdup_printf ("/org/freedesktop/Accounts/User%i", getuid ());
2285-+ proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
2286-+ G_DBUS_PROXY_FLAGS_NONE,
2287-+ NULL,
2288-+ "org.freedesktop.Accounts",
2289-+ user_path,
2290-+ "org.freedesktop.Accounts.User",
2291-+ NULL,
2292-+ &error);
2293-+ if (!proxy) {
2294-+ g_warning ("Couldn't get accountsservice proxy for %s: %s", user_path, error->message);
2295-+ g_error_free (error);
2296-+ g_free (user_path);
2297-+ return;
2298-+ }
2299-+
2300-+ ret = g_dbus_proxy_call_sync (proxy,
2301-+ "SetFormatsLocale",
2302-+ g_variant_new ("(s)", formats_locale),
2303-+ G_DBUS_CALL_FLAGS_NONE,
2304-+ -1,
2305-+ NULL,
2306-+ &error);
2307-+ if (!ret) {
2308-+ g_warning ("Couldn't set FormatsLocale: %s", error->message);
2309-+ g_error_free (error);
2310-+ } else
2311-+ g_variant_unref (ret);
2312-+
2313-+ g_object_unref (proxy);
2314-+ g_free (user_path);
2315-+}
2316-
2317- static void
2318- update_settings_cb (GtkTreeSelection *selection, gpointer user_data)
2319-@@ -159,7 +200,6 @@
2320- gchar *active_id;
2321- GtkWidget *treeview;
2322- GSettings *locale_settings;
2323-- gchar *current_setting;
2324-
2325- if (!gtk_tree_selection_get_selected (selection, &model, &iter)) {
2326- return;
2327-@@ -169,13 +209,10 @@
2328- treeview = GTK_WIDGET (gtk_builder_get_object (builder, "region_selector"));
2329-
2330- locale_settings = g_object_get_data (G_OBJECT (treeview), "settings");
2331-- current_setting = g_settings_get_string (locale_settings, "region");
2332-
2333-- if (g_strcmp0 (active_id, current_setting) != 0) {
2334-- g_settings_set_string (locale_settings, "region", active_id);
2335-- }
2336-+ set_formats_locale (active_id);
2337-+ locale_settings_changed (locale_settings, NULL, builder);
2338-
2339-- g_free (current_setting);
2340- g_free (active_id);
2341- }
2342-
2343-@@ -184,7 +221,7 @@
2344- {
2345- gchar *current_setting;
2346-
2347-- current_setting = g_settings_get_string (locale_settings, "region");
2348-+ current_setting = cc_common_language_get_property ("FormatsLocale");
2349- select_region (treeview, current_setting);
2350- g_free (current_setting);
2351- }
2352-@@ -213,7 +250,6 @@
2353- populate_regions (GtkBuilder *builder, const gchar *current_lang)
2354- {
2355- gchar *current_region;
2356-- GSettings *locale_settings;
2357- GHashTable *ht;
2358- GHashTableIter htiter;
2359- GtkTreeModel *model;
2360-@@ -228,11 +264,10 @@
2361- g_signal_handlers_block_by_func (selection, update_settings_cb, builder);
2362-
2363- model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
2364-- locale_settings = g_object_get_data (G_OBJECT (treeview), "settings");
2365-
2366- ht = cc_common_language_get_initial_regions (current_lang);
2367-
2368-- current_region = g_settings_get_string (locale_settings, "region");
2369-+ current_region = cc_common_language_get_property ("FormatsLocale");
2370- if (!current_region || !current_region[0]) {
2371- current_region = g_strdup (current_lang);
2372- }
2373-Index: gnome-control-center-3.6.3/panels/region/gnome-region-panel-system.c
2374-===================================================================
2375---- gnome-control-center-3.6.3.orig/panels/region/gnome-region-panel-system.c 2013-03-15 17:20:48.939849976 +0100
2376-+++ gnome-control-center-3.6.3/panels/region/gnome-region-panel-system.c 2013-03-15 17:48:09.379904608 +0100
2377-@@ -88,7 +88,7 @@
2378- gtk_widget_set_sensitive (button, TRUE);
2379- }
2380-
2381--static void
2382-+void
2383- locale_settings_changed (GSettings *settings,
2384- const gchar *key,
2385- GtkBuilder *dialog)
2386-@@ -96,7 +96,7 @@
2387- GtkWidget *label;
2388- gchar *region, *display_region;
2389-
2390-- region = g_settings_get_string (locale_settings, "region");
2391-+ region = cc_common_language_get_property ("FormatsLocale");
2392- if (!region || !region[0]) {
2393- label = WID ("user_display_language");
2394- region = g_strdup ((gchar*)g_object_get_data (G_OBJECT (label), "language"));
2395-@@ -216,6 +216,16 @@
2396- }
2397- }
2398-
2399-+static gchar *
2400-+strip_quotes (const gchar *str)
2401-+{
2402-+ if ((g_str_has_prefix (str, "\"") && g_str_has_suffix (str, "\""))
2403-+ || (g_str_has_prefix (str, "'") && g_str_has_suffix (str, "'")))
2404-+ return g_strndup (str + 1, strlen (str) - 2);
2405-+ else
2406-+ return g_strdup (str);
2407-+}
2408-+
2409- static void
2410- on_localed_properties_changed (GDBusProxy *proxy,
2411- GVariant *changed_properties,
2412-@@ -244,33 +254,43 @@
2413- const gchar **strv;
2414- gsize len;
2415- gint i;
2416-- const gchar *lang, *messages, *time;
2417-+ gchar *lang, *language, *messages, *time;
2418- gchar *name;
2419- GtkWidget *label;
2420-
2421- strv = g_variant_get_strv (v, &len);
2422-
2423-- lang = messages = time = NULL;
2424-+ lang = language = messages = time = NULL;
2425- for (i = 0; strv[i]; i++) {
2426- if (g_str_has_prefix (strv[i], "LANG=")) {
2427-- lang = strv[i] + strlen ("LANG=");
2428-+ lang = strip_quotes (strv[i] + strlen ("LANG="));
2429-+ }
2430-+ else if (g_str_has_prefix (strv[i], "LANGUAGE=")) {
2431-+ gchar *tmp = strip_quotes (strv[i] + strlen ("LANGUAGE="));
2432-+ gchar **tokens = g_strsplit (tmp, ":", 2);
2433-+ language = g_strdup (tokens[0]);
2434-+ g_free (tmp);
2435-+ g_strfreev (tokens);
2436- }
2437- else if (g_str_has_prefix (strv[i], "LC_MESSAGES=")) {
2438-- messages = strv[i] + strlen ("LC_MESSAGES=");
2439-+ messages = strip_quotes (strv[i] + strlen ("LC_MESSAGES="));
2440- }
2441- else if (g_str_has_prefix (strv[i], "LC_TIME=")) {
2442-- time = strv[i] + strlen ("LC_TIME=");
2443-+ time = strip_quotes (strv[i] + strlen ("LC_TIME="));
2444- }
2445- }
2446-- if (!messages) {
2447-- messages = lang;
2448-+ if (!language) {
2449-+ if (messages)
2450-+ language = g_strdup (messages);
2451-+ else
2452-+ language = g_strdup (lang);
2453- }
2454- if (!time) {
2455-- time = lang;
2456-+ time = g_strdup (lang);
2457- }
2458-
2459-- if (messages) {
2460-- name = gdm_get_language_from_name (messages, NULL);
2461-+ if (language) {
2462-+ name = gdm_get_language_from_name (language, NULL);
2463- label = WID ("system_display_language");
2464- gtk_label_set_text (GTK_LABEL (label), name);
2465- g_free (name);
2466-@@ -285,6 +305,10 @@
2467- g_object_set_data_full (G_OBJECT (label), "region", g_strdup (time), g_free);
2468- }
2469- g_variant_unref (v);
2470-+ g_free (lang);
2471-+ g_free (language);
2472-+ g_free (messages);
2473-+ g_free (time);
2474- }
2475-
2476- label = WID ("system_input_source");
2477-@@ -350,27 +374,44 @@
2478- GtkWidget *label;
2479- GVariantBuilder *b;
2480- gchar *s;
2481-+ gchar *command;
2482-+ gchar *lang;
2483-+ GError *error = NULL;
2484-+ gint i;
2485-
2486- label = WID ("user_display_language");
2487- language = g_object_get_data (G_OBJECT (label), "language");
2488- label = WID ("user_format");
2489- region = g_object_get_data (G_OBJECT (label), "region");
2490-
2491-+ /* Get locale that corresponds to the language */
2492-+ command = g_strconcat ("/usr/share/language-tools/language2locale ", language, NULL);
2493-+ if (!g_spawn_command_line_sync (command, &lang, NULL, NULL, &error)) {
2494-+ g_warning ("Couldn't get LANG locale: %s", error->message);
2495-+ g_error_free (error);
2496-+ g_free (command);
2497-+ return;
2498-+ }
2499-+ g_free (command);
2500-+ g_strchomp (lang);
2501-+ if (strlen (lang) == 0) {
2502-+ g_warning ("Couldn't get LANG locale -- Copying interrupted");
2503-+ return;
2504-+ }
2505-+
2506- b = g_variant_builder_new (G_VARIANT_TYPE ("as"));
2507-- s = g_strconcat ("LANG=", language, NULL);
2508-+ s = g_strconcat ("LANG=", lang, NULL);
2509- g_variant_builder_add (b, "s", s);
2510-+ g_free (lang);
2511- g_free (s);
2512-- if (g_strcmp0 (language, region) != 0) {
2513-- s = g_strconcat ("LC_TIME=", region, NULL);
2514-- g_variant_builder_add (b, "s", s);
2515-- g_free (s);
2516-- s = g_strconcat ("LC_NUMERIC=", region, NULL);
2517-- g_variant_builder_add (b, "s", s);
2518-- g_free (s);
2519-- s = g_strconcat ("LC_MONETARY=", region, NULL);
2520-- g_variant_builder_add (b, "s", s);
2521-- g_free (s);
2522-- s = g_strconcat ("LC_MEASUREMENT=", region, NULL);
2523-+ s = g_strconcat ("LANGUAGE=", language, NULL);
2524-+ g_variant_builder_add (b, "s", s);
2525-+ g_free (s);
2526-+ const gchar *format_categories[] = { "LC_NUMERIC", "LC_TIME",
2527-+ "LC_MONETARY", "LC_PAPER", "LC_IDENTIFICATION", "LC_NAME",
2528-+ "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT", NULL };
2529-+ for (i = 0; format_categories[i] != NULL; i++) {
2530-+ s = g_strconcat (format_categories[i], "=", region, NULL);
2531- g_variant_builder_add (b, "s", s);
2532- g_free (s);
2533- }
2534-@@ -525,7 +566,7 @@
2535- g_object_weak_ref (G_OBJECT (dialog), (GWeakNotify) g_object_unref, input_sources_settings);
2536-
2537- /* Display user settings */
2538-- language = cc_common_language_get_current_language ();
2539-+ language = cc_common_language_get_property ("Language");
2540- system_update_language (dialog, language);
2541- g_free (language);
2542-
2543-Index: gnome-control-center-3.6.3/panels/region/gnome-region-panel-system.h
2544-===================================================================
2545---- gnome-control-center-3.6.3.orig/panels/region/gnome-region-panel-system.h 2013-03-15 17:20:48.939849976 +0100
2546-+++ gnome-control-center-3.6.3/panels/region/gnome-region-panel-system.h 2013-03-15 17:20:48.927849976 +0100
2547-@@ -27,5 +27,8 @@
2548- void setup_system (GtkBuilder *builder);
2549- void system_update_language (GtkBuilder *builder,
2550- const gchar *language);
2551-+void locale_settings_changed (GSettings *settings,
2552-+ const gchar *key,
2553-+ GtkBuilder *dialog);
2554-
2555- #endif
2556-Index: gnome-control-center-3.6.3/panels/region/gnome-region-panel.ui
2557-===================================================================
2558---- gnome-control-center-3.6.3.orig/panels/region/gnome-region-panel.ui 2013-03-15 17:20:48.939849976 +0100
2559-+++ gnome-control-center-3.6.3/panels/region/gnome-region-panel.ui 2013-03-15 17:20:48.931849976 +0100
2560-@@ -192,7 +192,7 @@
2561- </child>
2562- <child>
2563- <object class="GtkToolbar" id="language-toolbar">
2564-- <property name="visible">True</property>
2565-+ <property name="visible">False</property>
2566- <property name="can_focus">False</property>
2567- <property name="toolbar_style">icons</property>
2568- <property name="show_arrow">False</property>
2569
2570=== removed file 'debian/patches/53_use_ubuntu_help.patch'
2571--- debian/patches/53_use_ubuntu_help.patch 2013-07-05 13:31:20 +0000
2572+++ debian/patches/53_use_ubuntu_help.patch 1970-01-01 00:00:00 +0000
2573@@ -1,282 +0,0 @@
2574-Description: Use pre-installed Ubuntu Desktop Guide instead of GNOME help when
2575- running Unity
2576-Forwarded: not-needed
2577-Author: Jeremy Bicha <jbicha@ubuntu.com>
2578-Index: gnome-control-center-3.6.2/panels/bluetooth/cc-bluetooth-panel.c
2579-===================================================================
2580---- gnome-control-center-3.6.2.orig/panels/bluetooth/cc-bluetooth-panel.c 2012-11-02 19:29:55.031315523 -0400
2581-+++ gnome-control-center-3.6.2/panels/bluetooth/cc-bluetooth-panel.c 2012-11-02 19:29:57.639315414 -0400
2582-@@ -72,7 +72,10 @@
2583- static const char *
2584- cc_bluetooth_panel_get_help_uri (CcPanel *panel)
2585- {
2586-- return "help:gnome-help/bluetooth";
2587-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2588-+ return "help:ubuntu-help/bluetooth";
2589-+ else
2590-+ return "help:gnome-help/bluetooth";
2591- }
2592-
2593- static void
2594-Index: gnome-control-center-3.6.2/panels/color/cc-color-panel.c
2595-===================================================================
2596---- gnome-control-center-3.6.2.orig/panels/color/cc-color-panel.c 2012-11-02 19:29:55.031315523 -0400
2597-+++ gnome-control-center-3.6.2/panels/color/cc-color-panel.c 2012-11-02 19:30:52.679313112 -0400
2598-@@ -2285,7 +2285,10 @@
2599- static const char *
2600- cc_color_panel_get_help_uri (CcPanel *panel)
2601- {
2602-- return "help:gnome-help/color";
2603-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2604-+ return "help:ubuntu-help/color";
2605-+ else
2606-+ return "help:gnome-help/color";
2607- }
2608-
2609- static void
2610-@@ -2567,6 +2570,12 @@
2611- g_signal_connect (widget, "realize",
2612- G_CALLBACK (gcm_prefs_window_realize_cb),
2613- prefs);
2614-+
2615-+ widget = WID (priv->builder, "linkbutton_help");
2616-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2617-+ g_object_set (G_OBJECT (widget),
2618-+ "uri", "help:ubuntu-help/color-whyimportant",
2619-+ NULL);
2620- }
2621-
2622- void
2623-Index: gnome-control-center-3.6.2/panels/datetime/cc-datetime-panel.c
2624-===================================================================
2625---- gnome-control-center-3.6.2.orig/panels/datetime/cc-datetime-panel.c 2012-11-02 19:29:55.031315523 -0400
2626-+++ gnome-control-center-3.6.2/panels/datetime/cc-datetime-panel.c 2012-11-02 19:29:57.639315414 -0400
2627-@@ -178,7 +178,10 @@
2628- static const char *
2629- cc_date_time_panel_get_help_uri (CcPanel *panel)
2630- {
2631-- return "help:gnome-help/clock";
2632-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2633-+ return "help:ubuntu-help/clock";
2634-+ else
2635-+ return "help:gnome-help/clock";
2636- }
2637-
2638- static void
2639-Index: gnome-control-center-3.6.2/panels/display/cc-display-panel.c
2640-===================================================================
2641---- gnome-control-center-3.6.2.orig/panels/display/cc-display-panel.c 2012-11-02 19:29:55.031315523 -0400
2642-+++ gnome-control-center-3.6.2/panels/display/cc-display-panel.c 2012-11-02 19:29:57.643315414 -0400
2643-@@ -205,7 +205,10 @@
2644- static const char *
2645- cc_display_panel_get_help_uri (CcPanel *panel)
2646- {
2647-- return "help:gnome-help/prefs-display";
2648-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2649-+ return "help:ubuntu-help/prefs-display";
2650-+ else
2651-+ return "help:gnome-help/prefs-display";
2652- }
2653-
2654- static void
2655-Index: gnome-control-center-3.6.2/panels/mouse/cc-mouse-panel.c
2656-===================================================================
2657---- gnome-control-center-3.6.2.orig/panels/mouse/cc-mouse-panel.c 2012-11-02 19:29:55.031315523 -0400
2658-+++ gnome-control-center-3.6.2/panels/mouse/cc-mouse-panel.c 2012-11-02 19:29:57.643315414 -0400
2659-@@ -107,7 +107,10 @@
2660- static const char *
2661- cc_mouse_panel_get_help_uri (CcPanel *panel)
2662- {
2663-- return "help:gnome-help/mouse";
2664-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2665-+ return "help:ubuntu-help/mouse";
2666-+ else
2667-+ return "help:gnome-help/mouse";
2668- }
2669-
2670- static void
2671-Index: gnome-control-center-3.6.2/panels/network/cc-network-panel.c
2672-===================================================================
2673---- gnome-control-center-3.6.2.orig/panels/network/cc-network-panel.c 2012-11-02 19:29:55.031315523 -0400
2674-+++ gnome-control-center-3.6.2/panels/network/cc-network-panel.c 2012-11-02 19:29:57.643315414 -0400
2675-@@ -232,7 +232,10 @@
2676- static const char *
2677- cc_network_panel_get_help_uri (CcPanel *panel)
2678- {
2679-- return "help:gnome-help/net";
2680-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2681-+ return "help:ubuntu-help/net";
2682-+ else
2683-+ return "help:gnome-help/net";
2684- }
2685-
2686- static void
2687-Index: gnome-control-center-3.6.2/panels/online-accounts/cc-online-accounts-panel.c
2688-===================================================================
2689---- gnome-control-center-3.6.2.orig/panels/online-accounts/cc-online-accounts-panel.c 2012-11-02 19:29:55.031315523 -0400
2690-+++ gnome-control-center-3.6.2/panels/online-accounts/cc-online-accounts-panel.c 2012-11-02 19:29:57.643315414 -0400
2691-@@ -256,7 +256,10 @@
2692- static const char *
2693- goa_panel_get_help_uri (CcPanel *panel)
2694- {
2695-- return "help:gnome-help/accounts";
2696-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2697-+ return "help:ubuntu-help/accounts";
2698-+ else
2699-+ return "help:gnome-help/accounts";
2700- }
2701-
2702- static void
2703-Index: gnome-control-center-3.6.2/panels/power/cc-power-panel.c
2704-===================================================================
2705---- gnome-control-center-3.6.2.orig/panels/power/cc-power-panel.c 2012-11-02 19:29:55.031315523 -0400
2706-+++ gnome-control-center-3.6.2/panels/power/cc-power-panel.c 2012-11-02 19:29:57.647315413 -0400
2707-@@ -124,7 +124,10 @@
2708- static const char *
2709- cc_power_panel_get_help_uri (CcPanel *panel)
2710- {
2711-- return "help:gnome-help/power";
2712-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2713-+ return "help:ubuntu-help/power";
2714-+ else
2715-+ return "help:gnome-help/power";
2716- }
2717-
2718- static void
2719-Index: gnome-control-center-3.6.2/panels/printers/cc-printers-panel.c
2720-===================================================================
2721---- gnome-control-center-3.6.2.orig/panels/printers/cc-printers-panel.c 2012-11-02 19:29:55.031315523 -0400
2722-+++ gnome-control-center-3.6.2/panels/printers/cc-printers-panel.c 2012-11-02 19:29:57.647315413 -0400
2723-@@ -251,7 +251,10 @@
2724- static const char *
2725- cc_printers_panel_get_help_uri (CcPanel *panel)
2726- {
2727-- return "help:gnome-help/printing";
2728-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2729-+ return "help:ubuntu-help/printing";
2730-+ else
2731-+ return "help:gnome-help/printing";
2732- }
2733-
2734- static void
2735-Index: gnome-control-center-3.6.2/panels/screen/cc-screen-panel.c
2736-===================================================================
2737---- gnome-control-center-3.6.2.orig/panels/screen/cc-screen-panel.c 2012-11-02 19:29:55.031315523 -0400
2738-+++ gnome-control-center-3.6.2/panels/screen/cc-screen-panel.c 2012-11-02 19:29:57.647315413 -0400
2739-@@ -146,7 +146,10 @@
2740- static const char *
2741- cc_screen_panel_get_help_uri (CcPanel *panel)
2742- {
2743-- return "help:gnome-help/prefs-display";
2744-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2745-+ return "help:ubuntu-help/prefs-display";
2746-+ else
2747-+ return "help:gnome-help/prefs-display";
2748- }
2749-
2750- static void
2751-Index: gnome-control-center-3.6.2/panels/sound/cc-sound-panel.c
2752-===================================================================
2753---- gnome-control-center-3.6.2.orig/panels/sound/cc-sound-panel.c 2012-11-02 19:29:55.031315523 -0400
2754-+++ gnome-control-center-3.6.2/panels/sound/cc-sound-panel.c 2012-11-02 19:29:57.647315413 -0400
2755-@@ -70,7 +70,10 @@
2756- static const char *
2757- cc_sound_panel_get_help_uri (CcPanel *panel)
2758- {
2759-- return "help:gnome-help/media#sound";
2760-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2761-+ return "help:ubuntu-help/media#sound";
2762-+ else
2763-+ return "help:gnome-help/media#sound";
2764- }
2765-
2766- static void
2767-Index: gnome-control-center-3.6.2/panels/universal-access/cc-ua-panel.c
2768-===================================================================
2769---- gnome-control-center-3.6.2.orig/panels/universal-access/cc-ua-panel.c 2012-11-02 19:29:55.031315523 -0400
2770-+++ gnome-control-center-3.6.2/panels/universal-access/cc-ua-panel.c 2012-11-02 19:29:57.651315413 -0400
2771-@@ -159,7 +159,10 @@
2772- static const char *
2773- cc_ua_panel_get_help_uri (CcPanel *panel)
2774- {
2775-- return "help:gnome-help/a11y";
2776-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2777-+ return "help:ubuntu-help/a11y";
2778-+ else
2779-+ return "help:gnome-help/a11y";
2780- }
2781-
2782- static void
2783-Index: gnome-control-center-3.6.2/panels/user-accounts/um-password-dialog.c
2784-===================================================================
2785---- gnome-control-center-3.6.2.orig/panels/user-accounts/um-password-dialog.c 2012-11-02 19:29:55.031315523 -0400
2786-+++ gnome-control-center-3.6.2/panels/user-accounts/um-password-dialog.c 2012-11-02 19:29:57.651315413 -0400
2787-@@ -523,9 +523,14 @@
2788-
2789- widget = (GtkWidget *) gtk_builder_get_object (builder, "password-normal-strength-hints-label");
2790- old_label = gtk_label_get_label (GTK_LABEL (widget));
2791-- label = g_strdup_printf ("<a href=\"%s\">%s</a>",
2792-- "help:gnome-help/user-goodpassword",
2793-- old_label);
2794-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2795-+ label = g_strdup_printf ("<a href=\"%s\">%s</a>",
2796-+ "help:ubuntu-help/user-goodpassword",
2797-+ old_label);
2798-+ else
2799-+ label = g_strdup_printf ("<a href=\"%s\">%s</a>",
2800-+ "help:gnome-help/user-goodpassword",
2801-+ old_label);
2802- gtk_label_set_markup (GTK_LABEL (widget), label);
2803- g_free (label);
2804-
2805-Index: gnome-control-center-3.6.2/panels/user-accounts/um-user-panel.c
2806-===================================================================
2807---- gnome-control-center-3.6.2.orig/panels/user-accounts/um-user-panel.c 2012-11-02 19:29:55.031315523 -0400
2808-+++ gnome-control-center-3.6.2/panels/user-accounts/um-user-panel.c 2012-11-02 19:29:57.651315413 -0400
2809-@@ -1372,7 +1372,10 @@
2810- static const char *
2811- um_user_panel_get_help_uri (CcPanel *panel)
2812- {
2813-- return "help:gnome-help/user-accounts";
2814-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2815-+ return "help:ubuntu-help/user-accounts";
2816-+ else
2817-+ return "help:gnome-help/user-accounts";
2818- }
2819-
2820- static void
2821-Index: gnome-control-center-3.6.2/panels/wacom/cc-wacom-panel.c
2822-===================================================================
2823---- gnome-control-center-3.6.2.orig/panels/wacom/cc-wacom-panel.c 2012-11-02 19:29:55.031315523 -0400
2824-+++ gnome-control-center-3.6.2/panels/wacom/cc-wacom-panel.c 2012-11-02 19:29:57.651315413 -0400
2825-@@ -123,7 +123,10 @@
2826- static const char *
2827- cc_wacom_panel_get_help_uri (CcPanel *panel)
2828- {
2829-- return "help:gnome-help/wacom";
2830-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2831-+ return "help:ubuntu-help/wacom";
2832-+ else
2833-+ return "help:gnome-help/wacom";
2834- }
2835-
2836- static void
2837-Index: gnome-control-center-3.6.2/shell/control-center.c
2838-===================================================================
2839---- gnome-control-center-3.6.2.orig/shell/control-center.c 2012-11-02 19:29:55.031315523 -0400
2840-+++ gnome-control-center-3.6.2/shell/control-center.c 2012-11-02 19:30:16.431314628 -0400
2841-@@ -175,8 +175,12 @@
2842-
2843- if (panel)
2844- uri = cc_panel_get_help_uri (panel);
2845--
2846-- gtk_show_uri (gtk_widget_get_screen (window),
2847-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
2848-+ gtk_show_uri (gtk_widget_get_screen (window),
2849-+ uri ? uri : "help:ubuntu-help/prefs",
2850-+ GDK_CURRENT_TIME, NULL);
2851-+ else
2852-+ gtk_show_uri (gtk_widget_get_screen (window),
2853- uri ? uri : "help:gnome-help/prefs",
2854- GDK_CURRENT_TIME, NULL);
2855- }
2856
2857=== removed file 'debian/patches/54_enable_alt_tap_in_shortcut.patch'
2858--- debian/patches/54_enable_alt_tap_in_shortcut.patch 2013-07-05 22:08:12 +0000
2859+++ debian/patches/54_enable_alt_tap_in_shortcut.patch 1970-01-01 00:00:00 +0000
2860@@ -1,58 +0,0 @@
2861-Index: gnome-control-center-3.6.3/panels/keyboard/keyboard-shortcuts.c
2862-===================================================================
2863---- gnome-control-center-3.6.3.orig/panels/keyboard/keyboard-shortcuts.c 2012-11-21 18:09:33.690816155 +0100
2864-+++ gnome-control-center-3.6.3/panels/keyboard/keyboard-shortcuts.c 2012-11-21 18:09:34.222816183 +0100
2865-@@ -1716,7 +1716,7 @@
2866- gtk_tree_view_append_column (treeview, column);
2867-
2868- renderer = (GtkCellRenderer *) g_object_new (GTK_TYPE_CELL_RENDERER_ACCEL,
2869-- "accel-mode", GTK_CELL_RENDERER_ACCEL_MODE_OTHER,
2870-+ "accel-mode", GTK_CELL_RENDERER_ACCEL_MODE_MODIFIER_TAP,
2871- NULL);
2872-
2873- g_signal_connect (treeview, "button_press_event",
2874-Index: gnome-control-center-3.6.3/panels/keyboard/cc-keyboard-item.c
2875-===================================================================
2876---- gnome-control-center-3.6.3.orig/panels/keyboard/cc-keyboard-item.c 2012-05-24 16:20:10.000000000 +0200
2877-+++ gnome-control-center-3.6.3/panels/keyboard/cc-keyboard-item.c 2012-11-21 18:09:34.222816183 +0100
2878-@@ -143,14 +143,25 @@
2879- const char *value,
2880- gboolean set_backend)
2881- {
2882-+ /* don't reassign <Alt_L> or <Alt> key in the callback to the binding itself (as it's invalid for the cell renderer) */
2883-+ if ((g_strcmp0 (value, "<Alt_L>") == 0) || (g_strcmp0 (value, "<Alt>") == 0))
2884-+ return;
2885-+
2886- g_free (item->binding);
2887- item->binding = g_strdup (value);
2888- binding_from_string (item->binding, &item->keyval, &item->keycode, &item->mask);
2889-
2890-+ const char *key;
2891-+ char *cheated_modifier = NULL;
2892-+ if (g_strcmp0 (item->binding, "Alt_L") == 0)
2893-+ cheated_modifier = g_strdup_printf ("<%s>", item->binding);
2894-+
2895- if (set_backend == FALSE)
2896- return;
2897-
2898-- settings_set_binding (item->settings, item->key, item->binding);
2899-+ settings_set_binding (item->settings, item->key, cheated_modifier ? cheated_modifier: item->binding);
2900-+
2901-+ g_free (cheated_modifier);
2902- }
2903-
2904- const char *
2905-@@ -441,6 +452,13 @@
2906- item->settings = g_settings_new (item->schema);
2907- item->binding = settings_get_binding (item->settings, item->key);
2908- item->editable = g_settings_is_writable (item->settings, item->key);
2909-+
2910-+ if ((g_strcmp0 (item->binding, "<Alt>") == 0) || (g_strcmp0 (item->binding, "<Alt_L>") == 0))
2911-+ {
2912-+ g_free (item->binding);
2913-+ item->binding = g_strdup ("Alt_L");
2914-+ }
2915-+
2916- binding_from_string (item->binding, &item->keyval, &item->keycode, &item->mask);
2917-
2918- signal_name = g_strdup_printf ("changed::%s", item->key);
2919
2920=== removed file 'debian/patches/55_user_accounts_hide_controls.patch'
2921--- debian/patches/55_user_accounts_hide_controls.patch 2013-07-05 13:31:20 +0000
2922+++ debian/patches/55_user_accounts_hide_controls.patch 1970-01-01 00:00:00 +0000
2923@@ -1,148 +0,0 @@
2924-Index: gnome-control-center-3.6.3/panels/user-accounts/um-password-dialog.c
2925-===================================================================
2926---- gnome-control-center-3.6.3.orig/panels/user-accounts/um-password-dialog.c 2013-01-22 15:11:55.971943861 -0500
2927-+++ gnome-control-center-3.6.3/panels/user-accounts/um-password-dialog.c 2013-01-22 15:11:55.959943861 -0500
2928-@@ -52,6 +52,7 @@
2929- GtkWidget *ok_button;
2930-
2931- UmUser *user;
2932-+ gboolean using_ecryptfs;
2933-
2934- GtkWidget *old_password_label;
2935- GtkWidget *old_password_entry;
2936-@@ -471,6 +472,38 @@
2937- }
2938- }
2939-
2940-+int _is_gdm_running = -1;
2941-+gboolean
2942-+is_gdm_running (void)
2943-+{
2944-+ if (_is_gdm_running == -1) {
2945-+ GDBusProxy *proxy;
2946-+ gchar *owner_name;
2947-+
2948-+ proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
2949-+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES |
2950-+ G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS |
2951-+ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
2952-+ NULL,
2953-+ "org.gnome.DisplayManager",
2954-+ "/org/gnome/DisplayManager/Manager",
2955-+ "org.gnome.DisplayManager.Manager",
2956-+ NULL, NULL);
2957-+
2958-+ if (proxy == NULL)
2959-+ return FALSE;
2960-+
2961-+ owner_name = g_dbus_proxy_get_name_owner (proxy);
2962-+
2963-+ g_object_unref (proxy);
2964-+ g_free (owner_name);
2965-+
2966-+ _is_gdm_running = (owner_name != NULL) ? 1 : 0;
2967-+ }
2968-+
2969-+ return _is_gdm_running;
2970-+}
2971-+
2972- UmPasswordDialog *
2973- um_password_dialog_new (void)
2974- {
2975-@@ -591,6 +624,13 @@
2976- G_CALLBACK (entry_size_changed), widget);
2977- um->normal_hint_label = widget;
2978-
2979-+ if (!is_gdm_running ()) {
2980-+ widget = (GtkWidget *) gtk_builder_get_object (builder, "password-normal-hint-label");
2981-+ gtk_widget_hide (widget);
2982-+ gtk_widget_hide (um->normal_hint_entry);
2983-+ gtk_widget_hide (um->normal_hint_label);
2984-+ }
2985-+
2986- um->strength_indicator = (GtkWidget *) gtk_builder_get_object (builder, "strength-indicator");
2987-
2988- um->strength_indicator_label = (GtkWidget *) gtk_builder_get_object (builder, "strength-indicator-label");
2989-@@ -625,6 +665,12 @@
2990-
2991- gtk_tree_model_get (model, iter, 1, &mode, -1);
2992-
2993-+ if (mode == 1 && !is_gdm_running ())
2994-+ return FALSE;
2995-+
2996-+ if (mode == 2 && um->using_ecryptfs)
2997-+ return FALSE;
2998-+
2999- if (mode == 3 && locked)
3000- return FALSE;
3001-
3002-@@ -651,6 +697,8 @@
3003- if (user) {
3004- um->user = g_object_ref (user);
3005-
3006-+ um->using_ecryptfs = is_using_ecryptfs (um_user_get_user_name (user));
3007-+
3008- pixbuf = um_user_render_icon (user, FALSE, 48);
3009- gtk_image_set_from_pixbuf (GTK_IMAGE (um->user_icon), pixbuf);
3010- g_object_unref (pixbuf);
3011-Index: gnome-control-center-3.6.3/panels/user-accounts/um-user-panel.c
3012-===================================================================
3013---- gnome-control-center-3.6.3.orig/panels/user-accounts/um-user-panel.c 2013-01-22 15:11:55.971943861 -0500
3014-+++ gnome-control-center-3.6.3/panels/user-accounts/um-user-panel.c 2013-01-22 15:12:18.031943282 -0500
3015-@@ -629,7 +629,10 @@
3016- /* Autologin: show when local account */
3017- widget = get_widget (d, "autologin-switch");
3018- label = get_widget (d, "autologin-label");
3019-- show = um_user_is_local_account (user);
3020-+ /* Don't show autologin option if ecryptfs is in use, because it won't
3021-+ work if user turns it on. */
3022-+ show = um_user_is_local_account (user) &&
3023-+ !is_using_ecryptfs (um_user_get_user_name (user));
3024- gtk_widget_set_visible (widget, show);
3025- gtk_widget_set_visible (label, show);
3026- }
3027-Index: gnome-control-center-3.6.3/panels/user-accounts/um-utils.c
3028-===================================================================
3029---- gnome-control-center-3.6.3.orig/panels/user-accounts/um-utils.c 2013-01-22 15:11:55.971943861 -0500
3030-+++ gnome-control-center-3.6.3/panels/user-accounts/um-utils.c 2013-01-22 15:11:55.963943861 -0500
3031-@@ -746,3 +746,27 @@
3032- g_string_free (item3, TRUE);
3033- g_string_free (item4, TRUE);
3034- }
3035-+
3036-+gboolean
3037-+is_using_ecryptfs (const gchar *name)
3038-+{
3039-+ gboolean using_ecryptfs = FALSE;
3040-+ int status;
3041-+ gchar *prog;
3042-+ gchar *cmd;
3043-+
3044-+ prog = g_find_program_in_path ("ecryptfs-verify");
3045-+ if (prog != NULL) {
3046-+ gchar *cmd = g_strdup_printf("'%s' -h -u '%s'", prog, name);
3047-+
3048-+ if (g_spawn_command_line_sync (cmd, NULL, NULL, &status, NULL)) {
3049-+ if (status == 0)
3050-+ using_ecryptfs = TRUE;
3051-+ }
3052-+
3053-+ g_free (prog);
3054-+ g_free (cmd);
3055-+ }
3056-+
3057-+ return using_ecryptfs;
3058-+}
3059-Index: gnome-control-center-3.6.3/panels/user-accounts/um-utils.h
3060-===================================================================
3061---- gnome-control-center-3.6.3.orig/panels/user-accounts/um-utils.h 2013-01-22 15:11:55.971943861 -0500
3062-+++ gnome-control-center-3.6.3/panels/user-accounts/um-utils.h 2013-01-22 15:11:55.963943861 -0500
3063-@@ -65,6 +65,8 @@
3064- void generate_username_choices (const gchar *name,
3065- GtkListStore *store);
3066-
3067-+gboolean is_using_ecryptfs (const gchar *name);
3068-+
3069- G_END_DECLS
3070-
3071- #endif
3072
3073=== added file 'debian/patches/56_use_ubuntu_info_branding.patch'
3074--- debian/patches/56_use_ubuntu_info_branding.patch 1970-01-01 00:00:00 +0000
3075+++ debian/patches/56_use_ubuntu_info_branding.patch 2014-05-06 09:05:46 +0000
3076@@ -0,0 +1,31 @@
3077+--- a/panels/info/cc-info-panel.c
3078++++ b/panels/info/cc-info-panel.c
3079+@@ -1561,6 +1561,8 @@
3080+ g_free (text);
3081+ }
3082+
3083++ gtk_widget_hide (WID ("version_label"));
3084++
3085+ glibtop_get_mem (&mem);
3086+ text = g_format_size_full (mem.total, G_FORMAT_SIZE_IEC_UNITS);
3087+ widget = WID ("memory_label");
3088+--- a/panels/info/info.ui
3089++++ b/panels/info/info.ui
3090+@@ -243,7 +243,7 @@
3091+ <object class="GtkImage" id="system_image">
3092+ <property name="visible">True</property>
3093+ <property name="can_focus">False</property>
3094+- <property name="pixbuf">GnomeLogoVerticalMedium.svg</property>
3095++ <property name="pixbuf">UbuntuLogo.png</property>
3096+ </object>
3097+ <packing>
3098+ <property name="expand">False</property>
3099+--- a/panels/info/info.gresource.xml
3100++++ b/panels/info/info.gresource.xml
3101+@@ -3,5 +3,6 @@
3102+ <gresource prefix="/org/gnome/control-center/info">
3103+ <file preprocess="xml-stripblanks">info.ui</file>
3104+ <file>GnomeLogoVerticalMedium.svg</file>
3105++ <file>UbuntuLogo.png</file>
3106+ </gresource>
3107+ </gresources>
3108
3109=== removed file 'debian/patches/56_use_ubuntu_info_branding.patch'
3110--- debian/patches/56_use_ubuntu_info_branding.patch 2013-07-05 13:31:20 +0000
3111+++ debian/patches/56_use_ubuntu_info_branding.patch 1970-01-01 00:00:00 +0000
3112@@ -1,26 +0,0 @@
3113-Index: b/panels/info/cc-info-panel.c
3114-===================================================================
3115---- a/panels/info/cc-info-panel.c
3116-+++ b/panels/info/cc-info-panel.c
3117-@@ -1706,6 +1706,8 @@
3118- g_free (text);
3119- }
3120-
3121-+ gtk_widget_hide (WID ("version_label"));
3122-+
3123- glibtop_get_mem (&mem);
3124- text = g_format_size_full (mem.total, G_FORMAT_SIZE_IEC_UNITS);
3125- widget = WID ("memory_label");
3126-Index: b/panels/info/info.ui
3127-===================================================================
3128---- a/panels/info/info.ui
3129-+++ b/panels/info/info.ui
3130-@@ -242,7 +242,7 @@
3131- <object class="GtkImage" id="system_image">
3132- <property name="visible">True</property>
3133- <property name="can_focus">False</property>
3134-- <property name="pixbuf">GnomeLogoVerticalMedium.svg</property>
3135-+ <property name="pixbuf">UbuntuLogo.png</property>
3136- </object>
3137- <packing>
3138- <property name="expand">False</property>
3139
3140=== removed file 'debian/patches/58_hide_gdm_notifications.patch'
3141--- debian/patches/58_hide_gdm_notifications.patch 2013-07-05 13:31:20 +0000
3142+++ debian/patches/58_hide_gdm_notifications.patch 1970-01-01 00:00:00 +0000
3143@@ -1,17 +0,0 @@
3144-Description: Hide "Show notifications when locked" settings when running
3145- Unity. You currently need GNOME Shell running on GDM for that to work.
3146-Forwarded: not-needed
3147-Author: Jeremy Bicha <jbicha@ubuntu.com>
3148-Index: gnome-control-center-3.6.2/panels/screen/cc-screen-panel.c
3149-===================================================================
3150---- gnome-control-center-3.6.2.orig/panels/screen/cc-screen-panel.c 2012-11-03 19:10:00.926617924 -0400
3151-+++ gnome-control-center-3.6.2/panels/screen/cc-screen-panel.c 2012-11-03 19:17:14.902599774 -0400
3152-@@ -545,6 +545,8 @@
3153- "show-notifications",
3154- widget, "active",
3155- G_SETTINGS_BIND_DEFAULT);
3156-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
3157-+ gtk_widget_hide (widget);
3158-
3159- update_lock_screen_sensitivity (self);
3160-
3161
3162=== removed file 'debian/patches/58_ubuntu_icon_views_redesign.patch'
3163--- debian/patches/58_ubuntu_icon_views_redesign.patch 2013-07-05 13:31:20 +0000
3164+++ debian/patches/58_ubuntu_icon_views_redesign.patch 1970-01-01 00:00:00 +0000
3165@@ -1,70 +0,0 @@
3166-Index: gnome-control-center-3.6.3/shell/gnome-control-center.c
3167-===================================================================
3168---- gnome-control-center-3.6.3.orig/shell/gnome-control-center.c 2012-11-24 10:39:18.476282140 -0500
3169-+++ gnome-control-center-3.6.3/shell/gnome-control-center.c 2012-11-24 10:52:26.776249171 -0500
3170-@@ -50,7 +50,8 @@
3171- * for the user than resizing vertically
3172- * Both sizes are defined in https://live.gnome.org/Design/SystemSettings/ */
3173- #define FIXED_WIDTH 740
3174--#define FIXED_HEIGHT 636
3175-+#define UNITY_FIXED_WIDTH 850
3176-+#define FIXED_HEIGHT 650
3177- #define SMALL_SCREEN_FIXED_HEIGHT 400
3178-
3179- #define MIN_ICON_VIEW_HEIGHT 300
3180-@@ -910,8 +911,12 @@
3181- gtk_widget_show (W (priv->builder, "search-entry"));
3182- gtk_widget_hide (W (priv->builder, "lock-button"));
3183-
3184-- gtk_widget_get_preferred_height_for_width (GTK_WIDGET (priv->main_vbox),
3185-- FIXED_WIDTH, NULL, &nat_height);
3186-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
3187-+ gtk_widget_get_preferred_height_for_width (GTK_WIDGET (priv->main_vbox),
3188-+ UNITY_FIXED_WIDTH, NULL, &nat_height);
3189-+ else
3190-+ gtk_widget_get_preferred_height_for_width (GTK_WIDGET (priv->main_vbox),
3191-+ FIXED_WIDTH, NULL, &nat_height);
3192- gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (priv->scrolled_window),
3193- priv->small_screen == SMALL_SCREEN_TRUE ? SMALL_SCREEN_FIXED_HEIGHT : nat_height);
3194- }
3195-@@ -921,12 +926,22 @@
3196- gtk_widget_hide (W (priv->builder, "search-entry"));
3197- /* set the scrolled window small so that it doesn't force
3198- the window to be larger than this panel */
3199-- gtk_widget_get_preferred_height_for_width (GTK_WIDGET (priv->window),
3200-- FIXED_WIDTH, NULL, &nat_height);
3201-- gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (priv->scrolled_window), MIN_ICON_VIEW_HEIGHT);
3202-- gtk_window_resize (GTK_WINDOW (priv->window),
3203-- FIXED_WIDTH,
3204-- nat_height);
3205-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) {
3206-+ gtk_widget_get_preferred_height_for_width (GTK_WIDGET (priv->window),
3207-+ UNITY_FIXED_WIDTH, NULL, &nat_height);
3208-+ gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (priv->scrolled_window), MIN_ICON_VIEW_HEIGHT);
3209-+ gtk_window_resize (GTK_WINDOW (priv->window),
3210-+ UNITY_FIXED_WIDTH,
3211-+ nat_height);
3212-+ }
3213-+ else {
3214-+ gtk_widget_get_preferred_height_for_width (GTK_WIDGET (priv->window),
3215-+ FIXED_WIDTH, NULL, &nat_height);
3216-+ gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (priv->scrolled_window), MIN_ICON_VIEW_HEIGHT);
3217-+ gtk_window_resize (GTK_WINDOW (priv->window),
3218-+ FIXED_WIDTH,
3219-+ nat_height);
3220-+ }
3221- }
3222- }
3223-
3224-@@ -1373,7 +1388,10 @@
3225- /* Main scrolled window */
3226- priv->scrolled_window = W (priv->builder, "scrolledwindow1");
3227-
3228-- gtk_widget_set_size_request (priv->scrolled_window, FIXED_WIDTH, -1);
3229-+ if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity"))
3230-+ gtk_widget_set_size_request (priv->scrolled_window, UNITY_FIXED_WIDTH, -1);
3231-+ else
3232-+ gtk_widget_set_size_request (priv->scrolled_window, FIXED_WIDTH, -1);
3233- priv->main_vbox = W (priv->builder, "main-vbox");
3234- g_signal_connect (priv->notebook, "notify::page",
3235- G_CALLBACK (notebook_page_notify_cb), priv);
3236
3237=== removed file 'debian/patches/59_install_gcm_components_on_demand.patch'
3238--- debian/patches/59_install_gcm_components_on_demand.patch 2013-07-05 13:31:20 +0000
3239+++ debian/patches/59_install_gcm_components_on_demand.patch 1970-01-01 00:00:00 +0000
3240@@ -1,231 +0,0 @@
3241-Index: b/panels/color/cc-color-panel.c
3242-===================================================================
3243---- a/panels/color/cc-color-panel.c
3244-+++ b/panels/color/cc-color-panel.c
3245-@@ -25,6 +25,7 @@
3246- #include <colord.h>
3247- #include <gtk/gtk.h>
3248- #include <gdk/gdkx.h>
3249-+#include <gio/gio.h>
3250-
3251- #include "cc-color-panel.h"
3252-
3253-@@ -260,32 +261,148 @@
3254- }
3255-
3256- static void
3257--gcm_prefs_calibrate_cb (GtkWidget *widget, CcColorPanel *prefs)
3258-+gcm_packagekit_finished_cb (GObject *source, GAsyncResult *res, gpointer user_data)
3259-+{
3260-+ GPtrArray *argv = (GPtrArray *)user_data;
3261-+ GVariant *reply;
3262-+ GError *error = NULL;
3263-+ gboolean ret;
3264-+
3265-+ reply = g_dbus_proxy_call_finish (G_DBUS_PROXY (source), res, &error);
3266-+ g_variant_unref (reply);
3267-+
3268-+ if (error != NULL)
3269-+ {
3270-+ g_warning ("failed to install required component: %s", error->message);
3271-+ g_ptr_array_unref (argv);
3272-+ g_error_free (error);
3273-+ return;
3274-+ }
3275-+
3276-+ ret = g_spawn_async (NULL, (gchar**) argv->pdata, NULL, 0,
3277-+ NULL, NULL, NULL, &error);
3278-+ g_ptr_array_unref (argv);
3279-+ if (!ret)
3280-+ {
3281-+ g_warning ("failed to run command: %s", error->message);
3282-+ g_error_free (error);
3283-+ }
3284-+}
3285-+
3286-+struct gcm_packagekit_closure_data
3287-+{
3288-+ GPtrArray *argv;
3289-+ guint xid;
3290-+};
3291-+
3292-+static void
3293-+gcm_packagekit_proxy_ready_cb (GObject *source, GAsyncResult *res, gpointer user_data)
3294-+{
3295-+ struct gcm_packagekit_closure_data *data =
3296-+ (struct gcm_packagekit_closure_data *)user_data;
3297-+ GDBusProxy *session_installer;
3298-+ GVariantBuilder *builder;
3299-+ GError *error = NULL;
3300-+
3301-+ session_installer = g_dbus_proxy_new_for_bus_finish (res, &error);
3302-+ if (error != NULL)
3303-+ {
3304-+ g_warning ("failed to connect to PackageKit interface: %s",
3305-+ error->message);
3306-+ g_ptr_array_unref (data->argv);
3307-+ g_free (data);
3308-+ g_error_free (error);
3309-+ return;
3310-+ }
3311-+
3312-+ builder = g_variant_builder_new (G_VARIANT_TYPE ("as"));
3313-+ g_variant_builder_add (builder, "s",
3314-+ g_ptr_array_index (data->argv, 0));
3315-+ g_dbus_proxy_call (session_installer,
3316-+ "InstallProvideFiles",
3317-+ g_variant_new ("(uass)",
3318-+ data->xid,
3319-+ builder,
3320-+ "hide-finished"
3321-+ ),
3322-+ G_DBUS_CALL_FLAGS_NONE,
3323-+ -1,
3324-+ NULL,
3325-+ &gcm_packagekit_finished_cb,
3326-+ data->argv);
3327-+
3328-+ g_free (data);
3329-+ g_variant_builder_unref (builder);
3330-+}
3331-+
3332-+static void
3333-+gcm_prefs_install_component (guint xid, GPtrArray *argv)
3334-+{
3335-+ struct gcm_packagekit_closure_data *data;
3336-+ data = g_malloc (sizeof (*data));
3337-+ data->argv = argv;
3338-+ data->xid = xid;
3339-+ g_ptr_array_ref (data->argv);
3340-+
3341-+ g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION,
3342-+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES |
3343-+ G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS,
3344-+ NULL,
3345-+ "org.freedesktop.PackageKit",
3346-+ "/org/freedesktop/PackageKit",
3347-+ "org.freedesktop.PackageKit.Modify",
3348-+ NULL,
3349-+ &gcm_packagekit_proxy_ready_cb,
3350-+ data);
3351-+}
3352-+
3353-+static void
3354-+gcm_prefs_run_maybe_install (guint xid, gchar *filename, GPtrArray *argv)
3355- {
3356- gboolean ret;
3357- GError *error = NULL;
3358-+
3359-+ ret = g_spawn_async (NULL, (gchar**) argv->pdata, NULL, 0,
3360-+ NULL, NULL, NULL, &error);
3361-+ if (!ret)
3362-+ {
3363-+ if ((error->domain == g_spawn_error_quark ()) &&
3364-+ (error->code == G_SPAWN_ERROR_NOENT))
3365-+ {
3366-+ gcm_prefs_install_component (xid, argv);
3367-+ }
3368-+ else
3369-+ {
3370-+ g_warning ("failed to run command: %s", error->message);
3371-+ }
3372-+ g_error_free (error);
3373-+ }
3374-+}
3375-+
3376-+static void
3377-+gcm_prefs_calibrate_cb (GtkWidget *widget, CcColorPanel *prefs)
3378-+{
3379- guint xid;
3380- GPtrArray *argv;
3381-+ gchar *calibrater_filename;
3382- CcColorPanelPrivate *priv = prefs->priv;
3383-
3384- /* get xid */
3385- xid = gdk_x11_window_get_xid (gtk_widget_get_window (GTK_WIDGET (priv->main_window)));
3386-
3387-+ calibrater_filename = g_build_filename (BINDIR, "gcm-calibrate", NULL);
3388-+
3389- /* run with modal set */
3390- argv = g_ptr_array_new_with_free_func (g_free);
3391-- g_ptr_array_add (argv, g_build_filename (BINDIR, "gcm-calibrate", NULL));
3392-+ g_ptr_array_add (argv, calibrater_filename);
3393- g_ptr_array_add (argv, g_strdup ("--device"));
3394- g_ptr_array_add (argv, g_strdup (cd_device_get_id (priv->current_device)));
3395- g_ptr_array_add (argv, g_strdup ("--parent-window"));
3396- g_ptr_array_add (argv, g_strdup_printf ("%i", xid));
3397- g_ptr_array_add (argv, NULL);
3398-- ret = g_spawn_async (NULL, (gchar**) argv->pdata, NULL, 0,
3399-- NULL, NULL, NULL, &error);
3400-- if (!ret)
3401-- {
3402-- g_warning ("failed to run calibrate: %s", error->message);
3403-- g_error_free (error);
3404-- }
3405-+
3406-+ gcm_prefs_run_maybe_install (xid, calibrater_filename, argv);
3407-+
3408- g_ptr_array_unref (argv);
3409- }
3410-
3411-@@ -656,10 +773,9 @@
3412- GtkTreeModel *model;
3413- GtkTreeSelection *selection;
3414- gchar *options = NULL;
3415-+ gchar *viewer_filename;
3416- GPtrArray *argv = NULL;
3417- guint xid;
3418-- gboolean ret;
3419-- GError *error = NULL;
3420- CcColorPanelPrivate *priv = prefs->priv;
3421-
3422- /* get the selected row */
3423-@@ -677,21 +793,17 @@
3424- /* get xid */
3425- xid = gdk_x11_window_get_xid (gtk_widget_get_window (GTK_WIDGET (priv->main_window)));
3426-
3427-+ viewer_filename = g_build_filename (BINDIR, "gcm-viewer", NULL);
3428- /* open up gcm-viewer as a info pane */
3429- argv = g_ptr_array_new_with_free_func (g_free);
3430-- g_ptr_array_add (argv, g_build_filename (BINDIR, "gcm-viewer", NULL));
3431-+ g_ptr_array_add (argv, viewer_filename);
3432- g_ptr_array_add (argv, g_strdup ("--profile"));
3433- g_ptr_array_add (argv, g_strdup (cd_profile_get_id (profile)));
3434- g_ptr_array_add (argv, g_strdup ("--parent-window"));
3435- g_ptr_array_add (argv, g_strdup_printf ("%i", xid));
3436- g_ptr_array_add (argv, NULL);
3437-- ret = g_spawn_async (NULL, (gchar**) argv->pdata, NULL, 0,
3438-- NULL, NULL, NULL, &error);
3439-- if (!ret)
3440-- {
3441-- g_warning ("failed to run calibrate: %s", error->message);
3442-- g_error_free (error);
3443-- }
3444-+
3445-+ gcm_prefs_run_maybe_install (xid, viewer_filename, argv);
3446-
3447- g_ptr_array_unref (argv);
3448- g_free (options);
3449-@@ -995,7 +1107,6 @@
3450- {
3451- GtkWidget *widget;
3452- CdDeviceRelation relation;
3453-- gchar *s;
3454- CcColorPanelPrivate *priv = prefs->priv;
3455-
3456- /* get profile */
3457-@@ -1026,13 +1137,7 @@
3458- /* allow getting profile info */
3459- widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
3460- "toolbutton_profile_view"));
3461-- if ((s = g_find_program_in_path ("gcm-viewer")))
3462-- {
3463-- gtk_widget_set_sensitive (widget, TRUE);
3464-- g_free (s);
3465-- }
3466-- else
3467-- gtk_widget_set_sensitive (widget, FALSE);
3468-+ gtk_widget_set_sensitive (widget, TRUE);
3469-
3470- /* hide device specific stuff */
3471- widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
3472
3473=== removed file 'debian/patches/60_ubuntu_nav_bar.patch'
3474--- debian/patches/60_ubuntu_nav_bar.patch 2013-07-05 13:31:20 +0000
3475+++ debian/patches/60_ubuntu_nav_bar.patch 1970-01-01 00:00:00 +0000
3476@@ -1,406 +0,0 @@
3477-# Description: set a navigation bar in the g-c-c shell
3478-# UbuntuSpecific: yes
3479-#
3480-=== modified file 'shell/Makefile.am'
3481-Index: gnome-control-center-3.6.3/shell/Makefile.am
3482-===================================================================
3483---- gnome-control-center-3.6.3.orig/shell/Makefile.am 2012-10-01 11:39:00.000000000 +0200
3484-+++ gnome-control-center-3.6.3/shell/Makefile.am 2012-11-22 10:20:59.485282338 +0100
3485-@@ -26,6 +26,8 @@
3486- cc-shell-item-view.h \
3487- cc-shell-model.c \
3488- cc-shell-model.h \
3489-+ cc-shell-nav-bar.c \
3490-+ cc-shell-nav-bar.h \
3491- cc-editable-entry.c \
3492- cc-editable-entry.h \
3493- cc-panel.c \
3494-Index: gnome-control-center-3.6.3/shell/cc-shell-marshal.list
3495-===================================================================
3496---- gnome-control-center-3.6.3.orig/shell/cc-shell-marshal.list 2011-11-07 18:22:02.000000000 +0100
3497-+++ gnome-control-center-3.6.3/shell/cc-shell-marshal.list 2012-11-22 10:20:56.873282212 +0100
3498-@@ -1 +1,2 @@
3499- VOID:STRING,STRING,STRING
3500-+VOID:VOID
3501-Index: gnome-control-center-3.6.3/shell/cc-shell-nav-bar.c
3502-===================================================================
3503---- /dev/null 1970-01-01 00:00:00.000000000 +0000
3504-+++ gnome-control-center-3.6.3/shell/cc-shell-nav-bar.c 2012-11-22 10:20:56.873282212 +0100
3505-@@ -0,0 +1,150 @@
3506-+/*
3507-+ * Copyright 2012 Canonical
3508-+ *
3509-+ * The Control Center is free software; you can redistribute it and/or modify
3510-+ * it under the terms of the GNU General Public License as published by the
3511-+ * Free Software Foundation; either version 2 of the License, or (at your
3512-+ * option) any later version.
3513-+ *
3514-+ * The Control Center is distributed in the hope that it will be useful, but
3515-+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
3516-+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3517-+ * for more details.
3518-+ *
3519-+ * You should have received a copy of the GNU General Public License along
3520-+ * with the Control Center; if not, write to the Free Software Foundation,
3521-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
3522-+ *
3523-+ * Author: Aurélien Gâteau <aurelien.gateau@canonical.com>
3524-+ */
3525-+
3526-+#include "cc-shell-nav-bar.h"
3527-+#include "cc-shell-marshal.h"
3528-+
3529-+#include <glib/gi18n.h>
3530-+
3531-+G_DEFINE_TYPE (CcShellNavBar, cc_shell_nav_bar, GTK_TYPE_BOX)
3532-+
3533-+#define SHELL_NAV_BAR_PRIVATE(o) \
3534-+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), CC_TYPE_SHELL_NAV_BAR, CcShellNavBarPrivate))
3535-+
3536-+struct _CcShellNavBarPrivate
3537-+{
3538-+ GtkWidget *home_button;
3539-+ GtkWidget *detail_button;
3540-+};
3541-+
3542-+enum
3543-+{
3544-+ HOME_CLICKED,
3545-+ LAST_SIGNAL
3546-+};
3547-+
3548-+static guint signals[LAST_SIGNAL] = {0,};
3549-+
3550-+static void
3551-+cc_shell_nav_bar_get_property (GObject *object,
3552-+ guint property_id,
3553-+ GValue *value,
3554-+ GParamSpec *pspec)
3555-+{
3556-+ switch (property_id)
3557-+ {
3558-+ default:
3559-+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
3560-+ }
3561-+}
3562-+
3563-+static void
3564-+cc_shell_nav_bar_set_property (GObject *object,
3565-+ guint property_id,
3566-+ const GValue *value,
3567-+ GParamSpec *pspec)
3568-+{
3569-+ switch (property_id)
3570-+ {
3571-+ default:
3572-+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
3573-+ }
3574-+}
3575-+
3576-+static void
3577-+cc_shell_nav_bar_dispose (GObject *object)
3578-+{
3579-+ G_OBJECT_CLASS (cc_shell_nav_bar_parent_class)->dispose (object);
3580-+}
3581-+
3582-+static void
3583-+cc_shell_nav_bar_finalize (GObject *object)
3584-+{
3585-+ G_OBJECT_CLASS (cc_shell_nav_bar_parent_class)->finalize (object);
3586-+}
3587-+
3588-+static void
3589-+home_button_clicked_cb (GtkButton *button,
3590-+ CcShellNavBar *bar)
3591-+{
3592-+ g_signal_emit (bar, signals[HOME_CLICKED], 0);
3593-+}
3594-+
3595-+static void
3596-+cc_shell_nav_bar_class_init (CcShellNavBarClass *klass)
3597-+{
3598-+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
3599-+
3600-+ g_type_class_add_private (klass, sizeof (CcShellNavBarPrivate));
3601-+
3602-+ object_class->get_property = cc_shell_nav_bar_get_property;
3603-+ object_class->set_property = cc_shell_nav_bar_set_property;
3604-+ object_class->dispose = cc_shell_nav_bar_dispose;
3605-+ object_class->finalize = cc_shell_nav_bar_finalize;
3606-+
3607-+ signals[HOME_CLICKED] = g_signal_new ("home-clicked",
3608-+ CC_TYPE_SHELL_NAV_BAR,
3609-+ G_SIGNAL_RUN_FIRST,
3610-+ 0,
3611-+ NULL,
3612-+ NULL,
3613-+ cc_shell_marshal_VOID__VOID,
3614-+ G_TYPE_NONE,
3615-+ 0);
3616-+}
3617-+
3618-+static void
3619-+cc_shell_nav_bar_init (CcShellNavBar *self)
3620-+{
3621-+ self->priv = SHELL_NAV_BAR_PRIVATE (self);
3622-+ self->priv->home_button = gtk_button_new_with_mnemonic (_("_All Settings"));
3623-+ self->priv->detail_button = gtk_button_new();
3624-+
3625-+ gtk_box_pack_start (GTK_BOX(self), self->priv->home_button, FALSE, FALSE, 0);
3626-+ gtk_box_pack_start (GTK_BOX(self), self->priv->detail_button, FALSE, FALSE, 0);
3627-+
3628-+ gtk_widget_show (self->priv->home_button);
3629-+
3630-+ g_signal_connect (self->priv->home_button, "clicked",
3631-+ G_CALLBACK (home_button_clicked_cb), self);
3632-+
3633-+ GtkStyleContext *context = gtk_widget_get_style_context (GTK_WIDGET(self));
3634-+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_LINKED);
3635-+ gtk_style_context_add_class (context, "breadcrumbs");
3636-+}
3637-+
3638-+GtkWidget *
3639-+cc_shell_nav_bar_new (void)
3640-+{
3641-+ return g_object_new (CC_TYPE_SHELL_NAV_BAR, NULL);
3642-+}
3643-+
3644-+void
3645-+cc_shell_nav_bar_show_detail_button (CcShellNavBar *bar, const gchar *label)
3646-+{
3647-+ gtk_widget_show (bar->priv->detail_button);
3648-+ gtk_button_set_label (GTK_BUTTON (bar->priv->detail_button), label);
3649-+}
3650-+
3651-+void
3652-+cc_shell_nav_bar_hide_detail_button (CcShellNavBar *bar)
3653-+{
3654-+ gtk_widget_hide (bar->priv->detail_button);
3655-+}
3656-Index: gnome-control-center-3.6.3/shell/cc-shell-nav-bar.h
3657-===================================================================
3658---- /dev/null 1970-01-01 00:00:00.000000000 +0000
3659-+++ gnome-control-center-3.6.3/shell/cc-shell-nav-bar.h 2012-11-22 10:20:56.877282212 +0100
3660-@@ -0,0 +1,76 @@
3661-+/*
3662-+ * Copyright 2012 Canonical
3663-+ *
3664-+ * The Control Center is free software; you can redistribute it and/or modify
3665-+ * it under the terms of the GNU General Public License as published by the
3666-+ * Free Software Foundation; either version 2 of the License, or (at your
3667-+ * option) any later version.
3668-+ *
3669-+ * The Control Center is distributed in the hope that it will be useful, but
3670-+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
3671-+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3672-+ * for more details.
3673-+ *
3674-+ * You should have received a copy of the GNU General Public License along
3675-+ * with the Control Center; if not, write to the Free Software Foundation,
3676-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
3677-+ *
3678-+ * Author: Aurélien Gâteau <aurelien.gateau@canonical.com>
3679-+ */
3680-+
3681-+#ifndef _CC_SHELL_NAV_BAR_H
3682-+#define _CC_SHELL_NAV_BAR_H
3683-+
3684-+#include <gtk/gtk.h>
3685-+
3686-+G_BEGIN_DECLS
3687-+
3688-+#define CC_TYPE_SHELL_NAV_BAR cc_shell_nav_bar_get_type()
3689-+
3690-+#define CC_SHELL_NAV_BAR(obj) \
3691-+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
3692-+ CC_TYPE_SHELL_NAV_BAR, CcShellNavBar))
3693-+
3694-+#define CC_SHELL_NAV_BAR_CLASS(klass) \
3695-+ (G_TYPE_CHECK_CLASS_CAST ((klass), \
3696-+ CC_TYPE_SHELL_NAV_BAR, CcShellNavBarClass))
3697-+
3698-+#define CC_IS_SHELL_NAV_BAR(obj) \
3699-+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
3700-+ CC_TYPE_SHELL_NAV_BAR))
3701-+
3702-+#define CC_IS_SHELL_NAV_BAR_CLASS(klass) \
3703-+ (G_TYPE_CHECK_CLASS_TYPE ((klass), \
3704-+ CC_TYPE_SHELL_NAV_BAR))
3705-+
3706-+#define CC_SHELL_NAV_BAR_GET_CLASS(obj) \
3707-+ (G_TYPE_INSTANCE_GET_CLASS ((obj), \
3708-+ CC_TYPE_SHELL_NAV_BAR, CcShellNavBarClass))
3709-+
3710-+typedef struct _CcShellNavBar CcShellNavBar;
3711-+typedef struct _CcShellNavBarClass CcShellNavBarClass;
3712-+typedef struct _CcShellNavBarPrivate CcShellNavBarPrivate;
3713-+
3714-+struct _CcShellNavBar
3715-+{
3716-+ GtkBox parent;
3717-+
3718-+ CcShellNavBarPrivate *priv;
3719-+};
3720-+
3721-+struct _CcShellNavBarClass
3722-+{
3723-+ GtkBoxClass parent_class;
3724-+};
3725-+
3726-+GType cc_shell_nav_bar_get_type (void) G_GNUC_CONST;
3727-+
3728-+GtkWidget *cc_shell_nav_bar_new (void);
3729-+
3730-+void cc_shell_nav_bar_show_detail_button (CcShellNavBar *bar, const gchar *label);
3731-+
3732-+void cc_shell_nav_bar_hide_detail_button (CcShellNavBar *bar);
3733-+
3734-+G_END_DECLS
3735-+
3736-+#endif /* _CC_SHELL_NAV_BAR_H */
3737-Index: gnome-control-center-3.6.3/shell/gnome-control-center.c
3738-===================================================================
3739---- gnome-control-center-3.6.3.orig/shell/gnome-control-center.c 2012-11-22 10:20:56.833282210 +0100
3740-+++ gnome-control-center-3.6.3/shell/gnome-control-center.c 2012-11-22 10:20:59.485282338 +0100
3741-@@ -38,6 +38,7 @@
3742- #include "cc-shell.h"
3743- #include "cc-shell-category-view.h"
3744- #include "cc-shell-model.h"
3745-+#include "cc-shell-nav-bar.h"
3746-
3747- G_DEFINE_TYPE (GnomeControlCenter, gnome_control_center, CC_TYPE_SHELL)
3748-
3749-@@ -75,6 +76,7 @@
3750- GtkWidget *search_entry;
3751- GtkWidget *lock_button;
3752- GPtrArray *custom_widgets;
3753-+ GtkWidget *nav_bar;
3754-
3755- GMenuTree *menu_tree;
3756- GtkListStore *store;
3757-@@ -237,6 +239,7 @@
3758- /* switch to the new panel */
3759- gtk_widget_show (box);
3760- notebook_select_page (priv->notebook, box);
3761-+ cc_shell_nav_bar_show_detail_button (CC_SHELL_NAV_BAR(shell->priv->nav_bar), name);
3762-
3763- /* set the title of the window */
3764- icon_name = get_icon_name_from_g_icon (gicon);
3765-@@ -299,6 +302,8 @@
3766-
3767- /* clear any custom widgets */
3768- _shell_remove_all_custom_widgets (priv);
3769-+
3770-+ cc_shell_nav_bar_hide_detail_button (CC_SHELL_NAV_BAR (priv->nav_bar));
3771- }
3772-
3773- void
3774-@@ -902,11 +907,8 @@
3775-
3776- child = notebook_get_selected_page (GTK_WIDGET (notebook));
3777-
3778-- /* make sure the home button is shown on all pages except the overview page */
3779--
3780- if (child == priv->scrolled_window || child == priv->search_scrolled)
3781- {
3782-- gtk_widget_hide (W (priv->builder, "home-button"));
3783- gtk_widget_show (W (priv->builder, "search-entry"));
3784- gtk_widget_hide (W (priv->builder, "lock-button"));
3785-
3786-@@ -917,7 +919,6 @@
3787- }
3788- else
3789- {
3790-- gtk_widget_show (W (priv->builder, "home-button"));
3791- gtk_widget_hide (W (priv->builder, "search-entry"));
3792- /* set the scrolled window small so that it doesn't force
3793- the window to be larger than this panel */
3794-@@ -1332,6 +1333,7 @@
3795- GError *err = NULL;
3796- GnomeControlCenterPrivate *priv;
3797- GdkScreen *screen;
3798-+ GtkWidget *widget;
3799-
3800- priv = self->priv = CONTROL_CENTER_PRIVATE (self);
3801-
3802-@@ -1378,8 +1380,14 @@
3803- g_signal_connect (priv->notebook, "notify::page",
3804- G_CALLBACK (notebook_page_notify_cb), priv);
3805-
3806-- g_signal_connect (gtk_builder_get_object (priv->builder, "home-button"),
3807-- "clicked", G_CALLBACK (home_button_clicked_cb), self);
3808-+ priv->nav_bar = cc_shell_nav_bar_new ();
3809-+ widget = W (priv->builder, "hbox1");
3810-+ gtk_box_pack_start (GTK_BOX (widget), priv->nav_bar, FALSE, FALSE, 0);
3811-+ gtk_box_reorder_child (GTK_BOX (widget), priv->nav_bar, 0);
3812-+ gtk_widget_show (priv->nav_bar);
3813-+
3814-+ g_signal_connect (priv->nav_bar,
3815-+ "home-clicked", G_CALLBACK (home_button_clicked_cb), self);
3816-
3817- /* keep a list of custom widgets to unload on panel change */
3818- priv->custom_widgets = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
3819-Index: gnome-control-center-3.6.3/shell/shell.ui
3820-===================================================================
3821---- gnome-control-center-3.6.3.orig/shell/shell.ui 2012-11-14 12:42:44.000000000 +0100
3822-+++ gnome-control-center-3.6.3/shell/shell.ui 2012-11-22 10:21:52.369284899 +0100
3823-@@ -34,36 +34,6 @@
3824- <object class="GtkHBox" id="hbox1">
3825- <property name="visible">True</property>
3826- <child>
3827-- <object class="GtkAspectFrame" id="home-aspect-frame">
3828-- <property name="visible">True</property>
3829-- <property name="can_focus">False</property>
3830-- <property name="xalign">0</property>
3831-- <property name="ratio">1</property>
3832-- <property name="shadow-type">none</property>
3833-- <property name="obey-child">False</property>
3834-- <child>
3835-- <object class="GtkButton" id="home-button">
3836-- <property name="use_action_appearance">False</property>
3837-- <property name="can_focus">True</property>
3838-- <property name="receives_default">True</property>
3839-- <property name="no_show_all">True</property>
3840-- <property name="use_action_appearance">False</property>
3841-- <property name="image">image1</property>
3842-- <property name="use_underline">True</property>
3843-- <child internal-child="accessible">
3844-- <object class="AtkObject" id="home-button-atkobject">
3845-- <property name="AtkObject::accessible-name" translatable="yes">All Settings</property>
3846-- </object>
3847-- </child>
3848-- </object>
3849-- </child>
3850-- </object>
3851-- <packing>
3852-- <property name="expand">False</property>
3853-- <property name="position">0</property>
3854-- </packing>
3855-- </child>
3856-- <child>
3857- <object class="GtkAlignment" id="entry-alignment">
3858- <property name="visible">True</property>
3859- <property name="xalign">1</property>
3860-@@ -93,7 +63,7 @@
3861- </child>
3862- </object>
3863- <packing>
3864-- <property name="position">1</property>
3865-+ <property name="position">0</property>
3866- </packing>
3867- </child>
3868- </object>
3869-@@ -172,13 +142,6 @@
3870- <column type="gchararray"/>
3871- </columns>
3872- </object>
3873-- <object class="GtkSizeGroup" id="sizegroup">
3874-- <property name="mode">vertical</property>
3875-- <widgets>
3876-- <widget name="home-button"/>
3877-- <widget name="entry-alignment"/>
3878-- </widgets>
3879-- </object>
3880- <object class="GtkImage" id="image1">
3881- <property name="visible">True</property>
3882- <property name="can_focus">False</property>
3883
3884=== removed file 'debian/patches/61_workaround_online_account.patch'
3885--- debian/patches/61_workaround_online_account.patch 2013-07-05 13:31:20 +0000
3886+++ debian/patches/61_workaround_online_account.patch 1970-01-01 00:00:00 +0000
3887@@ -1,16 +0,0 @@
3888-# Description: Don't show goa in Unity, we use uoa there
3889-# Upstream: the change is ubuntu specific
3890-#
3891-Index: gnome-control-center-3.3.91/panels/online-accounts/gnome-online-accounts-panel.desktop.in.in
3892-===================================================================
3893---- gnome-control-center-3.3.91.orig/panels/online-accounts/gnome-online-accounts-panel.desktop.in.in 2012-03-05 15:04:55.000000000 +0100
3894-+++ gnome-control-center-3.3.91/panels/online-accounts/gnome-online-accounts-panel.desktop.in.in 2012-03-06 17:52:14.907083003 +0100
3895-@@ -7,7 +7,7 @@
3896- Type=Application
3897- StartupNotify=true
3898- Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;X-GNOME-PersonalSettings;
3899--OnlyShowIn=GNOME;Unity;
3900-+OnlyShowIn=GNOME;
3901- X-GNOME-Bugzilla-Bugzilla=GNOME
3902- X-GNOME-Bugzilla-Product=gnome-control-center
3903- X-GNOME-Bugzilla-Component=Online Accounts
3904
3905=== added file 'debian/patches/64_restore_terminal_keyboard_shortcut.patch'
3906--- debian/patches/64_restore_terminal_keyboard_shortcut.patch 1970-01-01 00:00:00 +0000
3907+++ debian/patches/64_restore_terminal_keyboard_shortcut.patch 2014-05-06 09:05:46 +0000
3908@@ -0,0 +1,13 @@
3909+Index: gnome-control-center-3.4.2/panels/keyboard/01-launchers.xml.in
3910+===================================================================
3911+--- gnome-control-center-3.4.2.orig/panels/keyboard/01-launchers.xml.in 2011-08-25 11:09:31.000000000 -0400
3912++++ gnome-control-center-3.4.2/panels/keyboard/01-launchers.xml.in 2012-08-25 23:34:01.889092065 -0400
3913+@@ -7,6 +7,8 @@
3914+
3915+ <KeyListEntry name="email" _description="Launch email client"/>
3916+
3917++ <KeyListEntry name="terminal" _description="Launch terminal"/>
3918++
3919+ <KeyListEntry name="www" _description="Launch web browser"/>
3920+
3921+ <KeyListEntry name="home" _description="Home folder"/>
3922
3923=== removed file 'debian/patches/64_restore_terminal_keyboard_shortcut.patch'
3924--- debian/patches/64_restore_terminal_keyboard_shortcut.patch 2013-07-05 13:31:20 +0000
3925+++ debian/patches/64_restore_terminal_keyboard_shortcut.patch 1970-01-01 00:00:00 +0000
3926@@ -1,13 +0,0 @@
3927-Index: gnome-control-center-3.4.2/panels/keyboard/01-launchers.xml.in
3928-===================================================================
3929---- gnome-control-center-3.4.2.orig/panels/keyboard/01-launchers.xml.in 2011-08-25 11:09:31.000000000 -0400
3930-+++ gnome-control-center-3.4.2/panels/keyboard/01-launchers.xml.in 2012-08-25 23:34:01.889092065 -0400
3931-@@ -7,6 +7,8 @@
3932-
3933- <KeyListEntry name="email" _description="Launch email client"/>
3934-
3935-+ <KeyListEntry name="terminal" _description="Launch terminal"/>
3936-+
3937- <KeyListEntry name="www" _description="Launch web browser"/>
3938-
3939- <KeyListEntry name="home" _description="Home folder"/>
3940
3941=== removed file 'debian/patches/90_force_fallback.patch'
3942--- debian/patches/90_force_fallback.patch 2013-07-05 13:31:20 +0000
3943+++ debian/patches/90_force_fallback.patch 1970-01-01 00:00:00 +0000
3944@@ -1,22 +0,0 @@
3945-Index: b/panels/info/info.ui
3946-===================================================================
3947---- a/panels/info/info.ui
3948-+++ b/panels/info/info.ui
3949-@@ -1191,7 +1191,7 @@
3950- </child>
3951- <child>
3952- <object class="GtkLabel" id="fallback-label">
3953-- <property name="visible">True</property>
3954-+ <property name="visible">False</property>
3955- <property name="can_focus">False</property>
3956- <property name="xalign">1</property>
3957- <property name="label" translatable="yes" comments="Hardware is not able to run GNOME 3's shell, so we might want to force running the 'Fallback' experience.">Forced _Fallback Mode</property>
3958-@@ -1240,7 +1240,7 @@
3959- </child>
3960- <child>
3961- <object class="GtkBox" id="graphics_fallback_switch_box">
3962-- <property name="visible">True</property>
3963-+ <property name="visible">False</property>
3964- <property name="can_focus">False</property>
3965- <property name="halign">start</property>
3966- <property name="valign">center</property>
3967
3968=== removed file 'debian/patches/91_unity_no_printing_panel.patch'
3969--- debian/patches/91_unity_no_printing_panel.patch 2013-07-05 13:31:20 +0000
3970+++ debian/patches/91_unity_no_printing_panel.patch 1970-01-01 00:00:00 +0000
3971@@ -1,12 +0,0 @@
3972-diff -Nur gnome-control-center-3.6.3/panels/printers/gnome-printers-panel.desktop.in.in gnome-control-center-3.6.3.new/panels/printers/gnome-printers-panel.desktop.in.in
3973---- gnome-control-center-3.6.3/panels/printers/gnome-printers-panel.desktop.in.in 2013-03-19 11:48:12.950319345 +0100
3974-+++ gnome-control-center-3.6.3.new/panels/printers/gnome-printers-panel.desktop.in.in 2013-03-19 11:47:56.902318811 +0100
3975-@@ -8,7 +8,7 @@
3976- StartupNotify=true
3977- # The X-GNOME-Settings-Panel is necessary to show in the main shell UI
3978- Categories=GNOME;GTK;Settings;HardwareSettings;X-GNOME-Settings-Panel;
3979--OnlyShowIn=GNOME;Unity;
3980-+OnlyShowIn=GNOME;
3981- X-GNOME-Settings-Panel=printers
3982- # Translators: those are keywords for the printing control-center panel
3983- _Keywords=Printer;Queue;Print;Paper;Ink;Toner;
3984
3985=== added file 'debian/patches/92_ubuntu_system_proxy.patch'
3986--- debian/patches/92_ubuntu_system_proxy.patch 1970-01-01 00:00:00 +0000
3987+++ debian/patches/92_ubuntu_system_proxy.patch 2014-05-06 09:05:46 +0000
3988@@ -0,0 +1,213 @@
3989+--- a/panels/network/net-proxy.c
3990++++ b/panels/network/net-proxy.c
3991+@@ -25,8 +25,14 @@
3992+ #include <glib/gi18n.h>
3993+ #include <gio/gio.h>
3994+
3995++#include <grp.h>
3996++#include <unistd.h>
3997++#include <gdesktop-enums.h>
3998++
3999+ #include "net-proxy.h"
4000+
4001++
4002++
4003+ #define NET_PROXY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NET_TYPE_PROXY, NetProxyPrivate))
4004+
4005+ struct _NetProxyPrivate
4006+@@ -306,6 +312,148 @@
4007+ return g_variant_builder_end (&builder);
4008+ }
4009+
4010++
4011++static gboolean
4012++ubuntu_is_in_admin_group (int id_group)
4013++{
4014++ gid_t groups [1024];
4015++ int i, ngroups;
4016++
4017++ ngroups = getgroups (1024, groups);
4018++ if (ngroups < 0) {
4019++ perror ("getgroups");
4020++ return FALSE;
4021++ }
4022++
4023++ for (i = 0; i < ngroups; ++i) {
4024++ if (groups[i] == id_group)
4025++ return TRUE;
4026++ }
4027++
4028++ return FALSE;
4029++}
4030++
4031++static gboolean
4032++ubuntu_is_admin ()
4033++{
4034++ struct group *admin_group;
4035++
4036++ admin_group = getgrnam ("admin");
4037++ if (admin_group != NULL && ubuntu_is_in_admin_group (admin_group->gr_gid))
4038++ return TRUE;
4039++
4040++ admin_group = getgrnam ("sudo");
4041++ if (admin_group != NULL && ubuntu_is_in_admin_group (admin_group->gr_gid))
4042++ return TRUE;
4043++
4044++ return FALSE;
4045++}
4046++
4047++static void
4048++ubuntu_reset_system_proxy (GDBusProxy *proxy, const gchar *protocol)
4049++{
4050++ GVariant *result;
4051++ GError *error = NULL;
4052++
4053++ result = g_dbus_proxy_call_sync (proxy, "set_proxy",
4054++ g_variant_new ("(ss)", protocol, ""),
4055++ G_DBUS_CALL_FLAGS_NONE,
4056++ -1, NULL, &error);
4057++ if (result)
4058++ g_variant_unref (result);
4059++ else {
4060++ g_warning ("Error while calling set_proxy for %s protocol: %s", protocol, error->message);
4061++ g_error_free (error);
4062++ }
4063++}
4064++
4065++static void
4066++ubuntu_set_proxy_for_protocol (GDBusProxy *proxy, const gchar *protocol, GSettings *settings)
4067++{
4068++ GVariant *result;
4069++ gchar *proxy_str, *host;
4070++ GError *error = NULL;
4071++ gint port;
4072++
4073++ host = g_settings_get_string (settings, "host");
4074++ port = g_settings_get_int (settings, "port");
4075++
4076++ if (host && *host == '\0') {
4077++ ubuntu_reset_system_proxy (proxy, protocol);
4078++ } else {
4079++ proxy_str = g_strdup_printf ("%s://%s:%i/", protocol, host, port);
4080++
4081++ result = g_dbus_proxy_call_sync (proxy, "set_proxy",
4082++ g_variant_new ("(ss)", protocol, proxy_str),
4083++ G_DBUS_CALL_FLAGS_NONE,
4084++ -1, NULL, &error);
4085++ if (result)
4086++ g_variant_unref (result);
4087++ else {
4088++ g_warning ("Error while calling set_proxy for %s protocol: %s", protocol, error->message);
4089++ g_error_free (error);
4090++ }
4091++ g_free (proxy_str);
4092++ }
4093++
4094++ /* Free memory */
4095++ g_free (host);
4096++ g_object_unref (settings);
4097++}
4098++
4099++static void
4100++ubuntu_on_proxy_apply_system_settings (GtkButton *button, gpointer user_data)
4101++{
4102++ GDBusConnection *bus;
4103++ GDBusProxy *dbus_proxy;
4104++ GError *error;
4105++ GDesktopProxyMode proxy_mode;
4106++ NetProxy *proxy = NET_PROXY (user_data);
4107++
4108++ error = NULL;
4109++ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
4110++ if (!bus) {
4111++ g_warning ("Could not retrieve system bus: %s", error->message);
4112++ g_error_free (error);
4113++
4114++ return;
4115++ }
4116++
4117++ dbus_proxy = g_dbus_proxy_new_sync (bus, 0, NULL,
4118++ "com.ubuntu.SystemService",
4119++ "/",
4120++ "com.ubuntu.SystemService",
4121++ NULL,
4122++ &error);
4123++ if (!dbus_proxy) {
4124++ g_warning ("Could not retrieve bus object: %s", error->message);
4125++ g_error_free (error);
4126++
4127++ return;
4128++ }
4129++
4130++ /* Retrieve the current settings */
4131++ proxy_mode = g_settings_get_enum (proxy->priv->settings, "mode");
4132++ switch (proxy_mode) {
4133++ case G_DESKTOP_PROXY_MODE_AUTO:
4134++ case G_DESKTOP_PROXY_MODE_NONE:
4135++ ubuntu_reset_system_proxy (dbus_proxy, "http");
4136++ ubuntu_reset_system_proxy (dbus_proxy, "https");
4137++ ubuntu_reset_system_proxy (dbus_proxy, "ftp");
4138++ ubuntu_reset_system_proxy (dbus_proxy, "socks");
4139++ break;
4140++ case G_DESKTOP_PROXY_MODE_MANUAL:
4141++ ubuntu_set_proxy_for_protocol (dbus_proxy, "http", g_settings_get_child (proxy->priv->settings, "http"));
4142++ ubuntu_set_proxy_for_protocol (dbus_proxy, "https", g_settings_get_child (proxy->priv->settings, "https"));
4143++ ubuntu_set_proxy_for_protocol (dbus_proxy, "ftp", g_settings_get_child (proxy->priv->settings, "ftp"));
4144++ ubuntu_set_proxy_for_protocol (dbus_proxy, "socks", g_settings_get_child (proxy->priv->settings, "socks"));
4145++ break;
4146++ }
4147++
4148++ /* Free memory */
4149++ g_object_unref (dbus_proxy);
4150++}
4151++
4152+ static void
4153+ net_proxy_init (NetProxy *proxy)
4154+ {
4155+@@ -427,6 +575,13 @@
4156+ G_SETTINGS_BIND_DEFAULT, get_ignore_hosts, set_ignore_hosts,
4157+ NULL, NULL);
4158+
4159++ /* Ubuntu button for system proxy settings */
4160++ if (ubuntu_is_admin ()) {
4161++ g_signal_connect (G_OBJECT (gtk_builder_get_object (proxy->priv->builder, "system_proxy_button")), "clicked",
4162++ G_CALLBACK (ubuntu_on_proxy_apply_system_settings), proxy);
4163++ } else
4164++ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (proxy->priv->builder, "system_proxy_button")));
4165++
4166+ /* hide the switch until we get some more detail in the mockup */
4167+ widget = GTK_WIDGET (gtk_builder_get_object (proxy->priv->builder,
4168+ "device_proxy_off_switch"));
4169+--- a/panels/network/network-proxy.ui
4170++++ b/panels/network/network-proxy.ui
4171+@@ -229,6 +229,21 @@
4172+ </packing>
4173+ </child>
4174+ <child>
4175++ <object class="GtkButton" id="system_proxy_button">
4176++ <property name="label" translatable="yes">Apply system wide</property>
4177++ <property name="visible">True</property>
4178++ <property name="can_focus">True</property>
4179++ <property name="receives_default">True</property>
4180++ <property name="use_action_appearance">False</property>
4181++ </object>
4182++ <packing>
4183++ <property name="left_attach">0</property>
4184++ <property name="top_attach">8</property>
4185++ <property name="width">3</property>
4186++ <property name="height">1</property>
4187++ </packing>
4188++ </child>
4189++ <child>
4190+ <object class="GtkLabel" id="label_proxy_warning">
4191+ <property name="visible">False</property>
4192+ <property name="can_focus">False</property>
4193+@@ -239,7 +254,7 @@
4194+ </object>
4195+ <packing>
4196+ <property name="left_attach">0</property>
4197+- <property name="top_attach">8</property>
4198++ <property name="top_attach">9</property>
4199+ <property name="width">3</property>
4200+ <property name="height">1</property>
4201+ </packing>
4202
4203=== removed file 'debian/patches/92_ubuntu_system_proxy.patch'
4204--- debian/patches/92_ubuntu_system_proxy.patch 2013-07-05 13:31:20 +0000
4205+++ debian/patches/92_ubuntu_system_proxy.patch 1970-01-01 00:00:00 +0000
4206@@ -1,217 +0,0 @@
4207-Index: gnome-control-center-3.6.3/panels/network/net-proxy.c
4208-===================================================================
4209---- gnome-control-center-3.6.3.orig/panels/network/net-proxy.c 2013-04-16 16:14:41.159226157 +0200
4210-+++ gnome-control-center-3.6.3/panels/network/net-proxy.c 2013-04-16 16:14:59.847226780 +0200
4211-@@ -25,8 +25,14 @@
4212- #include <glib/gi18n.h>
4213- #include <gio/gio.h>
4214-
4215-+#include <grp.h>
4216-+#include <unistd.h>
4217-+#include <gdesktop-enums.h>
4218-+
4219- #include "net-proxy.h"
4220-
4221-+
4222-+
4223- #define NET_PROXY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NET_TYPE_PROXY, NetProxyPrivate))
4224-
4225- struct _NetProxyPrivate
4226-@@ -250,6 +256,148 @@
4227- g_type_class_add_private (klass, sizeof (NetProxyPrivate));
4228- }
4229-
4230-+
4231-+static gboolean
4232-+ubuntu_is_in_admin_group (int id_group)
4233-+{
4234-+ gid_t groups [1024];
4235-+ int i, ngroups;
4236-+
4237-+ ngroups = getgroups (1024, groups);
4238-+ if (ngroups < 0) {
4239-+ perror ("getgroups");
4240-+ return FALSE;
4241-+ }
4242-+
4243-+ for (i = 0; i < ngroups; ++i) {
4244-+ if (groups[i] == id_group)
4245-+ return TRUE;
4246-+ }
4247-+
4248-+ return FALSE;
4249-+}
4250-+
4251-+static gboolean
4252-+ubuntu_is_admin ()
4253-+{
4254-+ struct group *admin_group;
4255-+
4256-+ admin_group = getgrnam ("admin");
4257-+ if (admin_group != NULL && ubuntu_is_in_admin_group (admin_group->gr_gid))
4258-+ return TRUE;
4259-+
4260-+ admin_group = getgrnam ("sudo");
4261-+ if (admin_group != NULL && ubuntu_is_in_admin_group (admin_group->gr_gid))
4262-+ return TRUE;
4263-+
4264-+ return FALSE;
4265-+}
4266-+
4267-+static void
4268-+ubuntu_reset_system_proxy (GDBusProxy *proxy, const gchar *protocol)
4269-+{
4270-+ GVariant *result;
4271-+ GError *error = NULL;
4272-+
4273-+ result = g_dbus_proxy_call_sync (proxy, "set_proxy",
4274-+ g_variant_new ("(ss)", protocol, ""),
4275-+ G_DBUS_CALL_FLAGS_NONE,
4276-+ -1, NULL, &error);
4277-+ if (result)
4278-+ g_variant_unref (result);
4279-+ else {
4280-+ g_warning ("Error while calling set_proxy for %s protocol: %s", protocol, error->message);
4281-+ g_error_free (error);
4282-+ }
4283-+}
4284-+
4285-+static void
4286-+ubuntu_set_proxy_for_protocol (GDBusProxy *proxy, const gchar *protocol, GSettings *settings)
4287-+{
4288-+ GVariant *result;
4289-+ gchar *proxy_str, *host;
4290-+ GError *error = NULL;
4291-+ gint port;
4292-+
4293-+ host = g_settings_get_string (settings, "host");
4294-+ port = g_settings_get_int (settings, "port");
4295-+
4296-+ if (host && *host == '\0') {
4297-+ ubuntu_reset_system_proxy (proxy, protocol);
4298-+ } else {
4299-+ proxy_str = g_strdup_printf ("%s://%s:%i/", protocol, host, port);
4300-+
4301-+ result = g_dbus_proxy_call_sync (proxy, "set_proxy",
4302-+ g_variant_new ("(ss)", protocol, proxy_str),
4303-+ G_DBUS_CALL_FLAGS_NONE,
4304-+ -1, NULL, &error);
4305-+ if (result)
4306-+ g_variant_unref (result);
4307-+ else {
4308-+ g_warning ("Error while calling set_proxy for %s protocol: %s", protocol, error->message);
4309-+ g_error_free (error);
4310-+ }
4311-+ g_free (proxy_str);
4312-+ }
4313-+
4314-+ /* Free memory */
4315-+ g_free (host);
4316-+ g_object_unref (settings);
4317-+}
4318-+
4319-+static void
4320-+ubuntu_on_proxy_apply_system_settings (GtkButton *button, gpointer user_data)
4321-+{
4322-+ GDBusConnection *bus;
4323-+ GDBusProxy *dbus_proxy;
4324-+ GError *error;
4325-+ GDesktopProxyMode proxy_mode;
4326-+ NetProxy *proxy = NET_PROXY (user_data);
4327-+
4328-+ error = NULL;
4329-+ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
4330-+ if (!bus) {
4331-+ g_warning ("Could not retrieve system bus: %s", error->message);
4332-+ g_error_free (error);
4333-+
4334-+ return;
4335-+ }
4336-+
4337-+ dbus_proxy = g_dbus_proxy_new_sync (bus, 0, NULL,
4338-+ "com.ubuntu.SystemService",
4339-+ "/",
4340-+ "com.ubuntu.SystemService",
4341-+ NULL,
4342-+ &error);
4343-+ if (!dbus_proxy) {
4344-+ g_warning ("Could not retrieve bus object: %s", error->message);
4345-+ g_error_free (error);
4346-+
4347-+ return;
4348-+ }
4349-+
4350-+ /* Retrieve the current settings */
4351-+ proxy_mode = g_settings_get_enum (proxy->priv->settings, "mode");
4352-+ switch (proxy_mode) {
4353-+ case G_DESKTOP_PROXY_MODE_AUTO:
4354-+ case G_DESKTOP_PROXY_MODE_NONE:
4355-+ ubuntu_reset_system_proxy (dbus_proxy, "http");
4356-+ ubuntu_reset_system_proxy (dbus_proxy, "https");
4357-+ ubuntu_reset_system_proxy (dbus_proxy, "ftp");
4358-+ ubuntu_reset_system_proxy (dbus_proxy, "socks");
4359-+ break;
4360-+ case G_DESKTOP_PROXY_MODE_MANUAL:
4361-+ ubuntu_set_proxy_for_protocol (dbus_proxy, "http", g_settings_get_child (proxy->priv->settings, "http"));
4362-+ ubuntu_set_proxy_for_protocol (dbus_proxy, "https", g_settings_get_child (proxy->priv->settings, "https"));
4363-+ ubuntu_set_proxy_for_protocol (dbus_proxy, "ftp", g_settings_get_child (proxy->priv->settings, "ftp"));
4364-+ ubuntu_set_proxy_for_protocol (dbus_proxy, "socks", g_settings_get_child (proxy->priv->settings, "socks"));
4365-+ break;
4366-+ }
4367-+
4368-+ /* Free memory */
4369-+ g_object_unref (dbus_proxy);
4370-+}
4371-+
4372- static void
4373- net_proxy_init (NetProxy *proxy)
4374- {
4375-@@ -369,6 +517,13 @@
4376- "label_proxy_status"));
4377- gtk_label_set_label (GTK_LABEL (widget), "");
4378-
4379-+ /* Ubuntu button for system proxy settings */
4380-+ if (ubuntu_is_admin ()) {
4381-+ g_signal_connect (G_OBJECT (gtk_builder_get_object (proxy->priv->builder, "system_proxy_button")), "clicked",
4382-+ G_CALLBACK (ubuntu_on_proxy_apply_system_settings), proxy);
4383-+ } else
4384-+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (proxy->priv->builder, "system_proxy_button")));
4385-+
4386- /* hide the switch until we get some more detail in the mockup */
4387- widget = GTK_WIDGET (gtk_builder_get_object (proxy->priv->builder,
4388- "device_proxy_off_switch"));
4389-Index: gnome-control-center-3.6.3/panels/network/network-proxy.ui
4390-===================================================================
4391---- gnome-control-center-3.6.3.orig/panels/network/network-proxy.ui 2013-04-16 16:14:41.159226157 +0200
4392-+++ gnome-control-center-3.6.3/panels/network/network-proxy.ui 2013-04-16 16:14:41.155226157 +0200
4393-@@ -280,6 +280,21 @@
4394- </packing>
4395- </child>
4396- <child>
4397-+ <object class="GtkButton" id="system_proxy_button">
4398-+ <property name="label" translatable="yes">Apply system wide</property>
4399-+ <property name="visible">True</property>
4400-+ <property name="can_focus">True</property>
4401-+ <property name="receives_default">True</property>
4402-+ <property name="use_action_appearance">False</property>
4403-+ </object>
4404-+ <packing>
4405-+ <property name="left_attach">0</property>
4406-+ <property name="top_attach">7</property>
4407-+ <property name="width">3</property>
4408-+ <property name="height">1</property>
4409-+ </packing>
4410-+ </child>
4411-+ <child>
4412- <object class="GtkLabel" id="label_proxy_warning">
4413- <property name="visible">True</property>
4414- <property name="can_focus">False</property>
4415-@@ -290,7 +305,7 @@
4416- </object>
4417- <packing>
4418- <property name="left_attach">0</property>
4419-- <property name="top_attach">7</property>
4420-+ <property name="top_attach">8</property>
4421- <property name="width">3</property>
4422- <property name="height">1</property>
4423- </packing>
4424
4425=== removed file 'debian/patches/97_unity_power_ui.patch'
4426--- debian/patches/97_unity_power_ui.patch 2013-10-18 14:33:16 +0000
4427+++ debian/patches/97_unity_power_ui.patch 1970-01-01 00:00:00 +0000
4428@@ -1,160 +0,0 @@
4429-Description: When indicator-power is installed, display an extra option in the power panel.
4430-Forwarded: not-needed
4431-
4432-Index: b/panels/power/cc-power-panel.c
4433-===================================================================
4434---- a/panels/power/cc-power-panel.c
4435-+++ b/panels/power/cc-power-panel.c
4436-@@ -39,6 +39,7 @@
4437- {
4438- GSettings *lock_settings;
4439- GSettings *gsd_settings;
4440-+ GSettings *power_settings;
4441- GCancellable *cancellable;
4442- GtkBuilder *builder;
4443- GDBusProxy *proxy;
4444-@@ -89,6 +90,11 @@
4445- g_object_unref (priv->gsd_settings);
4446- priv->gsd_settings = NULL;
4447- }
4448-+ if (priv->power_settings)
4449-+ {
4450-+ g_object_unref (priv->power_settings);
4451-+ priv->power_settings = NULL;
4452-+ }
4453- if (priv->cancellable != NULL)
4454- {
4455- g_cancellable_cancel (priv->cancellable);
4456-@@ -1112,6 +1118,37 @@
4457-
4458- widget = WID (self->priv->builder, "vbox_power");
4459- gtk_widget_reparent (widget, (GtkWidget *) self);
4460-+
4461-+ /* Set up Unity-specific controls */
4462-+ /* References:
4463-+ * https://wiki.ubuntu.com/Power
4464-+ * https://docs.google.com/document/d/1ILTJDiDCd25Npt2AmgzF8aOnZZECxTfM0hvsbWT2BxA/edit?pli=1#heading=h.i5lg1g344bsb
4465-+ */
4466-+ // First check the schema is installed
4467-+ GSettingsSchemaSource *schema_source = g_settings_schema_source_ref (
4468-+ g_settings_schema_source_get_default ());
4469-+ GSettingsSchema *schema = g_settings_schema_source_lookup (
4470-+ schema_source,
4471-+ "com.canonical.indicator.power",
4472-+ TRUE);
4473-+ g_settings_schema_source_unref (schema_source);
4474-+
4475-+ if (schema)
4476-+ {
4477-+ widget = GTK_WIDGET (gtk_builder_get_object (self->priv->builder,
4478-+ "combobox_indicator"));
4479-+ self->priv->power_settings = g_settings_new ("com.canonical.indicator.power");
4480-+ g_settings_bind (self->priv->power_settings, "icon-policy",
4481-+ widget, "active-id", G_SETTINGS_BIND_DEFAULT);
4482-+ g_settings_schema_unref (schema);
4483-+ }
4484-+ else
4485-+ {
4486-+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "separator_indicator")));
4487-+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "label_indicator")));
4488-+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "combobox_indicator")));
4489-+ }
4490-+
4491- }
4492-
4493- void
4494-Index: b/panels/power/power.ui
4495-===================================================================
4496---- a/panels/power/power.ui
4497-+++ b/panels/power/power.ui
4498-@@ -75,6 +75,28 @@
4499- </row>
4500- </data>
4501- </object>
4502-+ <object class="GtkListStore" id="liststore_indicator">
4503-+ <columns>
4504-+ <!-- column-name name -->
4505-+ <column type="gchararray"/>
4506-+ <!-- column-name value -->
4507-+ <column type="gchararray"/>
4508-+ </columns>
4509-+ <data>
4510-+ <row>
4511-+ <col id="0" translatable="yes">When battery is present</col>
4512-+ <col id="1">present</col>
4513-+ </row>
4514-+ <row>
4515-+ <col id="0" translatable="yes">When battery is charging/in use</col>
4516-+ <col id="1">charge</col>
4517-+ </row>
4518-+ <row>
4519-+ <col id="0" translatable="yes">Never</col>
4520-+ <col id="1">never</col>
4521-+ </row>
4522-+ </data>
4523-+ </object>
4524- <object class="GtkWindow" id="window_power">
4525- <property name="can_focus">False</property>
4526- <property name="resizable">False</property>
4527-@@ -238,6 +260,48 @@
4528- <property name="top_attach">3</property>
4529- </packing>
4530- </child>
4531-+ <child>
4532-+ <object class="GtkSeparator" id="separator_indicator">
4533-+ <property name="visible">True</property>
4534-+ <property name="can_focus">False</property>
4535-+ </object>
4536-+ <packing>
4537-+ <property name="left_attach">0</property>
4538-+ <property name="top_attach">4</property>
4539-+ <property name="width">4</property>
4540-+ <property name="height">1</property>
4541-+ </packing>
4542-+ </child>
4543-+ <child>
4544-+ <object class="GtkLabel" id="label_indicator">
4545-+ <property name="visible">True</property>
4546-+ <property name="can_focus">False</property>
4547-+ <property name="halign">end</property>
4548-+ <property name="label" translatable="yes">Show battery status in the _menu bar</property>
4549-+ <property name="use_underline">True</property>
4550-+ </object>
4551-+ <packing>
4552-+ <property name="left_attach">0</property>
4553-+ <property name="top_attach">5</property>
4554-+ </packing>
4555-+ </child>
4556-+ <child>
4557-+ <object class="GtkComboBoxText" id="combobox_indicator">
4558-+ <property name="visible">True</property>
4559-+ <property name="can_focus">False</property>
4560-+ <property name="model">liststore_indicator</property>
4561-+ <property name="hexpand">True</property>
4562-+ <accessibility>
4563-+ <relation type="labelled-by" target="label_indicator"/>
4564-+ </accessibility>
4565-+ </object>
4566-+ <packing>
4567-+ <property name="left_attach">1</property>
4568-+ <property name="top_attach">5</property>
4569-+ <property name="width">2</property>
4570-+ <property name="height">1</property>
4571-+ </packing>
4572-+ </child>
4573- </object>
4574- <packing>
4575- <property name="expand">False</property>
4576-Index: b/configure.ac
4577-===================================================================
4578---- a/configure.ac
4579-+++ b/configure.ac
4580-@@ -94,7 +94,7 @@
4581- dnl Check that we meet the dependencies
4582- dnl ==============================================
4583-
4584--GLIB_REQUIRED_VERSION=2.31.0
4585-+GLIB_REQUIRED_VERSION=2.31.2
4586- GTK_REQUIRED_VERSION=3.5.13
4587- PA_REQUIRED_VERSION=2.0
4588- CANBERRA_REQUIRED_VERSION=0.13
4589
4590=== removed file 'debian/patches/98_default_sound_theme.patch'
4591--- debian/patches/98_default_sound_theme.patch 2013-07-05 13:31:20 +0000
4592+++ debian/patches/98_default_sound_theme.patch 1970-01-01 00:00:00 +0000
4593@@ -1,16 +0,0 @@
4594-# Description: the default sound theme is "ubuntu" for us
4595-# UbuntuSpecific: yes
4596-#
4597-Index: b/panels/sound/gvc-sound-theme-chooser.c
4598-===================================================================
4599---- a/panels/sound/gvc-sound-theme-chooser.c
4600-+++ b/panels/sound/gvc-sound-theme-chooser.c
4601-@@ -67,7 +67,7 @@
4602- #define DEFAULT_ALERT_ID "__default"
4603- #define CUSTOM_THEME_NAME "__custom"
4604- #define NO_SOUNDS_THEME_NAME "__no_sounds"
4605--#define DEFAULT_THEME "freedesktop"
4606-+#define DEFAULT_THEME "ubuntu"
4607-
4608- enum {
4609- THEME_DISPLAY_COL,
4610
4611=== added file 'debian/patches/99_add_lock-on-suspend.patch'
4612--- debian/patches/99_add_lock-on-suspend.patch 1970-01-01 00:00:00 +0000
4613+++ debian/patches/99_add_lock-on-suspend.patch 2014-05-06 09:05:46 +0000
4614@@ -0,0 +1,75 @@
4615+Description: Add a new preference to lock the screen when the system suspends.
4616+Author: Marc Deslauriers <marc.deslauriers@canonical.com>
4617+Forwarded: no, likely a Ubuntu-specific preference
4618+Bug-Ubuntu: https://bugs.launchpad.net/bugs/938076
4619+
4620+From: Tim Lunn <tim@feathertop.org>
4621+Date: Mon, 3 Jun 2013 17:27:45 +1000
4622+Subject: [PATCH] ubuntu lock on suspend
4623+
4624+---
4625+ panels/privacy/cc-privacy-panel.c | 5 +++++
4626+ panels/privacy/privacy.ui | 31 +++++++++++++++++++++++++++++++
4627+ 2 files changed, 36 insertions(+)
4628+
4629+diff --git a/panels/privacy/cc-privacy-panel.c b/panels/privacy/cc-privacy-panel.c
4630+index d92b9e4..fb1be4c 100644
4631+--- a/panels/privacy/cc-privacy-panel.c
4632++++ b/panels/privacy/cc-privacy-panel.c
4633+@@ -299,6 +299,11 @@ add_screen_lock (CcPrivacyPanel *self)
4634+ g_settings_bind (self->priv->notification_settings, "show-in-lock-screen",
4635+ w, "active",
4636+ G_SETTINGS_BIND_DEFAULT);
4637++
4638++ w = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "screen_lock_suspend"));
4639++ g_settings_bind (self->priv->lock_settings, "ubuntu-lock-on-suspend",
4640++ w, "active",
4641++ G_SETTINGS_BIND_DEFAULT);
4642+ }
4643+
4644+ static void
4645+diff --git a/panels/privacy/privacy.ui b/panels/privacy/privacy.ui
4646+index ec62b70..b5d43f4 100644
4647+--- a/panels/privacy/privacy.ui
4648++++ b/panels/privacy/privacy.ui
4649+@@ -612,6 +612,37 @@
4650+ <property name="height">1</property>
4651+ </packing>
4652+ </child>
4653++ <child>
4654++ <object class="GtkLabel" id="label8">
4655++ <property name="visible">True</property>
4656++ <property name="can_focus">False</property>
4657++ <property name="xalign">0</property>
4658++ <property name="hexpand">True</property>
4659++ <property name="label" translatable="yes">Lock Screen on Suspend</property>
4660++ <property name="use_underline">True</property>
4661++ <property name="mnemonic_widget">screen_lock_suspend</property>
4662++ </object>
4663++ <packing>
4664++ <property name="left_attach">0</property>
4665++ <property name="top_attach">3</property>
4666++ <property name="width">1</property>
4667++ <property name="height">1</property>
4668++ </packing>
4669++ </child>
4670++ <child>
4671++ <object class="GtkSwitch" id="screen_lock_suspend">
4672++ <property name="visible">True</property>
4673++ <property name="can_focus">True</property>
4674++ <property name="halign">end</property>
4675++ <property name="valign">center</property>
4676++ </object>
4677++ <packing>
4678++ <property name="left_attach">1</property>
4679++ <property name="top_attach">3</property>
4680++ <property name="width">1</property>
4681++ <property name="height">1</property>
4682++ </packing>
4683++ </child>
4684+ </object>
4685+ <packing>
4686+ <property name="expand">False</property>
4687+--
4688+1.8.1.2
4689+
4690
4691=== removed file 'debian/patches/99_add_lock-on-suspend.patch'
4692--- debian/patches/99_add_lock-on-suspend.patch 2013-07-05 13:31:20 +0000
4693+++ debian/patches/99_add_lock-on-suspend.patch 1970-01-01 00:00:00 +0000
4694@@ -1,77 +0,0 @@
4695-Description: Add a new preference to lock the screen when the system suspends.
4696-Author: Marc Deslauriers <marc.deslauriers@canonical.com>
4697-Forwarded: no, likely a Ubuntu-specific preference
4698-Bug-Ubuntu: https://bugs.launchpad.net/bugs/938076
4699-
4700-Index: b/panels/screen/cc-screen-panel.c
4701-===================================================================
4702---- a/panels/screen/cc-screen-panel.c
4703-+++ b/panels/screen/cc-screen-panel.c
4704-@@ -540,6 +540,13 @@
4705-
4706- update_lock_screen_sensitivity (self);
4707-
4708-+ /* bind the screen lock suspend checkbutton */
4709-+ widget = WID ("screen_lock_suspend_checkbutton");
4710-+ g_settings_bind (self->priv->lock_settings,
4711-+ "ubuntu-lock-on-suspend",
4712-+ widget, "active",
4713-+ G_SETTINGS_BIND_DEFAULT);
4714-+
4715- widget = WID ("screen_vbox");
4716- gtk_widget_reparent (widget, (GtkWidget *) self);
4717- g_object_set (self, "valign", GTK_ALIGN_START, NULL);
4718-Index: b/panels/screen/screen.ui
4719-===================================================================
4720---- a/panels/screen/screen.ui
4721-+++ b/panels/screen/screen.ui
4722-@@ -299,6 +299,31 @@
4723- </packing>
4724- </child>
4725- <child>
4726-+ <object class="GtkHBox" id="screen_suspend_hbox">
4727-+ <property name="visible">True</property>
4728-+ <property name="can_focus">False</property>
4729-+ <property name="spacing">6</property>
4730-+ <child>
4731-+ <object class="GtkCheckButton" id="screen_lock_suspend_checkbutton">
4732-+ <property name="label" translatable="yes">Require my password when waking from suspend</property>
4733-+ <property name="use_action_appearance">False</property>
4734-+ <property name="visible">True</property>
4735-+ <property name="can_focus">True</property>
4736-+ </object>
4737-+ <packing>
4738-+ <property name="expand">False</property>
4739-+ <property name="fill">False</property>
4740-+ <property name="position">0</property>
4741-+ </packing>
4742-+ </child>
4743-+ </object>
4744-+ <packing>
4745-+ <property name="expand">False</property>
4746-+ <property name="fill">False</property>
4747-+ <property name="position">2</property>
4748-+ </packing>
4749-+ </child>
4750-+ <child>
4751- <object class="GtkHBox" id="hbox2">
4752- <property name="can_focus">False</property>
4753- <property name="no_show_all">True</property>
4754-@@ -340,7 +365,7 @@
4755- <packing>
4756- <property name="expand">True</property>
4757- <property name="fill">True</property>
4758-- <property name="position">2</property>
4759-+ <property name="position">3</property>
4760- </packing>
4761- </child>
4762- <child>
4763-@@ -357,7 +382,7 @@
4764- <packing>
4765- <property name="expand">True</property>
4766- <property name="fill">True</property>
4767-- <property name="position">3</property>
4768-+ <property name="position">4</property>
4769- </packing>
4770- </child>
4771- </object>
4772
4773=== removed file 'debian/patches/accounts_fix_unsetting_icon.patch'
4774--- debian/patches/accounts_fix_unsetting_icon.patch 2013-07-05 13:31:20 +0000
4775+++ debian/patches/accounts_fix_unsetting_icon.patch 1970-01-01 00:00:00 +0000
4776@@ -1,16 +0,0 @@
4777-# Upstream: https://bugzilla.gnome.org/show_bug.cgi?id=673841
4778-# Ubuntu: https://launchpad.net/bugs/978049
4779-#
4780-Index: gnome-control-center-3.6.2/panels/user-accounts/um-user.c
4781-===================================================================
4782---- gnome-control-center-3.6.2.orig/panels/user-accounts/um-user.c 2012-11-01 20:44:03.426070880 -0400
4783-+++ gnome-control-center-3.6.2/panels/user-accounts/um-user.c 2012-11-01 20:44:03.442070879 -0400
4784-@@ -730,7 +730,7 @@
4785- GVariant *result;
4786- GError *error = NULL;
4787-
4788-- result = g_dbus_proxy_call_sync (user->proxy, "SetIconFile", g_variant_new ("(s)", icon_file), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
4789-+ result = g_dbus_proxy_call_sync (user->proxy, "SetIconFile", g_variant_new ("(s)", icon_file ? icon_file : ""), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
4790- if (!result) {
4791- g_warning ("SetIconFile call failed: %s", error->message);
4792- g_error_free (error);
4793
4794=== removed file 'debian/patches/classic_use_sound_indicator.patch'
4795--- debian/patches/classic_use_sound_indicator.patch 2013-07-05 13:31:20 +0000
4796+++ debian/patches/classic_use_sound_indicator.patch 1970-01-01 00:00:00 +0000
4797@@ -1,10 +0,0 @@
4798-Index: b/panels/sound/data/gnome-sound-applet.desktop.in
4799-===================================================================
4800---- a/panels/sound/data/gnome-sound-applet.desktop.in
4801-+++ b/panels/sound/data/gnome-sound-applet.desktop.in
4802-@@ -14,4 +14,4 @@
4803- #X-GNOME-Autostart-Phase=Panel
4804- X-GNOME-Autostart-Notify=true
4805- AutostartCondition=GNOME3 if-session gnome-fallback
4806--OnlyShowIn=GNOME;Unity;
4807-+OnlyShowIn=;
4808
4809=== removed file 'debian/patches/deal_with_null_ssid.patch'
4810--- debian/patches/deal_with_null_ssid.patch 2012-11-01 09:53:43 +0000
4811+++ debian/patches/deal_with_null_ssid.patch 1970-01-01 00:00:00 +0000
4812@@ -1,33 +0,0 @@
4813-From: Dan Williams <dcbw@redhat.com>
4814-Subject: Avoid crashing when SSIDs are NULL.
4815-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/908670
4816-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=672922
4817-
4818----
4819- panels/network/cc-network-panel.c | 6 ++++++
4820- 1 file changed, 6 insertions(+)
4821-
4822-Index: gnome-control-center-3.5.2/panels/network/cc-network-panel.c
4823-===================================================================
4824---- gnome-control-center-3.5.2.orig/panels/network/cc-network-panel.c 2012-06-08 16:49:24.888332382 +1200
4825-+++ gnome-control-center-3.5.2/panels/network/cc-network-panel.c 2012-06-08 17:00:13.600309923 +1200
4826-@@ -1128,13 +1128,19 @@
4827- if (aps != NULL)
4828- for (i = 0; i < aps->len; i++) {
4829- ap = NM_ACCESS_POINT (g_ptr_array_index (aps, i));
4830-+
4831-+ /* Hidden SSIDs don't get shown in the list */
4832- ssid = nm_access_point_get_ssid (ap);
4833-+ if (!ssid)
4834-+ continue;
4835-+
4836- add_ap = TRUE;
4837-
4838- /* get already added list */
4839- for (j=0; j<aps_unique->len; j++) {
4840- ap_tmp = NM_ACCESS_POINT (g_ptr_array_index (aps_unique, j));
4841- ssid_tmp = nm_access_point_get_ssid (ap_tmp);
4842-+ g_assert (ssid_tmp);
4843-
4844- /* is this the same type and data? */
4845- if (nm_utils_same_ssid (ssid, ssid_tmp, TRUE)) {
4846
4847=== removed file 'debian/patches/dont_download_local_image.patch'
4848--- debian/patches/dont_download_local_image.patch 2013-07-05 13:31:20 +0000
4849+++ debian/patches/dont_download_local_image.patch 1970-01-01 00:00:00 +0000
4850@@ -1,28 +0,0 @@
4851-From 7b7f35b172e8c604aa723a3cd414088563a7d490 Mon Sep 17 00:00:00 2001
4852-From: Ryan Lortie <desrt@desrt.ca>
4853-Date: Mon, 19 Mar 2012 12:55:31 -0400
4854-Subject: [PATCH] background: don't 'download' image files
4855-
4856-The code for downloading files from remote uris was being triggered in
4857-the case of adding a background image file via the file chooser. Don't
4858-set the 'source-url' attribute on the image in this case in order to
4859-avoid the problem.
4860-
4861-https://bugzilla.gnome.org/show_bug.cgi?id=672405
4862----
4863- panels/background/bg-pictures-source.c | 2 +-
4864- 1 files changed, 1 insertions(+), 1 deletions(-)
4865-
4866-Index: b/panels/background/bg-pictures-source.c
4867-===================================================================
4868---- a/panels/background/bg-pictures-source.c
4869-+++ b/panels/background/bg-pictures-source.c
4870-@@ -335,7 +335,7 @@
4871- "shading", G_DESKTOP_BACKGROUND_SHADING_SOLID,
4872- "placement", G_DESKTOP_BACKGROUND_STYLE_ZOOM,
4873- NULL);
4874-- if (source_uri != NULL)
4875-+ if (source_uri != NULL && !g_file_is_native (file))
4876- g_object_set (G_OBJECT (item), "source-url", source_uri, NULL);
4877-
4878- g_object_set_data (G_OBJECT (file), "item", item);
4879
4880=== modified file 'debian/patches/gcc_not_in_unity.patch'
4881--- debian/patches/gcc_not_in_unity.patch 2014-03-04 18:20:22 +0000
4882+++ debian/patches/gcc_not_in_unity.patch 2014-05-06 09:05:46 +0000
4883@@ -1,7 +1,5 @@
4884-Index: gnome-control-center-3.6.3/panels/bluetooth/gnome-bluetooth-panel.desktop.in.in
4885-===================================================================
4886---- gnome-control-center-3.6.3.orig/panels/bluetooth/gnome-bluetooth-panel.desktop.in.in 2014-03-04 19:17:38.334473755 +0100
4887-+++ gnome-control-center-3.6.3/panels/bluetooth/gnome-bluetooth-panel.desktop.in.in 2014-03-04 19:17:38.322473754 +0100
4888+--- a/panels/bluetooth/gnome-bluetooth-panel.desktop.in.in
4889++++ b/panels/bluetooth/gnome-bluetooth-panel.desktop.in.in
4890 @@ -6,7 +6,7 @@
4891 Terminal=false
4892 Type=Application
4893@@ -11,23 +9,19 @@
4894 StartupNotify=true
4895 X-GNOME-Bugzilla-Bugzilla=GNOME
4896 X-GNOME-Bugzilla-Product=gnome-bluetooth
4897-Index: gnome-control-center-3.6.3/panels/color/gnome-color-panel.desktop.in.in
4898-===================================================================
4899---- gnome-control-center-3.6.3.orig/panels/color/gnome-color-panel.desktop.in.in 2014-03-04 19:17:38.334473755 +0100
4900-+++ gnome-control-center-3.6.3/panels/color/gnome-color-panel.desktop.in.in 2014-03-04 19:17:38.322473754 +0100
4901+--- a/panels/color/gnome-color-panel.desktop.in.in
4902++++ b/panels/color/gnome-color-panel.desktop.in.in
4903 @@ -7,7 +7,7 @@
4904 Type=Application
4905 StartupNotify=true
4906- Categories=GNOME;GTK;Settings;X-GNOME-Settings-Panel;HardwareSettings
4907+ Categories=GNOME;GTK;Settings;X-GNOME-Settings-Panel;HardwareSettings;
4908 -OnlyShowIn=GNOME;Unity;
4909-+OnlyShowIn=GNOME;
4910++OnlyShowIn=GNOME
4911 X-GNOME-Bugzilla-Bugzilla=GNOME
4912 X-GNOME-Bugzilla-Product=gnome-control-center
4913 X-GNOME-Bugzilla-Component=color
4914-Index: gnome-control-center-3.6.3/panels/display/gnome-display-panel.desktop.in.in
4915-===================================================================
4916---- gnome-control-center-3.6.3.orig/panels/display/gnome-display-panel.desktop.in.in 2014-03-04 19:17:38.334473755 +0100
4917-+++ gnome-control-center-3.6.3/panels/display/gnome-display-panel.desktop.in.in 2014-03-04 19:17:38.322473754 +0100
4918+--- a/panels/display/gnome-display-panel.desktop.in.in
4919++++ b/panels/display/gnome-display-panel.desktop.in.in
4920 @@ -7,7 +7,7 @@
4921 Type=Application
4922 StartupNotify=true
4923@@ -37,10 +31,8 @@
4924 X-GNOME-Bugzilla-Bugzilla=GNOME
4925 X-GNOME-Bugzilla-Product=gnome-control-center
4926 X-GNOME-Bugzilla-Component=Screen resolution
4927-Index: gnome-control-center-3.6.3/panels/info/gnome-info-panel.desktop.in.in
4928-===================================================================
4929---- gnome-control-center-3.6.3.orig/panels/info/gnome-info-panel.desktop.in.in 2014-03-04 19:17:38.334473755 +0100
4930-+++ gnome-control-center-3.6.3/panels/info/gnome-info-panel.desktop.in.in 2014-03-04 19:17:38.326473755 +0100
4931+--- a/panels/info/gnome-info-panel.desktop.in.in
4932++++ b/panels/info/gnome-info-panel.desktop.in.in
4933 @@ -7,7 +7,7 @@
4934 Type=Application
4935 StartupNotify=true
4936@@ -50,10 +42,8 @@
4937 X-GNOME-Bugzilla-Bugzilla=GNOME
4938 X-GNOME-Bugzilla-Product=gnome-control-center
4939 X-GNOME-Bugzilla-Component=info
4940-Index: gnome-control-center-3.6.3/panels/keyboard/gnome-keyboard-panel.desktop.in.in
4941-===================================================================
4942---- gnome-control-center-3.6.3.orig/panels/keyboard/gnome-keyboard-panel.desktop.in.in 2014-03-04 19:17:38.334473755 +0100
4943-+++ gnome-control-center-3.6.3/panels/keyboard/gnome-keyboard-panel.desktop.in.in 2014-03-04 19:17:38.326473755 +0100
4944+--- a/panels/keyboard/gnome-keyboard-panel.desktop.in.in
4945++++ b/panels/keyboard/gnome-keyboard-panel.desktop.in.in
4946 @@ -7,7 +7,7 @@
4947 Type=Application
4948 StartupNotify=true
4949@@ -63,10 +53,8 @@
4950 X-GNOME-Bugzilla-Bugzilla=GNOME
4951 X-GNOME-Bugzilla-Product=gnome-control-center
4952 X-GNOME-Bugzilla-Component=keyboard
4953-Index: gnome-control-center-3.6.3/panels/mouse/gnome-mouse-panel.desktop.in.in
4954-===================================================================
4955---- gnome-control-center-3.6.3.orig/panels/mouse/gnome-mouse-panel.desktop.in.in 2014-03-04 19:17:38.334473755 +0100
4956-+++ gnome-control-center-3.6.3/panels/mouse/gnome-mouse-panel.desktop.in.in 2014-03-04 19:17:38.326473755 +0100
4957+--- a/panels/mouse/gnome-mouse-panel.desktop.in.in
4958++++ b/panels/mouse/gnome-mouse-panel.desktop.in.in
4959 @@ -7,7 +7,7 @@
4960 Type=Application
4961 StartupNotify=true
4962@@ -76,10 +64,8 @@
4963 X-GNOME-Bugzilla-Bugzilla=GNOME
4964 X-GNOME-Bugzilla-Product=gnome-control-center
4965 X-GNOME-Bugzilla-Component=mouse
4966-Index: gnome-control-center-3.6.3/panels/network/gnome-network-panel.desktop.in.in
4967-===================================================================
4968---- gnome-control-center-3.6.3.orig/panels/network/gnome-network-panel.desktop.in.in 2014-03-04 19:17:38.334473755 +0100
4969-+++ gnome-control-center-3.6.3/panels/network/gnome-network-panel.desktop.in.in 2014-03-04 19:17:38.326473755 +0100
4970+--- a/panels/network/gnome-network-panel.desktop.in.in
4971++++ b/panels/network/gnome-network-panel.desktop.in.in
4972 @@ -7,7 +7,7 @@
4973 Type=Application
4974 StartupNotify=true
4975@@ -89,36 +75,19 @@
4976 X-GNOME-Bugzilla-Bugzilla=GNOME
4977 X-GNOME-Bugzilla-Product=gnome-control-center
4978 X-GNOME-Bugzilla-Component=network
4979-Index: gnome-control-center-3.6.3/panels/power/gnome-power-panel.desktop.in.in
4980-===================================================================
4981---- gnome-control-center-3.6.3.orig/panels/power/gnome-power-panel.desktop.in.in 2014-03-04 19:17:38.334473755 +0100
4982-+++ gnome-control-center-3.6.3/panels/power/gnome-power-panel.desktop.in.in 2014-03-04 19:17:38.326473755 +0100
4983+--- a/panels/power/gnome-power-panel.desktop.in.in
4984++++ b/panels/power/gnome-power-panel.desktop.in.in
4985 @@ -7,7 +7,7 @@
4986 Type=Application
4987 StartupNotify=true
4988- Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;HardwareSettings
4989+ Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;HardwareSettings;
4990 -OnlyShowIn=GNOME;Unity;
4991 +OnlyShowIn=GNOME;
4992 X-GNOME-Bugzilla-Bugzilla=GNOME
4993 X-GNOME-Bugzilla-Product=gnome-control-center
4994 X-GNOME-Bugzilla-Component=power
4995-Index: gnome-control-center-3.6.3/panels/screen/gnome-screen-panel.desktop.in.in
4996-===================================================================
4997---- gnome-control-center-3.6.3.orig/panels/screen/gnome-screen-panel.desktop.in.in 2014-03-04 19:17:38.334473755 +0100
4998-+++ gnome-control-center-3.6.3/panels/screen/gnome-screen-panel.desktop.in.in 2014-03-04 19:17:38.326473755 +0100
4999-@@ -7,7 +7,7 @@
5000- Type=Application
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches