Merge lp:~darkxst/ubuntu/quantal/gnome-shell/lp1128804 into lp:ubuntu/quantal-proposed/gnome-shell

Proposed by Tim Lunn on 2013-02-23
Status: Merged
Merge reported by: Sebastien Bacher
Merged at revision: not available
Proposed branch: lp:~darkxst/ubuntu/quantal/gnome-shell/lp1128804
Merge into: lp:ubuntu/quantal-proposed/gnome-shell
Diff against target: 44531 lines (+14325/-15852)
112 files modified
.pc/.quilt_patches (+0/-1)
.pc/.quilt_series (+0/-1)
.pc/.version (+0/-1)
.pc/11-no-gettext.patch/configure.ac (+0/-276)
.pc/14_make-GLX-optional.patch/configure.ac (+0/-273)
.pc/14_make-GLX-optional.patch/src/gnome-shell-plugin.c (+0/-366)
.pc/14_make-GLX-optional.patch/src/shell-screen-grabber.c (+0/-219)
.pc/applied-patches (+0/-5)
.pc/git-set-ally-wm-theme.patch/js/ui/status/accessibility.js (+0/-163)
.pc/ubuntu-lightdm-user-switching.patch/js/ui/userMenu.js (+0/-868)
.pc/ubuntu_lock_on_suspend.patch/js/ui/userMenu.js (+0/-885)
Makefile.in (+1/-2)
NEWS (+28/-0)
aclocal.m4 (+596/-596)
configure (+10/-10)
configure.ac (+6/-12)
debian/changelog (+8/-0)
debian/patches/series (+1/-0)
docs/reference/shell/Makefile.in (+2/-2)
docs/reference/shell/html/ShellAppSystem.html (+132/-132)
docs/reference/shell/html/ShellEmbeddedWindow.html (+13/-13)
docs/reference/shell/html/ShellGenericContainer.html (+49/-49)
docs/reference/shell/html/ShellGtkEmbed.html (+10/-10)
docs/reference/shell/html/ShellMountOperation.html (+44/-44)
docs/reference/shell/html/ShellNetworkAgent.html (+60/-60)
docs/reference/shell/html/ShellSlicer.html (+9/-9)
docs/reference/shell/html/ShellStack.html (+8/-8)
docs/reference/shell/html/ShellTrayIcon.html (+24/-24)
docs/reference/shell/html/ShellTrayManager.html (+21/-21)
docs/reference/shell/html/annotation-glossary.html (+6/-9)
docs/reference/shell/html/api-index-full.html (+6/-2)
docs/reference/shell/html/ch01.html (+3/-3)
docs/reference/shell/html/ch02.html (+3/-3)
docs/reference/shell/html/ch03.html (+3/-3)
docs/reference/shell/html/ch04.html (+3/-3)
docs/reference/shell/html/ch05.html (+3/-3)
docs/reference/shell/html/ch06.html (+3/-3)
docs/reference/shell/html/deprecated-api-index.html (+2/-2)
docs/reference/shell/html/index.html (+3/-3)
docs/reference/shell/html/index.sgml (+109/-109)
docs/reference/shell/html/object-tree.html (+18/-18)
docs/reference/shell/html/shell-ShellApp.html (+330/-330)
docs/reference/shell/html/shell-ShellAppUsage.html (+48/-48)
docs/reference/shell/html/shell-ShellGlobal.html (+650/-617)
docs/reference/shell/html/shell-ShellTpClient.html (+231/-231)
docs/reference/shell/html/shell-ShellWM.html (+129/-129)
docs/reference/shell/html/shell-ShellWindowTracker.html (+145/-145)
docs/reference/shell/html/shell-shell-mobile-providers.html (+97/-97)
docs/reference/shell/html/shell-shell-polkit-authentication-agent.html (+37/-37)
docs/reference/shell/html/shell-shell-recorder.html (+138/-138)
docs/reference/shell/html/shell-shell-util.html (+193/-193)
docs/reference/shell/html/shell-shell-xfixes-cursor.html (+64/-64)
docs/reference/shell/html/shell.devhelp2 (+106/-105)
docs/reference/shell/shell-docs.sgml (+1/-1)
docs/reference/shell/shell-sections.txt (+180/-147)
docs/reference/st/Makefile.in (+2/-2)
docs/reference/st/html/StBin.html (+132/-132)
docs/reference/st/html/StBoxLayout.html (+96/-96)
docs/reference/st/html/StButton.html (+284/-284)
docs/reference/st/html/StDrawingArea.html (+39/-39)
docs/reference/st/html/StEntry.html (+137/-137)
docs/reference/st/html/StIcon.html (+95/-95)
docs/reference/st/html/StLabel.html (+69/-69)
docs/reference/st/html/StScrollView.html (+53/-53)
docs/reference/st/html/StTable.html (+75/-75)
docs/reference/st/html/StTextureCache.html (+417/-417)
docs/reference/st/html/StThemeNodeTransition.html (+31/-31)
docs/reference/st/html/StWidget.html (+942/-942)
docs/reference/st/html/StWidgetAccessible.html (+7/-7)
docs/reference/st/html/annotation-glossary.html (+2/-5)
docs/reference/st/html/api-index-full.html (+2/-2)
docs/reference/st/html/base.html (+2/-2)
docs/reference/st/html/containers.html (+2/-2)
docs/reference/st/html/deprecated-api-index.html (+2/-2)
docs/reference/st/html/index.html (+3/-3)
docs/reference/st/html/index.sgml (+141/-142)
docs/reference/st/html/object-tree.html (+13/-13)
docs/reference/st/html/pt01.html (+3/-3)
docs/reference/st/html/st-StScrollable.html (+14/-14)
docs/reference/st/html/st-st-theme-context.html (+83/-83)
docs/reference/st/html/st-st-theme-node.html (+1252/-1252)
docs/reference/st/html/st-st-theme.html (+47/-47)
docs/reference/st/html/st.devhelp2 (+138/-138)
docs/reference/st/html/styling.html (+2/-2)
docs/reference/st/html/widgets.html (+2/-2)
docs/reference/st/st-docs.sgml (+1/-1)
gtk-doc.make (+2/-2)
js/misc/config.js (+4/-4)
js/ui/messageTray.js (+35/-25)
js/ui/screenShield.js (+48/-15)
js/ui/status/accessibility.js (+14/-27)
js/ui/unlockDialog.js (+5/-2)
js/ui/userMenu.js (+2/-20)
po/as.po (+179/-148)
po/bn_IN.po (+1382/-570)
po/et.po (+25/-15)
po/fr.po (+135/-122)
po/hi.po (+179/-199)
po/hu.po (+145/-127)
po/id.po (+145/-139)
po/ja.po (+5/-486)
po/kn.po (+220/-186)
po/ml.po (+219/-179)
po/mr.po (+134/-124)
po/nl.po (+1030/-867)
po/pt_BR.po (+163/-161)
po/ta.po (+304/-252)
po/te.po (+225/-178)
po/ug.po (+2087/-1400)
src/gnome-shell-plugin.c (+1/-9)
src/shell-recorder-src.c (+16/-0)
src/shell-screen-grabber.c (+0/-10)
To merge this branch: bzr merge lp:~darkxst/ubuntu/quantal/gnome-shell/lp1128804
Reviewer Review Type Date Requested Status
Ubuntu Development Team 2013-02-23 Pending
Review via email: mp+150206@code.launchpad.net
To post a comment you must log in.
64. By Tim Lunn on 2013-02-24

