diff -Nru empathy-3.4.2/ChangeLog empathy-3.4.2.1/ChangeLog --- empathy-3.4.2/ChangeLog 2012-05-14 11:31:33.000000000 +0000 +++ empathy-3.4.2.1/ChangeLog 2012-05-21 12:09:19.000000000 +0000 @@ -1,3 +1,231 @@ +commit 71cab9b191860ec1208cc4b144be9409e16f780a +Author: Guillaume Desmottes +Date: Mon May 21 14:04:48 2012 +0200 + + Prepare 3.4.2.1 + + NEWS | 14 ++++++++++++++ + configure.ac | 4 ++-- + 2 files changed, 16 insertions(+), 2 deletions(-) + +commit a7feeae6d2028daa75a36e4a0f992877faabf1d9 +Author: Sjoerd Simons +Date: Mon May 21 13:52:34 2012 +0200 + + call: Initialize the timer early + + src/empathy-call-window.c | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +commit 108b3fa233660bdd0e88ac2d4642a75efa8f1eb7 +Author: Sjoerd Simons +Date: Mon May 21 13:44:06 2012 +0200 + + audiosrc: Don't use stream volumes properties if the src doesn't + support them + + src/empathy-audio-src.c | 14 ++++++++++++-- + 1 files changed, 12 insertions(+), 2 deletions(-) + +commit d524cc36152688f8475f14eb2bfd17bcb1e34b3f +Author: Sjoerd Simons +Date: Mon May 21 12:16:49 2012 +0200 + + call: Keep the toolbar around if muted + + It's not uncommon for people to forget that the put a call on mute, + causing awkward situation while trying to talk while muted. To + prevent this, keep the toolbar showhing while muted as a reminder. + + src/empathy-call-window.c | 28 ++++++++++++++++++++++++++-- + 1 files changed, 26 insertions(+), 2 deletions(-) + +commit 9f1691878cc95951039eb2d7a47b6462569da299 +Author: Sjoerd Simons +Date: Mon May 21 11:55:25 2012 +0200 + + audio input: Switch to stream volumes + + Newer gstreamer & pulseaudio support the stream volume interface for + input as well. Prefer this over using the mixer interface as it's + both simpler and actually does as intended. Besides that the + mixer interface is buggy and seems to not correctly adjust the + current input device if the source was switch to a non-default input. + + As an extra put in a volume element to locally enforce the current + mute + state. This ensure that whatever happens, if the UI says mute, the + stream is guaranteed to be muted. This prevents awkward situations if + the source element doesn't support stream volumes or the notification + is buggy (like with current pulsesrc in releases). + + src/empathy-audio-src.c | 214 + ++++++++++++++++------------------------------- + 1 files changed, 72 insertions(+), 142 deletions(-) + +commit 246b14f2722e6aac0c9744e49edd70594846f004 +Author: Sjoerd Simons +Date: Mon May 21 10:48:53 2012 +0200 + + call: Adjust the preview rectangle colors + + As our default background is now black the non-highlighted previews + get hard to see. Change the rectangle colors to white for the + highlighted version and a darkened white for the non-highlighted. + + src/empathy-call-window.c | 31 ++++--------------------------- + 1 files changed, 4 insertions(+), 27 deletions(-) + +commit 4f2d28ecffbd3b5f77b81539fba0f7ce66618ed9 +Author: Sjoerd Simons +Date: Mon May 21 10:31:57 2012 +0200 + + Call: Let the floating toolbar be above the preview + + The call window has previews in the four corners, before the lower + ones were packed in a way that they would appear above the floating + toolbar which looks strange when the floating toolbar disappears. + + Instead allow the lower preview to be below the floating toolbar so + they're evenly spread out. + + src/empathy-call-window.c | 39 +++++++++++++++++++-------------------- + 1 files changed, 19 insertions(+), 20 deletions(-) + +commit 0343d38411f58086366190100521c6a847985c13 +Author: Sjoerd Simons +Date: Mon May 21 10:00:21 2012 +0200 + + Keep some margin for the preview and the floating toolbar + + Now that the video box is flush against the sides add some extra + margin + for the things floating inside. + + src/empathy-call-window.c | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +commit 1fa90edcd725ae7ac78a3caed904b3e382e25560 +Author: Sjoerd Simons +Date: Sun May 20 21:31:13 2012 +0200 + + call: Make the remote video background black + + Mimic totem in making the background for our video output black by + default and without extra borders. It does look nicer. + + src/empathy-call-window.c | 23 +++++------------------ + 1 files changed, 5 insertions(+), 18 deletions(-) + +commit 7e7a60c59f7e07612cdbc5e547dbb9a1151834ab +Author: Sjoerd Simons +Date: Sun May 20 19:59:29 2012 +0200 + + Call window: Ellipsize alias and status + + If the user alias is too long both the hangup and the dialpad buttons + get pushed into a drop-down menu. Even worse when the alias doesn't + fit, + it just isn't shown at all anymore. + + Given the username is already printed in the title and the user + tends to + know who they're calling with, ellipsizing the alias isn't an issue. + Which has the nice side-effect of keeping the hangup and dialpad + buttons + on the toolbar in all cases like they should be. + + Unfortunately as pango doesn't ellipsize if it still has enough height + left to put more lines in. So put the alias and status in seperate + labels in a vbox which isn't set to fill. + + src/empathy-call-window.c | 22 ++++++++++++------- + src/empathy-call-window.ui | 48 + +++++++++++++++++++++---------------------- + 2 files changed, 37 insertions(+), 33 deletions(-) + +commit 6b19934b9a237b648f36b0da943bde046b6488c0 +Author: Sjoerd Simons +Date: Sun May 20 13:07:57 2012 +0200 + + Don't put the status in the header if the user has none + + src/empathy-call-window.c | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +commit 2b263049bd152504227c9ade7e7b6e17cbc95f11 +Author: Guillaume Desmottes +Date: Mon May 21 10:55:46 2012 +0200 + + empathy-accounts: init cheese-gtk if needed + + The avatar chooser, which is not used by empathy-accounts, may use + Cheese to + take a photo. + + cheese_gtk_init() has been added during the 3.4 cycle so I bumped + the dep to + 3.4.0 as that's the version I have tested it with it. It's an + optionnal dep + anyway so... + + https://bugzilla.gnome.org/show_bug.cgi?id=674553 + + configure.ac | 2 +- + src/Makefile.am | 5 +++++ + src/empathy-accounts.c | 11 +++++++++++ + 3 files changed, 17 insertions(+), 1 deletions(-) + +commit 87524d43add5732091025b0f76661c09a06bb116 +Author: Guillaume Desmottes +Date: Mon May 21 10:47:00 2012 +0200 + + configure.ac: set cheese version in CHEESE_GTK_REQUIRED + + https://bugzilla.gnome.org/show_bug.cgi?id=674553 + + configure.ac | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 001e077b3575d2525bb7354d78e0e25837db73e7 +Author: Sjoerd Simons +Date: Sat May 19 20:30:57 2012 +0200 + + Call: Fix floating toolbar + + Empathy needed to mark the toolbar actor as reactive otherwise + it won't + be reactive to events (doh)... + + And empathy needed to stop calling + gdk_disable_multi_device().. Empathy + used to do this because it has to be called before GTK+ is initialized + and clutter-gtk only called after GTK+ was initialized by other + function + in empathy. Unfortunately since clutter-gtk 1.1.2 instead of ensuring + event actually work with clutter-gtk calling this function will + actually + break event handle (great fun!).. + + Oh and also bump the clutter-gtk requirement to 1.1.2 to ensure we get + the right behaviour for events.. + + https://bugzilla.gnome.org/show_bug.cgi?id=670874 + + configure.ac | 2 +- + src/empathy-call-window.c | 1 + + src/empathy-call.c | 3 --- + 3 files changed, 2 insertions(+), 4 deletions(-) + +commit 90bea18ba8c6b585f483aa902d66d08972d982dd +Author: Guillaume Desmottes +Date: Mon May 14 13:40:08 2012 +0200 + + remove released flag + + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + commit 9238d69859b4d56477a898ea966c54d3f388a289 Author: Guillaume Desmottes Date: Mon May 14 13:30:33 2012 +0200 diff -Nru empathy-3.4.2/configure empathy-3.4.2.1/configure --- empathy-3.4.2/configure 2012-05-14 11:24:27.000000000 +0000 +++ empathy-3.4.2.1/configure 2012-05-21 12:08:47.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for Empathy 3.4.2. +# Generated by GNU Autoconf 2.68 for Empathy 3.4.2.1. # # Report bugs to . # @@ -576,8 +576,8 @@ # Identity of this package. PACKAGE_NAME='Empathy' PACKAGE_TARNAME='empathy' -PACKAGE_VERSION='3.4.2' -PACKAGE_STRING='Empathy 3.4.2' +PACKAGE_VERSION='3.4.2.1' +PACKAGE_STRING='Empathy 3.4.2.1' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/browse.cgi?product=empathy' PACKAGE_URL='https://live.gnome.org/Empathy' @@ -1482,7 +1482,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Empathy 3.4.2 to adapt to many kinds of systems. +\`configure' configures Empathy 3.4.2.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1556,7 +1556,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Empathy 3.4.2:";; + short | recursive ) echo "Configuration of Empathy 3.4.2.1:";; esac cat <<\_ACEOF @@ -1756,7 +1756,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Empathy configure 3.4.2 +Empathy configure 3.4.2.1 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2039,7 +2039,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Empathy $as_me 3.4.2, which was +It was created by Empathy $as_me 3.4.2.1, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2421,7 +2421,7 @@ $as_echo "#define CLUTTER_VERSION_MAX_ALLOWED CLUTTER_VERSION_1_10" >>confdefs.h -CLUTTER_GTK_REQUIRED=0.90.3 +CLUTTER_GTK_REQUIRED=1.1.2 CLUTTER_GST_REQUIRED=1.5.2 TELEPATHY_GLIB_REQUIRED=0.18.0 @@ -2449,6 +2449,7 @@ NAUTILUS_SENDTO_REQUIRED=2.90.0 NETWORK_MANAGER_REQUIRED=0.7.0 CHAMPLAIN_REQUIRED=0.12.1 +CHEESE_GTK_REQUIRED=3.4.0 # Use --enable-maintainer-mode to disable deprecated symbols, # disable single include and enable GSEAL. If this is not a released empathy, @@ -2929,7 +2930,7 @@ # Define the identity of the package. PACKAGE='empathy' - VERSION='3.4.2' + VERSION='3.4.2.1' # Some tools Automake needs. @@ -16449,12 +16450,12 @@ pkg_cv_CHEESE_CFLAGS="$CHEESE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.10 cheese-gtk >= 2.91.91.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gstreamer-0.10 cheese-gtk >= 2.91.91.1") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.10 cheese-gtk >= CHEESE_GTK_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gstreamer-0.10 cheese-gtk >= CHEESE_GTK_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_CHEESE_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-0.10 cheese-gtk >= 2.91.91.1" 2>/dev/null` + pkg_cv_CHEESE_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-0.10 cheese-gtk >= CHEESE_GTK_REQUIRED" 2>/dev/null` else pkg_failed=yes fi @@ -16465,12 +16466,12 @@ pkg_cv_CHEESE_LIBS="$CHEESE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.10 cheese-gtk >= 2.91.91.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gstreamer-0.10 cheese-gtk >= 2.91.91.1") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.10 cheese-gtk >= CHEESE_GTK_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gstreamer-0.10 cheese-gtk >= CHEESE_GTK_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_CHEESE_LIBS=`$PKG_CONFIG --libs "gstreamer-0.10 cheese-gtk >= 2.91.91.1" 2>/dev/null` + pkg_cv_CHEESE_LIBS=`$PKG_CONFIG --libs "gstreamer-0.10 cheese-gtk >= CHEESE_GTK_REQUIRED" 2>/dev/null` else pkg_failed=yes fi @@ -16490,9 +16491,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - CHEESE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gstreamer-0.10 cheese-gtk >= 2.91.91.1" 2>&1` + CHEESE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gstreamer-0.10 cheese-gtk >= CHEESE_GTK_REQUIRED" 2>&1` else - CHEESE_PKG_ERRORS=`$PKG_CONFIG --print-errors "gstreamer-0.10 cheese-gtk >= 2.91.91.1" 2>&1` + CHEESE_PKG_ERRORS=`$PKG_CONFIG --print-errors "gstreamer-0.10 cheese-gtk >= CHEESE_GTK_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$CHEESE_PKG_ERRORS" >&5 @@ -17406,7 +17407,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Empathy $as_me 3.4.2, which was +This file was extended by Empathy $as_me 3.4.2.1, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17473,7 +17474,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Empathy config.status 3.4.2 +Empathy config.status 3.4.2.1 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -Nru empathy-3.4.2/configure.ac empathy-3.4.2.1/configure.ac --- empathy-3.4.2/configure.ac 2012-05-14 11:24:18.000000000 +0000 +++ empathy-3.4.2.1/configure.ac 2012-05-21 12:06:19.000000000 +0000 @@ -4,7 +4,7 @@ m4_define([empathy_major_version], [3]) m4_define([empathy_minor_version], [4]) m4_define([empathy_micro_version], [2]) -m4_define([empathy_nano_version], [0]) +m4_define([empathy_nano_version], [1]) dnl Display the nano_version only if it's not '0' m4_define([empathy_base_version], @@ -49,7 +49,7 @@ AC_DEFINE(CLUTTER_VERSION_MIN_REQUIRED, CLUTTER_VERSION_1_8, [Ignore post 1.8 deprecations]) AC_DEFINE(CLUTTER_VERSION_MAX_ALLOWED, CLUTTER_VERSION_1_10, [Prevent post 1.10 APIs]) -CLUTTER_GTK_REQUIRED=0.90.3 +CLUTTER_GTK_REQUIRED=1.1.2 CLUTTER_GST_REQUIRED=1.5.2 TELEPATHY_GLIB_REQUIRED=0.18.0 @@ -73,6 +73,7 @@ NAUTILUS_SENDTO_REQUIRED=2.90.0 NETWORK_MANAGER_REQUIRED=0.7.0 CHAMPLAIN_REQUIRED=0.12.1 +CHEESE_GTK_REQUIRED=3.4.0 # Use --enable-maintainer-mode to disable deprecated symbols, # disable single include and enable GSEAL. If this is not a released empathy, @@ -579,7 +580,7 @@ with_cheese=auto) if test x"$with_cheese" != x"no" ; then - PKG_CHECK_MODULES(CHEESE, gstreamer-0.10 cheese-gtk >= 2.91.91.1, [have_cheese=yes], [have_cheese=no]) + PKG_CHECK_MODULES(CHEESE, gstreamer-0.10 cheese-gtk >= CHEESE_GTK_REQUIRED, [have_cheese=yes], [have_cheese=no]) if test x${have_cheese} = xyes; then AC_DEFINE(HAVE_CHEESE, 1, [Define to 1 to enable cheese webcam support]) fi diff -Nru empathy-3.4.2/data/empathy-accounts.desktop empathy-3.4.2.1/data/empathy-accounts.desktop --- empathy-3.4.2/data/empathy-accounts.desktop 2012-05-14 11:25:03.000000000 +0000 +++ empathy-3.4.2.1/data/empathy-accounts.desktop 2012-05-21 12:09:20.000000000 +0000 @@ -141,4 +141,4 @@ X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=empathy X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=3.4.2 +X-GNOME-Bugzilla-Version=3.4.2.1 diff -Nru empathy-3.4.2/data/empathy-accounts.desktop.in empathy-3.4.2.1/data/empathy-accounts.desktop.in --- empathy-3.4.2/data/empathy-accounts.desktop.in 2012-05-14 11:24:45.000000000 +0000 +++ empathy-3.4.2.1/data/empathy-accounts.desktop.in 2012-05-21 12:08:59.000000000 +0000 @@ -11,4 +11,4 @@ X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=empathy X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=3.4.2 +X-GNOME-Bugzilla-Version=3.4.2.1 diff -Nru empathy-3.4.2/data/empathy.desktop empathy-3.4.2.1/data/empathy.desktop --- empathy-3.4.2/data/empathy.desktop 2012-05-14 11:25:03.000000000 +0000 +++ empathy-3.4.2.1/data/empathy.desktop 2012-05-21 12:09:20.000000000 +0000 @@ -290,4 +290,4 @@ X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=empathy X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=3.4.2 +X-GNOME-Bugzilla-Version=3.4.2.1 diff -Nru empathy-3.4.2/data/empathy.desktop.in empathy-3.4.2.1/data/empathy.desktop.in --- empathy-3.4.2/data/empathy.desktop.in 2012-05-14 11:24:45.000000000 +0000 +++ empathy-3.4.2.1/data/empathy.desktop.in 2012-05-21 12:08:59.000000000 +0000 @@ -13,4 +13,4 @@ X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=empathy X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=3.4.2 +X-GNOME-Bugzilla-Version=3.4.2.1 diff -Nru empathy-3.4.2/debian/changelog empathy-3.4.2.1/debian/changelog --- empathy-3.4.2/debian/changelog 2012-05-16 14:19:01.000000000 +0000 +++ empathy-3.4.2.1/debian/changelog 2012-05-23 19:44:42.000000000 +0000 @@ -1,3 +1,11 @@ +empathy (3.4.2.1-0ubuntu1) precise-proposed; urgency=low + + * New upstream bug fix release (LP: #1003465). + - floating toolbar not working. + - Take picture button in image change doesn't work. + + -- Brian Curtis Tue, 22 May 2012 14:10:12 -0400 + empathy (3.4.2-0ubuntu1) precise-proposed; urgency=low * New upstream bug fix release. diff -Nru empathy-3.4.2/debian/patches/01_lpi.patch empathy-3.4.2.1/debian/patches/01_lpi.patch --- empathy-3.4.2/debian/patches/01_lpi.patch 2012-05-16 13:37:20.000000000 +0000 +++ empathy-3.4.2.1/debian/patches/01_lpi.patch 2012-05-23 13:32:33.000000000 +0000 @@ -1,9 +1,9 @@ === modified file 'configure.ac' Index: empathy/configure.ac =================================================================== ---- empathy.orig/configure.ac 2012-05-15 11:23:21.829976851 -0400 -+++ empathy/configure.ac 2012-05-15 11:23:27.237976784 -0400 -@@ -198,6 +198,7 @@ +--- empathy.orig/configure.ac 2012-05-22 14:10:12.203958000 -0400 ++++ empathy/configure.ac 2012-05-22 14:13:56.378889570 -0400 +@@ -199,6 +199,7 @@ libcanberra-gtk3 >= $LIBCANBERRA_GTK_REQUIRED libnotify >= $LIBNOTIFY_REQUIRED gcr-3 >= $GCR_REQUIRED @@ -13,8 +13,8 @@ webkitgtk-3.0 >= $WEBKIT_REQUIRED Index: empathy/src/empathy-chat-window.c =================================================================== ---- empathy.orig/src/empathy-chat-window.c 2012-05-15 11:23:21.861976852 -0400 -+++ empathy/src/empathy-chat-window.c 2012-05-15 11:23:27.241976784 -0400 +--- empathy.orig/src/empathy-chat-window.c 2012-05-22 14:10:12.102889806 -0400 ++++ empathy/src/empathy-chat-window.c 2012-05-22 14:13:56.378889570 -0400 @@ -36,6 +36,9 @@ #include #include @@ -37,8 +37,8 @@ /* Returns the window to open a new tab in if there is a suitable window, Index: empathy/src/empathy-chat-window.ui =================================================================== ---- empathy.orig/src/empathy-chat-window.ui 2012-05-15 11:23:21.873976847 -0400 -+++ empathy/src/empathy-chat-window.ui 2012-05-15 11:23:27.241976784 -0400 +--- empathy.orig/src/empathy-chat-window.ui 2012-05-22 14:10:12.114889806 -0400 ++++ empathy/src/empathy-chat-window.ui 2012-05-22 14:13:56.378889570 -0400 @@ -198,6 +198,7 @@ @@ -49,8 +49,8 @@ Index: empathy/src/empathy-roster-window-menubar.ui =================================================================== ---- empathy.orig/src/empathy-roster-window-menubar.ui 2012-05-15 11:23:21.841976850 -0400 -+++ empathy/src/empathy-roster-window-menubar.ui 2012-05-15 11:23:27.241976784 -0400 +--- empathy.orig/src/empathy-roster-window-menubar.ui 2012-05-22 14:10:12.082889806 -0400 ++++ empathy/src/empathy-roster-window-menubar.ui 2012-05-22 14:13:56.378889570 -0400 @@ -290,6 +290,7 @@ @@ -61,8 +61,8 @@ Index: empathy/src/empathy-roster-window.c =================================================================== ---- empathy.orig/src/empathy-roster-window.c 2012-05-15 11:23:21.849976853 -0400 -+++ empathy/src/empathy-roster-window.c 2012-05-15 11:23:27.241976784 -0400 +--- empathy.orig/src/empathy-roster-window.c 2012-05-22 14:10:12.094889806 -0400 ++++ empathy/src/empathy-roster-window.c 2012-05-22 14:13:56.378889570 -0400 @@ -32,6 +32,9 @@ #include #include diff -Nru empathy-3.4.2/debian/patches/23_idomessagedialog_for_voip_and_ft.patch empathy-3.4.2.1/debian/patches/23_idomessagedialog_for_voip_and_ft.patch --- empathy-3.4.2/debian/patches/23_idomessagedialog_for_voip_and_ft.patch 2012-05-16 13:37:20.000000000 +0000 +++ empathy-3.4.2.1/debian/patches/23_idomessagedialog_for_voip_and_ft.patch 2012-05-23 13:32:33.000000000 +0000 @@ -1,8 +1,8 @@ === modified file 'configure.ac' Index: empathy/configure.ac =================================================================== ---- empathy.orig/configure.ac 2012-05-15 11:23:27.237976784 -0400 -+++ empathy/configure.ac 2012-05-15 11:23:46.109976519 -0400 +--- empathy.orig/configure.ac 2012-05-22 14:13:56.378889570 -0400 ++++ empathy/configure.ac 2012-05-22 14:14:17.598889542 -0400 @@ -63,6 +63,7 @@ LIBNOTIFY_REQUIRED=0.7.0 TELEPATHY_FARSTREAM_REQUIRED=0.2.1 @@ -11,7 +11,7 @@ WEBKIT_REQUIRED=1.3.13 GOA_REQUIRED=3.3.0 -@@ -193,6 +194,7 @@ +@@ -194,6 +195,7 @@ libxml-2.0 telepathy-glib >= $TELEPATHY_GLIB_REQUIRED telepathy-logger-0.2 >= $TELEPATHY_LOGGER @@ -21,8 +21,8 @@ libcanberra-gtk3 >= $LIBCANBERRA_GTK_REQUIRED Index: empathy/src/empathy-event-manager.c =================================================================== ---- empathy.orig/src/empathy-event-manager.c 2012-05-15 11:23:39.161976616 -0400 -+++ empathy/src/empathy-event-manager.c 2012-05-15 11:23:46.109976519 -0400 +--- empathy.orig/src/empathy-event-manager.c 2012-05-22 14:14:05.206889558 -0400 ++++ empathy/src/empathy-event-manager.c 2012-05-22 14:14:17.598889542 -0400 @@ -45,6 +45,12 @@ #include #include diff -Nru empathy-3.4.2/debian/patches/41_unity_launcher_progress.patch empathy-3.4.2.1/debian/patches/41_unity_launcher_progress.patch --- empathy-3.4.2/debian/patches/41_unity_launcher_progress.patch 2012-05-16 13:37:20.000000000 +0000 +++ empathy-3.4.2.1/debian/patches/41_unity_launcher_progress.patch 2012-05-23 13:32:33.000000000 +0000 @@ -1,17 +1,17 @@ === modified file 'configure.ac' Index: empathy/configure.ac =================================================================== ---- empathy.orig/configure.ac 2012-05-15 11:23:46.109976519 -0400 -+++ empathy/configure.ac 2012-05-15 11:23:58.809976350 -0400 +--- empathy.orig/configure.ac 2012-05-22 14:14:17.598889542 -0400 ++++ empathy/configure.ac 2012-05-22 14:14:28.838889533 -0400 @@ -73,6 +73,7 @@ ISO_CODES_REQUIRED=0.35 NAUTILUS_SENDTO_REQUIRED=2.90.0 NETWORK_MANAGER_REQUIRED=0.7.0 +UNITY_REQUIRED=3.4.0 CHAMPLAIN_REQUIRED=0.12.1 + CHEESE_GTK_REQUIRED=3.4.0 - # Use --enable-maintainer-mode to disable deprecated symbols, -@@ -390,6 +391,34 @@ +@@ -391,6 +392,34 @@ AM_CONDITIONAL(HAVE_ENCHANT, test "x$have_enchant" = "xyes") @@ -46,7 +46,7 @@ # ----------------------------------------------------------- # Map view checks: libchamplain # ----------------------------------------------------------- -@@ -647,6 +676,7 @@ +@@ -648,6 +677,7 @@ Location awareness (Geoclue): ${have_geoclue} Geocode support (Geocode)...: ${have_geocode} Meego widgets...............: ${have_meego} @@ -56,8 +56,8 @@ Index: empathy/src/Makefile.am =================================================================== ---- empathy.orig/src/Makefile.am 2012-05-15 11:23:21.445976857 -0400 -+++ empathy/src/Makefile.am 2012-05-15 11:23:58.809976350 -0400 +--- empathy.orig/src/Makefile.am 2012-05-22 14:10:12.203958000 -0400 ++++ empathy/src/Makefile.am 2012-05-22 14:14:28.838889533 -0400 @@ -14,6 +14,7 @@ AM_LDFLAGS = $(LIBM) AM_CPPFLAGS = \ @@ -74,7 +74,7 @@ $(LIBCHAMPLAIN_LIBS) \ $(NULL) -@@ -180,6 +182,7 @@ +@@ -185,6 +187,7 @@ $(top_builddir)/libempathy/libempathy.la \ $(top_builddir)/extensions/libemp-extensions.la \ $(EMPATHY_LIBS) \ @@ -84,8 +84,8 @@ Index: empathy/src/empathy-ft-manager.c =================================================================== ---- empathy.orig/src/empathy-ft-manager.c 2012-05-15 11:23:21.433976856 -0400 -+++ empathy/src/empathy-ft-manager.c 2012-05-15 11:23:58.809976350 -0400 +--- empathy.orig/src/empathy-ft-manager.c 2012-05-22 14:10:11.610889807 -0400 ++++ empathy/src/empathy-ft-manager.c 2012-05-22 14:14:28.838889533 -0400 @@ -45,6 +45,8 @@ #include "empathy-ft-manager.h" diff -Nru empathy-3.4.2/NEWS empathy-3.4.2.1/NEWS --- empathy-3.4.2/NEWS 2012-05-14 11:30:21.000000000 +0000 +++ empathy-3.4.2.1/NEWS 2012-05-21 12:06:19.000000000 +0000 @@ -1,3 +1,17 @@ +NEW in 3.4.2.1 (21/05/2012) +============== + +This release fixes various issues in the call UI and a crash when taking +a picture from the avatar chooser dialog. + +Dependencies: + • clutter-gtk ≥ 1.1.2 + • cheese ≥ 3.4.0 (optional) + +Bugs fixed: + - Fixed #670874, floating toolbar not working (Sjoerd Simons) + - Fixed #674553, Take picture button in image change doesn't work. (Guillaume Desmottes) + NEW in 3.4.2 (14/05/2012) ============ diff -Nru empathy-3.4.2/src/empathy-accounts.c empathy-3.4.2.1/src/empathy-accounts.c --- empathy-3.4.2/src/empathy-accounts.c 2012-05-14 11:24:00.000000000 +0000 +++ empathy-3.4.2.1/src/empathy-accounts.c 2012-05-21 11:55:19.000000000 +0000 @@ -32,6 +32,10 @@ #include #include +#ifdef HAVE_CHEESE +#include +#endif + #include #include #include @@ -223,6 +227,13 @@ gint retval; g_thread_init (NULL); + g_type_init (); + +#ifdef HAVE_CHEESE + /* Used by the avatar chooser */ + g_return_val_if_fail (cheese_gtk_init (&argc, &argv), 1); +#endif + empathy_init (); gtk_init (&argc, &argv); diff -Nru empathy-3.4.2/src/empathy-audio-src.c empathy-3.4.2.1/src/empathy-audio-src.c --- empathy-3.4.2/src/empathy-audio-src.c 2012-05-14 11:24:00.000000000 +0000 +++ empathy-3.4.2.1/src/empathy-audio-src.c 2012-05-21 12:05:53.000000000 +0000 @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,7 @@ gboolean dispose_has_run; GstElement *src; GstElement *level; + GstElement *volume_element; EmpathyMicMonitor *mic_monitor; @@ -74,8 +75,7 @@ gdouble volume; gboolean mute; - /* the mixer track on src we follow and adjust */ - GstMixerTrack *track; + gboolean have_stream_volume; GMutex *lock; guint level_idle_id; @@ -86,37 +86,35 @@ (G_TYPE_INSTANCE_GET_PRIVATE ((o), EMPATHY_TYPE_GST_AUDIO_SRC, \ EmpathyGstAudioSrcPrivate)) -/* There is no predefined maximum channels by gstreamer, just pick 32, which is - * the same as the pulseaudio maximum */ -#define MAX_MIC_CHANNELS 32 + +static gboolean +empathy_audio_src_volume_changed (GObject *object, + GParamSpec *pspec, + gpointer user_data); static void empathy_audio_set_hw_mute (EmpathyGstAudioSrc *self, gboolean mute) { - g_mutex_lock (self->priv->lock); - /* If there is no mixer available ignore the setting */ - if (self->priv->track == NULL) - goto out; + if (mute == self->priv->mute) + return; - gst_mixer_set_mute (GST_MIXER (self->priv->src), self->priv->track, mute); + if (self->priv->have_stream_volume) + g_object_set (self->priv->src, "mute", mute, NULL); + + /* Belt and braces: If for some reason the underlying src doesn't mute + * correctly or doesn't update us when it unmutes correctly enforce it using + * our own volume element. Our UI can in no circumstances be made to think + * the input is muted while it's not */ + g_object_set (self->priv->volume_element, "mute", mute, NULL); -out: - g_mutex_unlock (self->priv->lock); self->priv->mute = mute; } static gboolean empathy_audio_src_get_hw_mute (EmpathyGstAudioSrc *self) { - gboolean result = self->priv->mute; - - g_mutex_lock (self->priv->lock); - if (self->priv->track == NULL) - goto out; - - result = GST_MIXER_TRACK_HAS_FLAG (self->priv->track, GST_MIXER_TRACK_MUTE); -out: - g_mutex_unlock (self->priv->lock); + gboolean result; + g_object_get (self->priv->src, "mute", &result, NULL); return result; } @@ -125,42 +123,19 @@ empathy_audio_src_set_hw_volume (EmpathyGstAudioSrc *self, gdouble volume) { - gint volumes[MAX_MIC_CHANNELS]; - int i; - - g_mutex_lock (self->priv->lock); - /* If there is no mixer available ignore the setting */ - if (self->priv->track == NULL) - goto out; - - for (i = 0; i < MAX_MIC_CHANNELS; i++) - volumes[i] = self->priv->track->max_volume * volume; - - gst_mixer_set_volume (GST_MIXER (self->priv->src), - self->priv->track, volumes); - -out: - g_mutex_unlock (self->priv->lock); + if (volume == self->priv->volume) + return; + if (self->priv->have_stream_volume) + g_object_set (self->priv->src, "volume", volume, NULL); self->priv->volume = volume; } static gdouble empathy_audio_src_get_hw_volume (EmpathyGstAudioSrc *self) { - gint volumes[MAX_MIC_CHANNELS]; - gdouble result = self->priv->volume; - - g_mutex_lock (self->priv->lock); - if (self->priv->track == NULL) - goto out; - - gst_mixer_get_volume (GST_MIXER (self->priv->src), - self->priv->track, volumes); - result = volumes[0]/(gdouble)self->priv->track->max_volume; - -out: - g_mutex_unlock (self->priv->lock); + gdouble result; + g_object_get (self->priv->src, "volume", &result, NULL); return result; } @@ -265,43 +240,6 @@ source_output_idx, empathy_audio_src_get_current_mic_cb, self); } -static GstMixerTrack * -empathy_audio_src_get_track (GstElement *src) -{ - const GList *t; - GstMixerTrack *track = NULL; - - if (!gst_element_implements_interface (src, GST_TYPE_MIXER)) - { - g_warning ("No mixer interface implementation, can't control volume"); - return NULL; - } - - for (t = gst_mixer_list_tracks (GST_MIXER (src)); - t != NULL; t = g_list_next (t)) - { - GstMixerTrack *tr = t->data; - if (!tp_strdiff (tr->label, "Master")) - { - track = tr; - break; - } - } - - if (track == NULL) - { - g_warning ("No suitable track found"); - } - else if (track->num_channels > MAX_MIC_CHANNELS) - { - g_warning ("Microphones with more then %d channels not supported ", - MAX_MIC_CHANNELS); - track = NULL; - } - - return track; -} - static GstElement * create_src (void) { @@ -354,6 +292,38 @@ if (priv->src == NULL) return; + if (GST_IS_STREAM_VOLUME (priv->src)) + { + gdouble volume; + gboolean mute; + + priv->have_stream_volume = TRUE; + /* We can't do a bidirection bind as the ::notify comes from another + * thread, for other bits of empathy it's most simpler if it comes from + * the main thread */ + g_object_bind_property (obj, "volume", priv->src, "volume", + G_BINDING_DEFAULT); + g_object_bind_property (obj, "mute", priv->src, "mute", + G_BINDING_DEFAULT); + + /* sync and callback for bouncing */ + g_object_get (priv->src, "volume", &volume, NULL); + g_object_set (obj, "volume", volume, NULL); + + g_object_get (priv->src, "mute", &mute, NULL); + g_object_set (obj, "mute", mute, NULL); + + g_signal_connect (priv->src, "notify::volume", + G_CALLBACK (empathy_audio_src_volume_changed), obj); + g_signal_connect (priv->src, "notify::mute", + G_CALLBACK (empathy_audio_src_volume_changed), obj); + } + else + { + g_message ("No stream volume available :(, mute will work though"); + priv->have_stream_volume = FALSE; + } + gst_bin_add (GST_BIN (obj), priv->src); /* Explicitly state what format we want from pulsesrc. This pushes resampling @@ -372,9 +342,13 @@ gst_bin_add (GST_BIN (obj), capsfilter); gst_element_link (priv->src, capsfilter); + priv->volume_element = gst_element_factory_make ("volume", NULL); + gst_bin_add (GST_BIN (obj), priv->volume_element); + gst_element_link (capsfilter, priv->volume_element); + priv->level = gst_element_factory_make ("level", NULL); gst_bin_add (GST_BIN (obj), priv->level); - gst_element_link (capsfilter, priv->level); + gst_element_link (priv->volume_element, priv->level); src = gst_element_get_static_pad (priv->level, "src"); @@ -575,7 +549,7 @@ } static gboolean -empathy_audio_src_volume_changed (gpointer user_data) +empathy_audio_src_volume_changed_idle (gpointer user_data) { EmpathyGstAudioSrc *self = EMPATHY_GST_AUDIO_SRC (user_data); EmpathyGstAudioSrcPrivate *priv = EMPATHY_GST_AUDIO_SRC_GET_PRIVATE (self); @@ -598,12 +572,30 @@ if (mute != priv->mute) { priv->mute = mute; + /* hw mute changed, follow with own volume */ + g_object_set (self->priv->volume_element, "mute", mute, NULL); g_object_notify (G_OBJECT (self), "mute"); } return FALSE; } +static gboolean +empathy_audio_src_volume_changed (GObject *object, + GParamSpec *pspec, + gpointer user_data) +{ + EmpathyGstAudioSrc *self = EMPATHY_GST_AUDIO_SRC (user_data); + + g_mutex_lock (self->priv->lock); + if (self->priv->volume_idle_id == 0) + self->priv->volume_idle_id = g_idle_add ( + empathy_audio_src_volume_changed_idle, self); + g_mutex_unlock (self->priv->lock); + + return FALSE; +} + static void empathy_audio_src_handle_message (GstBin *bin, GstMessage *message) { @@ -662,58 +654,6 @@ g_mutex_unlock (priv->lock); } - else if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT && - GST_MESSAGE_SRC (message) == GST_OBJECT (priv->src)) - { - GstMixerTrack *track = NULL; - - /* Listen for mute or volume changes on the src element */ - if (gst_mixer_message_get_type (message) == - GST_MIXER_MESSAGE_VOLUME_CHANGED) - gst_mixer_message_parse_volume_changed (message, &track, - NULL, NULL); - - if (gst_mixer_message_get_type (message) == - GST_MIXER_MESSAGE_MUTE_TOGGLED) - gst_mixer_message_parse_mute_toggled (message, &track, NULL); - - g_mutex_lock (priv->lock); - - if (track != NULL && track == priv->track && priv->volume_idle_id == 0) - priv->volume_idle_id = g_idle_add ( - empathy_audio_src_volume_changed, self); - - g_mutex_unlock (priv->lock); - } - else if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STATE_CHANGED && - GST_MESSAGE_SRC (message) == GST_OBJECT (priv->src)) - { - GstState old, new; - - gst_message_parse_state_changed (message, &old, &new, NULL); - - /* GstMixer is only available in state >= READY, so only start - * controlling the source element when going to ready state and stop - * doing so when going below ready. Furthermore once we have mixer read - * the current volume level from it and remove the settings done by - * Empathy. We want to pick up the level pulseaudio saved */ - if (old == GST_STATE_NULL && new == GST_STATE_READY) - { - g_mutex_lock (priv->lock); - priv->track = empathy_audio_src_get_track (priv->src); - if (priv->track != NULL) - priv->volume_idle_id = g_idle_add ( - empathy_audio_src_volume_changed, self); - g_mutex_unlock (priv->lock); - } - else if (old == GST_STATE_READY && new == GST_STATE_NULL) - { - g_mutex_lock (priv->lock); - priv->track = NULL; - g_mutex_unlock (priv->lock); - } - } - out: GST_BIN_CLASS (empathy_audio_src_parent_class)->handle_message (bin, message); diff -Nru empathy-3.4.2/src/empathy-call.c empathy-3.4.2.1/src/empathy-call.c --- empathy-3.4.2/src/empathy-call.c 2012-05-14 11:24:00.000000000 +0000 +++ empathy-3.4.2.1/src/empathy-call.c 2012-05-21 11:22:09.000000000 +0000 @@ -195,9 +195,6 @@ XInitThreads (); #endif - /* Clutter needs this */ - gdk_disable_multidevice (); - optcontext = g_option_context_new (N_("- Empathy Audio/Video Client")); g_option_context_add_group (optcontext, gst_init_get_option_group ()); g_option_context_add_group (optcontext, gtk_get_option_group (TRUE)); diff -Nru empathy-3.4.2/src/empathy-call-window.c empathy-3.4.2.1/src/empathy-call-window.c --- empathy-3.4.2/src/empathy-call-window.c 2012-05-14 11:24:00.000000000 +0000 +++ empathy-3.4.2.1/src/empathy-call-window.c 2012-05-21 12:05:53.000000000 +0000 @@ -73,9 +73,9 @@ #include "empathy-rounded-texture.h" #include "empathy-camera-menu.h" -#define CONTENT_HBOX_BORDER_WIDTH 6 #define CONTENT_HBOX_SPACING 3 -#define CONTENT_HBOX_CHILDREN_PACKING_PADDING 3 +#define CONTENT_HBOX_CHILDREN_PACKING_PADDING 0 +#define OVERLAY_MARGIN 6 #define SELF_VIDEO_SECTION_WIDTH 120 #define SELF_VIDEO_SECTION_HEIGHT 90 @@ -161,6 +161,7 @@ GtkWidget *remote_user_avatar_widget; GtkWidget *remote_user_avatar_toolbar; GtkWidget *remote_user_name_toolbar; + GtkWidget *remote_user_status_toolbar; GtkWidget *status_label; GtkWidget *hangup_button; GtkWidget *audio_call_button; @@ -182,9 +183,9 @@ ClutterActor *video_box; ClutterLayoutManager *video_layout; - /* A Box layout manager containing a bin for previews + /* A bin layout manager containing a bin for previews * and the floating toolbar */ - ClutterActor *overlay_box; + ClutterActor *overlay_bin; ClutterLayoutManager *overlay_layout; /* Bin layout for the previews */ @@ -274,6 +275,8 @@ GSettings *settings; EmpathyMicMenu *mic_menu; EmpathyCameraMenu *camera_menu; + + gboolean muted; }; #define GET_PRIV(o) (EMPATHY_CALL_WINDOW (o)->priv) @@ -323,6 +326,8 @@ static gboolean empathy_call_window_bus_message (GstBus *bus, GstMessage *message, gpointer user_data); +static gboolean empathy_call_window_update_timer (gpointer user_data); + static void make_background_transparent (GtkClutterActor *actor) { @@ -385,7 +390,7 @@ gtk_widget_set_visible (self->priv->remote_user_avatar_widget, !show); - clutter_actor_raise_top (self->priv->overlay_box); + clutter_actor_raise_top (self->priv->overlay_bin); } static void @@ -461,6 +466,20 @@ } static void +audio_input_mute_notify_cb (GObject *obj, GParamSpec *spec, + EmpathyCallWindow *self) +{ + gboolean muted; + g_object_get (obj, "mute", &muted, NULL); + + self->priv->muted = muted; + if (muted && self->priv->transitions) + clutter_state_set_state (self->priv->transitions, "fade-in"); + + empathy_call_window_update_timer (self); +} + +static void create_audio_input (EmpathyCallWindow *self) { EmpathyCallWindowPriv *priv = GET_PRIV (self); @@ -469,10 +488,14 @@ priv->audio_input = empathy_audio_src_new (); gst_object_ref_sink (priv->audio_input); + g_signal_connect (priv->audio_input, "notify::mute", + G_CALLBACK (audio_input_mute_notify_cb), self); + g_object_bind_property (priv->mic_button, "active", priv->audio_input, "mute", G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN | G_BINDING_SYNC_CREATE); + } static void @@ -653,9 +676,9 @@ CLUTTER_BIN_ALIGNMENT_CENTER, CLUTTER_BIN_ALIGNMENT_CENTER); self->priv->preview_box = box = clutter_box_new (self->priv->preview_layout); - clutter_box_layout_pack (CLUTTER_BOX_LAYOUT (self->priv->overlay_layout), - box, TRUE, TRUE, TRUE, - CLUTTER_BOX_ALIGNMENT_CENTER, CLUTTER_BOX_ALIGNMENT_START); + clutter_bin_layout_add (CLUTTER_BIN_LAYOUT (self->priv->overlay_layout), + box, + CLUTTER_BIN_ALIGNMENT_FILL, CLUTTER_BIN_ALIGNMENT_FILL); self->priv->preview_rectangle1 = empathy_call_window_create_preview_rectangle (self, @@ -844,50 +867,27 @@ } static void -_clutter_color_from_rgba (ClutterColor *color, - const GdkRGBA *rgba) -{ - color->red = (guint8) floor (rgba->red * 255); - color->green = (guint8) floor (rgba->green * 255); - color->blue = (guint8) floor (rgba->blue * 255); - color->alpha = (guint8) floor (rgba->alpha * 255); -} - -static void empathy_call_window_highlight_preview_rectangle (EmpathyCallWindow *self, PreviewPosition pos) { ClutterActor *rectangle; - GtkStyleContext *context; - GdkRGBA rgba; - ClutterColor color, highlight; + ClutterColor white = { 0xff, 0xff, 0xff, 0xff}; rectangle = empathy_call_window_get_preview_rectangle (self, pos); - context = gtk_widget_get_style_context (GTK_WIDGET (self)); - gtk_style_context_get_color (context, 0, &rgba); - - _clutter_color_from_rgba (&color, &rgba); - clutter_color_shade (&color, 1.4, &highlight); empathy_rounded_rectangle_set_border_width ( EMPATHY_ROUNDED_RECTANGLE (rectangle), 2 * SELF_VIDEO_SECTION_MARGIN); empathy_rounded_rectangle_set_border_color ( - EMPATHY_ROUNDED_RECTANGLE (rectangle), &highlight); + EMPATHY_ROUNDED_RECTANGLE (rectangle), &white); } static void empathy_call_window_darken_preview_rectangle (EmpathyCallWindow *self, ClutterActor *rectangle) { - GtkStyleContext *context; - GdkRGBA rgba; - ClutterColor color, darker; + ClutterColor white = { 0xff, 0xff, 0xff, 0xff}, darker; - context = gtk_widget_get_style_context (GTK_WIDGET (self)); - gtk_style_context_get_background_color (context, 0, &rgba); - - _clutter_color_from_rgba (&color, &rgba); - clutter_color_shade (&color, 0.55, &darker); + clutter_color_shade (&white, 0.55, &darker); empathy_rounded_rectangle_set_border_width ( EMPATHY_ROUNDED_RECTANGLE (rectangle), 1); @@ -1381,9 +1381,11 @@ EmpathyCallWindow *self = data; /* We don't want to hide the toolbar if we're not in a call, as - * to show the call status all the time. */ + * to show the call status all the time. Also don't hide if we're muted + * to prevent the awkward, talking when muted situation */ if (self->priv->call_state != CONNECTING && - self->priv->call_state != DISCONNECTED) + self->priv->call_state != DISCONNECTED && + !self->priv->muted) clutter_state_set_state (self->priv->transitions, "fade-out"); return TRUE; @@ -1548,15 +1550,16 @@ gchar *filename; ClutterConstraint *constraint; ClutterActor *remote_avatar; - GtkStyleContext *context; GtkCssProvider *provider; - GdkRGBA rgba; - ClutterColor bg; + ClutterColor black = { 0, 0, 0, 0 }; + ClutterMargin overlay_margin = { OVERLAY_MARGIN, OVERLAY_MARGIN, + OVERLAY_MARGIN, OVERLAY_MARGIN }; priv = self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, EMPATHY_TYPE_CALL_WINDOW, EmpathyCallWindowPriv); priv->settings = g_settings_new (EMPATHY_PREFS_CALL_SCHEMA); + priv->timer = g_timer_new (); filename = empathy_file_lookup ("empathy-call-window.ui", "src"); gui = empathy_builder_get_file (filename, @@ -1564,6 +1567,7 @@ "errors_vbox", &priv->errors_vbox, "pane", &priv->pane, "remote_user_name_toolbar", &priv->remote_user_name_toolbar, + "remote_user_status_toolbar", &priv->remote_user_status_toolbar, "remote_user_avatar_toolbar", &priv->remote_user_avatar_toolbar, "status_label", &priv->status_label, "audiocall", &priv->audio_call_button, @@ -1641,14 +1645,12 @@ priv->content_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, CONTENT_HBOX_SPACING); - gtk_container_set_border_width (GTK_CONTAINER (priv->content_hbox), - CONTENT_HBOX_BORDER_WIDTH); gtk_box_pack_start (GTK_BOX (priv->pane), priv->content_hbox, TRUE, TRUE, 0); /* main contents remote avatar/video box */ - priv->video_layout = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER, - CLUTTER_BIN_ALIGNMENT_CENTER); + priv->video_layout = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_FILL, + CLUTTER_BIN_ALIGNMENT_FILL); priv->video_box = clutter_box_new (priv->video_layout); @@ -1657,18 +1659,11 @@ gtk_widget_set_size_request (priv->video_container, EMPATHY_VIDEO_WIDGET_DEFAULT_WIDTH, EMPATHY_VIDEO_WIDGET_DEFAULT_HEIGHT); - /* Set the background color to that of the rest of the window */ - context = gtk_widget_get_style_context (priv->content_hbox); - gtk_style_context_get_background_color (context, - GTK_STATE_FLAG_NORMAL, &rgba); - bg.red = CLAMP (rgba.red * 255.0, 0, 255); - bg.green = CLAMP (rgba.green * 255.0, 0, 255); - bg.blue = CLAMP (rgba.blue * 255.0, 0, 255); - bg.alpha = CLAMP (rgba.alpha * 255.0, 0, 255); + /* Set the background black */ clutter_stage_set_color ( CLUTTER_STAGE (gtk_clutter_embed_get_stage ( GTK_CLUTTER_EMBED (priv->video_container))), - &bg); + &black); clutter_container_add ( CLUTTER_CONTAINER (gtk_clutter_embed_get_stage ( @@ -1684,18 +1679,21 @@ priv->remote_user_avatar_widget = gtk_image_new (); remote_avatar = gtk_clutter_actor_new_with_contents ( priv->remote_user_avatar_widget); + make_background_transparent (GTK_CLUTTER_ACTOR (remote_avatar)); clutter_container_add_actor (CLUTTER_CONTAINER (priv->video_box), remote_avatar); - /* create the overlay box */ - priv->overlay_layout = clutter_box_layout_new (); - clutter_box_layout_set_vertical ( - CLUTTER_BOX_LAYOUT (priv->overlay_layout), TRUE); - priv->overlay_box = clutter_box_new (priv->overlay_layout); + /* create the overlay bin */ + priv->overlay_layout = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER, + CLUTTER_BIN_ALIGNMENT_CENTER); + priv->overlay_bin = clutter_actor_new (); + clutter_actor_set_layout_manager (priv->overlay_bin, priv->overlay_layout); + + clutter_actor_set_margin (priv->overlay_bin, &overlay_margin); clutter_bin_layout_add (CLUTTER_BIN_LAYOUT (priv->video_layout), - priv->overlay_box, + priv->overlay_bin, CLUTTER_BIN_ALIGNMENT_FILL, CLUTTER_BIN_ALIGNMENT_FILL); empathy_call_window_create_preview_rectangles (self); @@ -1710,14 +1708,15 @@ create_video_input (self); priv->floating_toolbar = gtk_clutter_actor_new (); + clutter_actor_set_reactive (priv->floating_toolbar, TRUE); make_background_transparent (GTK_CLUTTER_ACTOR (priv->floating_toolbar)); gtk_widget_reparent (priv->bottom_toolbar, gtk_clutter_actor_get_widget (GTK_CLUTTER_ACTOR (priv->floating_toolbar))); - clutter_box_layout_pack (CLUTTER_BOX_LAYOUT (priv->overlay_layout), - priv->floating_toolbar, FALSE, FALSE, FALSE, - CLUTTER_BOX_ALIGNMENT_CENTER, CLUTTER_BOX_ALIGNMENT_END); + clutter_bin_layout_add (CLUTTER_BIN_LAYOUT (priv->overlay_layout), + priv->floating_toolbar, + CLUTTER_BIN_ALIGNMENT_CENTER, CLUTTER_BIN_ALIGNMENT_END); clutter_actor_set_opacity (priv->floating_toolbar, FLOATING_TOOLBAR_OPACITY); @@ -1792,8 +1791,6 @@ g_signal_connect (self, "motion-notify-event", G_CALLBACK (empathy_call_window_motion_notify_cb), self); - priv->timer = g_timer_new (); - g_object_ref (priv->ui_manager); g_object_unref (gui); @@ -1872,12 +1869,20 @@ { const gchar *alias = empathy_contact_get_alias (contact); const gchar *status = empathy_contact_get_status (contact); - gchar *label; - label = g_strdup_printf ("%s\n%s", alias, status); - gtk_label_set_markup (GTK_LABEL (self->priv->remote_user_name_toolbar), - label); - g_free (label); + gtk_label_set_text (GTK_LABEL (self->priv->remote_user_name_toolbar), alias); + + if (status != NULL) { + gchar *markup; + + markup = g_markup_printf_escaped ("%s", status); + gtk_label_set_markup (GTK_LABEL (self->priv->remote_user_status_toolbar), + markup); + g_free (markup); + } else { + gtk_label_set_markup (GTK_LABEL (self->priv->remote_user_status_toolbar), + ""); + } } static void @@ -3220,7 +3225,7 @@ { gtk_widget_hide (self->priv->remote_user_avatar_widget); clutter_actor_show (self->priv->video_output); - clutter_actor_raise_top (self->priv->overlay_box); + clutter_actor_raise_top (self->priv->overlay_bin); } return FALSE; @@ -3829,8 +3834,6 @@ { EmpathyCallWindowPriv *priv = GET_PRIV (window); - gtk_container_set_border_width (GTK_CONTAINER (priv->content_hbox), - set_fullscreen ? 0 : CONTENT_HBOX_BORDER_WIDTH); gtk_box_set_spacing (GTK_BOX (priv->content_hbox), set_fullscreen ? 0 : CONTENT_HBOX_SPACING); diff -Nru empathy-3.4.2/src/empathy-call-window.ui empathy-3.4.2.1/src/empathy-call-window.ui --- empathy-3.4.2/src/empathy-call-window.ui 2012-04-05 13:04:54.000000000 +0000 +++ empathy-3.4.2.1/src/empathy-call-window.ui 2012-05-21 12:05:53.000000000 +0000 @@ -164,27 +164,37 @@ False True - - True - + True - - True + + + + True + PANGO_ELLIPSIZE_END + 0 + + + False + + + + + True + PANGO_ELLIPSIZE_END + 0 + + + False + + - - - - True - - - True - + True @@ -193,9 +203,6 @@ call-stop Hang up current call - - False - @@ -203,9 +210,6 @@ camera-web Start a video call - - True - @@ -213,9 +217,6 @@ call-start Start an audio call - - True - @@ -224,9 +225,6 @@ input-dialpad Display the dialpad - - True - diff -Nru empathy-3.4.2/src/Makefile.am empathy-3.4.2.1/src/Makefile.am --- empathy-3.4.2/src/Makefile.am 2012-05-14 11:24:00.000000000 +0000 +++ empathy-3.4.2.1/src/Makefile.am 2012-05-21 11:55:19.000000000 +0000 @@ -59,6 +59,11 @@ empathy-accounts.c empathy-accounts.h \ $(NULL) +empathy_accounts_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + $(CHEESE_CFLAGS) \ + $(NULL) + empathy_accounts_LDADD = \ $(LDADD) \ libempathy-accounts-common.la \ diff -Nru empathy-3.4.2/src/Makefile.in empathy-3.4.2.1/src/Makefile.in --- empathy-3.4.2/src/Makefile.in 2012-05-14 11:24:30.000000000 +0000 +++ empathy-3.4.2.1/src/Makefile.in 2012-05-21 12:08:49.000000000 +0000 @@ -127,7 +127,8 @@ $(top_builddir)/libempathy/libempathy.la \ $(top_builddir)/extensions/libemp-extensions.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -am_empathy_accounts_OBJECTS = empathy-accounts.$(OBJEXT) +am_empathy_accounts_OBJECTS = \ + empathy_accounts-empathy-accounts.$(OBJEXT) empathy_accounts_OBJECTS = $(am_empathy_accounts_OBJECTS) am__DEPENDENCIES_2 = $(top_builddir)/libempathy-gtk/libempathy-gtk.la \ $(top_builddir)/libempathy/libempathy.la \ @@ -530,6 +531,11 @@ empathy-accounts.c empathy-accounts.h \ $(NULL) +empathy_accounts_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + $(CHEESE_CFLAGS) \ + $(NULL) + empathy_accounts_LDADD = \ $(LDADD) \ libempathy-accounts-common.la \ @@ -829,7 +835,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-about-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-accounts-common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-accounts-dialog.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-accounts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-auth-client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-call-observer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-chat-manager.Po@am__quote@ @@ -853,6 +858,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-sanity-cleaning.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy-status-icon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy_accounts-empathy-accounts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy_av-empathy-audio-sink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy_av-empathy-audio-src.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/empathy_av-empathy-av.Po@am__quote@ @@ -907,6 +913,22 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +empathy_accounts-empathy-accounts.o: empathy-accounts.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(empathy_accounts_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT empathy_accounts-empathy-accounts.o -MD -MP -MF $(DEPDIR)/empathy_accounts-empathy-accounts.Tpo -c -o empathy_accounts-empathy-accounts.o `test -f 'empathy-accounts.c' || echo '$(srcdir)/'`empathy-accounts.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/empathy_accounts-empathy-accounts.Tpo $(DEPDIR)/empathy_accounts-empathy-accounts.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='empathy-accounts.c' object='empathy_accounts-empathy-accounts.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(empathy_accounts_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o empathy_accounts-empathy-accounts.o `test -f 'empathy-accounts.c' || echo '$(srcdir)/'`empathy-accounts.c + +empathy_accounts-empathy-accounts.obj: empathy-accounts.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(empathy_accounts_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT empathy_accounts-empathy-accounts.obj -MD -MP -MF $(DEPDIR)/empathy_accounts-empathy-accounts.Tpo -c -o empathy_accounts-empathy-accounts.obj `if test -f 'empathy-accounts.c'; then $(CYGPATH_W) 'empathy-accounts.c'; else $(CYGPATH_W) '$(srcdir)/empathy-accounts.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/empathy_accounts-empathy-accounts.Tpo $(DEPDIR)/empathy_accounts-empathy-accounts.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='empathy-accounts.c' object='empathy_accounts-empathy-accounts.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(empathy_accounts_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o empathy_accounts-empathy-accounts.obj `if test -f 'empathy-accounts.c'; then $(CYGPATH_W) 'empathy-accounts.c'; else $(CYGPATH_W) '$(srcdir)/empathy-accounts.c'; fi` + empathy_av-empathy-av.o: empathy-av.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(empathy_av_CFLAGS) $(CFLAGS) -MT empathy_av-empathy-av.o -MD -MP -MF $(DEPDIR)/empathy_av-empathy-av.Tpo -c -o empathy_av-empathy-av.o `test -f 'empathy-av.c' || echo '$(srcdir)/'`empathy-av.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/empathy_av-empathy-av.Tpo $(DEPDIR)/empathy_av-empathy-av.Po