* debian/patches/git_remove_messagetray_barrier.patch:
   - upstream bug fix (LP: #1132308)

Sebastien Bacher (seb128) wrote :

setting as merged, the new version that includes the fix got uploaded and is waiting in the sru queue:
http://launchpadlibrarian.net/132410694/gnome-shell_3.6.3.1-0ubuntu0.1_source.changes

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed directory '.pc'
2=== removed file '.pc/.quilt_patches'
3--- .pc/.quilt_patches 2012-05-25 11:44:15 +0000
4+++ .pc/.quilt_patches 1970-01-01 00:00:00 +0000
5@@ -1,1 +0,0 @@
6-debian/patches
7
8=== removed file '.pc/.quilt_series'
9--- .pc/.quilt_series 2012-05-25 11:44:15 +0000
10+++ .pc/.quilt_series 1970-01-01 00:00:00 +0000
11@@ -1,1 +0,0 @@
12-series
13
14=== removed file '.pc/.version'
15--- .pc/.version 2010-04-27 22:32:21 +0000
16+++ .pc/.version 1970-01-01 00:00:00 +0000
17@@ -1,1 +0,0 @@
18-2
19
20=== removed directory '.pc/11-no-gettext.patch'
21=== removed file '.pc/11-no-gettext.patch/configure.ac'
22--- .pc/11-no-gettext.patch/configure.ac 2012-11-26 15:57:51 +0000
23+++ .pc/11-no-gettext.patch/configure.ac 1970-01-01 00:00:00 +0000
24@@ -1,276 +0,0 @@
25-AC_PREREQ(2.63)
26-AC_INIT([gnome-shell],[3.6.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
27-
28-AC_CONFIG_HEADERS([config.h])
29-AC_CONFIG_SRCDIR([src/shell-global.c])
30-AC_CONFIG_MACRO_DIR([m4])
31-AC_CONFIG_AUX_DIR([config])
32-
33-AC_SUBST([PACKAGE_NAME], ["$PACKAGE_NAME"])
34-AC_SUBST([PACKAGE_VERSION], ["$PACKAGE_VERSION"])
35-
36-AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar foreign])
37-AM_MAINTAINER_MODE([enable])
38-
39-m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
40-
41-# Checks for programs.
42-AC_PROG_CC
43-# Needed for per-target cflags, like in gnomeshell-taskpanel
44-AM_PROG_CC_C_O
45-
46-# Initialize libtool
47-LT_PREREQ([2.2.6])
48-LT_INIT([disable-static])
49-
50-# i18n
51-IT_PROG_INTLTOOL([0.40])
52-
53-AM_GNU_GETTEXT([external])
54-AM_GNU_GETTEXT_VERSION([0.17])
55-
56-GETTEXT_PACKAGE=gnome-shell
57-AC_SUBST(GETTEXT_PACKAGE)
58-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
59- [The prefix for our gettext translation domains.])
60-
61-PKG_PROG_PKG_CONFIG([0.22])
62-
63-AC_PATH_PROG([XSLTPROC], [xsltproc])
64-
65-GLIB_GSETTINGS
66-
67-# Get a value to substitute into gnome-shell.in
68-AM_PATH_PYTHON([2.5])
69-AC_SUBST(PYTHON)
70-
71-# We need at least this, since gst_plugin_register_static() was added
72-# in 0.10.16, but nothing older than 0.10.21 has been tested.
73-GSTREAMER_MIN_VERSION=0.11.92
74-
75-recorder_modules=
76-build_recorder=false
77-AC_MSG_CHECKING([for GStreamer (needed for recording functionality)])
78-if $PKG_CONFIG --exists gstreamer-1.0 '>=' $GSTREAMER_MIN_VERSION ; then
79- AC_MSG_RESULT(yes)
80- build_recorder=true
81- recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11"
82- PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules clutter-1.0 xfixes gl)
83-else
84- AC_MSG_RESULT(no)
85-fi
86-
87-AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
88-
89-CLUTTER_MIN_VERSION=1.11.11
90-GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
91-GJS_MIN_VERSION=1.33.2
92-MUTTER_MIN_VERSION=3.6.2
93-GTK_MIN_VERSION=3.3.9
94-GIO_MIN_VERSION=2.31.6
95-LIBECAL_MIN_VERSION=3.5.3
96-LIBEDATASERVER_MIN_VERSION=3.5.3
97-LIBEDATASERVERUI_MIN_VERSION=3.5.3
98-TELEPATHY_GLIB_MIN_VERSION=0.17.5
99-TELEPATHY_LOGGER_MIN_VERSION=0.2.4
100-POLKIT_MIN_VERSION=0.100
101-STARTUP_NOTIFICATION_MIN_VERSION=0.11
102-GCR_MIN_VERSION=3.3.90
103-GNOME_DESKTOP_REQUIRED_VERSION=3.5.1
104-GNOME_MENUS_REQUIRED_VERSION=3.5.3
105-
106-# Collect more than 20 libraries for a prize!
107-PKG_CHECK_MODULES(GNOME_SHELL, gio-unix-2.0 >= $GIO_MIN_VERSION
108- libxml-2.0
109- gtk+-3.0 >= $GTK_MIN_VERSION
110- atk-bridge-2.0
111- libmutter >= $MUTTER_MIN_VERSION
112- gjs-internals-1.0 >= $GJS_MIN_VERSION
113- libgnome-menu-3.0 >= $GNOME_MENUS_REQUIRED_VERSION
114- $recorder_modules
115- gdk-x11-3.0 libsoup-2.4
116- gl
117- clutter-x11-1.0 >= $CLUTTER_MIN_VERSION
118- clutter-glx-1.0 >= $CLUTTER_MIN_VERSION
119- libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
120- gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
121- libcanberra
122- telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
123- telepathy-logger-0.2 >= $TELEPATHY_LOGGER_MIN_VERSION
124- polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes
125- libnm-glib libnm-util gnome-keyring-1
126- gcr-3 >= $GCR_MIN_VERSION
127- gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION)
128-
129-PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
130-
131-PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
132-
133-PKG_CHECK_MODULES(BROWSER_PLUGIN, gio-2.0 >= $GIO_MIN_VERSION json-glib-1.0 >= 0.13.2)
134-
135-GNOME_KEYBINDINGS_KEYSDIR=`$PKG_CONFIG --variable keysdir gnome-keybindings`
136-AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR])
137-
138-GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
139-
140-saved_CFLAGS=$CFLAGS
141-saved_LIBS=$LIBS
142-CFLAGS=$GNOME_SHELL_CFLAGS
143-LIBS=$GNOME_SHELL_LIBS
144-AC_CHECK_FUNCS(JS_NewGlobalObject XFixesCreatePointerBarrier)
145-CFLAGS=$saved_CFLAGS
146-LIBS=$saved_LIBS
147-
148-PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION)
149-PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.2 x11)
150-PKG_CHECK_MODULES(TRAY, gtk+-3.0)
151-PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0)
152-PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.5.4)
153-
154-AC_MSG_CHECKING([for bluetooth support])
155-PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
156- [BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0`
157- BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0`
158- AC_SUBST([BLUETOOTH_LIBS],["$BLUETOOTH_LIBS"])
159- AC_SUBST([BLUETOOTH_DIR],["$BLUETOOTH_DIR"])
160- AC_DEFINE_UNQUOTED([BLUETOOTH_DIR],["$BLUETOOTH_DIR"],[Path to installed GnomeBluetooth typelib and library])
161- AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet])
162- AC_SUBST([HAVE_BLUETOOTH],[1])
163- AC_MSG_RESULT([yes])],
164- [AC_DEFINE([HAVE_BLUETOOTH],[0])
165- AC_SUBST([HAVE_BLUETOOTH],[0])
166- AC_MSG_RESULT([no])])
167-
168-PKG_CHECK_MODULES(CALENDAR_SERVER, libecal-1.2 >= $LIBECAL_MIN_VERSION libedataserver-1.2 >= $LIBEDATASERVER_MIN_VERSION gio-2.0)
169-AC_SUBST(CALENDAR_SERVER_CFLAGS)
170-AC_SUBST(CALENDAR_SERVER_LIBS)
171-
172-AC_ARG_WITH(systemd,
173- AS_HELP_STRING([--with-systemd],
174- [Add systemd support]),
175- [with_systemd=$withval], [with_systemd=auto])
176-
177-PKG_CHECK_MODULES(SYSTEMD,
178- [libsystemd-login libsystemd-daemon],
179- [have_systemd=yes], [have_systemd=no])
180-
181-if test "x$with_systemd" = "xauto" ; then
182- if test x$have_systemd = xno ; then
183- use_systemd=no
184- else
185- use_systemd=yes
186- fi
187-else
188- use_systemd=$with_systemd
189-fi
190-
191-if test "x$use_systemd" = "xyes"; then
192- if test "x$have_systemd" = "xno"; then
193- AC_MSG_ERROR([Systemd support explicitly required, but systemd not found])
194- fi
195-
196- AC_DEFINE(WITH_SYSTEMD, 1, [systemd support])
197-fi
198-
199-MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir libmutter`
200-MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir libmutter`
201-AC_SUBST(MUTTER_GIR_DIR)
202-AC_SUBST(MUTTER_TYPELIB_DIR)
203-
204-GJS_CONSOLE=`$PKG_CONFIG --variable=gjs_console gjs-1.0`
205-AC_SUBST(GJS_CONSOLE)
206-
207-AC_CHECK_FUNCS(fdwalk)
208-AC_CHECK_FUNCS(mallinfo)
209-AC_CHECK_HEADERS([sys/resource.h])
210-
211-# _NL_TIME_FIRST_WEEKDAY is an enum and not a define
212-AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
213-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]],
214- [[nl_langinfo(_NL_TIME_FIRST_WEEKDAY);]])],
215- [langinfo_ok=yes], [langinfo_ok=no])
216-AC_MSG_RESULT($langinfo_ok)
217-if test "$langinfo_ok" = "yes"; then
218- AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
219- [Define if _NL_TIME_FIRST_WEEKDAY is available])
220-fi
221-
222-# Sets GLIB_GENMARSHAL and GLIB_MKENUMS
223-AM_PATH_GLIB_2_0()
224-G_IR_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
225-AC_SUBST(G_IR_SCANNER)
226-G_IR_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
227-AC_SUBST(G_IR_COMPILER)
228-G_IR_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
229-AC_SUBST(G_IR_GENERATE)
230-GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
231-AC_SUBST(GIRDIR)
232-TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
233-AC_SUBST(TYPELIBDIR)
234-
235-GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
236-
237-AC_ARG_ENABLE(man,
238- [AS_HELP_STRING([--enable-man],
239- [generate man pages [default=yes]])],,
240- enable_man=yes)
241-if test "$enable_man" != no; then
242- AC_PATH_PROG([XSLTPROC], [xsltproc])
243- if test -z "$XSLTPROC"; then
244- AC_MSG_ERROR([xsltproc is required for --enable-man])
245- fi
246-fi
247-AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
248-
249-# Stay command-line compatible with the gnome-common configure option. Here
250-# minimum/yes/maximum are the same, however.
251-AC_ARG_ENABLE(compile_warnings,
252- AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],[Turn on compiler warnings]),,
253- enable_compile_warnings=error)
254-
255-changequote(,)dnl
256-if test "$enable_compile_warnings" != no ; then
257- if test "x$GCC" = "xyes"; then
258- case " $CFLAGS " in
259- *[\ \ ]-Wall[\ \ ]*) ;;
260- *) CFLAGS="$CFLAGS -Wall" ;;
261- esac
262- case " $CFLAGS " in
263- *[\ \ ]-Wmissing-prototypes[\ \ ]*) ;;
264- *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
265- esac
266- if test "$enable_compile_warnings" = error ; then
267- case " $CFLAGS " in
268- *[\ \ ]-Werror[\ \ ]*) ;;
269- *) CFLAGS="$CFLAGS -Werror -Wno-error=deprecated-declarations" ;;
270- esac
271- fi
272- fi
273-fi
274-changequote([,])dnl
275-
276-AC_ARG_ENABLE(jhbuild-wrapper-script,
277- AS_HELP_STRING([--enable-jhbuild-wrapper-script],[Make "gnome-shell" script work for jhbuild]),,enable_jhbuild_wrapper_script=no)
278-AM_CONDITIONAL(USE_JHBUILD_WRAPPER_SCRIPT, test "x$enable_jhbuild_wrapper_script" = xyes)
279-
280-BROWSER_PLUGIN_DIR="${BROWSER_PLUGIN_DIR:-"\${libdir}/mozilla/plugins"}"
281-AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
282-
283-AC_CONFIG_FILES([
284- Makefile
285- data/Makefile
286- docs/Makefile
287- docs/reference/Makefile
288- docs/reference/shell/Makefile
289- docs/reference/shell/shell-docs.sgml
290- docs/reference/st/Makefile
291- docs/reference/st/st-docs.sgml
292- js/Makefile
293- src/calendar-server/evolution-calendar.desktop.in
294- src/Makefile
295- browser-plugin/Makefile
296- tests/Makefile
297- po/Makefile.in
298- man/Makefile
299-])
300-AC_OUTPUT
301
302=== removed directory '.pc/14_make-GLX-optional.patch'
303=== removed file '.pc/14_make-GLX-optional.patch/configure.ac'
304--- .pc/14_make-GLX-optional.patch/configure.ac 2012-11-26 15:57:51 +0000
305+++ .pc/14_make-GLX-optional.patch/configure.ac 1970-01-01 00:00:00 +0000
306@@ -1,273 +0,0 @@
307-AC_PREREQ(2.63)
308-AC_INIT([gnome-shell],[3.6.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
309-
310-AC_CONFIG_HEADERS([config.h])
311-AC_CONFIG_SRCDIR([src/shell-global.c])
312-AC_CONFIG_MACRO_DIR([m4])
313-AC_CONFIG_AUX_DIR([config])
314-
315-AC_SUBST([PACKAGE_NAME], ["$PACKAGE_NAME"])
316-AC_SUBST([PACKAGE_VERSION], ["$PACKAGE_VERSION"])
317-
318-AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar foreign])
319-AM_MAINTAINER_MODE([enable])
320-
321-m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
322-
323-# Checks for programs.
324-AC_PROG_CC
325-# Needed for per-target cflags, like in gnomeshell-taskpanel
326-AM_PROG_CC_C_O
327-
328-# Initialize libtool
329-LT_PREREQ([2.2.6])
330-LT_INIT([disable-static])
331-
332-# i18n
333-IT_PROG_INTLTOOL([0.40])
334-
335-GETTEXT_PACKAGE=gnome-shell
336-AC_SUBST(GETTEXT_PACKAGE)
337-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
338- [The prefix for our gettext translation domains.])
339-
340-PKG_PROG_PKG_CONFIG([0.22])
341-
342-AC_PATH_PROG([XSLTPROC], [xsltproc])
343-
344-GLIB_GSETTINGS
345-
346-# Get a value to substitute into gnome-shell.in
347-AM_PATH_PYTHON([2.5])
348-AC_SUBST(PYTHON)
349-
350-# We need at least this, since gst_plugin_register_static() was added
351-# in 0.10.16, but nothing older than 0.10.21 has been tested.
352-GSTREAMER_MIN_VERSION=0.11.92
353-
354-recorder_modules=
355-build_recorder=false
356-AC_MSG_CHECKING([for GStreamer (needed for recording functionality)])
357-if $PKG_CONFIG --exists gstreamer-1.0 '>=' $GSTREAMER_MIN_VERSION ; then
358- AC_MSG_RESULT(yes)
359- build_recorder=true
360- recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11"
361- PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules clutter-1.0 xfixes gl)
362-else
363- AC_MSG_RESULT(no)
364-fi
365-
366-AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
367-
368-CLUTTER_MIN_VERSION=1.11.11
369-GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
370-GJS_MIN_VERSION=1.33.2
371-MUTTER_MIN_VERSION=3.6.2
372-GTK_MIN_VERSION=3.3.9
373-GIO_MIN_VERSION=2.31.6
374-LIBECAL_MIN_VERSION=3.5.3
375-LIBEDATASERVER_MIN_VERSION=3.5.3
376-LIBEDATASERVERUI_MIN_VERSION=3.5.3
377-TELEPATHY_GLIB_MIN_VERSION=0.17.5
378-TELEPATHY_LOGGER_MIN_VERSION=0.2.4
379-POLKIT_MIN_VERSION=0.100
380-STARTUP_NOTIFICATION_MIN_VERSION=0.11
381-GCR_MIN_VERSION=3.3.90
382-GNOME_DESKTOP_REQUIRED_VERSION=3.5.1
383-GNOME_MENUS_REQUIRED_VERSION=3.5.3
384-
385-# Collect more than 20 libraries for a prize!
386-PKG_CHECK_MODULES(GNOME_SHELL, gio-unix-2.0 >= $GIO_MIN_VERSION
387- libxml-2.0
388- gtk+-3.0 >= $GTK_MIN_VERSION
389- atk-bridge-2.0
390- libmutter >= $MUTTER_MIN_VERSION
391- gjs-internals-1.0 >= $GJS_MIN_VERSION
392- libgnome-menu-3.0 >= $GNOME_MENUS_REQUIRED_VERSION
393- $recorder_modules
394- gdk-x11-3.0 libsoup-2.4
395- gl
396- clutter-x11-1.0 >= $CLUTTER_MIN_VERSION
397- clutter-glx-1.0 >= $CLUTTER_MIN_VERSION
398- libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
399- gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
400- libcanberra
401- telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
402- telepathy-logger-0.2 >= $TELEPATHY_LOGGER_MIN_VERSION
403- polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes
404- libnm-glib libnm-util gnome-keyring-1
405- gcr-3 >= $GCR_MIN_VERSION
406- gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION)
407-
408-PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
409-
410-PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
411-
412-PKG_CHECK_MODULES(BROWSER_PLUGIN, gio-2.0 >= $GIO_MIN_VERSION json-glib-1.0 >= 0.13.2)
413-
414-GNOME_KEYBINDINGS_KEYSDIR=`$PKG_CONFIG --variable keysdir gnome-keybindings`
415-AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR])
416-
417-GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
418-
419-saved_CFLAGS=$CFLAGS
420-saved_LIBS=$LIBS
421-CFLAGS=$GNOME_SHELL_CFLAGS
422-LIBS=$GNOME_SHELL_LIBS
423-AC_CHECK_FUNCS(JS_NewGlobalObject XFixesCreatePointerBarrier)
424-CFLAGS=$saved_CFLAGS
425-LIBS=$saved_LIBS
426-
427-PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION)
428-PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.2 x11)
429-PKG_CHECK_MODULES(TRAY, gtk+-3.0)
430-PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0)
431-PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.5.4)
432-
433-AC_MSG_CHECKING([for bluetooth support])
434-PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
435- [BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0`
436- BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0`
437- AC_SUBST([BLUETOOTH_LIBS],["$BLUETOOTH_LIBS"])
438- AC_SUBST([BLUETOOTH_DIR],["$BLUETOOTH_DIR"])
439- AC_DEFINE_UNQUOTED([BLUETOOTH_DIR],["$BLUETOOTH_DIR"],[Path to installed GnomeBluetooth typelib and library])
440- AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet])
441- AC_SUBST([HAVE_BLUETOOTH],[1])
442- AC_MSG_RESULT([yes])],
443- [AC_DEFINE([HAVE_BLUETOOTH],[0])
444- AC_SUBST([HAVE_BLUETOOTH],[0])
445- AC_MSG_RESULT([no])])
446-
447-PKG_CHECK_MODULES(CALENDAR_SERVER, libecal-1.2 >= $LIBECAL_MIN_VERSION libedataserver-1.2 >= $LIBEDATASERVER_MIN_VERSION gio-2.0)
448-AC_SUBST(CALENDAR_SERVER_CFLAGS)
449-AC_SUBST(CALENDAR_SERVER_LIBS)
450-
451-AC_ARG_WITH(systemd,
452- AS_HELP_STRING([--with-systemd],
453- [Add systemd support]),
454- [with_systemd=$withval], [with_systemd=auto])
455-
456-PKG_CHECK_MODULES(SYSTEMD,
457- [libsystemd-login libsystemd-daemon],
458- [have_systemd=yes], [have_systemd=no])
459-
460-if test "x$with_systemd" = "xauto" ; then
461- if test x$have_systemd = xno ; then
462- use_systemd=no
463- else
464- use_systemd=yes
465- fi
466-else
467- use_systemd=$with_systemd
468-fi
469-
470-if test "x$use_systemd" = "xyes"; then
471- if test "x$have_systemd" = "xno"; then
472- AC_MSG_ERROR([Systemd support explicitly required, but systemd not found])
473- fi
474-
475- AC_DEFINE(WITH_SYSTEMD, 1, [systemd support])
476-fi
477-
478-MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir libmutter`
479-MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir libmutter`
480-AC_SUBST(MUTTER_GIR_DIR)
481-AC_SUBST(MUTTER_TYPELIB_DIR)
482-
483-GJS_CONSOLE=`$PKG_CONFIG --variable=gjs_console gjs-1.0`
484-AC_SUBST(GJS_CONSOLE)
485-
486-AC_CHECK_FUNCS(fdwalk)
487-AC_CHECK_FUNCS(mallinfo)
488-AC_CHECK_HEADERS([sys/resource.h])
489-
490-# _NL_TIME_FIRST_WEEKDAY is an enum and not a define
491-AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
492-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]],
493- [[nl_langinfo(_NL_TIME_FIRST_WEEKDAY);]])],
494- [langinfo_ok=yes], [langinfo_ok=no])
495-AC_MSG_RESULT($langinfo_ok)
496-if test "$langinfo_ok" = "yes"; then
497- AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
498- [Define if _NL_TIME_FIRST_WEEKDAY is available])
499-fi
500-
501-# Sets GLIB_GENMARSHAL and GLIB_MKENUMS
502-AM_PATH_GLIB_2_0()
503-G_IR_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
504-AC_SUBST(G_IR_SCANNER)
505-G_IR_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
506-AC_SUBST(G_IR_COMPILER)
507-G_IR_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
508-AC_SUBST(G_IR_GENERATE)
509-GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
510-AC_SUBST(GIRDIR)
511-TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
512-AC_SUBST(TYPELIBDIR)
513-
514-GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
515-
516-AC_ARG_ENABLE(man,
517- [AS_HELP_STRING([--enable-man],
518- [generate man pages [default=yes]])],,
519- enable_man=yes)
520-if test "$enable_man" != no; then
521- AC_PATH_PROG([XSLTPROC], [xsltproc])
522- if test -z "$XSLTPROC"; then
523- AC_MSG_ERROR([xsltproc is required for --enable-man])
524- fi
525-fi
526-AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
527-
528-# Stay command-line compatible with the gnome-common configure option. Here
529-# minimum/yes/maximum are the same, however.
530-AC_ARG_ENABLE(compile_warnings,
531- AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],[Turn on compiler warnings]),,
532- enable_compile_warnings=error)
533-
534-changequote(,)dnl
535-if test "$enable_compile_warnings" != no ; then
536- if test "x$GCC" = "xyes"; then
537- case " $CFLAGS " in
538- *[\ \ ]-Wall[\ \ ]*) ;;
539- *) CFLAGS="$CFLAGS -Wall" ;;
540- esac
541- case " $CFLAGS " in
542- *[\ \ ]-Wmissing-prototypes[\ \ ]*) ;;
543- *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
544- esac
545- if test "$enable_compile_warnings" = error ; then
546- case " $CFLAGS " in
547- *[\ \ ]-Werror[\ \ ]*) ;;
548- *) CFLAGS="$CFLAGS -Werror -Wno-error=deprecated-declarations" ;;
549- esac
550- fi
551- fi
552-fi
553-changequote([,])dnl
554-
555-AC_ARG_ENABLE(jhbuild-wrapper-script,
556- AS_HELP_STRING([--enable-jhbuild-wrapper-script],[Make "gnome-shell" script work for jhbuild]),,enable_jhbuild_wrapper_script=no)
557-AM_CONDITIONAL(USE_JHBUILD_WRAPPER_SCRIPT, test "x$enable_jhbuild_wrapper_script" = xyes)
558-
559-BROWSER_PLUGIN_DIR="${BROWSER_PLUGIN_DIR:-"\${libdir}/mozilla/plugins"}"
560-AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
561-
562-AC_CONFIG_FILES([
563- Makefile
564- data/Makefile
565- docs/Makefile
566- docs/reference/Makefile
567- docs/reference/shell/Makefile
568- docs/reference/shell/shell-docs.sgml
569- docs/reference/st/Makefile
570- docs/reference/st/st-docs.sgml
571- js/Makefile
572- src/calendar-server/evolution-calendar.desktop.in
573- src/Makefile
574- browser-plugin/Makefile
575- tests/Makefile
576- po/Makefile.in
577- man/Makefile
578-])
579-AC_OUTPUT
580
581=== removed directory '.pc/14_make-GLX-optional.patch/src'
582=== removed file '.pc/14_make-GLX-optional.patch/src/gnome-shell-plugin.c'
583--- .pc/14_make-GLX-optional.patch/src/gnome-shell-plugin.c 2012-06-26 00:08:54 +0000
584+++ .pc/14_make-GLX-optional.patch/src/gnome-shell-plugin.c 1970-01-01 00:00:00 +0000
585@@ -1,366 +0,0 @@
586-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
587-
588-/*
589- * Copyright (c) 2008 Red Hat, Inc.
590- * Copyright (c) 2008 Intel Corp.
591- *
592- * Based on plugin skeleton by:
593- * Author: Tomas Frydrych <tf@linux.intel.com>
594- *
595- * This program is free software; you can redistribute it and/or
596- * modify it under the terms of the GNU General Public License as
597- * published by the Free Software Foundation; either version 2 of the
598- * License, or (at your option) any later version.
599- *
600- * This program is distributed in the hope that it will be useful, but
601- * WITHOUT ANY WARRANTY; without even the implied warranty of
602- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
603- * General Public License for more details.
604- *
605- * You should have received a copy of the GNU General Public License
606- * along with this program; if not, write to the Free Software
607- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
608- * 02111-1307, USA.
609- */
610-
611-#include "config.h"
612-
613-#include <stdlib.h>
614-#include <string.h>
615-
616-#include <clutter/clutter.h>
617-#include <clutter/x11/clutter-x11.h>
618-#include <GL/glx.h>
619-#include <GL/glxext.h>
620-#include <gjs/gjs.h>
621-#include <meta/display.h>
622-#include <meta/meta-plugin.h>
623-
624-#include "shell-global-private.h"
625-#include "shell-perf-log.h"
626-#include "shell-wm-private.h"
627-
628-static void gnome_shell_plugin_start (MetaPlugin *plugin);
629-static void gnome_shell_plugin_minimize (MetaPlugin *plugin,
630- MetaWindowActor *actor);
631-static void gnome_shell_plugin_maximize (MetaPlugin *plugin,
632- MetaWindowActor *actor,
633- gint x,
634- gint y,
635- gint width,
636- gint height);
637-static void gnome_shell_plugin_unmaximize (MetaPlugin *plugin,
638- MetaWindowActor *actor,
639- gint x,
640- gint y,
641- gint width,
642- gint height);
643-static void gnome_shell_plugin_map (MetaPlugin *plugin,
644- MetaWindowActor *actor);
645-static void gnome_shell_plugin_destroy (MetaPlugin *plugin,
646- MetaWindowActor *actor);
647-
648-static void gnome_shell_plugin_switch_workspace (MetaPlugin *plugin,
649- gint from,
650- gint to,
651- MetaMotionDirection direction);
652-
653-static void gnome_shell_plugin_kill_window_effects (MetaPlugin *plugin,
654- MetaWindowActor *actor);
655-static void gnome_shell_plugin_kill_switch_workspace (MetaPlugin *plugin);
656-
657-
658-static gboolean gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
659- XEvent *event);
660-static const MetaPluginInfo *gnome_shell_plugin_plugin_info (MetaPlugin *plugin);
661-
662-
663-#define GNOME_TYPE_SHELL_PLUGIN (gnome_shell_plugin_get_type ())
664-#define GNOME_SHELL_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_TYPE_SHELL_PLUGIN, GnomeShellPlugin))
665-#define GNOME_SHELL_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNOME_TYPE_SHELL_PLUGIN, GnomeShellPluginClass))
666-#define GNOME_IS_SHELL_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_SHELL_PLUGIN_TYPE))
667-#define GNOME_IS_SHELL_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_SHELL_PLUGIN))
668-#define GNOME_SHELL_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNOME_TYPE_SHELL_PLUGIN, GnomeShellPluginClass))
669-
670-typedef struct _GnomeShellPlugin GnomeShellPlugin;
671-typedef struct _GnomeShellPluginClass GnomeShellPluginClass;
672-
673-struct _GnomeShellPlugin
674-{
675- MetaPlugin parent;
676-
677- Atom panel_action;
678- Atom panel_action_run_dialog;
679- Atom panel_action_main_menu;
680-
681- int glx_error_base;
682- int glx_event_base;
683- guint have_swap_event : 1;
684-
685- ShellGlobal *global;
686-};
687-
688-struct _GnomeShellPluginClass
689-{
690- MetaPluginClass parent_class;
691-};
692-
693-GType gnome_shell_plugin_get_type (void);
694-
695-G_DEFINE_TYPE (GnomeShellPlugin, gnome_shell_plugin, META_TYPE_PLUGIN)
696-
697-static void
698-gnome_shell_plugin_class_init (GnomeShellPluginClass *klass)
699-{
700- MetaPluginClass *plugin_class = META_PLUGIN_CLASS (klass);
701-
702- plugin_class->start = gnome_shell_plugin_start;
703- plugin_class->map = gnome_shell_plugin_map;
704- plugin_class->minimize = gnome_shell_plugin_minimize;
705- plugin_class->maximize = gnome_shell_plugin_maximize;
706- plugin_class->unmaximize = gnome_shell_plugin_unmaximize;
707- plugin_class->destroy = gnome_shell_plugin_destroy;
708-
709- plugin_class->switch_workspace = gnome_shell_plugin_switch_workspace;
710-
711- plugin_class->kill_window_effects = gnome_shell_plugin_kill_window_effects;
712- plugin_class->kill_switch_workspace = gnome_shell_plugin_kill_switch_workspace;
713-
714- plugin_class->xevent_filter = gnome_shell_plugin_xevent_filter;
715- plugin_class->plugin_info = gnome_shell_plugin_plugin_info;
716-}
717-
718-static void
719-gnome_shell_plugin_init (GnomeShellPlugin *shell_plugin)
720-{
721-}
722-
723-static void
724-gnome_shell_plugin_start (MetaPlugin *plugin)
725-{
726- GnomeShellPlugin *shell_plugin = GNOME_SHELL_PLUGIN (plugin);
727- MetaScreen *screen;
728- MetaDisplay *display;
729- Display *xdisplay;
730- GError *error = NULL;
731- int status;
732- const char *glx_extensions;
733- GjsContext *gjs_context;
734-
735- screen = meta_plugin_get_screen (plugin);
736- display = meta_screen_get_display (screen);
737-
738- xdisplay = meta_display_get_xdisplay (display);
739-
740- glXQueryExtension (xdisplay,
741- &shell_plugin->glx_error_base,
742- &shell_plugin->glx_event_base);
743-
744- glx_extensions = glXQueryExtensionsString (xdisplay,
745- meta_screen_get_screen_number (screen));
746- shell_plugin->have_swap_event = strstr (glx_extensions, "GLX_INTEL_swap_event") != NULL;
747-
748- shell_perf_log_define_event (shell_perf_log_get_default (),
749- "glx.swapComplete",
750- "GL buffer swap complete event received (with timestamp of completion)",
751- "x");
752-
753- shell_plugin->global = shell_global_get ();
754- _shell_global_set_plugin (shell_plugin->global, META_PLUGIN (shell_plugin));
755-
756- gjs_context = _shell_global_get_gjs_context (shell_plugin->global);
757-
758- if (!gjs_context_eval (gjs_context,
759- "imports.ui.environment.init();"
760- "imports.ui.main.start();",
761- -1,
762- "<main>",
763- &status,
764- &error))
765- {
766- g_message ("Execution of main.js threw exception: %s", error->message);
767- g_error_free (error);
768- /* We just exit() here, since in a development environment you'll get the
769- * error in your shell output, and it's way better than a busted WM,
770- * which typically manifests as a white screen.
771- *
772- * In production, we shouldn't crash =) But if we do, we should get
773- * restarted by the session infrastructure, which is likely going
774- * to be better than some undefined state.
775- *
776- * If there was a generic "hook into bug-buddy for non-C crashes"
777- * infrastructure, here would be the place to put it.
778- */
779- exit (1);
780- }
781-}
782-
783-static ShellWM *
784-get_shell_wm (void)
785-{
786- ShellWM *wm;
787-
788- g_object_get (shell_global_get (),
789- "window-manager", &wm,
790- NULL);
791- /* drop extra ref added by g_object_get */
792- g_object_unref (wm);
793-
794- return wm;
795-}
796-
797-static void
798-gnome_shell_plugin_minimize (MetaPlugin *plugin,
799- MetaWindowActor *actor)
800-{
801- _shell_wm_minimize (get_shell_wm (),
802- actor);
803-
804-}
805-
806-static void
807-gnome_shell_plugin_maximize (MetaPlugin *plugin,
808- MetaWindowActor *actor,
809- gint x,
810- gint y,
811- gint width,
812- gint height)
813-{
814- _shell_wm_maximize (get_shell_wm (),
815- actor, x, y, width, height);
816-}
817-
818-static void
819-gnome_shell_plugin_unmaximize (MetaPlugin *plugin,
820- MetaWindowActor *actor,
821- gint x,
822- gint y,
823- gint width,
824- gint height)
825-{
826- _shell_wm_unmaximize (get_shell_wm (),
827- actor, x, y, width, height);
828-}
829-
830-static void
831-gnome_shell_plugin_map (MetaPlugin *plugin,
832- MetaWindowActor *actor)
833-{
834- _shell_wm_map (get_shell_wm (),
835- actor);
836-}
837-
838-static void
839-gnome_shell_plugin_destroy (MetaPlugin *plugin,
840- MetaWindowActor *actor)
841-{
842- _shell_wm_destroy (get_shell_wm (),
843- actor);
844-}
845-
846-static void
847-gnome_shell_plugin_switch_workspace (MetaPlugin *plugin,
848- gint from,
849- gint to,
850- MetaMotionDirection direction)
851-{
852- _shell_wm_switch_workspace (get_shell_wm(), from, to, direction);
853-}
854-
855-static void
856-gnome_shell_plugin_kill_window_effects (MetaPlugin *plugin,
857- MetaWindowActor *actor)
858-{
859- _shell_wm_kill_window_effects (get_shell_wm(), actor);
860-}
861-
862-static void
863-gnome_shell_plugin_kill_switch_workspace (MetaPlugin *plugin)
864-{
865- _shell_wm_kill_switch_workspace (get_shell_wm());
866-}
867-
868-static gboolean
869-gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
870- XEvent *xev)
871-{
872- MetaScreen *screen = meta_plugin_get_screen (plugin);
873- ClutterStage *stage = CLUTTER_STAGE (meta_get_stage_for_screen (screen));
874-
875- GnomeShellPlugin *shell_plugin = GNOME_SHELL_PLUGIN (plugin);
876-#ifdef GLX_INTEL_swap_event
877- if (shell_plugin->have_swap_event &&
878- xev->type == (shell_plugin->glx_event_base + GLX_BufferSwapComplete))
879- {
880- GLXBufferSwapComplete *swap_complete_event;
881- swap_complete_event = (GLXBufferSwapComplete *)xev;
882-
883- /* Buggy early versions of the INTEL_swap_event implementation in Mesa
884- * can send this with a ust of 0. Simplify life for consumers
885- * by ignoring such events */
886- if (swap_complete_event->ust != 0)
887- shell_perf_log_event_x (shell_perf_log_get_default (),
888- "glx.swapComplete",
889- swap_complete_event->ust);
890- }
891-#endif
892-
893- if ((xev->xany.type == EnterNotify || xev->xany.type == LeaveNotify)
894- && xev->xcrossing.window == clutter_x11_get_stage_window (stage))
895- {
896- /* If the pointer enters a child of the stage window (eg, a
897- * trayicon), we want to consider it to still be in the stage,
898- * so don't let Clutter see the event.
899- */
900- if (xev->xcrossing.detail == NotifyInferior)
901- return TRUE;
902-
903- /* If the pointer is grabbed by a window it is not currently in,
904- * filter that out as well. In particular, if a trayicon grabs
905- * the pointer after a click on its label, we don't want to hide
906- * the message tray. Filtering out this event will leave Clutter
907- * out of sync, but that happens fairly often with grabs, and we
908- * can work around it. (Eg, shell_global_sync_pointer().)
909- */
910- if (xev->xcrossing.mode == NotifyGrab &&
911- (xev->xcrossing.detail == NotifyNonlinear ||
912- xev->xcrossing.detail == NotifyNonlinearVirtual))
913- return TRUE;
914- }
915-
916- /*
917- * Pass the event to shell-global
918- */
919- if (_shell_global_check_xdnd_event (shell_plugin->global, xev))
920- return TRUE;
921-
922- return clutter_x11_handle_event (xev) != CLUTTER_X11_FILTER_CONTINUE;
923-}
924-
925-static const
926-MetaPluginInfo *gnome_shell_plugin_plugin_info (MetaPlugin *plugin)
927-{
928- static const MetaPluginInfo info = {
929- .name = "GNOME Shell",
930- .version = "0.1",
931- .author = "Various",
932- .license = "GPLv2+",
933- .description = "Provides GNOME Shell core functionality"
934- };
935-
936- return &info;
937-}
938-
939-#if HAVE_BLUETOOTH
940-/* HACK:
941- Add a non-static function that calls into libgnome-bluetooth-applet.so,
942- to avoid the linker being too smart and removing the dependency.
943- This function is never actually called.
944-*/
945-extern GType bluetooth_applet_get_type(void);
946-void _shell_link_to_bluetooth(void);
947-
948-void _shell_link_to_bluetooth(void) {
949- bluetooth_applet_get_type();
950-}
951-#endif
952
953=== removed file '.pc/14_make-GLX-optional.patch/src/shell-screen-grabber.c'
954--- .pc/14_make-GLX-optional.patch/src/shell-screen-grabber.c 2012-11-26 15:57:51 +0000
955+++ .pc/14_make-GLX-optional.patch/src/shell-screen-grabber.c 1970-01-01 00:00:00 +0000
956@@ -1,219 +0,0 @@
957-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
958-
959-#include <string.h>
960-
961-#include <clutter/clutter.h>
962-#include <cogl/cogl.h>
963-#include <GL/gl.h>
964-#include <GL/glx.h>
965-#include <GL/glext.h>
966-
967-#include "shell-screen-grabber.h"
968-
969-PFNGLBINDBUFFERARBPROC pf_glBindBufferARB;
970-PFNGLBUFFERDATAARBPROC pf_glBufferDataARB;
971-PFNGLDELETEBUFFERSARBPROC pf_glDeleteBuffersARB;
972-PFNGLGENBUFFERSARBPROC pf_glGenBuffersARB;
973-PFNGLMAPBUFFERARBPROC pf_glMapBufferARB;
974-PFNGLUNMAPBUFFERARBPROC pf_glUnmapBufferARB;
975-
976-struct _ShellScreenGrabberClass
977-{
978- GObjectClass parent_class;
979-};
980-
981-struct _ShellScreenGrabber
982-{
983- GObject parent_instance;
984-
985- int have_pixel_buffers;
986- int have_pack_invert;
987- int width, height;
988- GLuint pixel_buffer;
989-};
990-
991-G_DEFINE_TYPE(ShellScreenGrabber, shell_screen_grabber, G_TYPE_OBJECT);
992-
993-static void
994-shell_screen_grabber_finalize (GObject *gobject)
995-{
996- ShellScreenGrabber *grabber = SHELL_SCREEN_GRABBER (gobject);
997-
998- if (grabber->pixel_buffer != 0)
999- pf_glDeleteBuffersARB (1, &grabber->pixel_buffer);
1000-}
1001-
1002-static void
1003-shell_screen_grabber_class_init (ShellScreenGrabberClass *grabber_class)
1004-{
1005- GObjectClass *gobject_class = G_OBJECT_CLASS (grabber_class);
1006-
1007- gobject_class->finalize = shell_screen_grabber_finalize;
1008-}
1009-
1010-static void
1011-shell_screen_grabber_init (ShellScreenGrabber *grabber)
1012-{
1013- grabber->have_pixel_buffers = -1;
1014- grabber->width = -1;
1015- grabber->height= -1;
1016- grabber->pixel_buffer = 0;
1017-}
1018-
1019-ShellScreenGrabber *
1020-shell_screen_grabber_new (void)
1021-{
1022- return g_object_new (SHELL_TYPE_SCREEN_GRABBER, NULL);
1023-}
1024-
1025-/**
1026- * shell_screen_grabber_grab:
1027- * x: X coordinate of the rectangle to grab
1028- * y: Y coordinate of the rectangle to grab
1029- * width: width of the rectangle to grab
1030- * height: heigth of the rectangle to grab
1031- *
1032- * Grabs pixel data from a portion of the screen.
1033- *
1034- * Return value: buffer holding the grabbed data. The data is stored as 32-bit
1035- * words with native-endian xRGB pixels (i.e., the same as CAIRO_FORMAT_RGB24)
1036- * with no padding on the rows. So, the size of the buffer is width * height * 4
1037- * bytes. Free with g_free().
1038- **/
1039-guchar *
1040-shell_screen_grabber_grab (ShellScreenGrabber *grabber,
1041- int x,
1042- int y,
1043- int width,
1044- int height)
1045-{
1046- guchar *data;
1047- gsize row_bytes;
1048- gsize data_size;
1049-
1050- row_bytes = width * 4;
1051- data_size = row_bytes * height;
1052- data = g_malloc (data_size);
1053-
1054- if (grabber->have_pixel_buffers == -1)
1055- {
1056- const GLubyte* extensions = glGetString (GL_EXTENSIONS);
1057- grabber->have_pixel_buffers = strstr ((const char *)extensions, "GL_EXT_pixel_buffer_object") != NULL;
1058- grabber->have_pack_invert = strstr ((const char *)extensions, "GL_MESA_pack_invert") != NULL;
1059- }
1060-
1061- if (grabber->have_pixel_buffers)
1062- {
1063- GLubyte *mapped_data;
1064- GLint old_swap_bytes, old_lsb_first, old_row_length, old_skip_pixels, old_skip_rows, old_alignment;
1065- GLint old_pack_invert = GL_FALSE;
1066- GLint vp_size[4];
1067- guchar *src_row, *dest_row;
1068- int i;
1069-
1070- cogl_flush ();
1071-
1072- if (pf_glBindBufferARB == NULL)
1073- {
1074- pf_glBindBufferARB = (PFNGLBINDBUFFERARBPROC) cogl_get_proc_address ("glBindBufferARB");
1075- pf_glBufferDataARB = (PFNGLBUFFERDATAARBPROC) cogl_get_proc_address ("glBufferDataARB");
1076- pf_glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC) cogl_get_proc_address ("glDeleteBuffersARB");
1077- pf_glGenBuffersARB = (PFNGLGENBUFFERSARBPROC) cogl_get_proc_address ("glGenBuffersARB");
1078- pf_glMapBufferARB = (PFNGLMAPBUFFERARBPROC) cogl_get_proc_address ("glMapBufferARB");
1079- pf_glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC) cogl_get_proc_address ("glUnmapBufferARB");
1080- }
1081-
1082- glGetIntegerv (GL_PACK_SWAP_BYTES, &old_swap_bytes);
1083- glGetIntegerv (GL_PACK_LSB_FIRST, &old_lsb_first);
1084- glGetIntegerv (GL_PACK_ROW_LENGTH, &old_row_length);
1085- glGetIntegerv (GL_PACK_SKIP_PIXELS, &old_skip_pixels);
1086- glGetIntegerv (GL_PACK_SKIP_ROWS, &old_skip_rows);
1087- glGetIntegerv (GL_PACK_ALIGNMENT, &old_alignment);
1088-
1089- glPixelStorei (GL_PACK_SWAP_BYTES, GL_FALSE);
1090- glPixelStorei (GL_PACK_LSB_FIRST, GL_FALSE);
1091- glPixelStorei (GL_PACK_ROW_LENGTH, 0);
1092- glPixelStorei (GL_PACK_SKIP_PIXELS, 0);
1093- glPixelStorei (GL_PACK_SKIP_ROWS, 0);
1094- glPixelStorei (GL_PACK_ALIGNMENT, 1);
1095-
1096- if (grabber->have_pack_invert)
1097- {
1098- glGetIntegerv (GL_PACK_INVERT_MESA, &old_pack_invert);
1099- glPixelStorei (GL_PACK_INVERT_MESA, GL_FALSE);
1100- }
1101-
1102- if (grabber->pixel_buffer != 0 &&
1103- (grabber->width != width ||
1104- grabber->height != height))
1105- {
1106- pf_glDeleteBuffersARB (1, &grabber->pixel_buffer);
1107- grabber->pixel_buffer = 0;
1108- }
1109-
1110- if (grabber->pixel_buffer == 0)
1111- {
1112- pf_glGenBuffersARB (1, &grabber->pixel_buffer);
1113-
1114- pf_glBindBufferARB (GL_PIXEL_PACK_BUFFER_ARB, grabber->pixel_buffer);
1115- pf_glBufferDataARB (GL_PIXEL_PACK_BUFFER_ARB, data_size, 0, GL_STREAM_READ_ARB);
1116-
1117- grabber->width = width;
1118- grabber->height = height;
1119- }
1120- else
1121- {
1122- pf_glBindBufferARB (GL_PIXEL_PACK_BUFFER_ARB, grabber->pixel_buffer);
1123- }
1124-
1125- /* In OpenGL, (x,y) specifies the bottom-left corner rather than the
1126- * top-left */
1127- glGetIntegerv (GL_VIEWPORT, vp_size);
1128- y = vp_size[3] - (y + height);
1129-
1130- /* the "big-endian" version actually works for both, but the litle-endian
1131- * version has been better tested with a range of drivers, so we'll
1132- * keep on using it on little-endian.
1133- */
1134-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
1135- glReadPixels (x, y, width, height, GL_BGRA, GL_UNSIGNED_BYTE, 0);
1136-#else
1137- glReadPixels (x, y, width, height, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, 0);
1138-#endif
1139-
1140- mapped_data = pf_glMapBufferARB (GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY_ARB);
1141-
1142- src_row = mapped_data + (height - 1) * row_bytes;
1143- dest_row = data;
1144-
1145- for (i = 0; i < height; i++)
1146- {
1147- memcpy (dest_row, src_row, row_bytes);
1148- src_row -= row_bytes;
1149- dest_row += row_bytes;
1150- }
1151-
1152- pf_glUnmapBufferARB (GL_PIXEL_PACK_BUFFER_ARB);
1153- pf_glBindBufferARB (GL_PIXEL_PACK_BUFFER_ARB, 0);
1154-
1155- glPixelStorei (GL_PACK_SWAP_BYTES, old_swap_bytes);
1156- glPixelStorei (GL_PACK_LSB_FIRST, old_lsb_first);
1157- glPixelStorei (GL_PACK_ROW_LENGTH, old_row_length);
1158- glPixelStorei (GL_PACK_SKIP_PIXELS, old_skip_pixels);
1159- glPixelStorei (GL_PACK_SKIP_ROWS, old_skip_rows);
1160- glPixelStorei (GL_PACK_ALIGNMENT, old_alignment);
1161-
1162- if (grabber->have_pack_invert)
1163- glPixelStorei (GL_PACK_INVERT_MESA, old_pack_invert);
1164- }
1165- else
1166- {
1167- cogl_read_pixels (x, y,
1168- width, height,
1169- COGL_READ_PIXELS_COLOR_BUFFER,
1170- CLUTTER_CAIRO_FORMAT_ARGB32,
1171- data);
1172- }
1173-
1174- return data;
1175-}
1176
1177=== removed file '.pc/applied-patches'
1178--- .pc/applied-patches 2012-11-26 15:57:51 +0000
1179+++ .pc/applied-patches 1970-01-01 00:00:00 +0000
1180@@ -1,5 +0,0 @@
1181-11-no-gettext.patch
1182-14_make-GLX-optional.patch
1183-ubuntu-lightdm-user-switching.patch
1184-ubuntu_lock_on_suspend.patch
1185-git-set-ally-wm-theme.patch
1186
1187=== removed directory '.pc/git-set-ally-wm-theme.patch'
1188=== removed directory '.pc/git-set-ally-wm-theme.patch/js'
1189=== removed directory '.pc/git-set-ally-wm-theme.patch/js/ui'
1190=== removed directory '.pc/git-set-ally-wm-theme.patch/js/ui/status'
1191=== removed file '.pc/git-set-ally-wm-theme.patch/js/ui/status/accessibility.js'
1192--- .pc/git-set-ally-wm-theme.patch/js/ui/status/accessibility.js 2012-11-26 15:57:51 +0000
1193+++ .pc/git-set-ally-wm-theme.patch/js/ui/status/accessibility.js 1970-01-01 00:00:00 +0000
1194@@ -1,163 +0,0 @@
1195-// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
1196-
1197-const Gio = imports.gi.Gio;
1198-const Lang = imports.lang;
1199-
1200-const PanelMenu = imports.ui.panelMenu;
1201-const PopupMenu = imports.ui.popupMenu;
1202-
1203-const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
1204-const KEY_STICKY_KEYS_ENABLED = 'stickykeys-enable';
1205-const KEY_BOUNCE_KEYS_ENABLED = 'bouncekeys-enable';
1206-const KEY_SLOW_KEYS_ENABLED = 'slowkeys-enable';
1207-const KEY_MOUSE_KEYS_ENABLED = 'mousekeys-enable';
1208-
1209-const APPLICATIONS_SCHEMA = 'org.gnome.desktop.a11y.applications';
1210-
1211-const DPI_LOW_REASONABLE_VALUE = 50;
1212-const DPI_HIGH_REASONABLE_VALUE = 500;
1213-
1214-const DPI_FACTOR_LARGE = 1.25;
1215-const DPI_FACTOR_LARGER = 1.5;
1216-const DPI_FACTOR_LARGEST = 2.0;
1217-
1218-const WM_SCHEMA = 'org.gnome.desktop.wm.preferences';
1219-const KEY_VISUAL_BELL = 'visual-bell';
1220-
1221-const DESKTOP_INTERFACE_SCHEMA = 'org.gnome.desktop.interface';
1222-const KEY_GTK_THEME = 'gtk-theme';
1223-const KEY_ICON_THEME = 'icon-theme';
1224-const KEY_TEXT_SCALING_FACTOR = 'text-scaling-factor';
1225-
1226-const HIGH_CONTRAST_THEME = 'HighContrast';
1227-
1228-const ATIndicator = new Lang.Class({
1229- Name: 'ATIndicator',
1230- Extends: PanelMenu.SystemStatusButton,
1231-
1232- _init: function() {
1233- this.parent('preferences-desktop-accessibility-symbolic', _("Accessibility"));
1234-
1235- let highContrast = this._buildHCItem();
1236- this.menu.addMenuItem(highContrast);
1237-
1238- let magnifier = this._buildItem(_("Zoom"), APPLICATIONS_SCHEMA,
1239- 'screen-magnifier-enabled');
1240- this.menu.addMenuItem(magnifier);
1241-
1242- let textZoom = this._buildFontItem();
1243- this.menu.addMenuItem(textZoom);
1244-
1245- let screenReader = this._buildItem(_("Screen Reader"), APPLICATIONS_SCHEMA,
1246- 'screen-reader-enabled');
1247- this.menu.addMenuItem(screenReader);
1248-
1249- let screenKeyboard = this._buildItem(_("Screen Keyboard"), APPLICATIONS_SCHEMA,
1250- 'screen-keyboard-enabled');
1251- this.menu.addMenuItem(screenKeyboard);
1252-
1253- let visualBell = this._buildItem(_("Visual Alerts"), WM_SCHEMA, KEY_VISUAL_BELL);
1254- this.menu.addMenuItem(visualBell);
1255-
1256- let stickyKeys = this._buildItem(_("Sticky Keys"), A11Y_SCHEMA, KEY_STICKY_KEYS_ENABLED);
1257- this.menu.addMenuItem(stickyKeys);
1258-
1259- let slowKeys = this._buildItem(_("Slow Keys"), A11Y_SCHEMA, KEY_SLOW_KEYS_ENABLED);
1260- this.menu.addMenuItem(slowKeys);
1261-
1262- let bounceKeys = this._buildItem(_("Bounce Keys"), A11Y_SCHEMA, KEY_BOUNCE_KEYS_ENABLED);
1263- this.menu.addMenuItem(bounceKeys);
1264-
1265- let mouseKeys = this._buildItem(_("Mouse Keys"), A11Y_SCHEMA, KEY_MOUSE_KEYS_ENABLED);
1266- this.menu.addMenuItem(mouseKeys);
1267-
1268- this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
1269- this.menu.addSettingsAction(_("Universal Access Settings"), 'gnome-universal-access-panel.desktop');
1270- },
1271-
1272- _buildItemExtended: function(string, initial_value, writable, on_set) {
1273- let widget = new PopupMenu.PopupSwitchMenuItem(string, initial_value);
1274- if (!writable)
1275- widget.actor.reactive = false;
1276- else
1277- widget.connect('toggled', function(item) {
1278- on_set(item.state);
1279- });
1280- return widget;
1281- },
1282-
1283- _buildItem: function(string, schema, key) {
1284- let settings = new Gio.Settings({ schema: schema });
1285- let widget = this._buildItemExtended(string,
1286- settings.get_boolean(key),
1287- settings.is_writable(key),
1288- function(enabled) {
1289- return settings.set_boolean(key, enabled);
1290- });
1291- settings.connect('changed::'+key, function() {
1292- widget.setToggleState(settings.get_boolean(key));
1293- });
1294- return widget;
1295- },
1296-
1297- _buildHCItem: function() {
1298- let settings = new Gio.Settings({ schema: DESKTOP_INTERFACE_SCHEMA });
1299- let gtkTheme = settings.get_string(KEY_GTK_THEME);
1300- let iconTheme = settings.get_string(KEY_ICON_THEME);
1301- let hasHC = (gtkTheme == HIGH_CONTRAST_THEME);
1302- let highContrast = this._buildItemExtended(
1303- _("High Contrast"),
1304- hasHC,
1305- settings.is_writable(KEY_GTK_THEME) && settings.is_writable(KEY_ICON_THEME),
1306- function (enabled) {
1307- if (enabled) {
1308- settings.set_string(KEY_GTK_THEME, HIGH_CONTRAST_THEME);
1309- settings.set_string(KEY_ICON_THEME, HIGH_CONTRAST_THEME);
1310- } else if(!hasHC) {
1311- settings.set_string(KEY_GTK_THEME, gtkTheme);
1312- settings.set_string(KEY_ICON_THEME, iconTheme);
1313- } else {
1314- settings.reset(KEY_GTK_THEME);
1315- settings.reset(KEY_ICON_THEME);
1316- }
1317- });
1318- settings.connect('changed::' + KEY_GTK_THEME, function() {
1319- let value = settings.get_string(KEY_GTK_THEME);
1320- if (value == HIGH_CONTRAST_THEME) {
1321- highContrast.setToggleState(true);
1322- } else {
1323- highContrast.setToggleState(false);
1324- gtkTheme = value;
1325- }
1326- });
1327- settings.connect('changed::' + KEY_ICON_THEME, function() {
1328- let value = settings.get_string(KEY_ICON_THEME);
1329- if (value != HIGH_CONTRAST_THEME)
1330- iconTheme = value;
1331- });
1332- return highContrast;
1333- },
1334-
1335- _buildFontItem: function() {
1336- let settings = new Gio.Settings({ schema: DESKTOP_INTERFACE_SCHEMA });
1337-
1338- let factor = settings.get_double(KEY_TEXT_SCALING_FACTOR);
1339- let initial_setting = (factor > 1.0);
1340- let widget = this._buildItemExtended(_("Large Text"),
1341- initial_setting,
1342- settings.is_writable(KEY_TEXT_SCALING_FACTOR),
1343- function (enabled) {
1344- if (enabled)
1345- settings.set_double(KEY_TEXT_SCALING_FACTOR,
1346- DPI_FACTOR_LARGE);
1347- else
1348- settings.reset(KEY_TEXT_SCALING_FACTOR);
1349- });
1350- settings.connect('changed::' + KEY_TEXT_SCALING_FACTOR, function() {
1351- let factor = settings.get_double(KEY_TEXT_SCALING_FACTOR);
1352- let active = (factor > 1.0);
1353- widget.setToggleState(active);
1354- });
1355- return widget;
1356- }
1357-});
1358
1359=== removed directory '.pc/ubuntu-lightdm-user-switching.patch'
1360=== removed directory '.pc/ubuntu-lightdm-user-switching.patch/js'
1361=== removed directory '.pc/ubuntu-lightdm-user-switching.patch/js/ui'
1362=== removed file '.pc/ubuntu-lightdm-user-switching.patch/js/ui/userMenu.js'
1363--- .pc/ubuntu-lightdm-user-switching.patch/js/ui/userMenu.js 2012-11-26 15:57:51 +0000
1364+++ .pc/ubuntu-lightdm-user-switching.patch/js/ui/userMenu.js 1970-01-01 00:00:00 +0000
1365@@ -1,868 +0,0 @@
1366-// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
1367-
1368-const AccountsService = imports.gi.AccountsService;
1369-const Gdm = imports.gi.Gdm;
1370-const Gio = imports.gi.Gio;
1371-const GLib = imports.gi.GLib;
1372-const Lang = imports.lang;
1373-const Pango = imports.gi.Pango;
1374-const Shell = imports.gi.Shell;
1375-const St = imports.gi.St;
1376-const Tp = imports.gi.TelepathyGLib;
1377-const UPowerGlib = imports.gi.UPowerGlib;
1378-const Atk = imports.gi.Atk;
1379-
1380-const BoxPointer = imports.ui.boxpointer;
1381-const GnomeSession = imports.misc.gnomeSession;
1382-const Main = imports.ui.main;
1383-const PanelMenu = imports.ui.panelMenu;
1384-const PopupMenu = imports.ui.popupMenu;
1385-const Params = imports.misc.params;
1386-const Util = imports.misc.util;
1387-
1388-const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
1389-const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver';
1390-const DISABLE_USER_SWITCH_KEY = 'disable-user-switching';
1391-const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen';
1392-const DISABLE_LOG_OUT_KEY = 'disable-log-out';
1393-const LOCK_ENABLED_KEY = 'lock-enabled';
1394-const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
1395-
1396-const DIALOG_ICON_SIZE = 64;
1397-
1398-const IMStatus = {
1399- AVAILABLE: 0,
1400- BUSY: 1,
1401- HIDDEN: 2,
1402- AWAY: 3,
1403- IDLE: 4,
1404- OFFLINE: 5,
1405- LAST: 6
1406-};
1407-
1408-// Adapted from gdm/gui/user-switch-applet/applet.c
1409-//
1410-// Copyright (C) 2004-2005 James M. Cape <jcape@ignore-your.tv>.
1411-// Copyright (C) 2008,2009 Red Hat, Inc.
1412-
1413-const UserAvatarWidget = new Lang.Class({
1414- Name: 'UserAvatarWidget',
1415-
1416- _init: function(user, params) {
1417- this._user = user;
1418- params = Params.parse(params, { reactive: false,
1419- iconSize: DIALOG_ICON_SIZE,
1420- styleClass: 'status-chooser-user-icon' });
1421- this._iconSize = params.iconSize;
1422-
1423- this.actor = new St.Bin({ style_class: params.styleClass,
1424- track_hover: params.reactive,
1425- reactive: params.reactive });
1426- },
1427-
1428- setSensitive: function(sensitive) {
1429- this.actor.can_focus = sensitive;
1430- this.actor.reactive = sensitive;
1431- },
1432-
1433- update: function() {
1434- let iconFile = this._user.get_icon_file();
1435- if (!GLib.file_test(iconFile, GLib.FileTest.EXISTS))
1436- iconFile = null;
1437-
1438- if (iconFile) {
1439- let file = Gio.File.new_for_path(iconFile);
1440- this.actor.child = null;
1441- this.actor.style = 'background-image: url("%s");'.format(iconFile);
1442-
1443- // AccountsService uses a fixed location for avatar images, so
1444- // we need to clear out all cached data to pick up image changes,
1445- // see https://bugzilla.gnome.org/show_bug.cgi?id=679268
1446- this.actor.clear_background_image();
1447- } else {
1448- this.actor.style = null;
1449- this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic',
1450- icon_size: this._iconSize });
1451- }
1452- }
1453-});
1454-
1455-const IMStatusItem = new Lang.Class({
1456- Name: 'IMStatusItem',
1457- Extends: PopupMenu.PopupBaseMenuItem,
1458-
1459- _init: function(label, iconName) {
1460- this.parent();
1461-
1462- this.actor.add_style_class_name('status-chooser-status-item');
1463-
1464- this._icon = new St.Icon({ style_class: 'popup-menu-icon' });
1465- this.addActor(this._icon);
1466-
1467- if (iconName)
1468- this._icon.icon_name = iconName;
1469-
1470- this.label = new St.Label({ text: label });
1471- this.actor.label_actor = this.label;
1472- this.addActor(this.label);
1473- }
1474-});
1475-
1476-const IMUserNameItem = new Lang.Class({
1477- Name: 'IMUserNameItem',
1478- Extends: PopupMenu.PopupBaseMenuItem,
1479-
1480- _init: function() {
1481- this.parent({ reactive: false,
1482- can_focus: false,
1483- style_class: 'status-chooser-user-name' });
1484-
1485- this._wrapper = new Shell.GenericContainer();
1486- this._wrapper.connect('get-preferred-width',
1487- Lang.bind(this, this._wrapperGetPreferredWidth));
1488- this._wrapper.connect('get-preferred-height',
1489- Lang.bind(this, this._wrapperGetPreferredHeight));
1490- this._wrapper.connect('allocate',
1491- Lang.bind(this, this._wrapperAllocate));
1492- this.addActor(this._wrapper, { expand: true, span: -1 });
1493-
1494- this.label = new St.Label();
1495- this.label.clutter_text.set_line_wrap(true);
1496- this.label.clutter_text.set_ellipsize(Pango.EllipsizeMode.NONE);
1497- this._wrapper.add_actor(this.label);
1498- },
1499-
1500- _wrapperGetPreferredWidth: function(actor, forHeight, alloc) {
1501- alloc.min_size = 1;
1502- alloc.natural_size = 1;
1503- },
1504-
1505- _wrapperGetPreferredHeight: function(actor, forWidth, alloc) {
1506- [alloc.min_size, alloc.natural_size] = this.label.get_preferred_height(forWidth);
1507- },
1508-
1509- _wrapperAllocate: function(actor, box, flags) {
1510- this.label.allocate(box, flags);
1511- }
1512-});
1513-
1514-const IMStatusChooserItem = new Lang.Class({
1515- Name: 'IMStatusChooserItem',
1516- Extends: PopupMenu.PopupBaseMenuItem,
1517-
1518- _init: function() {
1519- this.parent({ reactive: false,
1520- can_focus: false,
1521- style_class: 'status-chooser' });
1522-
1523- this._userManager = AccountsService.UserManager.get_default();
1524- this._user = this._userManager.get_user(GLib.get_user_name());
1525-
1526- this._avatar = new UserAvatarWidget(this._user, { reactive: true });
1527- this._iconBin = new St.Button({ child: this._avatar.actor });
1528- this.addActor(this._iconBin);
1529-
1530- this._iconBin.connect('clicked', Lang.bind(this,
1531- function() {
1532- this.activate();
1533- }));
1534-
1535- this._section = new PopupMenu.PopupMenuSection();
1536- this.addActor(this._section.actor);
1537-
1538- this._name = new IMUserNameItem();
1539- this._section.addMenuItem(this._name);
1540-
1541- this._combo = new PopupMenu.PopupComboBoxMenuItem({ style_class: 'status-chooser-combo' });
1542- this._section.addMenuItem(this._combo);
1543-
1544- let item;
1545-
1546- item = new IMStatusItem(_("Available"), 'user-available-symbolic');
1547- this._combo.addMenuItem(item, IMStatus.AVAILABLE);
1548-
1549- item = new IMStatusItem(_("Busy"), 'user-busy-symbolic');
1550- this._combo.addMenuItem(item, IMStatus.BUSY);
1551-
1552- item = new IMStatusItem(_("Invisible"), 'user-invisible-symbolic');
1553- this._combo.addMenuItem(item, IMStatus.HIDDEN);
1554-
1555- item = new IMStatusItem(_("Away"), 'user-away-symbolic');
1556- this._combo.addMenuItem(item, IMStatus.AWAY);
1557-
1558- item = new IMStatusItem(_("Idle"), 'user-idle-symbolic');
1559- this._combo.addMenuItem(item, IMStatus.IDLE);
1560-
1561- item = new IMStatusItem(_("Unavailable"), 'user-offline-symbolic');
1562- this._combo.addMenuItem(item, IMStatus.OFFLINE);
1563-
1564- this._combo.connect('active-item-changed',
1565- Lang.bind(this, this._changeIMStatus));
1566-
1567- this._presence = new GnomeSession.Presence();
1568- this._presence.connectSignal('StatusChanged', Lang.bind(this, function(proxy, senderName, [status]) {
1569- this._sessionStatusChanged(status);
1570- }));
1571-
1572- this._sessionPresenceRestored = false;
1573- this._imPresenceRestored = false;
1574- this._currentPresence = undefined;
1575-
1576- this._accountMgr = Tp.AccountManager.dup();
1577- this._accountMgr.connect('most-available-presence-changed',
1578- Lang.bind(this, this._IMStatusChanged));
1579- this._accountMgr.connect('account-enabled',
1580- Lang.bind(this, this._IMAccountsChanged));
1581- this._accountMgr.connect('account-disabled',
1582- Lang.bind(this, this._IMAccountsChanged));
1583- this._accountMgr.connect('account-removed',
1584- Lang.bind(this, this._IMAccountsChanged));
1585- this._accountMgr.connect('account-validity-changed',
1586- Lang.bind(this, this._IMAccountsChanged));
1587- this._accountMgr.prepare_async(null, Lang.bind(this,
1588- function(mgr) {
1589- this._IMAccountsChanged(mgr);
1590-
1591- if (this._networkMonitor.network_available)
1592- this._restorePresence();
1593- else
1594- this._setComboboxPresence(Tp.ConnectionPresenceType.OFFLINE);
1595- }));
1596-
1597- this._networkMonitor = Gio.NetworkMonitor.get_default();
1598- this._networkMonitor.connect('network-changed',
1599- Lang.bind(this, function(monitor, available) {
1600- this._IMAccountsChanged(this._accountMgr);
1601-
1602- if (available && !this._imPresenceRestored)
1603- this._restorePresence();
1604- }));
1605-
1606- this._userLoadedId = this._user.connect('notify::is-loaded',
1607- Lang.bind(this,
1608- this._updateUser));
1609- this._userChangedId = this._user.connect('changed',
1610- Lang.bind(this,
1611- this._updateUser));
1612- this.actor.connect('notify::mapped', Lang.bind(this, function() {
1613- if (this.actor.mapped)
1614- this._updateUser();
1615- }));
1616-
1617- this.connect('sensitive-changed', function(sensitive) {
1618- this._avatar.setSensitive(sensitive);
1619- });
1620- },
1621-
1622- _restorePresence: function() {
1623- let [presence, status, msg] = this._accountMgr.get_most_available_presence();
1624-
1625- let savedPresence = global.settings.get_int('saved-im-presence');
1626-
1627- if (savedPresence == presence) {
1628- this._IMStatusChanged(this._accountMgr, presence, status, msg);
1629- } else {
1630- this._setComboboxPresence(savedPresence);
1631- status = this._statusForPresence(savedPresence);
1632- msg = msg ? msg : '';
1633- this._accountMgr.set_all_requested_presences(savedPresence, status, msg);
1634- }
1635- },
1636-
1637- destroy: function() {
1638- // clean up signal handlers
1639- if (this._userLoadedId != 0) {
1640- this._user.disconnect(this._userLoadedId);
1641- this._userLoadedId = 0;
1642- }
1643-
1644- if (this._userChangedId != 0) {
1645- this._user.disconnect(this._userChangedId);
1646- this._userChangedId = 0;
1647- }
1648-
1649- this.parent();
1650- },
1651-
1652- // Override getColumnWidths()/setColumnWidths() to make the item
1653- // independent from the overall column layout of the menu
1654- getColumnWidths: function() {
1655- return [];
1656- },
1657-
1658- setColumnWidths: function(widths) {
1659- },
1660-
1661- _updateUser: function() {
1662- if (this._user.is_loaded)
1663- this._name.label.set_text(this._user.get_real_name());
1664- else
1665- this._name.label.set_text("");
1666-
1667- this._avatar.update();
1668- },
1669-
1670- _statusForPresence: function(presence) {
1671- switch(presence) {
1672- case Tp.ConnectionPresenceType.AVAILABLE:
1673- return 'available';
1674- case Tp.ConnectionPresenceType.BUSY:
1675- return 'busy';
1676- case Tp.ConnectionPresenceType.OFFLINE:
1677- return 'offline';
1678- case Tp.ConnectionPresenceType.HIDDEN:
1679- return 'hidden';
1680- case Tp.ConnectionPresenceType.AWAY:
1681- return 'away';
1682- case Tp.ConnectionPresenceType.EXTENDED_AWAY:
1683- return 'xa';
1684- default:
1685- return 'unknown';
1686- }
1687- },
1688-
1689- _IMAccountsChanged: function(mgr) {
1690- let accounts = mgr.get_valid_accounts().filter(function(account) {
1691- return account.enabled;
1692- });
1693- let sensitive = accounts.length > 0 && this._networkMonitor.network_available;
1694- this._combo.setSensitive(sensitive);
1695- },
1696-
1697- _IMStatusChanged: function(accountMgr, presence, status, message) {
1698- if (!this._imPresenceRestored)
1699- this._imPresenceRestored = true;
1700-
1701- if (presence == this._currentPresence)
1702- return;
1703-
1704- this._currentPresence = presence;
1705- this._setComboboxPresence(presence);
1706-
1707- if (!this._sessionPresenceRestored) {
1708- this._sessionStatusChanged(this._presence.status);
1709- return;
1710- }
1711-
1712- if (presence == Tp.ConnectionPresenceType.AVAILABLE)
1713- this._presence.status = GnomeSession.PresenceStatus.AVAILABLE;
1714-
1715- // We ignore the actual value of _expectedPresence and never safe
1716- // the first presence change after an "automatic" change, assuming
1717- // that it is the response to our request; this is to account for
1718- // mission control falling back to "similar" presences if an account
1719- // type does not implement the requested presence.
1720- if (!this._expectedPresence)
1721- global.settings.set_int('saved-im-presence', presence);
1722- else
1723- this._expectedPresence = undefined;
1724- },
1725-
1726- _setComboboxPresence: function(presence) {
1727- let activatedItem;
1728-
1729- if (presence == Tp.ConnectionPresenceType.AVAILABLE)
1730- activatedItem = IMStatus.AVAILABLE;
1731- else if (presence == Tp.ConnectionPresenceType.BUSY)
1732- activatedItem = IMStatus.BUSY;
1733- else if (presence == Tp.ConnectionPresenceType.HIDDEN)
1734- activatedItem = IMStatus.HIDDEN;
1735- else if (presence == Tp.ConnectionPresenceType.AWAY)
1736- activatedItem = IMStatus.AWAY;
1737- else if (presence == Tp.ConnectionPresenceType.EXTENDED_AWAY)
1738- activatedItem = IMStatus.IDLE;
1739- else
1740- activatedItem = IMStatus.OFFLINE;
1741-
1742- this._combo.setActiveItem(activatedItem);
1743- for (let i = 0; i < IMStatus.LAST; i++) {
1744- if (i == IMStatus.AVAILABLE || i == IMStatus.OFFLINE)
1745- continue; // always visible
1746-
1747- this._combo.setItemVisible(i, i == activatedItem);
1748- }
1749- },
1750-
1751- _changeIMStatus: function(menuItem, id) {
1752- let [presence, s, msg] = this._accountMgr.get_most_available_presence();
1753- let newPresence, status;
1754-
1755- if (id == IMStatus.AVAILABLE) {
1756- newPresence = Tp.ConnectionPresenceType.AVAILABLE;
1757- } else if (id == IMStatus.OFFLINE) {
1758- newPresence = Tp.ConnectionPresenceType.OFFLINE;
1759- } else
1760- return;
1761-
1762- status = this._statusForPresence(newPresence);
1763- msg = msg ? msg : '';
1764- this._accountMgr.set_all_requested_presences(newPresence, status, msg);
1765- },
1766-
1767- getIMPresenceForSessionStatus: function(sessionStatus) {
1768- // Restore the last user-set presence when coming back from
1769- // BUSY/IDLE (otherwise the last user-set presence matches
1770- // the current one)
1771- if (sessionStatus == GnomeSession.PresenceStatus.AVAILABLE)
1772- return global.settings.get_int('saved-im-presence');
1773-
1774- if (sessionStatus == GnomeSession.PresenceStatus.BUSY) {
1775- // Only change presence if the current one is "more present" than
1776- // busy, or if coming back from idle
1777- if (this._currentPresence == Tp.ConnectionPresenceType.AVAILABLE ||
1778- this._currentPresence == Tp.ConnectionPresenceType.EXTENDED_AWAY)
1779- return Tp.ConnectionPresenceType.BUSY;
1780- }
1781-
1782- if (sessionStatus == GnomeSession.PresenceStatus.IDLE) {
1783- // Only change presence if the current one is "more present" than
1784- // idle
1785- if (this._currentPresence != Tp.ConnectionPresenceType.OFFLINE &&
1786- this._currentPresence != Tp.ConnectionPresenceType.HIDDEN)
1787- return Tp.ConnectionPresenceType.EXTENDED_AWAY;
1788- }
1789-
1790- return this._currentPresence;
1791- },
1792-
1793- _sessionStatusChanged: function(sessionStatus) {
1794- if (!this._imPresenceRestored)
1795- return;
1796-
1797- let savedStatus = global.settings.get_int('saved-session-presence');
1798- if (!this._sessionPresenceRestored) {
1799-
1800- // We should never save/restore a status other than AVAILABLE
1801- // or BUSY
1802- if (savedStatus != GnomeSession.PresenceStatus.AVAILABLE &&
1803- savedStatus != GnomeSession.PresenceStatus.BUSY)
1804- savedStatus = GnomeSession.PresenceStatus.AVAILABLE;
1805-
1806- if (sessionStatus != savedStatus) {
1807- this._presence.status = savedStatus;
1808- return;
1809- }
1810- this._sessionPresenceRestored = true;
1811- }
1812-
1813- if ((sessionStatus == GnomeSession.PresenceStatus.AVAILABLE ||
1814- sessionStatus == GnomeSession.PresenceStatus.BUSY) &&
1815- savedStatus != sessionStatus)
1816- global.settings.set_int('saved-session-presence', sessionStatus);
1817-
1818- let [presence, s, msg] = this._accountMgr.get_most_available_presence();
1819- let newPresence, status;
1820-
1821- let newPresence = this.getIMPresenceForSessionStatus(sessionStatus);
1822-
1823- if (!newPresence || newPresence == presence)
1824- return;
1825-
1826- status = this._statusForPresence(newPresence);
1827- msg = msg ? msg : '';
1828-
1829- this._expectedPresence = newPresence;
1830- this._accountMgr.set_all_requested_presences(newPresence, status, msg);
1831- }
1832-});
1833-
1834-
1835-const UserMenuButton = new Lang.Class({
1836- Name: 'UserMenuButton',
1837- Extends: PanelMenu.Button,
1838-
1839- _init: function() {
1840- this.parent(0.0);
1841-
1842- this.actor.accessible_role = Atk.Role.MENU;
1843-
1844- let box = new St.BoxLayout({ name: 'panelUserMenu' });
1845- this.actor.add_actor(box);
1846-
1847- this._screenSaverSettings = new Gio.Settings({ schema: SCREENSAVER_SCHEMA });
1848- this._lockdownSettings = new Gio.Settings({ schema: LOCKDOWN_SCHEMA });
1849-
1850- this._userManager = AccountsService.UserManager.get_default();
1851-
1852- this._user = this._userManager.get_user(GLib.get_user_name());
1853- this._presence = new GnomeSession.Presence();
1854- this._session = new GnomeSession.SessionManager();
1855- this._haveShutdown = true;
1856-
1857- this._accountMgr = Tp.AccountManager.dup();
1858-
1859- this._upClient = new UPowerGlib.Client();
1860- this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
1861-
1862- this._iconBox = new St.Bin();
1863- box.add(this._iconBox, { y_align: St.Align.MIDDLE, y_fill: false });
1864-
1865- let textureCache = St.TextureCache.get_default();
1866- this._offlineIcon = new St.Icon({ icon_name: 'user-offline-symbolic',
1867- style_class: 'popup-menu-icon' });
1868- this._availableIcon = new St.Icon({ icon_name: 'user-available-symbolic',
1869- style_class: 'popup-menu-icon' });
1870- this._busyIcon = new St.Icon({ icon_name: 'user-busy-symbolic',
1871- style_class: 'popup-menu-icon' });
1872- this._invisibleIcon = new St.Icon({ icon_name: 'user-invisible-symbolic',
1873- style_class: 'popup-menu-icon' });
1874- this._awayIcon = new St.Icon({ icon_name: 'user-away-symbolic',
1875- style_class: 'popup-menu-icon' });
1876- this._idleIcon = new St.Icon({ icon_name: 'user-idle-symbolic',
1877- style_class: 'popup-menu-icon' });
1878- this._pendingIcon = new St.Icon({ icon_name: 'user-status-pending-symbolic',
1879- style_class: 'popup-menu-icon' });
1880- this._lockedIcon = new St.Icon({ icon_name: 'changes-prevent-symbolic',
1881- style_class: 'popup-menu-icon' });
1882-
1883- this._accountMgr.connect('most-available-presence-changed',
1884- Lang.bind(this, this._updatePresenceIcon));
1885- this._accountMgr.connect('account-enabled',
1886- Lang.bind(this, this._onAccountEnabled));
1887- this._accountMgr.connect('account-removed',
1888- Lang.bind(this, this._onAccountRemoved));
1889- this._accountMgr.prepare_async(null, Lang.bind(this,
1890- function(mgr) {
1891- let [presence, s, msg] = mgr.get_most_available_presence();
1892- this._updatePresenceIcon(mgr, presence, s, msg);
1893- this._setupAccounts();
1894- }));
1895-
1896- this._name = new St.Label();
1897- this.actor.label_actor = this._name;
1898- box.add(this._name, { y_align: St.Align.MIDDLE, y_fill: false });
1899- this._userLoadedId = this._user.connect('notify::is-loaded', Lang.bind(this, this._updateUserName));
1900- this._userChangedId = this._user.connect('changed', Lang.bind(this, this._updateUserName));
1901- this._updateUserName();
1902-
1903- this._createSubMenu();
1904-
1905- this._updateSwitch(this._presence.status);
1906- this._presence.connectSignal('StatusChanged', Lang.bind(this, function (proxy, senderName, [status]) {
1907- this._updateSwitch(status);
1908- }));
1909-
1910- this._userManager.connect('notify::is-loaded',
1911- Lang.bind(this, this._updateMultiUser));
1912- this._userManager.connect('notify::has-multiple-users',
1913- Lang.bind(this, this._updateMultiUser));
1914- this._userManager.connect('user-added',
1915- Lang.bind(this, this._updateMultiUser));
1916- this._userManager.connect('user-removed',
1917- Lang.bind(this, this._updateMultiUser));
1918- this._lockdownSettings.connect('changed::' + DISABLE_USER_SWITCH_KEY,
1919- Lang.bind(this, this._updateSwitchUser));
1920- this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
1921- Lang.bind(this, this._updateLogout));
1922-
1923- this._lockdownSettings.connect('changed::' + DISABLE_LOCK_SCREEN_KEY,
1924- Lang.bind(this, this._updateLockScreen));
1925- this._updateSwitchUser();
1926- this._updateLogout();
1927- this._updateLockScreen();
1928-
1929- this._updatesFile = Gio.File.new_for_path('/var/lib/PackageKit/prepared-update');
1930- this._updatesMonitor = this._updatesFile.monitor(Gio.FileMonitorFlags.NONE, null);
1931- this._updatesMonitor.connect('changed', Lang.bind(this, this._updateInstallUpdates));
1932-
1933- // Whether shutdown is available or not depends on both lockdown
1934- // settings (disable-log-out) and Polkit policy - the latter doesn't
1935- // notify, so we update the menu item each time the menu opens or
1936- // the lockdown setting changes, which should be close enough.
1937- this.menu.connect('open-state-changed', Lang.bind(this,
1938- function(menu, open) {
1939- if (open)
1940- this._updateHaveShutdown();
1941- }));
1942- this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
1943- Lang.bind(this, this._updateHaveShutdown));
1944-
1945- this._upClient.connect('notify::can-suspend', Lang.bind(this, this._updateSuspendOrPowerOff));
1946-
1947- Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
1948- this._sessionUpdated();
1949- },
1950-
1951- _sessionUpdated: function() {
1952- this.actor.visible = !Main.sessionMode.isGreeter;
1953-
1954- let allowSettings = Main.sessionMode.allowSettings;
1955- this._statusChooser.setSensitive(allowSettings);
1956- this._systemSettings.visible = allowSettings;
1957-
1958- this.setSensitive(!Main.sessionMode.isLocked);
1959- this._updatePresenceIcon();
1960- },
1961-
1962- _onDestroy: function() {
1963- this._user.disconnect(this._userLoadedId);
1964- this._user.disconnect(this._userChangedId);
1965- },
1966-
1967- _updateUserName: function() {
1968- if (this._user.is_loaded)
1969- this._name.set_text(this._user.get_real_name());
1970- else
1971- this._name.set_text("");
1972- },
1973-
1974- _updateMultiUser: function() {
1975- this._updateSwitchUser();
1976- this._updateLogout();
1977- },
1978-
1979- _updateSwitchUser: function() {
1980- let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
1981- let multiUser = this._userManager.can_switch() && this._userManager.has_multiple_users;
1982-
1983- this._loginScreenItem.actor.visible = allowSwitch && multiUser;
1984- },
1985-
1986- _updateLogout: function() {
1987- let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
1988- let alwaysShow = global.settings.get_boolean(ALWAYS_SHOW_LOG_OUT_KEY);
1989- let systemAccount = this._user.system_account;
1990- let localAccount = this._user.local_account;
1991- let multiUser = this._userManager.has_multiple_users;
1992- let multiSession = Gdm.get_session_ids().length > 1;
1993-
1994- this._logoutItem.actor.visible = allowLogout && (alwaysShow || multiUser || multiSession || systemAccount || !localAccount);
1995- },
1996-
1997- _updateLockScreen: function() {
1998- let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
1999- this._lockScreenItem.actor.visible = allowLockScreen;
2000- },
2001-
2002- _updateInstallUpdates: function() {
2003- let haveUpdates = this._updatesFile.query_exists(null);
2004- this._installUpdatesItem.actor.visible = haveUpdates && this._haveShutdown;
2005- },
2006-
2007- _updateHaveShutdown: function() {
2008- this._session.CanShutdownRemote(Lang.bind(this,
2009- function(result, error) {
2010- if (!error) {
2011- this._haveShutdown = result[0];
2012- this._updateInstallUpdates();
2013- this._updateSuspendOrPowerOff();
2014- }
2015- }));
2016- },
2017-
2018- _updateSuspendOrPowerOff: function() {
2019- this._haveSuspend = this._upClient.get_can_suspend();
2020-
2021- if (!this._suspendOrPowerOffItem)
2022- return;
2023-
2024- this._suspendOrPowerOffItem.actor.visible = this._haveShutdown || this._haveSuspend;
2025-
2026- // If we can't power off show Suspend instead
2027- // and disable the alt key
2028- if (!this._haveShutdown) {
2029- this._suspendOrPowerOffItem.updateText(_("Suspend"), null);
2030- } else if (!this._haveSuspend) {
2031- this._suspendOrPowerOffItem.updateText(_("Power Off"), null);
2032- } else {
2033- this._suspendOrPowerOffItem.updateText(_("Power Off"), _("Suspend"));
2034- }
2035- },
2036-
2037- _updateSwitch: function(status) {
2038- let active = status == GnomeSession.PresenceStatus.AVAILABLE;
2039- this._notificationsSwitch.setToggleState(active);
2040- },
2041-
2042- _updatePresenceIcon: function(accountMgr, presence, status, message) {
2043- if (Main.sessionMode.isLocked)
2044- this._iconBox.child = this._lockedIcon;
2045- else if (presence == Tp.ConnectionPresenceType.AVAILABLE)
2046- this._iconBox.child = this._availableIcon;
2047- else if (presence == Tp.ConnectionPresenceType.BUSY)
2048- this._iconBox.child = this._busyIcon;
2049- else if (presence == Tp.ConnectionPresenceType.HIDDEN)
2050- this._iconBox.child = this._invisibleIcon;
2051- else if (presence == Tp.ConnectionPresenceType.AWAY)
2052- this._iconBox.child = this._awayIcon;
2053- else if (presence == Tp.ConnectionPresenceType.EXTENDED_AWAY)
2054- this._iconBox.child = this._idleIcon;
2055- else
2056- this._iconBox.child = this._offlineIcon;
2057- },
2058-
2059- _setupAccounts: function() {
2060- let accounts = this._accountMgr.get_valid_accounts();
2061- for (let i = 0; i < accounts.length; i++) {
2062- accounts[i]._changingId = accounts[i].connect('notify::connection-status',
2063- Lang.bind(this, this._updateChangingPresence));
2064- }
2065- this._updateChangingPresence();
2066- },
2067-
2068- _onAccountEnabled: function(accountMgr, account) {
2069- if (!account._changingId)
2070- account._changingId = account.connect('notify::connection-status',
2071- Lang.bind(this, this._updateChangingPresence));
2072- this._updateChangingPresence();
2073- },
2074-
2075- _onAccountRemoved: function(accountMgr, account) {
2076- if (account._changingId) {
2077- account.disconnect(account._changingId);
2078- account._changingId = 0;
2079- }
2080- this._updateChangingPresence();
2081- },
2082-
2083- _updateChangingPresence: function() {
2084- let accounts = this._accountMgr.get_valid_accounts();
2085- let changing = false;
2086- for (let i = 0; i < accounts.length; i++) {
2087- if (accounts[i].connection_status == Tp.ConnectionStatus.CONNECTING) {
2088- changing = true;
2089- break;
2090- }
2091- }
2092-
2093- if (changing) {
2094- this._iconBox.child = this._pendingIcon;
2095- } else {
2096- let [presence, s, msg] = this._accountMgr.get_most_available_presence();
2097- this._updatePresenceIcon(this._accountMgr, presence, s, msg);
2098- }
2099- },
2100-
2101- _createSubMenu: function() {
2102- let item;
2103-
2104- item = new IMStatusChooserItem();
2105- item.connect('activate', Lang.bind(this, this._onMyAccountActivate));
2106- this.menu.addMenuItem(item);
2107- this._statusChooser = item;
2108-
2109- item = new PopupMenu.PopupSwitchMenuItem(_("Notifications"));
2110- item.connect('toggled', Lang.bind(this, this._updatePresenceStatus));
2111- this.menu.addMenuItem(item);
2112- this._notificationsSwitch = item;
2113-
2114- item = new PopupMenu.PopupSeparatorMenuItem();
2115- this.menu.addMenuItem(item);
2116-
2117- item = new PopupMenu.PopupMenuItem(_("System Settings"));
2118- item.connect('activate', Lang.bind(this, this._onPreferencesActivate));
2119- this.menu.addMenuItem(item);
2120- this._systemSettings = item;
2121-
2122- item = new PopupMenu.PopupSeparatorMenuItem();
2123- this.menu.addMenuItem(item);
2124-
2125- item = new PopupMenu.PopupMenuItem(_("Switch User"));
2126- item.connect('activate', Lang.bind(this, this._onLoginScreenActivate));
2127- this.menu.addMenuItem(item);
2128- this._loginScreenItem = item;
2129-
2130- item = new PopupMenu.PopupMenuItem(_("Log Out"));
2131- item.connect('activate', Lang.bind(this, this._onQuitSessionActivate));
2132- this.menu.addMenuItem(item);
2133- this._logoutItem = item;
2134-
2135- item = new PopupMenu.PopupMenuItem(_("Lock"));
2136- item.connect('activate', Lang.bind(this, this._onLockScreenActivate));
2137- this.menu.addMenuItem(item);
2138- this._lockScreenItem = item;
2139-
2140- item = new PopupMenu.PopupSeparatorMenuItem();
2141- this.menu.addMenuItem(item);
2142-
2143- item = new PopupMenu.PopupAlternatingMenuItem(_("Power Off"),
2144- _("Suspend"));
2145- this.menu.addMenuItem(item);
2146- item.connect('activate', Lang.bind(this, this._onSuspendOrPowerOffActivate));
2147- this._suspendOrPowerOffItem = item;
2148- this._updateSuspendOrPowerOff();
2149-
2150- item = new PopupMenu.PopupMenuItem(_("Install Updates & Restart"));
2151- item.connect('activate', Lang.bind(this, this._onInstallUpdatesActivate));
2152- this.menu.addMenuItem(item);
2153- this._installUpdatesItem = item;
2154- },
2155-
2156- _updatePresenceStatus: function(item, event) {
2157- let status;
2158-
2159- if (item.state) {
2160- status = GnomeSession.PresenceStatus.AVAILABLE;
2161- } else {
2162- status = GnomeSession.PresenceStatus.BUSY;
2163-
2164- let [presence, s, msg] = this._accountMgr.get_most_available_presence();
2165- let newPresence = this._statusChooser.getIMPresenceForSessionStatus(status);
2166- if (newPresence != presence &&
2167- newPresence == Tp.ConnectionPresenceType.BUSY)
2168- Main.notify(_("Your chat status will be set to busy"),
2169- _("Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know that you might not see their messages."));
2170- }
2171-
2172- this._presence.status = status;
2173- },
2174-
2175- _onMyAccountActivate: function() {
2176- Main.overview.hide();
2177- let app = Shell.AppSystem.get_default().lookup_setting('gnome-user-accounts-panel.desktop');
2178- app.activate();
2179- },
2180-
2181- _onPreferencesActivate: function() {
2182- Main.overview.hide();
2183- let app = Shell.AppSystem.get_default().lookup_app('gnome-control-center.desktop');
2184- app.activate();
2185- },
2186-
2187- _onLockScreenActivate: function() {
2188- this.menu.close(BoxPointer.PopupAnimation.NONE);
2189- Main.overview.hide();
2190- Main.screenShield.lock(true);
2191- },
2192-
2193- _onLoginScreenActivate: function() {
2194- this.menu.close(BoxPointer.PopupAnimation.NONE);
2195- Main.overview.hide();
2196- Main.screenShield.lock(false);
2197- Gdm.goto_login_session_sync(null);
2198- },
2199-
2200- _onQuitSessionActivate: function() {
2201- Main.overview.hide();
2202- this._session.LogoutRemote(0);
2203- },
2204-
2205- _onInstallUpdatesActivate: function() {
2206- Main.overview.hide();
2207- Util.spawn(['pkexec', '/usr/libexec/pk-trigger-offline-update']);
2208-
2209- this._session.RebootRemote();
2210- },
2211-
2212- _onSuspendOrPowerOffActivate: function() {
2213- Main.overview.hide();
2214-
2215- if (this._haveShutdown &&
2216- this._suspendOrPowerOffItem.state == PopupMenu.PopupAlternatingMenuItemState.DEFAULT) {
2217- this._session.ShutdownRemote();
2218- } else {
2219- if (this._screenSaverSettings.get_boolean(LOCK_ENABLED_KEY)) {
2220- let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
2221- Main.screenShield.disconnect(tmpId);
2222-
2223- this._upClient.suspend_sync(null);
2224- }));
2225-
2226- this.menu.close(BoxPointer.PopupAnimation.NONE);
2227- Main.screenShield.lock(true);
2228- } else {
2229- this._upClient.suspend_sync(null);
2230- }
2231- }
2232- }
2233-});
2234
2235=== removed directory '.pc/ubuntu_lock_on_suspend.patch'
2236=== removed directory '.pc/ubuntu_lock_on_suspend.patch/js'
2237=== removed directory '.pc/ubuntu_lock_on_suspend.patch/js/ui'
2238=== removed file '.pc/ubuntu_lock_on_suspend.patch/js/ui/userMenu.js'
2239--- .pc/ubuntu_lock_on_suspend.patch/js/ui/userMenu.js 2012-11-26 15:57:51 +0000
2240+++ .pc/ubuntu_lock_on_suspend.patch/js/ui/userMenu.js 1970-01-01 00:00:00 +0000
2241@@ -1,885 +0,0 @@
2242-// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
2243-
2244-const AccountsService = imports.gi.AccountsService;
2245-const Gdm = imports.gi.Gdm;
2246-const Gio = imports.gi.Gio;
2247-const GLib = imports.gi.GLib;
2248-const Lang = imports.lang;
2249-const Pango = imports.gi.Pango;
2250-const Shell = imports.gi.Shell;
2251-const St = imports.gi.St;
2252-const Tp = imports.gi.TelepathyGLib;
2253-const UPowerGlib = imports.gi.UPowerGlib;
2254-const Atk = imports.gi.Atk;
2255-
2256-const BoxPointer = imports.ui.boxpointer;
2257-const GnomeSession = imports.misc.gnomeSession;
2258-const Main = imports.ui.main;
2259-const PanelMenu = imports.ui.panelMenu;
2260-const PopupMenu = imports.ui.popupMenu;
2261-const Params = imports.misc.params;
2262-const UnlockDialog = imports.ui.unlockDialog;
2263-const Util = imports.misc.util;
2264-
2265-const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
2266-const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver';
2267-const DISABLE_USER_SWITCH_KEY = 'disable-user-switching';
2268-const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen';
2269-const DISABLE_LOG_OUT_KEY = 'disable-log-out';
2270-const LOCK_ENABLED_KEY = 'lock-enabled';
2271-const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
2272-
2273-const DIALOG_ICON_SIZE = 64;
2274-
2275-const IMStatus = {
2276- AVAILABLE: 0,
2277- BUSY: 1,
2278- HIDDEN: 2,
2279- AWAY: 3,
2280- IDLE: 4,
2281- OFFLINE: 5,
2282- LAST: 6
2283-};
2284-
2285-// Adapted from gdm/gui/user-switch-applet/applet.c
2286-//
2287-// Copyright (C) 2004-2005 James M. Cape <jcape@ignore-your.tv>.
2288-// Copyright (C) 2008,2009 Red Hat, Inc.
2289-
2290-const UserAvatarWidget = new Lang.Class({
2291- Name: 'UserAvatarWidget',
2292-
2293- _init: function(user, params) {
2294- this._user = user;
2295- params = Params.parse(params, { reactive: false,
2296- iconSize: DIALOG_ICON_SIZE,
2297- styleClass: 'status-chooser-user-icon' });
2298- this._iconSize = params.iconSize;
2299-
2300- this.actor = new St.Bin({ style_class: params.styleClass,
2301- track_hover: params.reactive,
2302- reactive: params.reactive });
2303- },
2304-
2305- setSensitive: function(sensitive) {
2306- this.actor.can_focus = sensitive;
2307- this.actor.reactive = sensitive;
2308- },
2309-
2310- update: function() {
2311- let iconFile = this._user.get_icon_file();
2312- if (!GLib.file_test(iconFile, GLib.FileTest.EXISTS))
2313- iconFile = null;
2314-
2315- if (iconFile) {
2316- let file = Gio.File.new_for_path(iconFile);
2317- this.actor.child = null;
2318- this.actor.style = 'background-image: url("%s");'.format(iconFile);
2319-
2320- // AccountsService uses a fixed location for avatar images, so
2321- // we need to clear out all cached data to pick up image changes,
2322- // see https://bugzilla.gnome.org/show_bug.cgi?id=679268
2323- this.actor.clear_background_image();
2324- } else {
2325- this.actor.style = null;
2326- this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic',
2327- icon_size: this._iconSize });
2328- }
2329- }
2330-});
2331-
2332-const IMStatusItem = new Lang.Class({
2333- Name: 'IMStatusItem',
2334- Extends: PopupMenu.PopupBaseMenuItem,
2335-
2336- _init: function(label, iconName) {
2337- this.parent();
2338-
2339- this.actor.add_style_class_name('status-chooser-status-item');
2340-
2341- this._icon = new St.Icon({ style_class: 'popup-menu-icon' });
2342- this.addActor(this._icon);
2343-
2344- if (iconName)
2345- this._icon.icon_name = iconName;
2346-
2347- this.label = new St.Label({ text: label });
2348- this.actor.label_actor = this.label;
2349- this.addActor(this.label);
2350- }
2351-});
2352-
2353-const IMUserNameItem = new Lang.Class({
2354- Name: 'IMUserNameItem',
2355- Extends: PopupMenu.PopupBaseMenuItem,
2356-
2357- _init: function() {
2358- this.parent({ reactive: false,
2359- can_focus: false,
2360- style_class: 'status-chooser-user-name' });
2361-
2362- this._wrapper = new Shell.GenericContainer();
2363- this._wrapper.connect('get-preferred-width',
2364- Lang.bind(this, this._wrapperGetPreferredWidth));
2365- this._wrapper.connect('get-preferred-height',
2366- Lang.bind(this, this._wrapperGetPreferredHeight));
2367- this._wrapper.connect('allocate',
2368- Lang.bind(this, this._wrapperAllocate));
2369- this.addActor(this._wrapper, { expand: true, span: -1 });
2370-
2371- this.label = new St.Label();
2372- this.label.clutter_text.set_line_wrap(true);
2373- this.label.clutter_text.set_ellipsize(Pango.EllipsizeMode.NONE);
2374- this._wrapper.add_actor(this.label);
2375- },
2376-
2377- _wrapperGetPreferredWidth: function(actor, forHeight, alloc) {
2378- alloc.min_size = 1;
2379- alloc.natural_size = 1;
2380- },
2381-
2382- _wrapperGetPreferredHeight: function(actor, forWidth, alloc) {
2383- [alloc.min_size, alloc.natural_size] = this.label.get_preferred_height(forWidth);
2384- },
2385-
2386- _wrapperAllocate: function(actor, box, flags) {
2387- this.label.allocate(box, flags);
2388- }
2389-});
2390-
2391-const IMStatusChooserItem = new Lang.Class({
2392- Name: 'IMStatusChooserItem',
2393- Extends: PopupMenu.PopupBaseMenuItem,
2394-
2395- _init: function() {
2396- this.parent({ reactive: false,
2397- can_focus: false,
2398- style_class: 'status-chooser' });
2399-
2400- this._userManager = AccountsService.UserManager.get_default();
2401- this._user = this._userManager.get_user(GLib.get_user_name());
2402-
2403- this._avatar = new UserAvatarWidget(this._user, { reactive: true });
2404- this._iconBin = new St.Button({ child: this._avatar.actor });
2405- this.addActor(this._iconBin);
2406-
2407- this._iconBin.connect('clicked', Lang.bind(this,
2408- function() {
2409- this.activate();
2410- }));
2411-
2412- this._section = new PopupMenu.PopupMenuSection();
2413- this.addActor(this._section.actor);
2414-
2415- this._name = new IMUserNameItem();
2416- this._section.addMenuItem(this._name);
2417-
2418- this._combo = new PopupMenu.PopupComboBoxMenuItem({ style_class: 'status-chooser-combo' });
2419- this._section.addMenuItem(this._combo);
2420-
2421- let item;
2422-
2423- item = new IMStatusItem(_("Available"), 'user-available-symbolic');
2424- this._combo.addMenuItem(item, IMStatus.AVAILABLE);
2425-
2426- item = new IMStatusItem(_("Busy"), 'user-busy-symbolic');
2427- this._combo.addMenuItem(item, IMStatus.BUSY);
2428-
2429- item = new IMStatusItem(_("Invisible"), 'user-invisible-symbolic');
2430- this._combo.addMenuItem(item, IMStatus.HIDDEN);
2431-
2432- item = new IMStatusItem(_("Away"), 'user-away-symbolic');
2433- this._combo.addMenuItem(item, IMStatus.AWAY);
2434-
2435- item = new IMStatusItem(_("Idle"), 'user-idle-symbolic');
2436- this._combo.addMenuItem(item, IMStatus.IDLE);
2437-
2438- item = new IMStatusItem(_("Unavailable"), 'user-offline-symbolic');
2439- this._combo.addMenuItem(item, IMStatus.OFFLINE);
2440-
2441- this._combo.connect('active-item-changed',
2442- Lang.bind(this, this._changeIMStatus));
2443-
2444- this._presence = new GnomeSession.Presence();
2445- this._presence.connectSignal('StatusChanged', Lang.bind(this, function(proxy, senderName, [status]) {
2446- this._sessionStatusChanged(status);
2447- }));
2448-
2449- this._sessionPresenceRestored = false;
2450- this._imPresenceRestored = false;
2451- this._currentPresence = undefined;
2452-
2453- this._accountMgr = Tp.AccountManager.dup();
2454- this._accountMgr.connect('most-available-presence-changed',
2455- Lang.bind(this, this._IMStatusChanged));
2456- this._accountMgr.connect('account-enabled',
2457- Lang.bind(this, this._IMAccountsChanged));
2458- this._accountMgr.connect('account-disabled',
2459- Lang.bind(this, this._IMAccountsChanged));
2460- this._accountMgr.connect('account-removed',
2461- Lang.bind(this, this._IMAccountsChanged));
2462- this._accountMgr.connect('account-validity-changed',
2463- Lang.bind(this, this._IMAccountsChanged));
2464- this._accountMgr.prepare_async(null, Lang.bind(this,
2465- function(mgr) {
2466- this._IMAccountsChanged(mgr);
2467-
2468- if (this._networkMonitor.network_available)
2469- this._restorePresence();
2470- else
2471- this._setComboboxPresence(Tp.ConnectionPresenceType.OFFLINE);
2472- }));
2473-
2474- this._networkMonitor = Gio.NetworkMonitor.get_default();
2475- this._networkMonitor.connect('network-changed',
2476- Lang.bind(this, function(monitor, available) {
2477- this._IMAccountsChanged(this._accountMgr);
2478-
2479- if (available && !this._imPresenceRestored)
2480- this._restorePresence();
2481- }));
2482-
2483- this._userLoadedId = this._user.connect('notify::is-loaded',
2484- Lang.bind(this,
2485- this._updateUser));
2486- this._userChangedId = this._user.connect('changed',
2487- Lang.bind(this,
2488- this._updateUser));
2489- this.actor.connect('notify::mapped', Lang.bind(this, function() {
2490- if (this.actor.mapped)
2491- this._updateUser();
2492- }));
2493-
2494- this.connect('sensitive-changed', function(sensitive) {
2495- this._avatar.setSensitive(sensitive);
2496- });
2497- },
2498-
2499- _restorePresence: function() {
2500- let [presence, status, msg] = this._accountMgr.get_most_available_presence();
2501-
2502- let savedPresence = global.settings.get_int('saved-im-presence');
2503-
2504- if (savedPresence == presence) {
2505- this._IMStatusChanged(this._accountMgr, presence, status, msg);
2506- } else {
2507- this._setComboboxPresence(savedPresence);
2508- status = this._statusForPresence(savedPresence);
2509- msg = msg ? msg : '';
2510- this._accountMgr.set_all_requested_presences(savedPresence, status, msg);
2511- }
2512- },
2513-
2514- destroy: function() {
2515- // clean up signal handlers
2516- if (this._userLoadedId != 0) {
2517- this._user.disconnect(this._userLoadedId);
2518- this._userLoadedId = 0;
2519- }
2520-
2521- if (this._userChangedId != 0) {
2522- this._user.disconnect(this._userChangedId);
2523- this._userChangedId = 0;
2524- }
2525-
2526- this.parent();
2527- },
2528-
2529- // Override getColumnWidths()/setColumnWidths() to make the item
2530- // independent from the overall column layout of the menu
2531- getColumnWidths: function() {
2532- return [];
2533- },
2534-
2535- setColumnWidths: function(widths) {
2536- },
2537-
2538- _updateUser: function() {
2539- if (this._user.is_loaded)
2540- this._name.label.set_text(this._user.get_real_name());
2541- else
2542- this._name.label.set_text("");
2543-
2544- this._avatar.update();
2545- },
2546-
2547- _statusForPresence: function(presence) {
2548- switch(presence) {
2549- case Tp.ConnectionPresenceType.AVAILABLE:
2550- return 'available';
2551- case Tp.ConnectionPresenceType.BUSY:
2552- return 'busy';
2553- case Tp.ConnectionPresenceType.OFFLINE:
2554- return 'offline';
2555- case Tp.ConnectionPresenceType.HIDDEN:
2556- return 'hidden';
2557- case Tp.ConnectionPresenceType.AWAY:
2558- return 'away';
2559- case Tp.ConnectionPresenceType.EXTENDED_AWAY:
2560- return 'xa';
2561- default:
2562- return 'unknown';
2563- }
2564- },
2565-
2566- _IMAccountsChanged: function(mgr) {
2567- let accounts = mgr.get_valid_accounts().filter(function(account) {
2568- return account.enabled;
2569- });
2570- let sensitive = accounts.length > 0 && this._networkMonitor.network_available;
2571- this._combo.setSensitive(sensitive);
2572- },
2573-
2574- _IMStatusChanged: function(accountMgr, presence, status, message) {
2575- if (!this._imPresenceRestored)
2576- this._imPresenceRestored = true;
2577-
2578- if (presence == this._currentPresence)
2579- return;
2580-
2581- this._currentPresence = presence;
2582- this._setComboboxPresence(presence);
2583-
2584- if (!this._sessionPresenceRestored) {
2585- this._sessionStatusChanged(this._presence.status);
2586- return;
2587- }
2588-
2589- if (presence == Tp.ConnectionPresenceType.AVAILABLE)
2590- this._presence.status = GnomeSession.PresenceStatus.AVAILABLE;
2591-
2592- // We ignore the actual value of _expectedPresence and never safe
2593- // the first presence change after an "automatic" change, assuming
2594- // that it is the response to our request; this is to account for
2595- // mission control falling back to "similar" presences if an account
2596- // type does not implement the requested presence.
2597- if (!this._expectedPresence)
2598- global.settings.set_int('saved-im-presence', presence);
2599- else
2600- this._expectedPresence = undefined;
2601- },
2602-
2603- _setComboboxPresence: function(presence) {
2604- let activatedItem;
2605-
2606- if (presence == Tp.ConnectionPresenceType.AVAILABLE)
2607- activatedItem = IMStatus.AVAILABLE;
2608- else if (presence == Tp.ConnectionPresenceType.BUSY)
2609- activatedItem = IMStatus.BUSY;
2610- else if (presence == Tp.ConnectionPresenceType.HIDDEN)
2611- activatedItem = IMStatus.HIDDEN;
2612- else if (presence == Tp.ConnectionPresenceType.AWAY)
2613- activatedItem = IMStatus.AWAY;
2614- else if (presence == Tp.ConnectionPresenceType.EXTENDED_AWAY)
2615- activatedItem = IMStatus.IDLE;
2616- else
2617- activatedItem = IMStatus.OFFLINE;
2618-
2619- this._combo.setActiveItem(activatedItem);
2620- for (let i = 0; i < IMStatus.LAST; i++) {
2621- if (i == IMStatus.AVAILABLE || i == IMStatus.OFFLINE)
2622- continue; // always visible
2623-
2624- this._combo.setItemVisible(i, i == activatedItem);
2625- }
2626- },
2627-
2628- _changeIMStatus: function(menuItem, id) {
2629- let [presence, s, msg] = this._accountMgr.get_most_available_presence();
2630- let newPresence, status;
2631-
2632- if (id == IMStatus.AVAILABLE) {
2633- newPresence = Tp.ConnectionPresenceType.AVAILABLE;
2634- } else if (id == IMStatus.OFFLINE) {
2635- newPresence = Tp.ConnectionPresenceType.OFFLINE;
2636- } else
2637- return;
2638-
2639- status = this._statusForPresence(newPresence);
2640- msg = msg ? msg : '';
2641- this._accountMgr.set_all_requested_presences(newPresence, status, msg);
2642- },
2643-
2644- getIMPresenceForSessionStatus: function(sessionStatus) {
2645- // Restore the last user-set presence when coming back from
2646- // BUSY/IDLE (otherwise the last user-set presence matches
2647- // the current one)
2648- if (sessionStatus == GnomeSession.PresenceStatus.AVAILABLE)
2649- return global.settings.get_int('saved-im-presence');
2650-
2651- if (sessionStatus == GnomeSession.PresenceStatus.BUSY) {
2652- // Only change presence if the current one is "more present" than
2653- // busy, or if coming back from idle
2654- if (this._currentPresence == Tp.ConnectionPresenceType.AVAILABLE ||
2655- this._currentPresence == Tp.ConnectionPresenceType.EXTENDED_AWAY)
2656- return Tp.ConnectionPresenceType.BUSY;
2657- }
2658-
2659- if (sessionStatus == GnomeSession.PresenceStatus.IDLE) {
2660- // Only change presence if the current one is "more present" than
2661- // idle
2662- if (this._currentPresence != Tp.ConnectionPresenceType.OFFLINE &&
2663- this._currentPresence != Tp.ConnectionPresenceType.HIDDEN)
2664- return Tp.ConnectionPresenceType.EXTENDED_AWAY;
2665- }
2666-
2667- return this._currentPresence;
2668- },
2669-
2670- _sessionStatusChanged: function(sessionStatus) {
2671- if (!this._imPresenceRestored)
2672- return;
2673-
2674- let savedStatus = global.settings.get_int('saved-session-presence');
2675- if (!this._sessionPresenceRestored) {
2676-
2677- // We should never save/restore a status other than AVAILABLE
2678- // or BUSY
2679- if (savedStatus != GnomeSession.PresenceStatus.AVAILABLE &&
2680- savedStatus != GnomeSession.PresenceStatus.BUSY)
2681- savedStatus = GnomeSession.PresenceStatus.AVAILABLE;
2682-
2683- if (sessionStatus != savedStatus) {
2684- this._presence.status = savedStatus;
2685- return;
2686- }
2687- this._sessionPresenceRestored = true;
2688- }
2689-
2690- if ((sessionStatus == GnomeSession.PresenceStatus.AVAILABLE ||
2691- sessionStatus == GnomeSession.PresenceStatus.BUSY) &&
2692- savedStatus != sessionStatus)
2693- global.settings.set_int('saved-session-presence', sessionStatus);
2694-
2695- let [presence, s, msg] = this._accountMgr.get_most_available_presence();
2696- let newPresence, status;
2697-
2698- let newPresence = this.getIMPresenceForSessionStatus(sessionStatus);
2699-
2700- if (!newPresence || newPresence == presence)
2701- return;
2702-
2703- status = this._statusForPresence(newPresence);
2704- msg = msg ? msg : '';
2705-
2706- this._expectedPresence = newPresence;
2707- this._accountMgr.set_all_requested_presences(newPresence, status, msg);
2708- }
2709-});
2710-
2711-
2712-const UserMenuButton = new Lang.Class({
2713- Name: 'UserMenuButton',
2714- Extends: PanelMenu.Button,
2715-
2716- _init: function() {
2717- this.parent(0.0);
2718-
2719- this.actor.accessible_role = Atk.Role.MENU;
2720-
2721- let box = new St.BoxLayout({ name: 'panelUserMenu' });
2722- this.actor.add_actor(box);
2723-
2724- this._screenSaverSettings = new Gio.Settings({ schema: SCREENSAVER_SCHEMA });
2725- this._lockdownSettings = new Gio.Settings({ schema: LOCKDOWN_SCHEMA });
2726-
2727- this._userManager = AccountsService.UserManager.get_default();
2728-
2729- this._user = this._userManager.get_user(GLib.get_user_name());
2730- this._presence = new GnomeSession.Presence();
2731- this._session = new GnomeSession.SessionManager();
2732- this._haveShutdown = true;
2733-
2734- this._accountMgr = Tp.AccountManager.dup();
2735-
2736- this._upClient = new UPowerGlib.Client();
2737- this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
2738-
2739- this._iconBox = new St.Bin();
2740- box.add(this._iconBox, { y_align: St.Align.MIDDLE, y_fill: false });
2741-
2742- let textureCache = St.TextureCache.get_default();
2743- this._offlineIcon = new St.Icon({ icon_name: 'user-offline-symbolic',
2744- style_class: 'popup-menu-icon' });
2745- this._availableIcon = new St.Icon({ icon_name: 'user-available-symbolic',
2746- style_class: 'popup-menu-icon' });
2747- this._busyIcon = new St.Icon({ icon_name: 'user-busy-symbolic',
2748- style_class: 'popup-menu-icon' });
2749- this._invisibleIcon = new St.Icon({ icon_name: 'user-invisible-symbolic',
2750- style_class: 'popup-menu-icon' });
2751- this._awayIcon = new St.Icon({ icon_name: 'user-away-symbolic',
2752- style_class: 'popup-menu-icon' });
2753- this._idleIcon = new St.Icon({ icon_name: 'user-idle-symbolic',
2754- style_class: 'popup-menu-icon' });
2755- this._pendingIcon = new St.Icon({ icon_name: 'user-status-pending-symbolic',
2756- style_class: 'popup-menu-icon' });
2757- this._lockedIcon = new St.Icon({ icon_name: 'changes-prevent-symbolic',
2758- style_class: 'popup-menu-icon' });
2759-
2760- this._accountMgr.connect('most-available-presence-changed',
2761- Lang.bind(this, this._updatePresenceIcon));
2762- this._accountMgr.connect('account-enabled',
2763- Lang.bind(this, this._onAccountEnabled));
2764- this._accountMgr.connect('account-removed',
2765- Lang.bind(this, this._onAccountRemoved));
2766- this._accountMgr.prepare_async(null, Lang.bind(this,
2767- function(mgr) {
2768- let [presence, s, msg] = mgr.get_most_available_presence();
2769- this._updatePresenceIcon(mgr, presence, s, msg);
2770- this._setupAccounts();
2771- }));
2772-
2773- this._name = new St.Label();
2774- this.actor.label_actor = this._name;
2775- box.add(this._name, { y_align: St.Align.MIDDLE, y_fill: false });
2776- this._userLoadedId = this._user.connect('notify::is-loaded', Lang.bind(this, this._updateUserName));
2777- this._userChangedId = this._user.connect('changed', Lang.bind(this, this._updateUserName));
2778- this._updateUserName();
2779-
2780- this._createSubMenu();
2781-
2782- this._updateSwitch(this._presence.status);
2783- this._presence.connectSignal('StatusChanged', Lang.bind(this, function (proxy, senderName, [status]) {
2784- this._updateSwitch(status);
2785- }));
2786-
2787- this._userManager.connect('notify::is-loaded',
2788- Lang.bind(this, this._updateMultiUser));
2789- this._userManager.connect('notify::has-multiple-users',
2790- Lang.bind(this, this._updateMultiUser));
2791- this._userManager.connect('user-added',
2792- Lang.bind(this, this._updateMultiUser));
2793- this._userManager.connect('user-removed',
2794- Lang.bind(this, this._updateMultiUser));
2795- this._lockdownSettings.connect('changed::' + DISABLE_USER_SWITCH_KEY,
2796- Lang.bind(this, this._updateSwitchUser));
2797- this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
2798- Lang.bind(this, this._updateLogout));
2799-
2800- this._lockdownSettings.connect('changed::' + DISABLE_LOCK_SCREEN_KEY,
2801- Lang.bind(this, this._updateLockScreen));
2802- this._updateSwitchUser();
2803- this._updateLogout();
2804- this._updateLockScreen();
2805-
2806- this._updatesFile = Gio.File.new_for_path('/var/lib/PackageKit/prepared-update');
2807- this._updatesMonitor = this._updatesFile.monitor(Gio.FileMonitorFlags.NONE, null);
2808- this._updatesMonitor.connect('changed', Lang.bind(this, this._updateInstallUpdates));
2809-
2810- // Whether shutdown is available or not depends on both lockdown
2811- // settings (disable-log-out) and Polkit policy - the latter doesn't
2812- // notify, so we update the menu item each time the menu opens or
2813- // the lockdown setting changes, which should be close enough.
2814- this.menu.connect('open-state-changed', Lang.bind(this,
2815- function(menu, open) {
2816- if (open)
2817- this._updateHaveShutdown();
2818- }));
2819- this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
2820- Lang.bind(this, this._updateHaveShutdown));
2821-
2822- this._upClient.connect('notify::can-suspend', Lang.bind(this, this._updateSuspendOrPowerOff));
2823-
2824- Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
2825- this._sessionUpdated();
2826- },
2827-
2828- _sessionUpdated: function() {
2829- this.actor.visible = !Main.sessionMode.isGreeter;
2830-
2831- let allowSettings = Main.sessionMode.allowSettings;
2832- this._statusChooser.setSensitive(allowSettings);
2833- this._systemSettings.visible = allowSettings;
2834-
2835- this.setSensitive(!Main.sessionMode.isLocked);
2836- this._updatePresenceIcon();
2837- },
2838-
2839- _onDestroy: function() {
2840- this._user.disconnect(this._userLoadedId);
2841- this._user.disconnect(this._userChangedId);
2842- },
2843-
2844- _updateUserName: function() {
2845- if (this._user.is_loaded)
2846- this._name.set_text(this._user.get_real_name());
2847- else
2848- this._name.set_text("");
2849- },
2850-
2851- _updateMultiUser: function() {
2852- this._updateSwitchUser();
2853- this._updateLogout();
2854- },
2855-
2856- _updateSwitchUser: function() {
2857- let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
2858- let multiUser = this._userManager.can_switch() && this._userManager.has_multiple_users;
2859-
2860- this._loginScreenItem.actor.visible = allowSwitch && multiUser;
2861- },
2862-
2863- _updateLogout: function() {
2864- let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
2865- let alwaysShow = global.settings.get_boolean(ALWAYS_SHOW_LOG_OUT_KEY);
2866- let systemAccount = this._user.system_account;
2867- let localAccount = this._user.local_account;
2868- let multiUser = this._userManager.has_multiple_users;
2869- let multiSession = Gdm.get_session_ids().length > 1;
2870-
2871- this._logoutItem.actor.visible = allowLogout && (alwaysShow || multiUser || multiSession || systemAccount || !localAccount);
2872- },
2873-
2874- _updateLockScreen: function() {
2875- let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
2876- this._lockScreenItem.actor.visible = allowLockScreen;
2877- },
2878-
2879- _updateInstallUpdates: function() {
2880- let haveUpdates = this._updatesFile.query_exists(null);
2881- this._installUpdatesItem.actor.visible = haveUpdates && this._haveShutdown;
2882- },
2883-
2884- _updateHaveShutdown: function() {
2885- this._session.CanShutdownRemote(Lang.bind(this,
2886- function(result, error) {
2887- if (!error) {
2888- this._haveShutdown = result[0];
2889- this._updateInstallUpdates();
2890- this._updateSuspendOrPowerOff();
2891- }
2892- }));
2893- },
2894-
2895- _updateSuspendOrPowerOff: function() {
2896- this._haveSuspend = this._upClient.get_can_suspend();
2897-
2898- if (!this._suspendOrPowerOffItem)
2899- return;
2900-
2901- this._suspendOrPowerOffItem.actor.visible = this._haveShutdown || this._haveSuspend;
2902-
2903- // If we can't power off show Suspend instead
2904- // and disable the alt key
2905- if (!this._haveShutdown) {
2906- this._suspendOrPowerOffItem.updateText(_("Suspend"), null);
2907- } else if (!this._haveSuspend) {
2908- this._suspendOrPowerOffItem.updateText(_("Power Off"), null);
2909- } else {
2910- this._suspendOrPowerOffItem.updateText(_("Power Off"), _("Suspend"));
2911- }
2912- },
2913-
2914- _updateSwitch: function(status) {
2915- let active = status == GnomeSession.PresenceStatus.AVAILABLE;
2916- this._notificationsSwitch.setToggleState(active);
2917- },
2918-
2919- _updatePresenceIcon: function(accountMgr, presence, status, message) {
2920- if (Main.sessionMode.isLocked)
2921- this._iconBox.child = this._lockedIcon;
2922- else if (presence == Tp.ConnectionPresenceType.AVAILABLE)
2923- this._iconBox.child = this._availableIcon;
2924- else if (presence == Tp.ConnectionPresenceType.BUSY)
2925- this._iconBox.child = this._busyIcon;
2926- else if (presence == Tp.ConnectionPresenceType.HIDDEN)
2927- this._iconBox.child = this._invisibleIcon;
2928- else if (presence == Tp.ConnectionPresenceType.AWAY)
2929- this._iconBox.child = this._awayIcon;
2930- else if (presence == Tp.ConnectionPresenceType.EXTENDED_AWAY)
2931- this._iconBox.child = this._idleIcon;
2932- else
2933- this._iconBox.child = this._offlineIcon;
2934- },
2935-
2936- _setupAccounts: function() {
2937- let accounts = this._accountMgr.get_valid_accounts();
2938- for (let i = 0; i < accounts.length; i++) {
2939- accounts[i]._changingId = accounts[i].connect('notify::connection-status',
2940- Lang.bind(this, this._updateChangingPresence));
2941- }
2942- this._updateChangingPresence();
2943- },
2944-
2945- _onAccountEnabled: function(accountMgr, account) {
2946- if (!account._changingId)
2947- account._changingId = account.connect('notify::connection-status',
2948- Lang.bind(this, this._updateChangingPresence));
2949- this._updateChangingPresence();
2950- },
2951-
2952- _onAccountRemoved: function(accountMgr, account) {
2953- if (account._changingId) {
2954- account.disconnect(account._changingId);
2955- account._changingId = 0;
2956- }
2957- this._updateChangingPresence();
2958- },
2959-
2960- _updateChangingPresence: function() {
2961- let accounts = this._accountMgr.get_valid_accounts();
2962- let changing = false;
2963- for (let i = 0; i < accounts.length; i++) {
2964- if (accounts[i].connection_status == Tp.ConnectionStatus.CONNECTING) {
2965- changing = true;
2966- break;
2967- }
2968- }
2969-
2970- if (changing) {
2971- this._iconBox.child = this._pendingIcon;
2972- } else {
2973- let [presence, s, msg] = this._accountMgr.get_most_available_presence();
2974- this._updatePresenceIcon(this._accountMgr, presence, s, msg);
2975- }
2976- },
2977-
2978- _createSubMenu: function() {
2979- let item;
2980-
2981- item = new IMStatusChooserItem();
2982- item.connect('activate', Lang.bind(this, this._onMyAccountActivate));
2983- this.menu.addMenuItem(item);
2984- this._statusChooser = item;
2985-
2986- item = new PopupMenu.PopupSwitchMenuItem(_("Notifications"));
2987- item.connect('toggled', Lang.bind(this, this._updatePresenceStatus));
2988- this.menu.addMenuItem(item);
2989- this._notificationsSwitch = item;
2990-
2991- item = new PopupMenu.PopupSeparatorMenuItem();
2992- this.menu.addMenuItem(item);
2993-
2994- item = new PopupMenu.PopupMenuItem(_("System Settings"));
2995- item.connect('activate', Lang.bind(this, this._onPreferencesActivate));
2996- this.menu.addMenuItem(item);
2997- this._systemSettings = item;
2998-
2999- item = new PopupMenu.PopupSeparatorMenuItem();
3000- this.menu.addMenuItem(item);
3001-
3002- item = new PopupMenu.PopupMenuItem(_("Switch User"));
3003- item.connect('activate', Lang.bind(this, this._onLoginScreenActivate));
3004- this.menu.addMenuItem(item);
3005- this._loginScreenItem = item;
3006-
3007- item = new PopupMenu.PopupMenuItem(_("Log Out"));
3008- item.connect('activate', Lang.bind(this, this._onQuitSessionActivate));
3009- this.menu.addMenuItem(item);
3010- this._logoutItem = item;
3011-
3012- item = new PopupMenu.PopupMenuItem(_("Lock"));
3013- item.connect('activate', Lang.bind(this, this._onLockScreenActivate));
3014- this.menu.addMenuItem(item);
3015- this._lockScreenItem = item;
3016-
3017- item = new PopupMenu.PopupSeparatorMenuItem();
3018- this.menu.addMenuItem(item);
3019-
3020- item = new PopupMenu.PopupAlternatingMenuItem(_("Power Off"),
3021- _("Suspend"));
3022- this.menu.addMenuItem(item);
3023- item.connect('activate', Lang.bind(this, this._onSuspendOrPowerOffActivate));
3024- this._suspendOrPowerOffItem = item;
3025- this._updateSuspendOrPowerOff();
3026-
3027- item = new PopupMenu.PopupMenuItem(_("Install Updates & Restart"));
3028- item.connect('activate', Lang.bind(this, this._onInstallUpdatesActivate));
3029- this.menu.addMenuItem(item);
3030- this._installUpdatesItem = item;
3031- },
3032-
3033- _updatePresenceStatus: function(item, event) {
3034- let status;
3035-
3036- if (item.state) {
3037- status = GnomeSession.PresenceStatus.AVAILABLE;
3038- } else {
3039- status = GnomeSession.PresenceStatus.BUSY;
3040-
3041- let [presence, s, msg] = this._accountMgr.get_most_available_presence();
3042- let newPresence = this._statusChooser.getIMPresenceForSessionStatus(status);
3043- if (newPresence != presence &&
3044- newPresence == Tp.ConnectionPresenceType.BUSY)
3045- Main.notify(_("Your chat status will be set to busy"),
3046- _("Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know that you might not see their messages."));
3047- }
3048-
3049- this._presence.status = status;
3050- },
3051-
3052- _onMyAccountActivate: function() {
3053- Main.overview.hide();
3054- let app = Shell.AppSystem.get_default().lookup_setting('gnome-user-accounts-panel.desktop');
3055- app.activate();
3056- },
3057-
3058- _onPreferencesActivate: function() {
3059- Main.overview.hide();
3060- let app = Shell.AppSystem.get_default().lookup_app('gnome-control-center.desktop');
3061- app.activate();
3062- },
3063-
3064- _onLockScreenActivate: function() {
3065- this.menu.close(BoxPointer.PopupAnimation.NONE);
3066- Main.overview.hide();
3067- Main.screenShield.lock(true);
3068- },
3069-
3070- _onLoginScreenActivate: function() {
3071- this.menu.close(BoxPointer.PopupAnimation.NONE);
3072- Main.overview.hide();
3073- Main.screenShield.lock(false);
3074- if (UnlockDialog.isSupported())
3075- Gdm.goto_login_session_sync(null);
3076- else
3077- this._lightdmLoginSession();
3078- },
3079-
3080- _onQuitSessionActivate: function() {
3081- Main.overview.hide();
3082- this._session.LogoutRemote(0);
3083- },
3084-
3085- _onInstallUpdatesActivate: function() {
3086- Main.overview.hide();
3087- Util.spawn(['pkexec', '/usr/libexec/pk-trigger-offline-update']);
3088-
3089- this._session.RebootRemote();
3090- },
3091-
3092- _onSuspendOrPowerOffActivate: function() {
3093- Main.overview.hide();
3094-
3095- if (this._haveShutdown &&
3096- this._suspendOrPowerOffItem.state == PopupMenu.PopupAlternatingMenuItemState.DEFAULT) {
3097- this._session.ShutdownRemote();
3098- } else {
3099- if (this._screenSaverSettings.get_boolean(LOCK_ENABLED_KEY)) {
3100- let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
3101- Main.screenShield.disconnect(tmpId);
3102-
3103- this._upClient.suspend_sync(null);
3104- }));
3105-
3106- this.menu.close(BoxPointer.PopupAnimation.NONE);
3107- Main.screenShield.lock(true);
3108- } else {
3109- this._upClient.suspend_sync(null);
3110- }
3111- }
3112- },
3113- _lightdmLoginSession: function() {
3114- try {
3115- let seat = GLib.getenv("XDG_SEAT_PATH");
3116- let result = Gio.DBus.system.call_sync('org.freedesktop.DisplayManager',
3117- seat,
3118- 'org.freedesktop.DisplayManager.Seat',
3119- 'SwitchToGreeter', null, null,
3120- Gio.DBusCallFlags.NONE,
3121- -1, null);
3122- } catch(e) {
3123- Main.screenShield.lock();
3124- }
3125- }
3126-});
3127
3128=== modified file 'Makefile.in'
3129--- Makefile.in 2012-11-26 15:57:51 +0000
3130+++ Makefile.in 2013-02-24 03:10:25 +0000
3131@@ -61,8 +61,7 @@
3132 $(top_srcdir)/src/calendar-server/evolution-calendar.desktop.in.in \
3133 ABOUT-NLS AUTHORS COPYING NEWS config/compile \
3134 config/config.guess config/config.rpath config/config.sub \
3135- config/depcomp config/install-sh config/ltmain.sh \
3136- config/missing
3137+ config/install-sh config/ltmain.sh config/missing
3138 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
3139 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
3140 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \
3141
3142=== modified file 'NEWS'
3143--- NEWS 2012-11-26 15:57:51 +0000
3144+++ NEWS 2013-02-24 03:10:25 +0000
3145@@ -1,3 +1,31 @@
3146+3.6.3.1
3147+=======
3148+* Fix regression in reentrancy fix for 3.6.3 [Giovanni; #689295]
3149+
3150+Contributors:
3151+ Giovanni Campagna
3152+
3153+Translations:
3154+ Rafael Ferreira [pt_BR]
3155+
3156+3.6.3
3157+=====
3158+* recorder: Set frame duration to fix broken video headers [Adel; #688487]
3159+* Block cancellation of unlock dialog during drags [Giovanni; #686800]
3160+* Honor lock-delay GSettings key [Giovanni, Matthias; #690766, #691170]
3161+* Fix reentrancy problem causing the tray to disappear [Giovanni; #683986]
3162+
3163+Contributors:
3164+ Giovanni Campagna, Matthias Clasen, Adel Gadllah,
3165+
3166+Translations:
3167+ Mattias Põldaru [et], Sandeep Sheshrao Shedmake [mr], Wouter Bolsterlee [nl],
3168+ Rajesh Ranjan [hi], Nilamdyuti Goswami [as], Ani Peter [ml],
3169+ Andika Triwidada [id], Krishnababu Krothapalli [te], Shankar Prasad [kn],
3170+ Dr.T.Vasudevan [ta], Runa Bhattacharjee [bn_IN], Rafael Ferreira [pt_BR],
3171+ Balázs Úr [hu], Gheyret Kenji [ug], Yasumichi Akahoshi [ja], Yoji TOYODA [ja],
3172+ Alexandre Franke [fr]
3173+
3174 3.6.2
3175 =====
3176 * Implement org.gnome.ScreenSaver.GetActiveTime [Giovanni; #686064]
3177
3178=== modified file 'aclocal.m4'
3179--- aclocal.m4 2012-09-07 11:40:48 +0000
3180+++ aclocal.m4 2013-02-24 03:10:25 +0000
3181@@ -19,6 +19,602 @@
3182 If you have problems, you may need to regenerate the build system entirely.
3183 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
3184
3185+# Configure paths for GLIB
3186+# Owen Taylor 1997-2001
3187+
3188+dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
3189+dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject,
3190+dnl gthread, or gio is specified in MODULES, pass to pkg-config
3191+dnl
3192+AC_DEFUN([AM_PATH_GLIB_2_0],
3193+[dnl
3194+dnl Get the cflags and libraries from pkg-config
3195+dnl
3196+AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program],
3197+ , enable_glibtest=yes)
3198+
3199+ pkg_config_args=glib-2.0
3200+ for module in . $4
3201+ do
3202+ case "$module" in
3203+ gmodule)
3204+ pkg_config_args="$pkg_config_args gmodule-2.0"
3205+ ;;
3206+ gmodule-no-export)
3207+ pkg_config_args="$pkg_config_args gmodule-no-export-2.0"
3208+ ;;
3209+ gobject)
3210+ pkg_config_args="$pkg_config_args gobject-2.0"
3211+ ;;
3212+ gthread)
3213+ pkg_config_args="$pkg_config_args gthread-2.0"
3214+ ;;
3215+ gio*)
3216+ pkg_config_args="$pkg_config_args $module-2.0"
3217+ ;;
3218+ esac
3219+ done
3220+
3221+ PKG_PROG_PKG_CONFIG([0.16])
3222+
3223+ no_glib=""
3224+
3225+ if test "x$PKG_CONFIG" = x ; then
3226+ no_glib=yes
3227+ PKG_CONFIG=no
3228+ fi
3229+
3230+ min_glib_version=ifelse([$1], ,2.0.0,$1)
3231+ AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
3232+
3233+ if test x$PKG_CONFIG != xno ; then
3234+ ## don't try to run the test against uninstalled libtool libs
3235+ if $PKG_CONFIG --uninstalled $pkg_config_args; then
3236+ echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
3237+ enable_glibtest=no
3238+ fi
3239+
3240+ if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then
3241+ :
3242+ else
3243+ no_glib=yes
3244+ fi
3245+ fi
3246+
3247+ if test x"$no_glib" = x ; then
3248+ GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
3249+ GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0`
3250+ GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
3251+ GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0`
3252+
3253+ GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args`
3254+ GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args`
3255+ glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \
3256+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
3257+ glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \
3258+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
3259+ glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \
3260+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
3261+ if test "x$enable_glibtest" = "xyes" ; then
3262+ ac_save_CFLAGS="$CFLAGS"
3263+ ac_save_LIBS="$LIBS"
3264+ CFLAGS="$CFLAGS $GLIB_CFLAGS"
3265+ LIBS="$GLIB_LIBS $LIBS"
3266+dnl
3267+dnl Now check if the installed GLIB is sufficiently new. (Also sanity
3268+dnl checks the results of pkg-config to some extent)
3269+dnl
3270+ rm -f conf.glibtest
3271+ AC_TRY_RUN([
3272+#include <glib.h>
3273+#include <stdio.h>
3274+#include <stdlib.h>
3275+
3276+int
3277+main ()
3278+{
3279+ unsigned int major, minor, micro;
3280+ char *tmp_version;
3281+
3282+ fclose (fopen ("conf.glibtest", "w"));
3283+
3284+ /* HP/UX 9 (%@#!) writes to sscanf strings */
3285+ tmp_version = g_strdup("$min_glib_version");
3286+ if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, &micro) != 3) {
3287+ printf("%s, bad version string\n", "$min_glib_version");
3288+ exit(1);
3289+ }
3290+
3291+ if ((glib_major_version != $glib_config_major_version) ||
3292+ (glib_minor_version != $glib_config_minor_version) ||
3293+ (glib_micro_version != $glib_config_micro_version))
3294+ {
3295+ printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
3296+ $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
3297+ glib_major_version, glib_minor_version, glib_micro_version);
3298+ printf ("*** was found! If pkg-config was correct, then it is best\n");
3299+ printf ("*** to remove the old version of GLib. You may also be able to fix the error\n");
3300+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
3301+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
3302+ printf("*** required on your system.\n");
3303+ printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
3304+ printf("*** to point to the correct configuration files\n");
3305+ }
3306+ else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
3307+ (glib_minor_version != GLIB_MINOR_VERSION) ||
3308+ (glib_micro_version != GLIB_MICRO_VERSION))
3309+ {
3310+ printf("*** GLIB header files (version %d.%d.%d) do not match\n",
3311+ GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
3312+ printf("*** library (version %d.%d.%d)\n",
3313+ glib_major_version, glib_minor_version, glib_micro_version);
3314+ }
3315+ else
3316+ {
3317+ if ((glib_major_version > major) ||
3318+ ((glib_major_version == major) && (glib_minor_version > minor)) ||
3319+ ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
3320+ {
3321+ return 0;
3322+ }
3323+ else
3324+ {
3325+ printf("\n*** An old version of GLIB (%u.%u.%u) was found.\n",
3326+ glib_major_version, glib_minor_version, glib_micro_version);
3327+ printf("*** You need a version of GLIB newer than %u.%u.%u. The latest version of\n",
3328+ major, minor, micro);
3329+ printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
3330+ printf("***\n");
3331+ printf("*** If you have already installed a sufficiently new version, this error\n");
3332+ printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
3333+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
3334+ printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n");
3335+ printf("*** correct copy of pkg-config. (In this case, you will have to\n");
3336+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
3337+ printf("*** so that the correct libraries are found at run-time))\n");
3338+ }
3339+ }
3340+ return 1;
3341+}
3342+],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
3343+ CFLAGS="$ac_save_CFLAGS"
3344+ LIBS="$ac_save_LIBS"
3345+ fi
3346+ fi
3347+ if test "x$no_glib" = x ; then
3348+ AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version))
3349+ ifelse([$2], , :, [$2])
3350+ else
3351+ AC_MSG_RESULT(no)
3352+ if test "$PKG_CONFIG" = "no" ; then
3353+ echo "*** A new enough version of pkg-config was not found."
3354+ echo "*** See http://www.freedesktop.org/software/pkgconfig/"
3355+ else
3356+ if test -f conf.glibtest ; then
3357+ :
3358+ else
3359+ echo "*** Could not run GLIB test program, checking why..."
3360+ ac_save_CFLAGS="$CFLAGS"
3361+ ac_save_LIBS="$LIBS"
3362+ CFLAGS="$CFLAGS $GLIB_CFLAGS"
3363+ LIBS="$LIBS $GLIB_LIBS"
3364+ AC_TRY_LINK([
3365+#include <glib.h>
3366+#include <stdio.h>
3367+], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
3368+ [ echo "*** The test program compiled, but did not run. This usually means"
3369+ echo "*** that the run-time linker is not finding GLIB or finding the wrong"
3370+ echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
3371+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
3372+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
3373+ echo "*** is required on your system"
3374+ echo "***"
3375+ echo "*** If you have an old version installed, it is best to remove it, although"
3376+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
3377+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
3378+ echo "*** exact error that occured. This usually means GLIB is incorrectly installed."])
3379+ CFLAGS="$ac_save_CFLAGS"
3380+ LIBS="$ac_save_LIBS"
3381+ fi
3382+ fi
3383+ GLIB_CFLAGS=""
3384+ GLIB_LIBS=""
3385+ GLIB_GENMARSHAL=""
3386+ GOBJECT_QUERY=""
3387+ GLIB_MKENUMS=""
3388+ GLIB_COMPILE_RESOURCES=""
3389+ ifelse([$3], , :, [$3])
3390+ fi
3391+ AC_SUBST(GLIB_CFLAGS)
3392+ AC_SUBST(GLIB_LIBS)
3393+ AC_SUBST(GLIB_GENMARSHAL)
3394+ AC_SUBST(GOBJECT_QUERY)
3395+ AC_SUBST(GLIB_MKENUMS)
3396+ AC_SUBST(GLIB_COMPILE_RESOURCES)
3397+ rm -f conf.glibtest
3398+])
3399+
3400+dnl GLIB_GSETTINGS
3401+dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether
3402+dnl the schema should be compiled
3403+dnl
3404+
3405+AC_DEFUN([GLIB_GSETTINGS],
3406+[
3407+ m4_pattern_allow([AM_V_GEN])
3408+ AC_ARG_ENABLE(schemas-compile,
3409+ AS_HELP_STRING([--disable-schemas-compile],
3410+ [Disable regeneration of gschemas.compiled on install]),
3411+ [case ${enableval} in
3412+ yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;;
3413+ no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;;
3414+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;;
3415+ esac])
3416+ AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE])
3417+ PKG_PROG_PKG_CONFIG([0.16])
3418+ AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas])
3419+ if test x$cross_compiling != xyes; then
3420+ GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0`
3421+ else
3422+ AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas)
3423+ fi
3424+ AC_SUBST(GLIB_COMPILE_SCHEMAS)
3425+ if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then
3426+ ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2])
3427+ else
3428+ ifelse([$1],,[:],[$1])
3429+ fi
3430+
3431+ GSETTINGS_RULES='
3432+.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas
3433+
3434+mostlyclean-am: clean-gsettings-schemas
3435+
3436+gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE))
3437+
3438+%.gschema.valid: %.gschema.xml $(gsettings__enum_file)
3439+ $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch [$]@
3440+
3441+all-am: $(gsettings_SCHEMAS:.xml=.valid)
3442+uninstall-am: uninstall-gsettings-schemas
3443+install-data-am: install-gsettings-schemas
3444+
3445+.SECONDARY: $(gsettings_SCHEMAS)
3446+
3447+install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file)
3448+ @$(NORMAL_INSTALL)
3449+ if test -n "$^"; then \
3450+ test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \
3451+ $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \
3452+ test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \
3453+ fi
3454+
3455+uninstall-gsettings-schemas:
3456+ @$(NORMAL_UNINSTALL)
3457+ @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \
3458+ files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \
3459+ test -n "$$files" || exit 0; \
3460+ echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
3461+ cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
3462+ test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
3463+
3464+clean-gsettings-schemas:
3465+ rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file)
3466+
3467+ifdef gsettings_ENUM_NAMESPACE
3468+$(gsettings__enum_file): $(gsettings_ENUM_FILES)
3469+ $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail " </@type@>" --ftail "</schemalist>" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@
3470+endif
3471+'
3472+ _GSETTINGS_SUBST(GSETTINGS_RULES)
3473+])
3474+
3475+dnl _GSETTINGS_SUBST(VARIABLE)
3476+dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
3477+AC_DEFUN([_GSETTINGS_SUBST],
3478+[
3479+AC_SUBST([$1])
3480+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
3481+]
3482+)
3483+
3484+dnl -*- mode: autoconf -*-
3485+dnl Copyright 2009 Johan Dahlin
3486+dnl
3487+dnl This file is free software; the author(s) gives unlimited
3488+dnl permission to copy and/or distribute it, with or without
3489+dnl modifications, as long as this notice is preserved.
3490+dnl
3491+
3492+# serial 1
3493+
3494+m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
3495+[
3496+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
3497+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
3498+ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
3499+
3500+ dnl enable/disable introspection
3501+ m4_if([$2], [require],
3502+ [dnl
3503+ enable_introspection=yes
3504+ ],[dnl
3505+ AC_ARG_ENABLE(introspection,
3506+ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
3507+ [Enable introspection for this build]),,
3508+ [enable_introspection=auto])
3509+ ])dnl
3510+
3511+ AC_MSG_CHECKING([for gobject-introspection])
3512+
3513+ dnl presence/version checking
3514+ AS_CASE([$enable_introspection],
3515+ [no], [dnl
3516+ found_introspection="no (disabled, use --enable-introspection to enable)"
3517+ ],dnl
3518+ [yes],[dnl
3519+ PKG_CHECK_EXISTS([gobject-introspection-1.0],,
3520+ AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
3521+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
3522+ found_introspection=yes,
3523+ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
3524+ ],dnl
3525+ [auto],[dnl
3526+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
3527+ dnl Canonicalize enable_introspection
3528+ enable_introspection=$found_introspection
3529+ ],dnl
3530+ [dnl
3531+ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
3532+ ])dnl
3533+
3534+ AC_MSG_RESULT([$found_introspection])
3535+
3536+ INTROSPECTION_SCANNER=
3537+ INTROSPECTION_COMPILER=
3538+ INTROSPECTION_GENERATE=
3539+ INTROSPECTION_GIRDIR=
3540+ INTROSPECTION_TYPELIBDIR=
3541+ if test "x$found_introspection" = "xyes"; then
3542+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
3543+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
3544+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
3545+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
3546+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
3547+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
3548+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
3549+ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
3550+ fi
3551+ AC_SUBST(INTROSPECTION_SCANNER)
3552+ AC_SUBST(INTROSPECTION_COMPILER)
3553+ AC_SUBST(INTROSPECTION_GENERATE)
3554+ AC_SUBST(INTROSPECTION_GIRDIR)
3555+ AC_SUBST(INTROSPECTION_TYPELIBDIR)
3556+ AC_SUBST(INTROSPECTION_CFLAGS)
3557+ AC_SUBST(INTROSPECTION_LIBS)
3558+ AC_SUBST(INTROSPECTION_MAKEFILE)
3559+
3560+ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
3561+])
3562+
3563+
3564+dnl Usage:
3565+dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
3566+
3567+AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
3568+[
3569+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
3570+])
3571+
3572+dnl Usage:
3573+dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
3574+
3575+
3576+AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
3577+[
3578+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
3579+])
3580+
3581+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
3582+# serial 1 (pkg-config-0.24)
3583+#
3584+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
3585+#
3586+# This program is free software; you can redistribute it and/or modify
3587+# it under the terms of the GNU General Public License as published by
3588+# the Free Software Foundation; either version 2 of the License, or
3589+# (at your option) any later version.
3590+#
3591+# This program is distributed in the hope that it will be useful, but
3592+# WITHOUT ANY WARRANTY; without even the implied warranty of
3593+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3594+# General Public License for more details.
3595+#
3596+# You should have received a copy of the GNU General Public License
3597+# along with this program; if not, write to the Free Software
3598+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
3599+#
3600+# As a special exception to the GNU General Public License, if you
3601+# distribute this file as part of a program that contains a
3602+# configuration script generated by Autoconf, you may include it under
3603+# the same distribution terms that you use for the rest of that program.
3604+
3605+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
3606+# ----------------------------------
3607+AC_DEFUN([PKG_PROG_PKG_CONFIG],
3608+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
3609+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
3610+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
3611+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
3612+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
3613+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
3614+
3615+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
3616+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
3617+fi
3618+if test -n "$PKG_CONFIG"; then
3619+ _pkg_min_version=m4_default([$1], [0.9.0])
3620+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
3621+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
3622+ AC_MSG_RESULT([yes])
3623+ else
3624+ AC_MSG_RESULT([no])
3625+ PKG_CONFIG=""
3626+ fi
3627+fi[]dnl
3628+])# PKG_PROG_PKG_CONFIG
3629+
3630+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
3631+#
3632+# Check to see whether a particular set of modules exists. Similar
3633+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
3634+#
3635+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
3636+# only at the first occurence in configure.ac, so if the first place
3637+# it's called might be skipped (such as if it is within an "if", you
3638+# have to call PKG_CHECK_EXISTS manually
3639+# --------------------------------------------------------------
3640+AC_DEFUN([PKG_CHECK_EXISTS],
3641+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
3642+if test -n "$PKG_CONFIG" && \
3643+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
3644+ m4_default([$2], [:])
3645+m4_ifvaln([$3], [else
3646+ $3])dnl
3647+fi])
3648+
3649+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
3650+# ---------------------------------------------
3651+m4_define([_PKG_CONFIG],
3652+[if test -n "$$1"; then
3653+ pkg_cv_[]$1="$$1"
3654+ elif test -n "$PKG_CONFIG"; then
3655+ PKG_CHECK_EXISTS([$3],
3656+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
3657+ test "x$?" != "x0" && pkg_failed=yes ],
3658+ [pkg_failed=yes])
3659+ else
3660+ pkg_failed=untried
3661+fi[]dnl
3662+])# _PKG_CONFIG
3663+
3664+# _PKG_SHORT_ERRORS_SUPPORTED
3665+# -----------------------------
3666+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
3667+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
3668+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
3669+ _pkg_short_errors_supported=yes
3670+else
3671+ _pkg_short_errors_supported=no
3672+fi[]dnl
3673+])# _PKG_SHORT_ERRORS_SUPPORTED
3674+
3675+
3676+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
3677+# [ACTION-IF-NOT-FOUND])
3678+#
3679+#
3680+# Note that if there is a possibility the first call to
3681+# PKG_CHECK_MODULES might not happen, you should be sure to include an
3682+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
3683+#
3684+#
3685+# --------------------------------------------------------------
3686+AC_DEFUN([PKG_CHECK_MODULES],
3687+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
3688+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
3689+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
3690+
3691+pkg_failed=no
3692+AC_MSG_CHECKING([for $1])
3693+
3694+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
3695+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
3696+
3697+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
3698+and $1[]_LIBS to avoid the need to call pkg-config.
3699+See the pkg-config man page for more details.])
3700+
3701+if test $pkg_failed = yes; then
3702+ AC_MSG_RESULT([no])
3703+ _PKG_SHORT_ERRORS_SUPPORTED
3704+ if test $_pkg_short_errors_supported = yes; then
3705+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
3706+ else
3707+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
3708+ fi
3709+ # Put the nasty error message in config.log where it belongs
3710+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
3711+
3712+ m4_default([$4], [AC_MSG_ERROR(
3713+[Package requirements ($2) were not met:
3714+
3715+$$1_PKG_ERRORS
3716+
3717+Consider adjusting the PKG_CONFIG_PATH environment variable if you
3718+installed software in a non-standard prefix.
3719+
3720+_PKG_TEXT])[]dnl
3721+ ])
3722+elif test $pkg_failed = untried; then
3723+ AC_MSG_RESULT([no])
3724+ m4_default([$4], [AC_MSG_FAILURE(
3725+[The pkg-config script could not be found or is too old. Make sure it
3726+is in your PATH or set the PKG_CONFIG environment variable to the full
3727+path to pkg-config.
3728+
3729+_PKG_TEXT
3730+
3731+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
3732+ ])
3733+else
3734+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
3735+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
3736+ AC_MSG_RESULT([yes])
3737+ $3
3738+fi[]dnl
3739+])# PKG_CHECK_MODULES
3740+
3741+
3742+# PKG_INSTALLDIR(DIRECTORY)
3743+# -------------------------
3744+# Substitutes the variable pkgconfigdir as the location where a module
3745+# should install pkg-config .pc files. By default the directory is
3746+# $libdir/pkgconfig, but the default can be changed by passing
3747+# DIRECTORY. The user can override through the --with-pkgconfigdir
3748+# parameter.
3749+AC_DEFUN([PKG_INSTALLDIR],
3750+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
3751+m4_pushdef([pkg_description],
3752+ [pkg-config installation directory @<:@]pkg_default[@:>@])
3753+AC_ARG_WITH([pkgconfigdir],
3754+ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
3755+ [with_pkgconfigdir=]pkg_default)
3756+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
3757+m4_popdef([pkg_default])
3758+m4_popdef([pkg_description])
3759+]) dnl PKG_INSTALLDIR
3760+
3761+
3762+# PKG_NOARCH_INSTALLDIR(DIRECTORY)
3763+# -------------------------
3764+# Substitutes the variable noarch_pkgconfigdir as the location where a
3765+# module should install arch-independent pkg-config .pc files. By
3766+# default the directory is $datadir/pkgconfig, but the default can be
3767+# changed by passing DIRECTORY. The user can override through the
3768+# --with-noarch-pkgconfigdir parameter.
3769+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
3770+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
3771+m4_pushdef([pkg_description],
3772+ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
3773+AC_ARG_WITH([noarch-pkgconfigdir],
3774+ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
3775+ [with_noarch_pkgconfigdir=]pkg_default)
3776+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
3777+m4_popdef([pkg_default])
3778+m4_popdef([pkg_description])
3779+]) dnl PKG_NOARCH_INSTALLDIR
3780+
3781 # Copyright (C) 2002-2012 Free Software Foundation, Inc.
3782 #
3783 # This file is free software; the Free Software Foundation
3784@@ -1362,602 +1958,6 @@
3785 AC_SUBST([am__untar])
3786 ]) # _AM_PROG_TAR
3787
3788-# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
3789-# serial 1 (pkg-config-0.24)
3790-#
3791-# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
3792-#
3793-# This program is free software; you can redistribute it and/or modify
3794-# it under the terms of the GNU General Public License as published by
3795-# the Free Software Foundation; either version 2 of the License, or
3796-# (at your option) any later version.
3797-#
3798-# This program is distributed in the hope that it will be useful, but
3799-# WITHOUT ANY WARRANTY; without even the implied warranty of
3800-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3801-# General Public License for more details.
3802-#
3803-# You should have received a copy of the GNU General Public License
3804-# along with this program; if not, write to the Free Software
3805-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
3806-#
3807-# As a special exception to the GNU General Public License, if you
3808-# distribute this file as part of a program that contains a
3809-# configuration script generated by Autoconf, you may include it under
3810-# the same distribution terms that you use for the rest of that program.
3811-
3812-# PKG_PROG_PKG_CONFIG([MIN-VERSION])
3813-# ----------------------------------
3814-AC_DEFUN([PKG_PROG_PKG_CONFIG],
3815-[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
3816-m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
3817-m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
3818-AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
3819-AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
3820-AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
3821-
3822-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
3823- AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
3824-fi
3825-if test -n "$PKG_CONFIG"; then
3826- _pkg_min_version=m4_default([$1], [0.9.0])
3827- AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
3828- if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
3829- AC_MSG_RESULT([yes])
3830- else
3831- AC_MSG_RESULT([no])
3832- PKG_CONFIG=""
3833- fi
3834-fi[]dnl
3835-])# PKG_PROG_PKG_CONFIG
3836-
3837-# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
3838-#
3839-# Check to see whether a particular set of modules exists. Similar
3840-# to PKG_CHECK_MODULES(), but does not set variables or print errors.
3841-#
3842-# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
3843-# only at the first occurence in configure.ac, so if the first place
3844-# it's called might be skipped (such as if it is within an "if", you
3845-# have to call PKG_CHECK_EXISTS manually
3846-# --------------------------------------------------------------
3847-AC_DEFUN([PKG_CHECK_EXISTS],
3848-[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
3849-if test -n "$PKG_CONFIG" && \
3850- AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
3851- m4_default([$2], [:])
3852-m4_ifvaln([$3], [else
3853- $3])dnl
3854-fi])
3855-
3856-# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
3857-# ---------------------------------------------
3858-m4_define([_PKG_CONFIG],
3859-[if test -n "$$1"; then
3860- pkg_cv_[]$1="$$1"
3861- elif test -n "$PKG_CONFIG"; then
3862- PKG_CHECK_EXISTS([$3],
3863- [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
3864- test "x$?" != "x0" && pkg_failed=yes ],
3865- [pkg_failed=yes])
3866- else
3867- pkg_failed=untried
3868-fi[]dnl
3869-])# _PKG_CONFIG
3870-
3871-# _PKG_SHORT_ERRORS_SUPPORTED
3872-# -----------------------------
3873-AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
3874-[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
3875-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
3876- _pkg_short_errors_supported=yes
3877-else
3878- _pkg_short_errors_supported=no
3879-fi[]dnl
3880-])# _PKG_SHORT_ERRORS_SUPPORTED
3881-
3882-
3883-# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
3884-# [ACTION-IF-NOT-FOUND])
3885-#
3886-#
3887-# Note that if there is a possibility the first call to
3888-# PKG_CHECK_MODULES might not happen, you should be sure to include an
3889-# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
3890-#
3891-#
3892-# --------------------------------------------------------------
3893-AC_DEFUN([PKG_CHECK_MODULES],
3894-[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
3895-AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
3896-AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
3897-
3898-pkg_failed=no
3899-AC_MSG_CHECKING([for $1])
3900-
3901-_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
3902-_PKG_CONFIG([$1][_LIBS], [libs], [$2])
3903-
3904-m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
3905-and $1[]_LIBS to avoid the need to call pkg-config.
3906-See the pkg-config man page for more details.])
3907-
3908-if test $pkg_failed = yes; then
3909- AC_MSG_RESULT([no])
3910- _PKG_SHORT_ERRORS_SUPPORTED
3911- if test $_pkg_short_errors_supported = yes; then
3912- $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
3913- else
3914- $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
3915- fi
3916- # Put the nasty error message in config.log where it belongs
3917- echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
3918-
3919- m4_default([$4], [AC_MSG_ERROR(
3920-[Package requirements ($2) were not met:
3921-
3922-$$1_PKG_ERRORS
3923-
3924-Consider adjusting the PKG_CONFIG_PATH environment variable if you
3925-installed software in a non-standard prefix.
3926-
3927-_PKG_TEXT])[]dnl
3928- ])
3929-elif test $pkg_failed = untried; then
3930- AC_MSG_RESULT([no])
3931- m4_default([$4], [AC_MSG_FAILURE(
3932-[The pkg-config script could not be found or is too old. Make sure it
3933-is in your PATH or set the PKG_CONFIG environment variable to the full
3934-path to pkg-config.
3935-
3936-_PKG_TEXT
3937-
3938-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
3939- ])
3940-else
3941- $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
3942- $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
3943- AC_MSG_RESULT([yes])
3944- $3
3945-fi[]dnl
3946-])# PKG_CHECK_MODULES
3947-
3948-
3949-# PKG_INSTALLDIR(DIRECTORY)
3950-# -------------------------
3951-# Substitutes the variable pkgconfigdir as the location where a module
3952-# should install pkg-config .pc files. By default the directory is
3953-# $libdir/pkgconfig, but the default can be changed by passing
3954-# DIRECTORY. The user can override through the --with-pkgconfigdir
3955-# parameter.
3956-AC_DEFUN([PKG_INSTALLDIR],
3957-[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
3958-m4_pushdef([pkg_description],
3959- [pkg-config installation directory @<:@]pkg_default[@:>@])
3960-AC_ARG_WITH([pkgconfigdir],
3961- [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
3962- [with_pkgconfigdir=]pkg_default)
3963-AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
3964-m4_popdef([pkg_default])
3965-m4_popdef([pkg_description])
3966-]) dnl PKG_INSTALLDIR
3967-
3968-
3969-# PKG_NOARCH_INSTALLDIR(DIRECTORY)
3970-# -------------------------
3971-# Substitutes the variable noarch_pkgconfigdir as the location where a
3972-# module should install arch-independent pkg-config .pc files. By
3973-# default the directory is $datadir/pkgconfig, but the default can be
3974-# changed by passing DIRECTORY. The user can override through the
3975-# --with-noarch-pkgconfigdir parameter.
3976-AC_DEFUN([PKG_NOARCH_INSTALLDIR],
3977-[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
3978-m4_pushdef([pkg_description],
3979- [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
3980-AC_ARG_WITH([noarch-pkgconfigdir],
3981- [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
3982- [with_noarch_pkgconfigdir=]pkg_default)
3983-AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
3984-m4_popdef([pkg_default])
3985-m4_popdef([pkg_description])
3986-]) dnl PKG_NOARCH_INSTALLDIR
3987-
3988-# Configure paths for GLIB
3989-# Owen Taylor 1997-2001
3990-
3991-dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
3992-dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject,
3993-dnl gthread, or gio is specified in MODULES, pass to pkg-config
3994-dnl
3995-AC_DEFUN([AM_PATH_GLIB_2_0],
3996-[dnl
3997-dnl Get the cflags and libraries from pkg-config
3998-dnl
3999-AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program],
4000- , enable_glibtest=yes)
4001-
4002- pkg_config_args=glib-2.0
4003- for module in . $4
4004- do
4005- case "$module" in
4006- gmodule)
4007- pkg_config_args="$pkg_config_args gmodule-2.0"
4008- ;;
4009- gmodule-no-export)
4010- pkg_config_args="$pkg_config_args gmodule-no-export-2.0"
4011- ;;
4012- gobject)
4013- pkg_config_args="$pkg_config_args gobject-2.0"
4014- ;;
4015- gthread)
4016- pkg_config_args="$pkg_config_args gthread-2.0"
4017- ;;
4018- gio*)
4019- pkg_config_args="$pkg_config_args $module-2.0"
4020- ;;
4021- esac
4022- done
4023-
4024- PKG_PROG_PKG_CONFIG([0.16])
4025-
4026- no_glib=""
4027-
4028- if test "x$PKG_CONFIG" = x ; then
4029- no_glib=yes
4030- PKG_CONFIG=no
4031- fi
4032-
4033- min_glib_version=ifelse([$1], ,2.0.0,$1)
4034- AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
4035-
4036- if test x$PKG_CONFIG != xno ; then
4037- ## don't try to run the test against uninstalled libtool libs
4038- if $PKG_CONFIG --uninstalled $pkg_config_args; then
4039- echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
4040- enable_glibtest=no
4041- fi
4042-
4043- if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then
4044- :
4045- else
4046- no_glib=yes
4047- fi
4048- fi
4049-
4050- if test x"$no_glib" = x ; then
4051- GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
4052- GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0`
4053- GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
4054- GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0`
4055-
4056- GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args`
4057- GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args`
4058- glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \
4059- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
4060- glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \
4061- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
4062- glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \
4063- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
4064- if test "x$enable_glibtest" = "xyes" ; then
4065- ac_save_CFLAGS="$CFLAGS"
4066- ac_save_LIBS="$LIBS"
4067- CFLAGS="$CFLAGS $GLIB_CFLAGS"
4068- LIBS="$GLIB_LIBS $LIBS"
4069-dnl
4070-dnl Now check if the installed GLIB is sufficiently new. (Also sanity
4071-dnl checks the results of pkg-config to some extent)
4072-dnl
4073- rm -f conf.glibtest
4074- AC_TRY_RUN([
4075-#include <glib.h>
4076-#include <stdio.h>
4077-#include <stdlib.h>
4078-
4079-int
4080-main ()
4081-{
4082- unsigned int major, minor, micro;
4083- char *tmp_version;
4084-
4085- fclose (fopen ("conf.glibtest", "w"));
4086-
4087- /* HP/UX 9 (%@#!) writes to sscanf strings */
4088- tmp_version = g_strdup("$min_glib_version");
4089- if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, &micro) != 3) {
4090- printf("%s, bad version string\n", "$min_glib_version");
4091- exit(1);
4092- }
4093-
4094- if ((glib_major_version != $glib_config_major_version) ||
4095- (glib_minor_version != $glib_config_minor_version) ||
4096- (glib_micro_version != $glib_config_micro_version))
4097- {
4098- printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
4099- $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
4100- glib_major_version, glib_minor_version, glib_micro_version);
4101- printf ("*** was found! If pkg-config was correct, then it is best\n");
4102- printf ("*** to remove the old version of GLib. You may also be able to fix the error\n");
4103- printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
4104- printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
4105- printf("*** required on your system.\n");
4106- printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
4107- printf("*** to point to the correct configuration files\n");
4108- }
4109- else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
4110- (glib_minor_version != GLIB_MINOR_VERSION) ||
4111- (glib_micro_version != GLIB_MICRO_VERSION))
4112- {
4113- printf("*** GLIB header files (version %d.%d.%d) do not match\n",
4114- GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
4115- printf("*** library (version %d.%d.%d)\n",
4116- glib_major_version, glib_minor_version, glib_micro_version);
4117- }
4118- else
4119- {
4120- if ((glib_major_version > major) ||
4121- ((glib_major_version == major) && (glib_minor_version > minor)) ||
4122- ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
4123- {
4124- return 0;
4125- }
4126- else
4127- {
4128- printf("\n*** An old version of GLIB (%u.%u.%u) was found.\n",
4129- glib_major_version, glib_minor_version, glib_micro_version);
4130- printf("*** You need a version of GLIB newer than %u.%u.%u. The latest version of\n",
4131- major, minor, micro);
4132- printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
4133- printf("***\n");
4134- printf("*** If you have already installed a sufficiently new version, this error\n");
4135- printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
4136- printf("*** being found. The easiest way to fix this is to remove the old version\n");
4137- printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n");
4138- printf("*** correct copy of pkg-config. (In this case, you will have to\n");
4139- printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
4140- printf("*** so that the correct libraries are found at run-time))\n");
4141- }
4142- }
4143- return 1;
4144-}
4145-],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
4146- CFLAGS="$ac_save_CFLAGS"
4147- LIBS="$ac_save_LIBS"
4148- fi
4149- fi
4150- if test "x$no_glib" = x ; then
4151- AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version))
4152- ifelse([$2], , :, [$2])
4153- else
4154- AC_MSG_RESULT(no)
4155- if test "$PKG_CONFIG" = "no" ; then
4156- echo "*** A new enough version of pkg-config was not found."
4157- echo "*** See http://www.freedesktop.org/software/pkgconfig/"
4158- else
4159- if test -f conf.glibtest ; then
4160- :
4161- else
4162- echo "*** Could not run GLIB test program, checking why..."
4163- ac_save_CFLAGS="$CFLAGS"
4164- ac_save_LIBS="$LIBS"
4165- CFLAGS="$CFLAGS $GLIB_CFLAGS"
4166- LIBS="$LIBS $GLIB_LIBS"
4167- AC_TRY_LINK([
4168-#include <glib.h>
4169-#include <stdio.h>
4170-], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
4171- [ echo "*** The test program compiled, but did not run. This usually means"
4172- echo "*** that the run-time linker is not finding GLIB or finding the wrong"
4173- echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
4174- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
4175- echo "*** to the installed location Also, make sure you have run ldconfig if that"
4176- echo "*** is required on your system"
4177- echo "***"
4178- echo "*** If you have an old version installed, it is best to remove it, although"
4179- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
4180- [ echo "*** The test program failed to compile or link. See the file config.log for the"
4181- echo "*** exact error that occured. This usually means GLIB is incorrectly installed."])
4182- CFLAGS="$ac_save_CFLAGS"
4183- LIBS="$ac_save_LIBS"
4184- fi
4185- fi
4186- GLIB_CFLAGS=""
4187- GLIB_LIBS=""
4188- GLIB_GENMARSHAL=""
4189- GOBJECT_QUERY=""
4190- GLIB_MKENUMS=""
4191- GLIB_COMPILE_RESOURCES=""
4192- ifelse([$3], , :, [$3])
4193- fi
4194- AC_SUBST(GLIB_CFLAGS)
4195- AC_SUBST(GLIB_LIBS)
4196- AC_SUBST(GLIB_GENMARSHAL)
4197- AC_SUBST(GOBJECT_QUERY)
4198- AC_SUBST(GLIB_MKENUMS)
4199- AC_SUBST(GLIB_COMPILE_RESOURCES)
4200- rm -f conf.glibtest
4201-])
4202-
4203-dnl GLIB_GSETTINGS
4204-dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether
4205-dnl the schema should be compiled
4206-dnl
4207-
4208-AC_DEFUN([GLIB_GSETTINGS],
4209-[
4210- m4_pattern_allow([AM_V_GEN])
4211- AC_ARG_ENABLE(schemas-compile,
4212- AS_HELP_STRING([--disable-schemas-compile],
4213- [Disable regeneration of gschemas.compiled on install]),
4214- [case ${enableval} in
4215- yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;;
4216- no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;;
4217- *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;;
4218- esac])
4219- AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE])
4220- PKG_PROG_PKG_CONFIG([0.16])
4221- AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas])
4222- if test x$cross_compiling != xyes; then
4223- GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0`
4224- else
4225- AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas)
4226- fi
4227- AC_SUBST(GLIB_COMPILE_SCHEMAS)
4228- if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then
4229- ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2])
4230- else
4231- ifelse([$1],,[:],[$1])
4232- fi
4233-
4234- GSETTINGS_RULES='
4235-.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas
4236-
4237-mostlyclean-am: clean-gsettings-schemas
4238-
4239-gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE))
4240-
4241-%.gschema.valid: %.gschema.xml $(gsettings__enum_file)
4242- $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch [$]@
4243-
4244-all-am: $(gsettings_SCHEMAS:.xml=.valid)
4245-uninstall-am: uninstall-gsettings-schemas
4246-install-data-am: install-gsettings-schemas
4247-
4248-.SECONDARY: $(gsettings_SCHEMAS)
4249-
4250-install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file)
4251- @$(NORMAL_INSTALL)
4252- if test -n "$^"; then \
4253- test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \
4254- $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \
4255- test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \
4256- fi
4257-
4258-uninstall-gsettings-schemas:
4259- @$(NORMAL_UNINSTALL)
4260- @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \
4261- files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \
4262- test -n "$$files" || exit 0; \
4263- echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
4264- cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
4265- test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
4266-
4267-clean-gsettings-schemas:
4268- rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file)
4269-
4270-ifdef gsettings_ENUM_NAMESPACE
4271-$(gsettings__enum_file): $(gsettings_ENUM_FILES)
4272- $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail " </@type@>" --ftail "</schemalist>" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@
4273-endif
4274-'
4275- _GSETTINGS_SUBST(GSETTINGS_RULES)
4276-])
4277-
4278-dnl _GSETTINGS_SUBST(VARIABLE)
4279-dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
4280-AC_DEFUN([_GSETTINGS_SUBST],
4281-[
4282-AC_SUBST([$1])
4283-m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
4284-]
4285-)
4286-
4287-dnl -*- mode: autoconf -*-
4288-dnl Copyright 2009 Johan Dahlin
4289-dnl
4290-dnl This file is free software; the author(s) gives unlimited
4291-dnl permission to copy and/or distribute it, with or without
4292-dnl modifications, as long as this notice is preserved.
4293-dnl
4294-
4295-# serial 1
4296-
4297-m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
4298-[
4299- AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
4300- AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
4301- AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
4302-
4303- dnl enable/disable introspection
4304- m4_if([$2], [require],
4305- [dnl
4306- enable_introspection=yes
4307- ],[dnl
4308- AC_ARG_ENABLE(introspection,
4309- AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
4310- [Enable introspection for this build]),,
4311- [enable_introspection=auto])
4312- ])dnl
4313-
4314- AC_MSG_CHECKING([for gobject-introspection])
4315-
4316- dnl presence/version checking
4317- AS_CASE([$enable_introspection],
4318- [no], [dnl
4319- found_introspection="no (disabled, use --enable-introspection to enable)"
4320- ],dnl
4321- [yes],[dnl
4322- PKG_CHECK_EXISTS([gobject-introspection-1.0],,
4323- AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
4324- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
4325- found_introspection=yes,
4326- AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
4327- ],dnl
4328- [auto],[dnl
4329- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
4330- dnl Canonicalize enable_introspection
4331- enable_introspection=$found_introspection
4332- ],dnl
4333- [dnl
4334- AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
4335- ])dnl
4336-
4337- AC_MSG_RESULT([$found_introspection])
4338-
4339- INTROSPECTION_SCANNER=
4340- INTROSPECTION_COMPILER=
4341- INTROSPECTION_GENERATE=
4342- INTROSPECTION_GIRDIR=
4343- INTROSPECTION_TYPELIBDIR=
4344- if test "x$found_introspection" = "xyes"; then
4345- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
4346- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
4347- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
4348- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
4349- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
4350- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
4351- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
4352- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
4353- fi
4354- AC_SUBST(INTROSPECTION_SCANNER)
4355- AC_SUBST(INTROSPECTION_COMPILER)
4356- AC_SUBST(INTROSPECTION_GENERATE)
4357- AC_SUBST(INTROSPECTION_GIRDIR)
4358- AC_SUBST(INTROSPECTION_TYPELIBDIR)
4359- AC_SUBST(INTROSPECTION_CFLAGS)
4360- AC_SUBST(INTROSPECTION_LIBS)
4361- AC_SUBST(INTROSPECTION_MAKEFILE)
4362-
4363- AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
4364-])
4365-
4366-
4367-dnl Usage:
4368-dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
4369-
4370-AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
4371-[
4372- _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
4373-])
4374-
4375-dnl Usage:
4376-dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
4377-
4378-
4379-AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
4380-[
4381- _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
4382-])
4383-
4384 m4_include([m4/gettext.m4])
4385 m4_include([m4/gtk-doc.m4])
4386 m4_include([m4/iconv.m4])
4387
4388=== modified file 'config/compile' (properties changed: -x to +x)
4389=== modified file 'config/config.guess' (properties changed: -x to +x)
4390=== modified file 'config/config.rpath' (properties changed: -x to +x)
4391=== modified file 'config/config.sub' (properties changed: -x to +x)
4392=== modified file 'config/depcomp' (properties changed: -x to +x)
4393=== modified file 'config/install-sh' (properties changed: -x to +x)
4394=== modified file 'config/missing' (properties changed: -x to +x)
4395=== modified file 'configure'
4396--- configure 2012-11-26 15:57:51 +0000
4397+++ configure 2013-02-24 03:10:25 +0000
4398@@ -1,6 +1,6 @@
4399 #! /bin/sh
4400 # Guess values for system-dependent variables and create Makefiles.
4401-# Generated by GNU Autoconf 2.69 for gnome-shell 3.6.2.
4402+# Generated by GNU Autoconf 2.69 for gnome-shell 3.6.3.1.
4403 #
4404 # Report bugs to <https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell>.
4405 #
4406@@ -591,8 +591,8 @@
4407 # Identity of this package.
4408 PACKAGE_NAME='gnome-shell'
4409 PACKAGE_TARNAME='gnome-shell'
4410-PACKAGE_VERSION='3.6.2'
4411-PACKAGE_STRING='gnome-shell 3.6.2'
4412+PACKAGE_VERSION='3.6.3.1'
4413+PACKAGE_STRING='gnome-shell 3.6.3.1'
4414 PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell'
4415 PACKAGE_URL=''
4416
4417@@ -1503,7 +1503,7 @@
4418 # Omit some internal or obsolete options to make the list less imposing.
4419 # This message is too long to be a string in the A/UX 3.1 sh.
4420 cat <<_ACEOF
4421-\`configure' configures gnome-shell 3.6.2 to adapt to many kinds of systems.
4422+\`configure' configures gnome-shell 3.6.3.1 to adapt to many kinds of systems.
4423
4424 Usage: $0 [OPTION]... [VAR=VALUE]...
4425
4426@@ -1573,7 +1573,7 @@
4427
4428 if test -n "$ac_init_help"; then
4429 case $ac_init_help in
4430- short | recursive ) echo "Configuration of gnome-shell 3.6.2:";;
4431+ short | recursive ) echo "Configuration of gnome-shell 3.6.3.1:";;
4432 esac
4433 cat <<\_ACEOF
4434
4435@@ -1758,7 +1758,7 @@
4436 test -n "$ac_init_help" && exit $ac_status
4437 if $ac_init_version; then
4438 cat <<\_ACEOF
4439-gnome-shell configure 3.6.2
4440+gnome-shell configure 3.6.3.1
4441 generated by GNU Autoconf 2.69
4442
4443 Copyright (C) 2012 Free Software Foundation, Inc.
4444@@ -2127,7 +2127,7 @@
4445 This file contains any messages produced by compilers while
4446 running configure, to aid debugging if configure makes a mistake.
4447
4448-It was created by gnome-shell $as_me 3.6.2, which was
4449+It was created by gnome-shell $as_me 3.6.3.1, which was
4450 generated by GNU Autoconf 2.69. Invocation command line was
4451
4452 $ $0 $@
4453@@ -2963,7 +2963,7 @@
4454
4455 # Define the identity of the package.
4456 PACKAGE='gnome-shell'
4457- VERSION='3.6.2'
4458+ VERSION='3.6.3.1'
4459
4460
4461 cat >>confdefs.h <<_ACEOF
4462@@ -17897,7 +17897,7 @@
4463 # report actual input values of CONFIG_FILES etc. instead of their
4464 # values after options handling.
4465 ac_log="
4466-This file was extended by gnome-shell $as_me 3.6.2, which was
4467+This file was extended by gnome-shell $as_me 3.6.3.1, which was
4468 generated by GNU Autoconf 2.69. Invocation command line was
4469
4470 CONFIG_FILES = $CONFIG_FILES
4471@@ -17963,7 +17963,7 @@
4472 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
4473 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
4474 ac_cs_version="\\
4475-gnome-shell config.status 3.6.2
4476+gnome-shell config.status 3.6.3.1
4477 configured by $0, generated by GNU Autoconf 2.69,
4478 with options \\"\$ac_cs_config\\"
4479
4480
4481=== modified file 'configure.ac'
4482--- configure.ac 2012-11-26 15:57:51 +0000
4483+++ configure.ac 2013-02-24 03:10:25 +0000
4484@@ -1,5 +1,5 @@
4485 AC_PREREQ(2.63)
4486-AC_INIT([gnome-shell],[3.6.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
4487+AC_INIT([gnome-shell],[3.6.3.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
4488
4489 AC_CONFIG_HEADERS([config.h])
4490 AC_CONFIG_SRCDIR([src/shell-global.c])
4491@@ -26,6 +26,9 @@
4492 # i18n
4493 IT_PROG_INTLTOOL([0.40])
4494
4495+AM_GNU_GETTEXT([external])
4496+AM_GNU_GETTEXT_VERSION([0.17])
4497+
4498 GETTEXT_PACKAGE=gnome-shell
4499 AC_SUBST(GETTEXT_PACKAGE)
4500 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
4501@@ -52,7 +55,7 @@
4502 AC_MSG_RESULT(yes)
4503 build_recorder=true
4504 recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11"
4505- PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules clutter-1.0 xfixes)
4506+ PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules clutter-1.0 xfixes gl)
4507 else
4508 AC_MSG_RESULT(no)
4509 fi
4510@@ -86,6 +89,7 @@
4511 libgnome-menu-3.0 >= $GNOME_MENUS_REQUIRED_VERSION
4512 $recorder_modules
4513 gdk-x11-3.0 libsoup-2.4
4514+ gl
4515 clutter-x11-1.0 >= $CLUTTER_MIN_VERSION
4516 clutter-glx-1.0 >= $CLUTTER_MIN_VERSION
4517 libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
4518@@ -107,16 +111,6 @@
4519 GNOME_KEYBINDINGS_KEYSDIR=`$PKG_CONFIG --variable keysdir gnome-keybindings`
4520 AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR])
4521
4522-PKG_CHECK_MODULES(GLX, [gl], [have_glx=yes], [have_glx=no])
4523-if test "x$have_glx" = "xyes"; then
4524- GNOME_SHELL_CFLAGS="$GNOME_SHELL_CFLAGS $GLX_CFLAGS"
4525- GNOME_SHELL_LIBS="$GNOME_SHELL_LIBS $GLX_LIBS"
4526- TEST_SHELL_RECORDER_CFLAGS="$TEST_SHELL_RECORDER_CFLAGS $GLX_CFLAGS"
4527- TEST_SHELL_RECORDER_LIBS="$TEST_SHELL_RECORDER_LIBS $GLX_LIBS"
4528- AC_DEFINE(HAVE_GLX, [1], [Define if we have GLX])
4529- AC_SUBST([HAVE_GLX], [1])
4530-fi
4531-
4532 GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
4533
4534 saved_CFLAGS=$CFLAGS
4535
4536=== modified file 'debian/changelog'
4537--- debian/changelog 2012-11-26 23:39:00 +0000
4538+++ debian/changelog 2013-02-24 03:10:25 +0000
4539@@ -1,3 +1,11 @@
4540+gnome-shell (3.6.3.1-0ubuntu1) quantal-proposed; urgency=low
4541+
4542+ * New upstream release. (LP: #1128804)
4543+ - Fixes disappearing messagetray (LP: #1067265)
4544+ * debian/patches/git_remove_messagetray_barrier.patch:
4545+ - upstream bug fix (LP: #1132308)
4546+ -- Tim Lunn <tim@feathertop.org> Sun, 24 Feb 2013 07:50:34 +1100
4547+
4548 gnome-shell (3.6.2-0ubuntu0.2) quantal-proposed; urgency=low
4549
4550 * debian/control.in:
4551
4552=== modified file 'debian/patches/series'
4553--- debian/patches/series 2012-11-26 15:57:51 +0000
4554+++ debian/patches/series 2013-02-24 03:10:25 +0000
4555@@ -4,3 +4,4 @@
4556 ubuntu-lightdm-user-switching.patch
4557 ubuntu_lock_on_suspend.patch
4558 git-set-ally-wm-theme.patch
4559+git_remove_messagetray_barrier.patch
4560
4561=== modified file 'docs/reference/shell/Makefile.in'
4562--- docs/reference/shell/Makefile.in 2012-11-12 23:11:33 +0000
4563+++ docs/reference/shell/Makefile.in 2013-02-24 03:10:25 +0000
4564@@ -791,7 +791,7 @@
4565 rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
4566 fi
4567
4568-maintainer-clean-local:
4569+maintainer-clean-local: clean
4570 @rm -rf xml html
4571
4572 install-data-local:
4573@@ -827,7 +827,7 @@
4574 #
4575 # Require gtk-doc when making dist
4576 #
4577-@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: docs
4578+@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc:
4579 @ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc:
4580 @ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist"
4581 @ENABLE_GTK_DOC_FALSE@ @false
4582
4583=== modified file 'docs/reference/shell/html/ShellAppSystem.html'
4584--- docs/reference/shell/html/ShellAppSystem.html 2012-09-07 11:40:48 +0000
4585+++ docs/reference/shell/html/ShellAppSystem.html 2013-02-24 03:10:25 +0000
4586@@ -8,7 +8,7 @@
4587 <link rel="up" href="ch03.html" title="Search">
4588 <link rel="prev" href="ch03.html" title="Search">
4589 <link rel="next" href="ch04.html" title="Tray Icons">
4590-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
4591+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
4592 <link rel="stylesheet" href="style.css" type="text/css">
4593 </head>
4594 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4595@@ -44,7 +44,11 @@
4596 <pre class="synopsis">struct <a class="link" href="ShellAppSystem.html#ShellAppSystem-struct" title="struct ShellAppSystem">ShellAppSystem</a>;
4597 struct <a class="link" href="ShellAppSystem.html#ShellAppSystemClass" title="struct ShellAppSystemClass">ShellAppSystemClass</a>;
4598 <a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="returnvalue">ShellAppSystem</span></a> * <a class="link" href="ShellAppSystem.html#shell-app-system-get-default" title="shell_app_system_get_default ()">shell_app_system_get_default</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
4599+<a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * <a class="link" href="ShellAppSystem.html#shell-app-system-get-running" title="shell_app_system_get_running ()">shell_app_system_get_running</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *self</code></em>);
4600+<span class="returnvalue">GMenuTree</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-get-settings-tree" title="shell_app_system_get_settings_tree ()">shell_app_system_get_settings_tree</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>);
4601 <span class="returnvalue">GMenuTree</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-get-tree" title="shell_app_system_get_tree ()">shell_app_system_get_tree</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>);
4602+<a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * <a class="link" href="ShellAppSystem.html#shell-app-system-initial-search" title="shell_app_system_initial_search ()">shell_app_system_initial_search</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4603+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *terms</code></em>);
4604 <span class="returnvalue">ShellApp</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-lookup-app" title="shell_app_system_lookup_app ()">shell_app_system_lookup_app</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4605 <em class="parameter"><code>const <span class="type">char</span> *id</code></em>);
4606 <span class="returnvalue">ShellApp</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-lookup-app-by-tree-entry" title="shell_app_system_lookup_app_by_tree_entry ()">shell_app_system_lookup_app_by_tree_entry</a>
4607@@ -56,33 +60,29 @@
4608 <span class="returnvalue">ShellApp</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-lookup-heuristic-basename" title="shell_app_system_lookup_heuristic_basename ()">shell_app_system_lookup_heuristic_basename</a>
4609 (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4610 <em class="parameter"><code>const <span class="type">char</span> *id</code></em>);
4611+<span class="returnvalue">ShellApp</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-lookup-setting" title="shell_app_system_lookup_setting ()">shell_app_system_lookup_setting</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4612+ <em class="parameter"><code>const <span class="type">char</span> *id</code></em>);
4613 <span class="returnvalue">ShellApp</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-lookup-wmclass" title="shell_app_system_lookup_wmclass ()">shell_app_system_lookup_wmclass</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4614 <em class="parameter"><code>const <span class="type">char</span> *wmclass</code></em>);
4615-<span class="returnvalue">GSList</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-get-running" title="shell_app_system_get_running ()">shell_app_system_get_running</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *self</code></em>);
4616-<span class="returnvalue">GSList</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-initial-search" title="shell_app_system_initial_search ()">shell_app_system_initial_search</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4617- <em class="parameter"><code><span class="type">GSList</span> *terms</code></em>);
4618-<span class="returnvalue">GSList</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-subsearch" title="shell_app_system_subsearch ()">shell_app_system_subsearch</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4619- <em class="parameter"><code><span class="type">GSList</span> *previous_results</code></em>,
4620- <em class="parameter"><code><span class="type">GSList</span> *terms</code></em>);
4621-<span class="returnvalue">GMenuTree</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-get-settings-tree" title="shell_app_system_get_settings_tree ()">shell_app_system_get_settings_tree</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>);
4622-<span class="returnvalue">GSList</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-search-settings" title="shell_app_system_search_settings ()">shell_app_system_search_settings</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4623- <em class="parameter"><code><span class="type">GSList</span> *terms</code></em>);
4624-<span class="returnvalue">ShellApp</span> * <a class="link" href="ShellAppSystem.html#shell-app-system-lookup-setting" title="shell_app_system_lookup_setting ()">shell_app_system_lookup_setting</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4625- <em class="parameter"><code>const <span class="type">char</span> *id</code></em>);
4626+<a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * <a class="link" href="ShellAppSystem.html#shell-app-system-search-settings" title="shell_app_system_search_settings ()">shell_app_system_search_settings</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4627+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *terms</code></em>);
4628+<a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * <a class="link" href="ShellAppSystem.html#shell-app-system-subsearch" title="shell_app_system_subsearch ()">shell_app_system_subsearch</a> (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4629+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *previous_results</code></em>,
4630+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *terms</code></em>);
4631 </pre>
4632 </div>
4633 <div class="refsect1">
4634 <a name="ShellAppSystem.object-hierarchy"></a><h2>Object Hierarchy</h2>
4635 <pre class="synopsis">
4636- GObject
4637+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
4638 +----ShellAppSystem
4639 </pre>
4640 </div>
4641 <div class="refsect1">
4642 <a name="ShellAppSystem.signals"></a><h2>Signals</h2>
4643 <pre class="synopsis">
4644- "<a class="link" href="ShellAppSystem.html#ShellAppSystem-app-state-changed" title='The "app-state-changed" signal'>app-state-changed</a>" : <code class="literal">Run Last</code>
4645- "<a class="link" href="ShellAppSystem.html#ShellAppSystem-installed-changed" title='The "installed-changed" signal'>installed-changed</a>" : <code class="literal">Run Last</code>
4646+ "<a class="link" href="ShellAppSystem.html#ShellAppSystem-app-state-changed" title='The "app-state-changed" signal'>app-state-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
4647+ "<a class="link" href="ShellAppSystem.html#ShellAppSystem-installed-changed" title='The "installed-changed" signal'>installed-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
4648 </pre>
4649 </div>
4650 <div class="refsect1">
4651@@ -123,6 +123,50 @@
4652 </div>
4653 <hr>
4654 <div class="refsect2">
4655+<a name="shell-app-system-get-running"></a><h3>shell_app_system_get_running ()</h3>
4656+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * shell_app_system_get_running (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *self</code></em>);</pre>
4657+<p>
4658+Returns the set of applications which currently have at least one
4659+open window in the given context. The returned list will be sorted
4660+by <a class="link" href="shell-ShellApp.html#shell-app-compare" title="shell_app_compare ()"><code class="function">shell_app_compare()</code></a>.
4661+</p>
4662+<div class="variablelist"><table border="0" class="variablelist">
4663+<colgroup>
4664+<col align="left" valign="top">
4665+<col>
4666+</colgroup>
4667+<tbody>
4668+<tr>
4669+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
4670+<td>A <a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a>
4671+</td>
4672+</tr>
4673+<tr>
4674+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4675+<td>Active applications. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ShellApp][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span>
4676+</td>
4677+</tr>
4678+</tbody>
4679+</table></div>
4680+</div>
4681+<hr>
4682+<div class="refsect2">
4683+<a name="shell-app-system-get-settings-tree"></a><h3>shell_app_system_get_settings_tree ()</h3>
4684+<pre class="programlisting"><span class="returnvalue">GMenuTree</span> * shell_app_system_get_settings_tree (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>);</pre>
4685+<div class="variablelist"><table border="0" class="variablelist">
4686+<colgroup>
4687+<col align="left" valign="top">
4688+<col>
4689+</colgroup>
4690+<tbody><tr>
4691+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4692+<td>The <span class="type">GMenuTree</span> for apps. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4693+</td>
4694+</tr></tbody>
4695+</table></div>
4696+</div>
4697+<hr>
4698+<div class="refsect2">
4699 <a name="shell-app-system-get-tree"></a><h3>shell_app_system_get_tree ()</h3>
4700 <pre class="programlisting"><span class="returnvalue">GMenuTree</span> * shell_app_system_get_tree (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>);</pre>
4701 <div class="variablelist"><table border="0" class="variablelist">
4702@@ -139,6 +183,38 @@
4703 </div>
4704 <hr>
4705 <div class="refsect2">
4706+<a name="shell-app-system-initial-search"></a><h3>shell_app_system_initial_search ()</h3>
4707+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * shell_app_system_initial_search (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4708+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *terms</code></em>);</pre>
4709+<p>
4710+Search through applications for the given search terms.
4711+</p>
4712+<div class="variablelist"><table border="0" class="variablelist">
4713+<colgroup>
4714+<col align="left" valign="top">
4715+<col>
4716+</colgroup>
4717+<tbody>
4718+<tr>
4719+<td><p><span class="term"><em class="parameter"><code>system</code></em> :</span></p></td>
4720+<td>A <a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a>
4721+</td>
4722+</tr>
4723+<tr>
4724+<td><p><span class="term"><em class="parameter"><code>terms</code></em> :</span></p></td>
4725+<td>List of terms, logical AND. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
4726+</td>
4727+</tr>
4728+<tr>
4729+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4730+<td>List of applications. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ShellApp]</span>
4731+</td>
4732+</tr>
4733+</tbody>
4734+</table></div>
4735+</div>
4736+<hr>
4737+<div class="refsect2">
4738 <a name="shell-app-system-lookup-app"></a><h3>shell_app_system_lookup_app ()</h3>
4739 <pre class="programlisting"><span class="returnvalue">ShellApp</span> * shell_app_system_lookup_app (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4740 <em class="parameter"><code>const <span class="type">char</span> *id</code></em>);</pre>
4741@@ -152,7 +228,7 @@
4742 </colgroup>
4743 <tbody><tr>
4744 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4745-<td>The <span class="type">ShellApp</span> for id, or <a href="/home/florian/opt/gnome/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a> if none. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4746+<td>The <span class="type">ShellApp</span> for id, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4747 </td>
4748 </tr></tbody>
4749 </table></div>
4750@@ -184,7 +260,7 @@
4751 </tr>
4752 <tr>
4753 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4754-<td>The <span class="type">ShellApp</span> for <em class="parameter"><code>entry</code></em>, or <a href="/home/florian/opt/gnome/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a> if none. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4755+<td>The <span class="type">ShellApp</span> for <em class="parameter"><code>entry</code></em>, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4756 </td>
4757 </tr>
4758 </tbody>
4759@@ -199,7 +275,7 @@
4760 <p>
4761 Find or create a <span class="type">ShellApp</span> corresponding to a given absolute file
4762 name which must be in the standard paths (XDG_DATA_DIRS). For
4763-files outside the datadirs, this function returns <a href="/home/florian/opt/gnome/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>.
4764+files outside the datadirs, this function returns <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>.
4765 </p>
4766 <div class="variablelist"><table border="0" class="variablelist">
4767 <colgroup>
4768@@ -214,12 +290,12 @@
4769 </tr>
4770 <tr>
4771 <td><p><span class="term"><em class="parameter"><code>desktop_path</code></em> :</span></p></td>
4772-<td>UTF-8 encoded absolute file name. <span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span>
4773+<td>UTF-8 encoded absolute file name. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> utf8]</span>
4774 </td>
4775 </tr>
4776 <tr>
4777 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4778-<td>The <span class="type">ShellApp</span> for id, or <a href="/home/florian/opt/gnome/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a> if none. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4779+<td>The <span class="type">ShellApp</span> for id, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4780 </td>
4781 </tr>
4782 </tbody>
4783@@ -234,7 +310,7 @@
4784 <p>
4785 Find a valid application corresponding to a given
4786 heuristically determined application identifier
4787-string, or <a href="/home/florian/opt/gnome/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a> if none.
4788+string, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none.
4789 </p>
4790 <div class="variablelist"><table border="0" class="variablelist">
4791 <colgroup>
4792@@ -261,6 +337,29 @@
4793 </div>
4794 <hr>
4795 <div class="refsect2">
4796+<a name="shell-app-system-lookup-setting"></a><h3>shell_app_system_lookup_setting ()</h3>
4797+<pre class="programlisting"><span class="returnvalue">ShellApp</span> * shell_app_system_lookup_setting (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4798+ <em class="parameter"><code>const <span class="type">char</span> *id</code></em>);</pre>
4799+<div class="variablelist"><table border="0" class="variablelist">
4800+<colgroup>
4801+<col align="left" valign="top">
4802+<col>
4803+</colgroup>
4804+<tbody>
4805+<tr>
4806+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
4807+<td>desktop file id</td>
4808+</tr>
4809+<tr>
4810+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4811+<td>Application in gnomecc.menu, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4812+</td>
4813+</tr>
4814+</tbody>
4815+</table></div>
4816+</div>
4817+<hr>
4818+<div class="refsect2">
4819 <a name="shell-app-system-lookup-wmclass"></a><h3>shell_app_system_lookup_wmclass ()</h3>
4820 <pre class="programlisting"><span class="returnvalue">ShellApp</span> * shell_app_system_lookup_wmclass (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4821 <em class="parameter"><code>const <span class="type">char</span> *wmclass</code></em>);</pre>
4822@@ -292,39 +391,11 @@
4823 </div>
4824 <hr>
4825 <div class="refsect2">
4826-<a name="shell-app-system-get-running"></a><h3>shell_app_system_get_running ()</h3>
4827-<pre class="programlisting"><span class="returnvalue">GSList</span> * shell_app_system_get_running (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *self</code></em>);</pre>
4828-<p>
4829-Returns the set of applications which currently have at least one
4830-open window in the given context. The returned list will be sorted
4831-by <a class="link" href="shell-ShellApp.html#shell-app-compare" title="shell_app_compare ()"><code class="function">shell_app_compare()</code></a>.
4832-</p>
4833-<div class="variablelist"><table border="0" class="variablelist">
4834-<colgroup>
4835-<col align="left" valign="top">
4836-<col>
4837-</colgroup>
4838-<tbody>
4839-<tr>
4840-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
4841-<td>A <a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a>
4842-</td>
4843-</tr>
4844-<tr>
4845-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4846-<td>Active applications. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ShellApp][<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span>
4847-</td>
4848-</tr>
4849-</tbody>
4850-</table></div>
4851-</div>
4852-<hr>
4853-<div class="refsect2">
4854-<a name="shell-app-system-initial-search"></a><h3>shell_app_system_initial_search ()</h3>
4855-<pre class="programlisting"><span class="returnvalue">GSList</span> * shell_app_system_initial_search (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4856- <em class="parameter"><code><span class="type">GSList</span> *terms</code></em>);</pre>
4857-<p>
4858-Search through applications for the given search terms.
4859+<a name="shell-app-system-search-settings"></a><h3>shell_app_system_search_settings ()</h3>
4860+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * shell_app_system_search_settings (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4861+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *terms</code></em>);</pre>
4862+<p>
4863+Search through settings for the given search terms.
4864 </p>
4865 <div class="variablelist"><table border="0" class="variablelist">
4866 <colgroup>
4867@@ -344,7 +415,7 @@
4868 </tr>
4869 <tr>
4870 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4871-<td>List of applications. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ShellApp]</span>
4872+<td>List of setting applications. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ShellApp]</span>
4873 </td>
4874 </tr>
4875 </tbody>
4876@@ -353,9 +424,9 @@
4877 <hr>
4878 <div class="refsect2">
4879 <a name="shell-app-system-subsearch"></a><h3>shell_app_system_subsearch ()</h3>
4880-<pre class="programlisting"><span class="returnvalue">GSList</span> * shell_app_system_subsearch (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4881- <em class="parameter"><code><span class="type">GSList</span> *previous_results</code></em>,
4882- <em class="parameter"><code><span class="type">GSList</span> *terms</code></em>);</pre>
4883+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * shell_app_system_subsearch (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4884+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *previous_results</code></em>,
4885+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *terms</code></em>);</pre>
4886 <p>
4887 Search through a previous result set; for more information, see
4888 js/ui/search.js. Note the value of <em class="parameter"><code>prefs</code></em> must be
4889@@ -391,77 +462,6 @@
4890 </tbody>
4891 </table></div>
4892 </div>
4893-<hr>
4894-<div class="refsect2">
4895-<a name="shell-app-system-get-settings-tree"></a><h3>shell_app_system_get_settings_tree ()</h3>
4896-<pre class="programlisting"><span class="returnvalue">GMenuTree</span> * shell_app_system_get_settings_tree (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>);</pre>
4897-<div class="variablelist"><table border="0" class="variablelist">
4898-<colgroup>
4899-<col align="left" valign="top">
4900-<col>
4901-</colgroup>
4902-<tbody><tr>
4903-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4904-<td>The <span class="type">GMenuTree</span> for apps. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4905-</td>
4906-</tr></tbody>
4907-</table></div>
4908-</div>
4909-<hr>
4910-<div class="refsect2">
4911-<a name="shell-app-system-search-settings"></a><h3>shell_app_system_search_settings ()</h3>
4912-<pre class="programlisting"><span class="returnvalue">GSList</span> * shell_app_system_search_settings (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4913- <em class="parameter"><code><span class="type">GSList</span> *terms</code></em>);</pre>
4914-<p>
4915-Search through settings for the given search terms.
4916-</p>
4917-<div class="variablelist"><table border="0" class="variablelist">
4918-<colgroup>
4919-<col align="left" valign="top">
4920-<col>
4921-</colgroup>
4922-<tbody>
4923-<tr>
4924-<td><p><span class="term"><em class="parameter"><code>system</code></em> :</span></p></td>
4925-<td>A <a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a>
4926-</td>
4927-</tr>
4928-<tr>
4929-<td><p><span class="term"><em class="parameter"><code>terms</code></em> :</span></p></td>
4930-<td>List of terms, logical AND. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
4931-</td>
4932-</tr>
4933-<tr>
4934-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4935-<td>List of setting applications. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ShellApp]</span>
4936-</td>
4937-</tr>
4938-</tbody>
4939-</table></div>
4940-</div>
4941-<hr>
4942-<div class="refsect2">
4943-<a name="shell-app-system-lookup-setting"></a><h3>shell_app_system_lookup_setting ()</h3>
4944-<pre class="programlisting"><span class="returnvalue">ShellApp</span> * shell_app_system_lookup_setting (<em class="parameter"><code><a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *system</code></em>,
4945- <em class="parameter"><code>const <span class="type">char</span> *id</code></em>);</pre>
4946-<div class="variablelist"><table border="0" class="variablelist">
4947-<colgroup>
4948-<col align="left" valign="top">
4949-<col>
4950-</colgroup>
4951-<tbody>
4952-<tr>
4953-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
4954-<td>desktop file id</td>
4955-</tr>
4956-<tr>
4957-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
4958-<td>Application in gnomecc.menu, or <a href="/home/florian/opt/gnome/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a> if none. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
4959-</td>
4960-</tr>
4961-</tbody>
4962-</table></div>
4963-</div>
4964 </div>
4965 <div class="refsect1">
4966 <a name="ShellAppSystem.signal-details"></a><h2>Signal Details</h2>
4967@@ -469,18 +469,18 @@
4968 <a name="ShellAppSystem-app-state-changed"></a><h3>The <code class="literal">"app-state-changed"</code> signal</h3>
4969 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *shellappsystem,
4970 <span class="type">ShellApp</span> *arg1,
4971- <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
4972+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
4973 </div>
4974 <hr>
4975 <div class="refsect2">
4976 <a name="ShellAppSystem-installed-changed"></a><h3>The <code class="literal">"installed-changed"</code> signal</h3>
4977 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="ShellAppSystem.html" title="ShellAppSystem"><span class="type">ShellAppSystem</span></a> *shellappsystem,
4978- <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
4979+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
4980 </div>
4981 </div>
4982 </div>
4983 <div class="footer">
4984 <hr>
4985- Generated by GTK-Doc V1.18.1</div>
4986+ Generated by GTK-Doc V1.18</div>
4987 </body>
4988 </html>
4989\ No newline at end of file
4990
4991=== modified file 'docs/reference/shell/html/ShellEmbeddedWindow.html'
4992--- docs/reference/shell/html/ShellEmbeddedWindow.html 2012-06-26 00:08:54 +0000
4993+++ docs/reference/shell/html/ShellEmbeddedWindow.html 2013-02-24 03:10:25 +0000
4994@@ -8,7 +8,7 @@
4995 <link rel="up" href="ch04.html" title="Tray Icons">
4996 <link rel="prev" href="ch04.html" title="Tray Icons">
4997 <link rel="next" href="ShellGtkEmbed.html" title="ShellGtkEmbed">
4998-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
4999+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
5000 <link rel="stylesheet" href="style.css" type="text/css">
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: