--- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/aclocal.m4 +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/aclocal.m4 @@ -0,0 +1 @@ +# empty file --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/nm-applet.sgml +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/nm-applet.sgml @@ -0,0 +1,100 @@ + manpage.1'. You may view + the manual page with: `docbook-to-man manpage.sgml | nroff -man | + less'. A typical entry in a Makefile or Makefile.am is: + +manpage.1: manpage.sgml + docbook-to-man $< > $@ + + + The docbook-to-man binary is found in the docbook-to-man package. + Please remember that if you create the nroff version in one of the + debian/rules file targets (such as build), you will need to include + docbook-to-man in your Build-Depends control field. + + --> + + + 8 February, 2006"> + + + GNU"> + GPL"> +]> + + + +
+ giskard@autistici.org; +
+ + Riccardo + Setti + + + 2006 + Riccardo Setti + + &date; +
+ + nm-applet + 1 + + + &package; + + Network management framework + + + + &package; + + + + DESCRIPTION + + &package; is the GNOME front-end for NetworkManager + It is a systray applet which will display an icon in GNOME's notification area but it + also works for other desktop environments which provide a systray like KDE or XFCE. + &package; shows a list of available networks and allows you to easily switch between them. For encrypted networks it + will prompt you for the key/passphrase and you can optionally store them in the gnome-keyring so you don't have to + type them again. + + + SEE ALSO + + NetworkManager (1). nm-vpn-properties (1) + + More Information about NetworkManager can be found at + http://www.gnome.org/projects/NetworkManager/ . + + + AUTHOR + + This manual page was written by Riccardo Setti giskard@autistici.org for + the Debian system. + + + +
+ + --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/compat +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/compat @@ -0,0 +1 @@ +5 --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/copyright +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/copyright @@ -0,0 +1,59 @@ +This package was debianized by Anthony Mercatante on +Fri, 15 Jun 2007 11:54:56 +0200. + +It was downloaded from http://ftp.acc.umu.se/pub/GNOME/sources/network-manager-applet/ + +Upstream author: + Dan Williams + +Copyright holders: + Copyright 2004-2005 Red Hat, Inc. + Copyright 2006 Thiago Jung Bauermann + Copyright 1999, 2000 Eazel, Inc. + Copyright 2002 Anders Carlsson + Copyright 2006 Novell, Inc. + Copyright 2006 Thiago Jung Bauermann + Copyright 2001, 2002 Free Software Foundation + +License: +All the software: + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + + +eggtrayicon.c, eggtrayicon.h: + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU Lesser General +Public License can be found in `/usr/share/common-licenses/LGPL'. + +menu-items.c: + This also uses code from eel-vfs-extentions available under the LGPL --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/rules +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/rules @@ -0,0 +1,100 @@ +#!/usr/bin/make -f + +DEB_SOURCE := $(shell dpkg-parsechangelog | grep Source: | sed -e 's/Source: //') +DEB_VERSION := $(shell dpkg-parsechangelog | grep Version: | sed -e 's/Version: //') +DEB_UPSTREAM_VERSION := $(shell echo $(DEB_VERSION) | sed -e 's/-[^-]*$$//') +DEB_MAJOR_VERSION := $(shell echo $(DEB_UPSTREAM_VERSION) | sed -e 's/git.*//') + +DEB_AUTO_UPDATE_LIBTOOL = pre +DEB_AUTO_UPDATE_AUTOHEADER = 2.50 +DEB_AUTO_UPDATE_ACLOCAL = 1.9 +DEB_AUTO_UPDATE_AUTOMAKE = 1.9 -a -c -f +DEB_AUTO_UPDATE_AUTOCONF = 2.50 + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/patchsys-quilt.mk +include /usr/share/cdbs/1/class/gnome.mk + +DEB_CONFIGURE_EXTRA_FLAGS = \ + --without-gnutls \ + --with-nss \ + --with-mbca \ + $(NULL) + +GIT_URL := git://git.gnome.org/network-manager-applet +GIT_BRANCH := "master" +GIT_BRANCH_NAME := network-manager-applet + +ifneq (,$(LOCAL_BRANCH)) +LOCAL_REAL_BRANCH = $(realpath $(LOCAL_BRANCH)) +endif + +build/network-manager-gnome:: + /usr/bin/docbook-to-man debian/nm-applet.sgml > debian/nm-applet.1 + +common-binary-arch:: + rm -rf debian/network-manager-gnome/usr/include/ + cp -f debian/network-manager-gnome/usr/share/icons/hicolor/22x22/apps/nm-vpn-active-lock.png \ + debian/network-manager-gnome/usr/share/icons/hicolor/22x22/apps/nm-vpn-lock.png + cp -f debian/network-manager-gnome/usr/share/icons/hicolor/22x22/apps/nm-device-wired.png \ + debian/network-manager-gnome/usr/share/icons/hicolor/22x22/apps/nm-device-wired-autoip.png + +common-binary-post-install-arch:: + find debian/network-manager-gnome/ -name \*.la -o -name \*.a | xargs rm > /dev/null || true + +clean:: + rm -f po/*.gmo + rm -f debian/*.1 + rm -f gtk-doc.make + echo "# empty file" > aclocal.m4 + rm -f debian/icons/22/*.png + +pre-build:: + intltoolize -f -c + set -e; cd debian/icons/22/; uudecode nm-secure-lock.png.uue + cp -rf $(CURDIR)/debian/icons/22 icons/ + +GET_SOURCE = \ + set -e; \ + tmpdir=`mktemp -d -t`; \ + cd $$tmpdir; \ + echo "cloning upstream repository ..."; \ + git clone $(if $(LOCAL_BRANCH),$(call LOCAL_REAL_BRANCH)/$(GIT_BRANCH_NAME),$(GIT_URL)) $(GIT_BRANCH_NAME); \ + echo "getting specific upstream revision/tag: $(1)"; \ + cd `ls | head -n 1`; git checkout -b orig $(1); \ + commit_id=`git log -n1 --abbrev-commit | grep '^commit ' | sed -e 's/commit //' | sed -e 's/\.\.\.$$//'`; \ + raw=`date --utc --date="$$(git log --pretty=fuller -n1 --date=rfc | grep CommitDate: | sed -e 's/CommitDate:[^0-9]*//')" "+%Y%m%dt%H%M%S"`; \ + if echo $(1) | grep -q -c "orig" || echo $(DEB_VERSION) | grep -q -c "git"; \ + then \ + upstream_version=$(DEB_MAJOR_VERSION)git.$$raw.$$commit_id; \ + else \ + upstream_version=$(DEB_UPSTREAM_VERSION); \ + fi; \ + cd ..; tar --exclude=.git -czf $(CURDIR)/$(DEB_SOURCE)_$$upstream_version.orig.tar.gz `ls | head -n 1`; \ + cd $(CURDIR); rm -rf $$tmpdir; + +get-current-source:: $(if $(LOCAL_BRANCH),update-local-branch) + set -e; if echo $(DEB_VERSION) | grep -q -c "git"; \ + then \ + git_version=`echo $(DEB_VERSION) | sed -e 's/^.*git\.*\([0-9t]*\)\.\(.*\)-.*$$/\2/g'`; \ + else \ + git_version=$(DEB_UPSTREAM_VERSION); \ + fi; \ + $(call GET_SOURCE, $$git_version, "current") + +get-orig-source:: $(if $(LOCAL_BRANCH),update-local-branch) + $(call GET_SOURCE, $(GIT_BRANCH), "orig") + +update-local-branch:: + @echo "updating local branch ($(LOCAL_BRANCH))" + @set -e; if ! test -d $(LOCAL_BRANCH); then mkdir -p $(LOCAL_BRANCH); fi + @set -e; if ! test -d $(LOCAL_BRANCH)/$(GIT_BRANCH_NAME); then git clone $(GIT_URL) $(LOCAL_BRANCH)/$(GIT_BRANCH_NAME); fi + @set -e; cd $(LOCAL_BRANCH)/$(GIT_BRANCH_NAME); git pull -f + @echo "updated local branch ($(LOCAL_BRANCH))" + +get-snapshot-info:: $(if $(LOCAL_BRANCH),update-local-branch) + @set -e; \ + git_version=`echo $(DEB_VERSION) | sed -e 's/^.*git\.*\([0-9t]*\)\.\(.*\)-.*$$/\2/g'`; \ + cd $(LOCAL_BRANCH)/$(GIT_BRANCH_NAME); \ + raw=`date --utc --date="$$(git log --pretty=fuller -n1 --date=rfc $$git_version | grep CommitDate: | sed -e 's/CommitDate:[^0-9]*//')" "+%Y-%m-%d %H:%M:%S (GMT)"`; \ + git log -n1 $$git_version --format="%n%s%n%n * upstream snapshot $$raw%n + %H%n"; --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/network-manager-applet.manpages +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/network-manager-applet.manpages @@ -0,0 +1 @@ +debian/nm-applet.1 --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/control +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/control @@ -0,0 +1,55 @@ +Source: network-manager-applet +Section: gnome +Priority: optional +Maintainer: Ubuntu Core Developers +Original-Maintainer: Anthony Mercatante +Build-Depends: debhelper (>= 5.0.37), + automake1.9, + libtool, + cdbs, + libgnome-keyring-dev, + libgnomeui-dev, + libpanel-applet2-dev, + libglade2-dev, + libgconf2-dev, + network-manager-dev (>= 0.8~a~git.20090923t064445), + libnm-util-dev (>= 0.8~a~git.20090923t064445), + libnm-glib-dev (>= 0.8~a~git.20090923t064445), + libiw-dev, + libxml-parser-perl, + docbook-to-man, + quilt, + libnotify-dev, + gnome-common, + libnss3-dev, + libpolkit-gobject-1-dev, + intltool, + libgnome-bluetooth-dev, + sharutils +Standards-Version: 3.7.2 +Vcs-Bzr: https://code.launchpad.net/~network-manager/network-manager-applet/ubuntu.0.7.1 + +Package: network-manager-gnome +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + network-manager (>= 0.8~a~git.20090831t055002), + gksu, + mobile-broadband-provider-info (>= 20090622) +Recommends: notification-daemon +Description: network management framework (GNOME frontend) + NetworkManager attempts to keep an active network connection available at all + times. It is intended only for the desktop use-case, and is not intended for + usage on servers. The point of NetworkManager is to make networking + configuration and setup as painless and automatic as possible. If using DHCP, + NetworkManager is _intended_ to replace default routes, obtain IP addresses + from a DHCP server, and change nameservers whenever it sees fit. + . + This package contains a systray applet for GNOME's notification area but it + also works for other desktop environments which provide a systray like KDE + or XFCE. + It displays the available networks and allows to easily switch between them. + For encrypted networks it will prompt the user for the key/passphrase and it + can optionally store them in the gnome-keyring. + . + Homepage: http://www.gnome.org/projects/NetworkManager/ --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/changelog +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/changelog @@ -0,0 +1,633 @@ +network-manager-applet (0.8~a~git.20090923t220421.1ac8ffd-0ubuntu3) karmic; urgency=low + + * fix build failure because of compiler warnings due to uninitialized variable + - update debian/patches/nm08-applet-preview.patch + + -- Alexander Sack Thu, 24 Sep 2009 17:40:06 +0200 + +network-manager-applet (0.8~a~git.20090923t220421.1ac8ffd-0ubuntu2) karmic; urgency=low + + * fix build failure caused by missing build-depend for uudecode + - update debian/control + + -- Alexander Sack Thu, 24 Sep 2009 17:16:54 +0200 + +network-manager-applet (0.8~a~git.20090923t220421.1ac8ffd-0ubuntu1) karmic; urgency=low + + * upstream snapshot 2009-09-23 22:04:21 (GMT) + + 1ac8ffd41a2d162d23713415cec6c3e96fbc3c82 + + new upstream UI for beta (prepatched) - LP: #435333 + + mini-abi transition respin for libnm-glib-vpn rename fixes LP: #435888 + + [ Alexander Sack ] + * increase build-depend version requirements for network-manager bits to + latest upstream (>= 0.8~a~git.20090923t064445) + - update debian/control + * add new nm08 applet prepatch and add icons not shippable in diff manually + using uudecode + - add debian/patches/nm08-applet-preview.patch + - update debian/patches/series + - add debian/icons/22/nm-secure-lock.png.uue + - update debian/rules + + [ Mathieu Trudel ] + * fix noisy output: use grep -q -c rather than just -c in GET_SOURCE etc. + - update debian/rules + * add get-snapshot-info rule + - update debian/rules + * make GET_SOURCE not go mad for git versions that use a different abbrev-id syntax + - update debian/rules + * drop ellipsize patch, addressed libhal issues, superseded by the use of udev + - delete debian/patches/lp341940_use_ellipsized_menu_entries.patch + - update debian/patches/series + + -- Alexander Sack Thu, 24 Sep 2009 15:30:33 +0200 + +network-manager-applet (0.8~a~git.20090913t161448.cc2f6be-0ubuntu1) karmic; urgency=low + + * upstream snapshot 2009-09-13 16:14:48 (GMT) + + cc2f6bea12daec5f0caf535a3534f07ade5b5cf2 + + [ Alexander Sack ] + * build depend on libpolkit-gobject-1-dev instead of libpolkit-dbus-dev + - update debian/control + + [ Tony Espy ] + * adjust patches for upstream code base + - update debian/patches/20_use_full_vpn_dialog_service_name_path.patch + - update debian/patches/lp328572_dxteam_connect_text.patch + - update debian/patches/lp337960_dxteam_notification_icon_names.diff + - update debian/patches/lp341684_device_sensitive_disconnect_notify.patch + * adjust build and runtime depends due to ABI changes in latest NM + - update debian/control + + -- Alexander Sack Mon, 14 Sep 2009 11:32:57 +0200 + +network-manager-applet (0.8~a~git.20090818t151413.a8b7eed-0ubuntu2) karmic; urgency=low + + * fix lpia build problems; make find and remove of .a .la files more robust + in common-binary-post-install-arch:: target + - update debian/rules + + -- Alexander Sack Fri, 21 Aug 2009 10:32:12 +0200 + +network-manager-applet (0.8~a~git.20090818t151413.a8b7eed-0ubuntu1) karmic; urgency=low + + [ Tony Espy ] + * upstream snapshot 2009-08-18 15:14:13 (GMT) + + a8b7eed3676e1154b4df1b3292eb414a3e9f2378 + - includes WEP Auth dialog simplification and + minor IPv6 changes + + [ Alexander Sack ] + * add LOCAL_BRANCH feature to play nicely with fta's build bot + - update rules + * add gnome-bluetooth support; build-depend on libgnome-bluetooth-dev and install + the gnome-bluetooth plugin to the gnome-bluetooth plugindir directory. + - update debian/control + * remove bluetooth plugin .la and .la files during post-install + - update debian/rules + + -- Tony Espy Thu, 20 Aug 2009 11:48:20 -0400 + +network-manager-applet (0.8~a~git.20090805t131328.d1edfce-0ubuntu1) karmic; urgency=low + + [ Tony Espy ] + * upstream snapshot 2009-08-05 13:13:28 (GMT) + + d1edfced3ac4373019c097a4de5c7b97d0b2562a + * bump required version for networkmanager bits to >= 0.8~a~git.20090804t185522 + - update control + * adjust patch for upstream code base + - update patches/lp341684_device_sensitive_disconnect_notify.patch + * re-work tarball generation code; added get-curr-source to + grab a specific version; get-orig-source now grabs the tip + of new variable GIT_BRANCH; adjusted changelog version to + new scheme. + - update rules + + [ Alexander Sack ] + * prepare get-orig-source for daily ppa-scripts + - update rules + * adjust patches to changed upstream codebase + - update patches/lp341940_use_ellipsized_menu_entries.patch + * raise build requirements on network-manager parts to >= 0.8~ + - update control + + -- Tony Espy Thu, 06 Aug 2009 10:35:38 +0100 + +network-manager-applet (0.7.1.git.2.8ed7940cd3-0ubuntu1~nm1) UNRELEASED; urgency=low + + * upstream snapshot 2009-07-01 18:21:51 (GMT) + + commit 8ed7940cd3eb2158f95786e4a0cfbeea2035a870 + * bump required version for networkmanager bits to >= 0.7.1.git.1 + * drop mbca patch because upstream ships its own wizard now + - delete patches/add_libmbca_support.patch + - update patches/series + * drop libmbca-dev from build-depends as nm applet builds its own wizard + now; in turn depend binary package on mobile-broadband-provider-info >= 20090622 + - update control + * adjust patches to changed upstream code base + - update patches/lp341940_use_ellipsized_menu_entries.patch + - update patches/lp337960_dxteam_notification_icon_names.diff + - update patches/lp341684_device_sensitive_disconnect_notify.patch + * drop libmbca0 from Recommends + - update control + + -- Alexander Sack Tue, 02 Jun 2009 14:14:43 +0200 + +network-manager-applet (0.7.1-0ubuntu1) karmic; urgency=low + + * Upstream release 0.7.1 + * drop patches applied upstream + - delete patches/fix_upstream_buildfailure.patch + - update patches/series + * adjust patches to new upstream code base + - update patches/lp341940_use_ellipsized_menu_entries.patch + * fix LP: #341940 - menu entries like device names can be overly long; + we fix this by using ellipsized labels with proper tooltip to allow + interested users to read the full text label + - add patches/lp341940_use_ellipsized_menu_entries.patch + - update patches/series + + -- Alexander Sack Tue, 02 Jun 2009 13:20:07 +0200 + +network-manager-applet (0.7.1~rc4.1-0ubuntu2) jaunty; urgency=low + + * point Vcs-Bzr header to proper branch + - update control + * fix LP: #358526 - Notification shows wrong WiFi disconnected icon when + resuming from suspend; we use the proper generic disconnected icon + if we don't know which device type caused the "offline" event. + - add patches/lp358526_generic_disconnected_notification_icon.patch + - update patches/series + + -- Alexander Sack Tue, 14 Apr 2009 12:52:44 +0200 + +network-manager-applet (0.7.1~rc4.1-0ubuntu1) jaunty; urgency=low + + * New upstream release 0.7.1 rc4 + + svn-v3-trunk0:9c6bbc85-7128-0410-879a-9bbc9e4270e9:branches%2FNETWORKMANAGER_APPLET_0_7:1254 + + drop upstreamed patches + - delete patches/lp331799_sensible_notify_actions.patch + - update patches/series + + adjust diverged patches to new upstream codebase + - update patches/add_libmbca_support.patch + - update patches/lp341684_device_sensitive_disconnect_notify.patch + + fix build failure with our gcc introduced upstream (string format issue) + - add patches/fix_upstream_buildfailure.patch + - update patches/series + * rename patch for disconnect states to match the bug it fixed (LP: #341684) + - rename patches/lpXXX_device_sensitive_disconnect_notify.patch => + lp341684_device_sensitive_disconnect_notify.patch + - update patche/series + * fix LP: #348612 - Wired disconnect icon is wrong; we fix a typo in icon name + - update patches/lp341684_device_sensitive_disconnect_notify.patch + * fix LP: #354420 - offline notification should have NOTIFY_URGENCY_CRITICAL; + normal disconnect notifications get NOTIFY_URGENCY_NORMAL + - update patches/lp341684_device_sensitive_disconnect_notify.patch + * eliminate string changes from a few notification patches + - update patches/lp330571_dxteam_wired_connect_text.patch + - update patches/lp330608_dxteam_gsm_connect_text.patch + and adjust follow up patches + - update patches/lp337960_dxteam_notification_icon_names.diff + + -- Alexander Sack Mon, 06 Apr 2009 13:25:39 +0200 + +network-manager-applet (0.7.1~rc3-0ubuntu4) jaunty; urgency=low + + * use the notification-gsm-disconnected icon name used by human theme for jaunty beta + - update patches/lpXXX_device_sensitive_disconnect_notify.patch + + -- Alexander Sack Thu, 19 Mar 2009 17:02:01 +0100 + +network-manager-applet (0.7.1~rc3-0ubuntu3) jaunty; urgency=low + + * fix bug in lpXXX_device_sensitive_disconnect_notify.patch that made + disconnect events to not display a notification if the overall state + still was online + - update patches/lpXXX_device_sensitive_disconnect_notify.patch + + -- Alexander Sack Thu, 19 Mar 2009 15:44:43 +0100 + +network-manager-applet (0.7.1~rc3-0ubuntu2) jaunty; urgency=low + + * flip title in wifi "Connection Established" notification bubble (LP: #338389) + - update patches/lp328572-dxteam-connect-text.patch + - update patches/lp337960_dxteam_notification_icon_names.diff + * add patch to support device sensitive disconnect/offline notifications; + this patch queues event from NMClient and NMDevice and then decides what + kind of disconnect happened and which device was reponsible. + - add patches/lpXXX_device_sensitive_disconnect_notify.patch + - update patches/series + + -- Alexander Sack Thu, 19 Mar 2009 14:54:03 +0100 + +network-manager-applet (0.7.1~rc3-0ubuntu1) jaunty; urgency=low + + * new upstream RC 0.7.1rc3 + + rev: 982 + + revision-id: svn-v3-trunk0:9c6bbc85-7128-0410-879a-9bbc9e4270e9:branches%2FNETWORKMANAGER_APPLET_0_7:1212 + + branch: http://bzr-playground.gnome.org/network-manager-applet/branches/NETWORKMANAGER_APPLET_0_7/ + - update .bzr-builddeb/default.conf + * bump lower builds for network-manager build depends to >= 0.7.1~rc3 + - update control + * fix LP: #328572 - Connecting/disconnecting notification changes; we apply the + the "Connecting" part of this patch, as the disconnecting part would require + string changes that need to be done upstream + - add patches/lp328572-dxteam-connect-text.patch + - update patches/series + * fix LP: #330571 - Wired connected message in nm-applet too long + - add patches/lp330571_dxteam_wired_connect_text.patch + - update patches/series + * fix LP: #330608 - GSM connection message too long in nm-applet + - add patches/lp330608_dxteam_gsm_connect_text.patch + - update patches/series + * fix LP: #337960 - nm-applet jaunty icon changes - brought to you by d(u)xteam; + we apply two patches: first patch changes the icon names referred to in notifications; + second patch ships fallback icons for those names within network-manager-gnome + package + + -- Alexander Sack Thu, 05 Mar 2009 01:30:46 +0100 + +network-manager-applet (0.7.1~rc1+20090219+bzr974-0ubuntu2) jaunty; urgency=low + + * "Network Connections" settings entry does not appear in gnome-control-center; + we fix a typo in the .desktop file introduced by the xfce patch + - update patches/lp295788_xfce_menu_entry.patch + + -- Alexander Sack Mon, 23 Feb 2009 15:45:07 +0100 + +network-manager-applet (0.7.1~rc1+20090219+bzr974-0ubuntu1) jaunty; urgency=low + + * new upstream snapshot 0.7.1rc1+ Feb 19, 2009 + + rev: 974 + + revision-id: svn-v3-trunk0:9c6bbc85-7128-0410-879a-9bbc9e4270e9:branches%2FNETWORKMANAGER_APPLET_0_7:1186 + + branch: http://bzr-playground.gnome.org/network-manager-applet/branches/NETWORKMANAGER_APPLET_0_7/ + - update .bzr-builddeb/default.conf + * rebase diverged patches + - update patches/add_libmbca_support.patch + * fix LP: #331799 - nm-applet must not send actions when notification server + does not support actions + - add patches/331799_sensible_notify_actions.patch + - update patches/series + + -- Alexander Sack Thu, 19 Feb 2009 23:32:28 +0100 + +network-manager-applet (0.7.1~20090213+bzr960-0ubuntu1) jaunty; urgency=low + + * new upstream snapshot 0.7.1pre Feb 13, 2009 + + rev: 960 + + revision-id: svn-v3-trunk0:9c6bbc85-7128-0410-879a-9bbc9e4270e9:branches%2FNETWORKMANAGER_APPLET_0_7:1161 + + branch: http://bzr-playground.gnome.org/network-manager-applet/branches/NETWORKMANAGER_APPLET_0_7/ + * add config for bzr-builddeb meta information; we declare "merge" as default + operation mode and set the current top most upstream revision id + - add .bzr-builddeb/default.conf + * adjust patches to new upstream code + - update patches/add_libmbca_support.patch + * new tree layout doesn't have upstream sources; in turn we apply + autotools/cdbs integration magic on the fly now; this means we run + intltoolize in pre-build and create a dummy aclocal.m4 in clean::; + doing that allows us to use a bzr export from the upstream tree + instead of a make dist tarball + - update rules + * fix "(applet.c:1044):applet_open_mbca: code should not be reached" + warnings that get dumped to console; typos produced those warnings + even if nothing was wrong + - update patches/add_libmbca_support.patch + * bump lower bound for network-manager build-depends to >= 0.7.1~ + - update control + * fix LP: #327427 - network manager applet should pop up wizard when + 3g device is plugged in and no configuration exists; we adjust the + mobile broadband patch to not show notification. + - update patches/add_libmbca_support.patch + + -- Alexander Sack Tue, 17 Feb 2009 16:06:09 +0100 + +network-manager-applet (0.7-0ubuntu2) jaunty; urgency=low + + * fix LP: #295788 - Network Configuration menu item should also be + displayed in Xfce; we add XFCE to the OnlyShowIn .desktop field; + patch by Martin Mai + - add debian/patches/lp295788_xfce_menu_entry.patch + * fix LP: #327411 - network-manager: configure button(s) to create gsm + connections only works on first attempt; the assitants lists contains + UdiAssitants and not MbcaAssistant's + - update debian/patches/add_libmbca_support.patch + + -- Alexander Sack Sun, 15 Feb 2009 02:29:53 +0100 + +network-manager-applet (0.7-0ubuntu1) jaunty; urgency=low + + * merge new upstrema release (0.7) from trunk branch (rev970) + * drop patches superseeded/applied upstream + - delete debian/patches/lp293749_better_prefix_netmask_ui.patch + - delete debian/patches/lp286421_fix_i18n_bug_286421.patch + - update debian/patches/series + * adjust patches to new upstream codebase (mostly accessor and + anti-bit-rotting measures) + - update debian/patches/add_libmbca_support.patch + - update debian/patches/20_use_full_vpn_dialog_service_name_path.patch + - update debian/patches/lp268803_xdg_autostart_gnome_xfce_only.patch + - update debian/patches/lp289466_always_show_tray_icon.patch + * add support for "easy" bzr builddeb + add .bzr-builddeb/default.conf + * bump minimum required version for network-manager-dev, libnm-glib-dev + and libnm-util-dev + - update debian/control + + -- Alexander Sack Mon, 12 Jan 2009 13:31:17 +0100 + +network-manager-applet (0.7~~svn20081020t000444-0ubuntu2) jaunty; urgency=low + + * fix LP: #289466 - Network Manager 0.7 applet not Appearing if there are + managed entries in /etc/network/interfaces; we always call + applet_schedule_update_icon in client_init; also we also show the try when + there are error conditions (no NM running, no managed device) + - add debian/patches/lp289464_always_show_tray_icon.patch + - update debian/patches/series + * fix LP: #286421 - nm-connection-editor menu item untranslatable; + add i18n support to nm-connection-editor.desktop; patch by Timo Jyrinki + + - add debian/patches/lp286421_fix_i18n_bug_286421.patch + - update debian/patches/series + * fix LP: #268803 - Ubuntu Intrepid: Both Knetworkmanager and Network + Manager load on startup; fix xdg autostart .desktop file to + "OnlyShowIn=GNOME;XFCE;" + - add debian/patches/lp268803_xdg_autostart_gnome_xfce_only.patch + - update debian/patches/series + * fix LP: #293749 - prefix vs. netmask translation inconsistencies in + connection-editor causes confusion; we cherry pick rev1009 from upstream + svn and backport that. + - add debian/patches/lp293749_better_prefix_netmask_ui.patch + - update debian/patches/series + + -- Alexander Sack Mon, 01 Dec 2008 14:05:51 +0100 + +network-manager-applet (0.7~~svn20081020t000444-0ubuntu1) intrepid; urgency=low + + New upstream snapshot Mon 2008-10-20 00:04:44 +0000 (rev 819) + * support .cer and .crt extensions for wpa-eap (LP: #272185) + - update src/wireless-security/eap-method.c + * Don't translate widget labels + - update src/connection-editor/ce-page-ip4.glade + * updated translations for sv, es, hu, sk, nb, be, he + + -- Alexander Sack Mon, 20 Oct 2008 16:30:10 +0200 + +network-manager-applet (0.7~~svn20081015t194645-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Wed 2008-10-15 19:46:45 +0000 (rev 809) + * fix LP: #277084 - nm-applet confused by icon name changes during + hardy-intrepid upgrade; we ship icons used by NM 0.6 in the NM 0.7 + to prevent this behaviour + - update debian/rules + + -- Alexander Sack Thu, 16 Oct 2008 00:42:34 +0200 + +network-manager-applet (0.7~~svn20081012t133407-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Sun 2008-10-12 13:34:07 +0000 (rev 805) + - fixes LP: #279387 + * adjust patch to new upstream code + - update debian/patches/add_libmbca_support.patch + + -- Alexander Sack Mon, 13 Oct 2008 21:24:14 +0200 + +network-manager-applet (0.7~~svn20081005t082522-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Sun 2008-10-05 08:25:22 +0000 (rev 793) + * adjust mbca patch for changed upstream code base + - update debian/patches/add_libmbca_support.patch + + -- Alexander Sack Mon, 06 Oct 2008 13:41:27 +0200 + +network-manager-applet (0.7~~svn20080927t101113-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Sat 2008-09-27 10:11:13 +0000 (rev 776) + [ Antti Kaijanmäki ] + * added support for Mobile Broadband Configuration Assistant: + - added debian/patches/add_libmbca_support.patch + - updated debian/patches/series + - added libmbca-dev build-dependency to debian/control + - added --with-libmbca to DEB_CONFIGURE_EXTRA_FLAGS in debian/control + + [ Alexander Sack ] + * refresh libmbca patch using quilt to prevent diff pollution in future. + (quilt refresh --diffstat --no-timestamps -U8) + - update debian/patches/add_libmbca_support.patch + * generate a uuid for NMSettingConnection which was introduced by recent + network manager dbus API changes. + - update debian/patches/add_libmbca_support.patch + * fix libmbca setting the dialup string instead of the proper number (*99#) + for GSM modems + - update debian/patches/add_libmbca_support.patch + * add new parameter to add_connection call in mbca patch and strip trailing + whitespaces uses quilt refresh + - update debian/patches/add_libmbca_support.patch + * bump build-depends and depends bar on network-manager bits to + >= 0.7~~svn20080928 + - update debian/control + * explicitly set connection scope for mbca created connections to + NM_CONNECTION_SCOPE_USER + - update debian/patches/add_libmbca_support.patch + * add libmbca0 to Recommends + - update debian/control + + -- Alexander Sack Mon, 29 Sep 2008 22:15:13 +0200 + +network-manager-applet (0.7~~svn20080907t033843-0ubuntu2) intrepid; urgency=low + + * new upstream snapshot Sun 2008-09-07 03:38:43 +0000 (rev 743) + * adjust versioned (build-)depends on network-manager packages to + >= 0.7~~svn20080908 + - update debian/control + + -- Alexander Sack Tue, 09 Sep 2008 16:42:23 +0200 + +network-manager-applet (0.7~~svn20080817t183748-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Sun 2008-08-17 18:37:48 +0000 (rev 723) + * drop patches applied upstream: + - delete debian/patches/01_gcc43.patch + - update debian/patches/series + * bump build dependency versions on network-manager-dev and friends to (>= + 0.7~~svn20080812) + - update debian/control + * use full path for vpn auth-dialog's as provided by the .name key file in + $sysconfdir/NetworkManager/VPN/ + - add debian/patches/20_use_full_vpn_dialog_service_name_path.patch + - update debian/patches/series + + -- Alexander Sack Mon, 18 Aug 2008 21:32:15 +0200 + +network-manager-applet (0.7~~svn20080721t051503-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Mon 2008-07-21 05:15:03 +0000 (bzr trunk rev673) + * drop manual network config patches - default connection editor is NM + - delete debian/patches/01_static_network-admin.patch + - delete debian/patches/03_manual_config_available_when_connected.patch + - delete debian/patches/13_custom-network-admin.diff + - update debian/patches/series + * fix gcc 4.3 build failures + - add debian/patches/01_gcc43.patch + - update debian/patches/series + * higher network-manager versions for build and binary depends (>= + 0.7~~svn20080720t224551) + - update debian/control + + -- Alexander Sack Thu, 07 Aug 2008 01:54:01 +0200 + +network-manager-applet (0.7~~svn20080121t194048-0ubuntu0~pre6) hardy; urgency=low + + * package 0.7 svn snapshot + * add automake1.9 to Build-Depends + - update debian/control + * add quilt to Build-Depends + - update debian/control + * add libtool to Build-Depends + - update debian/control + * add gnome-common to Build-Depends + - update debian/control + * add libnotify-dev to Build-Depends + - update debian/control + * add libgnutls-dev to Build-Depends and pass --with-gnutls and + --without-nss to configure explicitly + - update debian/control + - update debian/rules + * make libnm-util-dev build dependency versioned to only build against + versions that come with libnm-util1 + - update debian/control + * include empty aclocal.m4 file to make cdbs trigger aclocal auto run + - add aclocal.m4 + * switch to use quilt as patchsystem + - add debian/patches/series + - update debian/rules + * unfold Build-Depends and Depends in debian/control to improve legability + of patches + - update debian/control + * bump {Build-}Depends: version for network-manager and friends to a + reasonable value (>= 0.7~~svn20080121t191418+eni1-0ubuntu0~pre6) + - update debian/control + * remove debian/network-manager-gnome/usr/include on install + - update debian/rules + + -- Alexander Sack Tue, 22 Jan 2008 17:56:32 +0000 + +network-manager-applet (0.6.5-0ubuntu11) hardy; urgency=low + + * apply patch to drop gnome-runtime dependencies (LP: #136945) - patch by Jani + Monoses + - add debian/patches/06_drop_libgnome.patch + - add debian/patches/99_autoconf_update.patch + * don't use gksu in hardy anymore - policy kit hooray! (LP: #176222) + - update debian/patches/01_static_network-admin.patch + - update debian/patches/13_custom-network-admin.diff + + [ TJ ] + * debian/patches/15_lp124336_missing_prototype_causes_connect_to_other_networks_sigsegv.patch: + Fix SIGSEGV caused by pointer>int>pointer conversion on x86_64. (LP: #124336) + + -- Alexander Sack Wed, 09 Jan 2008 13:15:10 +0100 + +network-manager-applet (0.6.5-0ubuntu10) gutsy; urgency=low + + * debian/control: add missing depends on gksu to allow manual + network-configuration even for minimal ubuntu flavours, like the UME. + * debian/patches/13_custom-network-admin.diff: use BINDIR "/" MANUAL_CONF_FILE + when its available on the system. (LP: #145625) + * debian/rules: apply previously forgotten hunk to install network manager + applet autostart file to /etc/xdg/autostart/ from LP: #95064. + * debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch: don't + start nm-applet on ltsp client. (LP: #123808) + + -- Alexander Sack Tue, 02 Oct 2007 20:58:18 +0200 + +network-manager-applet (0.6.5-0ubuntu9) gutsy; urgency=low + + * debian/patches/11_lp95064-enable-xdg-autostart-for-xfce.patch: enable + autostart of nm-applet for XFCE nm-applet.desktop. (LP: #95064) + * debian/patches/12_lp101978-connection-info-hide-on-delete-event.patch: + hide connection info on delete-event; patch by Dima Korzhevin. + (LP: #101978). + + -- Alexander Sack Wed, 19 Sep 2007 18:24:28 +0200 + +network-manager-applet (0.6.5-0ubuntu8) gutsy; urgency=low + + * set Maintainer to ubuntu-core-dev + * add XS-Vcs-Bzr tag to point apt-get to the correct branch + + -- Reinhard Tartler Thu, 26 Jul 2007 15:55:06 +0200 + +network-manager-applet (0.6.5-0ubuntu7) gutsy; urgency=low + + * add 04_nm-vpn-properties_path again, nm-vpn-properties has been moved + back again. LP: #127844 + + -- Reinhard Tartler Thu, 26 Jul 2007 11:05:45 +0200 + +network-manager-applet (0.6.5-0ubuntu6) gutsy; urgency=low + + * remove 04_nm-vpn-properties_path.patch. nm-vpn-properties now + installed in /usr/bin again. + + -- Reinhard Tartler Thu, 05 Jul 2007 10:25:15 +0200 + +network-manager-applet (0.6.5-0ubuntu5) gutsy; urgency=low + + * debian/control: + - Build-Depends on intltool so the translation template updated + (LP: #122547) + + -- Sebastien Bacher Thu, 28 Jun 2007 21:32:29 +0200 + +network-manager-applet (0.6.5-0ubuntu4) gutsy; urgency=low + + * debian/patches/01_static_network-admin.patch: fix by Peter + Clifton; adding NULL check to stop nm-applet from crashing + and make encrypted wifi work. (LP: #121228) + + -- Alexander Sack Wed, 27 Jun 2007 12:34:03 +0200 + +network-manager-applet (0.6.5-0ubuntu3) gutsy; urgency=low + + * Re-import applet patches from network-manager + + * debian/control: tighten build-depends on network-manager to + >= 0.6.5-0ubuntu3 + + * Make patches apply against applet sources + drop patches that have + been applied upstream: + - debian/patches/01_static_network-admin.patch: fix diff path for + new source layout: gnome/applet -> src/ + update line numbers. + - debian/patches/02_manual_means_always_online.diff: fix diff path + for new source layout: gnome/applet -> src/ + update line numbers; + drop diffs for sources not in this tarball: src/NetworkManagerDbus.c, + src/NetworkManagerMain.h and src/nm-device.c. + - debian/patches/03_manual_config_available_when_connected.patch: fix + diff path for new source layout: gnome/applet -> src/ + update line + numbers. + - debian/patches/04_nm-vpn-properties_path.patch: nm-vpn-properties + are shipped in network-manager pkglibdir + - debian/patches/10-po_fr.patch: all but one translation fixes were applied + upstream. + + -- Alexander Sack Tue, 26 Jun 2007 10:52:45 +0200 + +network-manager-applet (0.6.5-0ubuntu2) gutsy; urgency=low + + * Added missing dep network-manager + + -- Anthony Mercatante Fri, 22 Jun 2007 18:24:22 +0200 + +network-manager-applet (0.6.5-0ubuntu1) gutsy; urgency=low + + * Initial release + * Added 21_manual_means_always_online.diff to "patches-not-applied" + The gnome applet has been splitted from n-m code, and patch needs + to be rewritten + * Added 04_nm-vpn-properties_path.patch + Fixes path to nm-vpn-properties according to the changes we've done + to network-manager package due to bad source splitting + + -- Anthony Mercatante Fri, 15 Jun 2007 12:46:22 +0200 --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/icons/22/nm-secure-lock.png.uue +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/icons/22/nm-secure-lock.png.uue @@ -0,0 +1,11 @@ +begin 644 nm-secure-lock.png +MB5!.1PT*&@H````-24A$4@```!8````6"`8```#$M&P[`````7-21T(`KLX< +MZ0````9B2T=$`/\`_P#_H+VGDP````EP2%ES```-UP``#=`````=T +M24U%!]D)$0P3'_FM`,\```#/241!5#C+[=`[BL)0&(;A]\38!-&`*,1&74`8 +MM1DFG3MR*>[&3A%$T<)+:R':3(@S\0+>=8S-*`I6GMCE*;\#+S]'\*_5'7C< +M^2I\""0HUV@JKA,)*WB[- ++ ++image/svg+xml ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +\ No newline at end of file + +=== added file 'icons/scalable/notification-network-ethernet-connected.svg' +--- old/icons/scalable/notification-network-ethernet-connected.svg 1970-01-01 00:00:00 +0000 ++++ new/icons/scalable/notification-network-ethernet-connected.svg 2009-03-04 22:01:48 +0000 +@@ -0,0 +1,1015 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +=== added file 'icons/scalable/notification-network-wireless-full.svg' +--- old/icons/scalable/notification-network-wireless-full.svg 1970-01-01 00:00:00 +0000 ++++ new/icons/scalable/notification-network-wireless-full.svg 2009-03-04 21:54:28 +0000 +@@ -0,0 +1,41 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +\ No newline at end of file + --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/20_use_full_vpn_dialog_service_name_path.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/20_use_full_vpn_dialog_service_name_path.patch @@ -0,0 +1,44 @@ + +We dont want LIBEXECDIR shuffeling. The vpn daemon building system knows +better where the auth-dialog will be installed to; thus we just use the +full path stored in VPN/*.name files. + +-- + +=== modified file 'src/vpn-password-dialog.c' +--- + src/vpn-password-dialog.c | 14 ++------------ + 1 file changed, 2 insertions(+), 12 deletions(-) + +Index: network-manager-applet-0.8~a~git.20090830t224938.0334788/src/vpn-password-dialog.c +=================================================================== +--- network-manager-applet-0.8~a~git.20090830t224938.0334788.orig/src/vpn-password-dialog.c 2009-08-31 17:32:43.000000000 -0400 ++++ network-manager-applet-0.8~a~git.20090830t224938.0334788/src/vpn-password-dialog.c 2009-08-31 17:33:41.000000000 -0400 +@@ -141,16 +141,6 @@ + service); + gtk_window_present (GTK_WINDOW (dialog)); + g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); +- } else { +- char *basename; +- +- /* Remove any path component, then reconstruct path to the auth +- * dialog in LIBEXECDIR. +- */ +- basename = g_path_get_basename (prog); +- g_free (prog); +- prog = g_strdup_printf ("%s/%s", LIBEXECDIR, basename); +- g_free (basename); + } + + return prog; +@@ -262,8 +252,8 @@ + g_set_error (&error, + NM_SETTINGS_INTERFACE_ERROR, + NM_SETTINGS_INTERFACE_ERROR_INTERNAL_ERROR, +- "%s.%d (%s): couldn't run VPN auth dialog.", +- __FILE__, __LINE__, __func__); ++ "%s.%d (%s): couldn't run VPN auth dialog. (cmd=%s)", ++ __FILE__, __LINE__, __func__, argv[0]); + goto out; + } + --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/lp358526_generic_disconnected_notification_icon.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/lp358526_generic_disconnected_notification_icon.patch @@ -0,0 +1,27 @@ +--- + src/applet.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: network-manager-applet-0.7.1~rc4.1/src/applet.c +=================================================================== +--- network-manager-applet-0.7.1~rc4.1.orig/src/applet.c ++++ network-manager-applet-0.7.1~rc4.1/src/applet.c +@@ -1674,17 +1674,17 @@ + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_GSM: + info->icon = "notification-gsm-disconnected"; + break; + default: +- info->icon = "nm-no-connection"; ++ info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; + } + --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/lp337960_dxteam_notification_icon_names.diff +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/lp337960_dxteam_notification_icon_names.diff @@ -0,0 +1,55 @@ +=== modified file 'src/applet-device-gsm.c' +--- + src/applet-device-gsm.c | 2 +- + src/applet-device-wifi.c | 4 ++-- + src/applet-device-wired.c | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +Index: network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-gsm.c +=================================================================== +--- network-manager-applet-0.8~a~git.20090830t224938.0334788.orig/src/applet-device-gsm.c 2009-08-31 19:42:45.000000000 -0400 ++++ network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-gsm.c 2009-08-31 19:43:34.000000000 -0400 +@@ -353,7 +353,7 @@ + applet_do_notify_with_pref (applet, + str ? str : _("GSM network."), + _("Connection Established"), +- "nm-device-wwan", ++ "notification-gsm-high", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } + } +Index: network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-wifi.c +=================================================================== +--- network-manager-applet-0.8~a~git.20090830t224938.0334788.orig/src/applet-device-wifi.c 2009-08-31 19:42:49.000000000 -0400 ++++ network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-wifi.c 2009-08-31 19:44:48.000000000 -0400 +@@ -981,7 +981,7 @@ + NOTIFY_URGENCY_LOW, + _("Wireless Networks Available"), + _("Click on this icon to connect to a wireless network"), +- "nm-device-wireless", ++ "notification-network-wireless-full", + "dont-show", + _("Don't show this message again"), + wifi_available_dont_show_cb, +@@ -1189,7 +1189,7 @@ + applet_do_notify_with_pref (applet, + esc_ssid ? esc_ssid : _("(none)"), + _("Connection Established"), +- "nm-device-wireless", ++ "notification-network-wireless-full", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (esc_ssid); + } +Index: network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-wired.c +=================================================================== +--- network-manager-applet-0.8~a~git.20090830t224938.0334788.orig/src/applet-device-wired.c 2009-08-31 19:42:52.000000000 -0400 ++++ network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-wired.c 2009-08-31 19:45:50.000000000 -0400 +@@ -263,7 +263,7 @@ + applet_do_notify_with_pref (applet, + str ? str : _("Wired network"), + _("Connection Established"), +- "nm-device-wired", ++ "notification-network-ethernet-connected", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } + } --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/lp328572-dxteam-connect-text.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/lp328572-dxteam-connect-text.patch @@ -0,0 +1,34 @@ +=== modified file 'src/applet-device-wifi.c' +--- + src/applet-device-wifi.c | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +Index: network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-wifi.c +=================================================================== +--- network-manager-applet-0.8~a~git.20090830t224938.0334788.orig/src/applet-device-wifi.c 2009-08-31 19:30:00.000000000 -0400 ++++ network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-wifi.c 2009-08-31 19:32:23.000000000 -0400 +@@ -1164,7 +1164,6 @@ + { + NMSettingsConnectionInterface *connection; + NMAccessPoint *new = NULL; +- char *msg; + char *esc_ssid = NULL; + + new = update_active_ap (device, new_state, applet); +@@ -1187,12 +1186,11 @@ + nm_settings_connection_interface_update (connection, bssid_update_cb, NULL); + } + +- msg = g_strdup_printf (_("You are now connected to the wireless network '%s'."), +- esc_ssid ? esc_ssid : _("(none)")); +- applet_do_notify_with_pref (applet, _("Connection Established"), +- msg, "nm-device-wireless", ++ applet_do_notify_with_pref (applet, ++ esc_ssid ? esc_ssid : _("(none)"), ++ _("Connection Established"), ++ "nm-device-wireless", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); +- g_free (msg); + g_free (esc_ssid); + } + --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/series +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/series @@ -0,0 +1,13 @@ +20_use_full_vpn_dialog_service_name_path.patch +lp289466_always_show_tray_icon.patch +lp268803_xdg_autostart_gnome_xfce_only.patch +lp295788_xfce_menu_entry.patch +lp328572-dxteam-connect-text.patch +lp330571_dxteam_wired_connect_text.patch +lp330608_dxteam_gsm_connect_text.patch +lp337960_dxteam_notification_icon_names.diff +lp337960_dxteam_notification_icon_names_part2-images.diff +lp341684_device_sensitive_disconnect_notify.patch +lp358526_generic_disconnected_notification_icon.patch + +nm08-applet-preview.patch --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/lp341684_device_sensitive_disconnect_notify.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/lp341684_device_sensitive_disconnect_notify.patch @@ -0,0 +1,218 @@ +=== modified file 'src/applet-device-wifi.c' +--- + src/applet-device-wifi.c | 4 + + src/applet.c | 137 +++++++++++++++++++++++++++++++++++++++++++++++++-- + src/applet.h | 3 + + 3 files changed, 139 insertions(+), 5 deletions(-) + +Index: network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-wifi.c +=================================================================== +--- network-manager-applet-0.8~a~git.20090830t224938.0334788.orig/src/applet-device-wifi.c 2009-08-31 18:35:03.000000000 -0400 ++++ network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet-device-wifi.c 2009-08-31 18:37:52.000000000 -0400 +@@ -1177,8 +1177,10 @@ + if (new) { + const GByteArray *ssid = nm_access_point_get_ssid (new); + +- if (ssid) ++ if (ssid) { + esc_ssid = nm_utils_ssid_to_utf8 ((const char *) ssid->data, ssid->len); ++ g_object_set_data_full (G_OBJECT(device), "canonical-last-essid", g_strdup (esc_ssid), (GDestroyNotify) g_free); ++ } + + /* Save this BSSID to seen-bssids list */ + connection = applet_get_exported_connection_for_device (device, applet); +Index: network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet.c +=================================================================== +--- network-manager-applet-0.8~a~git.20090830t224938.0334788.orig/src/applet.c 2009-08-31 18:35:15.000000000 -0400 ++++ network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet.c 2009-08-31 18:49:48.000000000 -0400 +@@ -41,6 +41,7 @@ + #include + + #include ++#include + #include + #include + #include +@@ -75,6 +76,19 @@ + + G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + ++struct _OfflineNotificationContextInfo { ++ NMState state; ++ NMDeviceState device_state; ++ NMDeviceStateReason device_state_reason; ++ NMDeviceType device_type; ++ gchar* title; ++ const gchar* text; ++ const gchar* icon; ++ NotifyUrgency urgency; ++}; ++ ++typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; ++ + static NMActiveConnection * + applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) + { +@@ -1656,6 +1670,59 @@ + return NULL; + } + ++static gboolean ++select_merged_notification_text (OfflineNotificationContextInfo *info) ++{ ++ info->urgency = NOTIFY_URGENCY_LOW; ++ /* only do something if this is about full offline state */ ++ if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_STATE_UNKNOWN) { ++ info->urgency = NOTIFY_URGENCY_NORMAL; ++ if (!info->title) ++ info->title = g_strdup (_("Network")); ++ if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { ++ info->urgency = NOTIFY_URGENCY_CRITICAL; ++ info->text = _("Disconnected - you are now offline"); ++ } else ++ info->text = _("Disconnected"); ++ ++ switch (info->device_type) { ++ case NM_DEVICE_TYPE_ETHERNET: ++ info->icon = "notification-network-ethernet-disconnected"; ++ break; ++ case NM_DEVICE_TYPE_WIFI: ++ info->icon = "notification-network-wireless-disconnected"; ++ break; ++ case NM_DEVICE_TYPE_GSM: ++ info->icon = "notification-gsm-disconnected"; ++ break; ++ default: ++ info->icon = "nm-no-connection"; ++ break; ++ } ++ g_debug("going for offline with icon: %s", info->icon); ++ return TRUE; ++ } ++ return FALSE; ++} ++ ++static gboolean ++foo_online_offline_deferred_notify (gpointer user_data) ++{ ++ NMApplet *applet = NM_APPLET (user_data); ++ OfflineNotificationContextInfo *info = applet->notification_queue_data; ++ if(select_merged_notification_text (info)) ++ applet_do_notify (applet, info->urgency, info->title, info->text, info->icon, NULL, NULL, NULL, applet); ++ else ++ g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); ++ if (info->title) ++ g_free (info->title); ++ info->title = NULL; ++ g_free (applet->notification_queue_data); ++ applet->notification_queue_data = NULL; ++ applet->deferred_id = 0; ++ return FALSE; ++} ++ + static void + applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, +@@ -1665,8 +1732,57 @@ + { + NMConnection *connection; + NMActiveConnection *active = NULL; ++ g_debug("applet_common_device_state_changed"); + + switch (new_state) { ++ case NM_DEVICE_STATE_FAILED: ++ case NM_DEVICE_STATE_DISCONNECTED: ++ case NM_DEVICE_STATE_UNMANAGED: ++ case NM_DEVICE_STATE_UNAVAILABLE: ++ { ++ if (old_state != NM_DEVICE_STATE_FAILED && ++ old_state != NM_DEVICE_STATE_UNKNOWN && ++ old_state != NM_DEVICE_STATE_DISCONNECTED && ++ old_state != NM_DEVICE_STATE_UNMANAGED && ++ old_state != NM_DEVICE_STATE_UNAVAILABLE) { ++ OfflineNotificationContextInfo *info = applet->notification_queue_data; ++ if (!info) { ++ info = g_new0(OfflineNotificationContextInfo, 1); ++ applet->notification_queue_data = info; ++ } ++ ++ info->device_state = new_state; ++ info->device_state_reason = reason; ++ if (info->title) { ++ g_free(info->title); ++ info->title = NULL; ++ } ++ if (NM_IS_DEVICE_WIFI (device)) { ++ info->device_type = NM_DEVICE_TYPE_WIFI; ++ info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); ++ if (!info->title) ++ info->title = g_strdup (_("Wireless network")); ++ } else if (NM_IS_DEVICE_ETHERNET (device)) { ++ info->device_type = NM_DEVICE_TYPE_ETHERNET; ++ info->title = g_strdup(_("Wired network")); ++ } else if (NM_IS_GSM_DEVICE (device)) { ++ info->device_type = NM_DEVICE_TYPE_GSM; ++ info->title = g_strdup (_("GSM network")); ++ } else { ++ info->device_type = NM_DEVICE_TYPE_UNKNOWN; ++ info->title = g_strdup (_("Network")); ++ } ++ ++ if (applet->deferred_id) ++ g_source_remove (applet->deferred_id); ++ applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); ++ ++ clear_animation_timeout (applet); ++ } else { ++ g_debug ("old state indicates that this was not a disconnect %d", old_state); ++ } ++ break; ++ } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: +@@ -1734,13 +1850,26 @@ + { + NMApplet *applet = NM_APPLET (user_data); + ++ g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: +- applet_do_notify_with_pref (applet, _("Disconnected"), +- _("The network connection has been disconnected."), +- "nm-no-connection", +- PREF_DISABLE_DISCONNECTED_NOTIFICATIONS); ++ case NM_STATE_ASLEEP: ++ { ++ OfflineNotificationContextInfo *info = applet->notification_queue_data; ++ if (!info) { ++ info = g_new0(OfflineNotificationContextInfo, 1); ++ applet->notification_queue_data = info; ++ } ++ ++ info->state = nm_client_get_state (client); ++ select_merged_notification_text (info); ++ ++ if (applet->deferred_id) ++ g_source_remove (applet->deferred_id); ++ applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); ++ + /* Fall through */ ++ } + default: + break; + } +Index: network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet.h +=================================================================== +--- network-manager-applet-0.8~a~git.20090830t224938.0334788.orig/src/applet.h 2009-08-31 18:35:25.000000000 -0400 ++++ network-manager-applet-0.8~a~git.20090830t224938.0334788/src/applet.h 2009-08-31 18:47:50.000000000 -0400 +@@ -145,6 +145,9 @@ + GladeXML * info_dialog_xml; + NotifyNotification* notification; + gboolean notify_with_actions; ++ ++ gpointer notification_queue_data; ++ guint deferred_id; + } NMApplet; + + typedef void (*AppletNewAutoConnectionCallback) (NMConnection *connection, --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/lp330608_dxteam_gsm_connect_text.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/lp330608_dxteam_gsm_connect_text.patch @@ -0,0 +1,33 @@ +=== modified file 'src/applet-device-gsm.c' +--- a/src/applet-device-gsm.c 2009-02-17 16:32:22 +0000 ++++ b/src/applet-device-gsm.c 2009-02-17 16:36:47 +0000 +@@ -287,24 +287,19 @@ + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; +- char *str = NULL; ++ const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { +- const char *id; +- + s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); +- id = s_con ? nm_setting_connection_get_id (s_con) : NULL; +- if (id) +- str = g_strdup_printf (_("You are now connected to '%s'."), id); ++ str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, +- _("Connection Established"), +- str ? str : _("You are now connected to the GSM network."), ++ str ? str : _("GSM network."), ++ _("Connection Established"), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); +- g_free (str); + } + } + + --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/lp330571_dxteam_wired_connect_text.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/lp330571_dxteam_wired_connect_text.patch @@ -0,0 +1,32 @@ +=== modified file 'src/applet-device-wired.c' +--- a/src/applet-device-wired.c 2009-01-12 17:39:22 +0000 ++++ b/src/applet-device-wired.c 2009-02-17 15:29:30 +0000 +@@ -253,23 +253,19 @@ + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; +- char *str = NULL; ++ const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { +- const char *id; + s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); +- id = s_con ? nm_setting_connection_get_id (s_con) : NULL; +- if (id) +- str = g_strdup_printf (_("You are now connected to '%s'."), id); ++ str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, +- _("Connection Established"), +- str ? str : _("You are now connected to the wired network."), ++ str ? str : _("Wired network"), ++ _("Connection Established"), + "nm-device-wired", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); +- g_free (str); + } + } + + --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/lp289466_always_show_tray_icon.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/lp289466_always_show_tray_icon.patch @@ -0,0 +1,65 @@ +=== modified file 'src/applet.c' +--- + src/applet.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +Index: ubuntu.0.7/src/applet.c +=================================================================== +--- ubuntu.0.7.orig/src/applet.c ++++ ubuntu.0.7/src/applet.c +@@ -1719,16 +1719,18 @@ + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); ++ ++ applet_schedule_update_icon (applet); + } + + static GdkPixbuf * + applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) + { + GdkPixbuf *pixbuf = NULL; + int stage = -1; + +@@ -1825,16 +1827,18 @@ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + + out: + if (!pixbuf) + pixbuf = applet_common_get_device_icon (state, applet); ++ if (!pixbuf) ++ pixbuf = applet->no_connection_icon; + return pixbuf; + } + + static char * + get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) + { + NMConnectionScope scope; + char *tip = NULL; +@@ -1893,17 +1897,16 @@ + GString *tip; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); +- gtk_status_icon_set_visible (applet->status_icon, nm_running); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + switch (state) { --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/lp295788_xfce_menu_entry.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/lp295788_xfce_menu_entry.patch @@ -0,0 +1,8 @@ +--- network-manager-applet-0.7.orig/nm-connection-editor.desktop.in 2009-01-13 14:42:59.000000000 -0500 ++++ network-manager-applet-0.7/nm-connection-editor.desktop.in 2009-01-13 14:43:32.000000000 -0500 +@@ -9,4 +9,4 @@ + X-GNOME-Bugzilla-Product=NetworkManager + X-GNOME-Bugzilla-Component=general + Categories=GNOME;GTK;Settings;X-SuSE-ControlCenter-System;X-GNOME-NetworkSettings; +-OnlyShowIn=GNOME; ++OnlyShowIn=GNOME;Xfce; --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/nm08-applet-preview.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/nm08-applet-preview.patch @@ -0,0 +1,1390 @@ +diff --git a/icons/22/Makefile.am b/icons/22/Makefile.am +index 460d472..66417b7 100644 +--- a/icons/22/Makefile.am ++++ b/icons/22/Makefile.am +@@ -56,7 +57,8 @@ icon_DATA = \ + nm-vpn-connecting12.png \ + nm-vpn-connecting13.png \ + nm-vpn-connecting14.png \ +- nm-vpn-active-lock.png ++ nm-vpn-active-lock.png \ ++ nm-secure-lock.png + + EXTRA_DIST = $(icon_DATA) + +diff --git a/icons/22/nm-secure-lock.png b/icons/22/nm-secure-lock.png +new file mode 100644 +index 0000000..da7ef5c +Binary files /dev/null and b/icons/22/nm-secure-lock.png differ +diff --git a/src/ap-menu-item.c b/src/ap-menu-item.c +index 6131549..b074c0d 100644 +--- a/src/ap-menu-item.c ++++ b/src/ap-menu-item.c +@@ -35,18 +35,11 @@ + #include "utils.h" + + +-G_DEFINE_TYPE (NMNetworkMenuItem, nm_network_menu_item, GTK_TYPE_CHECK_MENU_ITEM); ++G_DEFINE_TYPE (NMNetworkMenuItem, nm_network_menu_item, GTK_TYPE_IMAGE_MENU_ITEM); + + static void + nm_network_menu_item_init (NMNetworkMenuItem * item) + { +- PangoFontDescription * fontdesc; +- PangoFontMetrics * metrics; +- PangoContext * context; +- PangoLanguage * lang; +- int ascent; +- +- gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); + item->hbox = gtk_hbox_new (FALSE, 6); + item->ssid = gtk_label_new (NULL); + gtk_misc_set_alignment (GTK_MISC (item->ssid), 0.0, 0.5); +@@ -57,20 +50,9 @@ nm_network_menu_item_init (NMNetworkMenuItem * item) + gtk_box_pack_start (GTK_BOX (item->hbox), item->ssid, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (item->hbox), item->detail, FALSE, FALSE, 0); + +- item->strength = gtk_progress_bar_new (); +- +- /* get the font ascent for the current font and language */ +- context = gtk_widget_get_pango_context (item->strength); +- fontdesc = pango_context_get_font_description (context); +- lang = pango_context_get_language (context); +- metrics = pango_context_get_metrics (context, fontdesc, lang); +- ascent = pango_font_metrics_get_ascent (metrics) * 1.5 / PANGO_SCALE; +- pango_font_metrics_unref (metrics); +- +- /* size our progress bar to be five ascents long */ +- gtk_widget_set_size_request (item->strength, ascent * 5, -1); +- ++ item->strength = gtk_image_new (); + gtk_box_pack_end (GTK_BOX (item->hbox), item->strength, FALSE, TRUE, 0); ++ item->sort_label = g_strdup (""); + + gtk_widget_show (item->ssid); + gtk_widget_show (item->strength); +@@ -117,6 +99,8 @@ nm_network_menu_item_class_dispose (GObject *object) + gtk_widget_destroy (item->detail); + gtk_widget_destroy (item->hbox); + ++ g_free (item->sort_label); ++ + item->destroyed = TRUE; + g_free (item->hash); + +@@ -151,6 +135,8 @@ nm_network_menu_item_set_ssid (NMNetworkMenuItem * item, GByteArray * ssid) + gtk_label_set_text (GTK_LABEL (item->ssid), display_ssid); + g_free (display_ssid); + } ++ g_free (item->sort_label); ++ item->sort_label = g_strdup (gtk_label_get_text (GTK_LABEL (item->ssid))); + } + + guint32 +@@ -162,15 +148,54 @@ nm_network_menu_item_get_strength (NMNetworkMenuItem * item) + } + + void +-nm_network_menu_item_set_strength (NMNetworkMenuItem * item, guint32 strength) ++nm_network_menu_item_set_strength (NMNetworkMenuItem * item, ++ NMAccessPoint *ap, ++ NMApplet *applet) + { +- double percent; ++ guint8 strength; ++ GdkPixbuf *pixbuf = NULL; ++ guint32 ap_flags, ap_wpa, ap_rsn; + + g_return_if_fail (item != NULL); + +- item->int_strength = CLAMP (strength, 0, 100); +- percent = (double) item->int_strength / 100.0; +- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (item->strength), percent); ++ ap_flags = nm_access_point_get_flags (ap); ++ ap_wpa = nm_access_point_get_wpa_flags (ap); ++ ap_rsn = nm_access_point_get_rsn_flags (ap); ++ strength = nm_access_point_get_strength(ap); ++ strength = CLAMP (strength, 0, 100); ++ ++ item->int_strength = strength; ++ ++ if (strength > 80) { ++ pixbuf = gdk_pixbuf_copy (applet->wireless_100_icon); ++ item->sort_strength = 4; ++ } else if (strength > 55) { ++ pixbuf = gdk_pixbuf_copy (applet->wireless_75_icon); ++ item->sort_strength = 3; ++ } else if (strength > 30) { ++ pixbuf = gdk_pixbuf_copy (applet->wireless_50_icon); ++ item->sort_strength = 2; ++ } else if (strength > 5) { ++ pixbuf = gdk_pixbuf_copy (applet->wireless_25_icon); ++ item->sort_strength = 1; ++ } else { ++ pixbuf = gdk_pixbuf_copy (applet->wireless_00_icon); ++ item->sort_strength = 0; ++ } ++ ++ if ((ap_flags & NM_802_11_AP_FLAGS_PRIVACY) ++ || (ap_wpa != NM_802_11_AP_SEC_NONE) ++ || (ap_rsn != NM_802_11_AP_SEC_NONE)) { ++ GdkPixbuf *top = applet->secure_lock_icon; ++ ++ gdk_pixbuf_composite (top, pixbuf, 0, 0, gdk_pixbuf_get_width (top), ++ gdk_pixbuf_get_height (top), ++ 0, 0, 1.0, 1.0, ++ GDK_INTERP_NEAREST, 255); ++ } ++ ++ gtk_image_set_from_pixbuf (GTK_IMAGE (item->strength), pixbuf); ++ g_object_unref (pixbuf); + } + + const guchar * +@@ -190,28 +215,18 @@ nm_network_menu_item_set_detail (NMNetworkMenuItem * item, + GdkPixbuf * adhoc_icon, + guint32 dev_caps) + { +- gboolean encrypted = FALSE, is_adhoc = FALSE; ++ gboolean is_adhoc = FALSE; + guint32 ap_flags, ap_wpa, ap_rsn; + + ap_flags = nm_access_point_get_flags (ap); + ap_wpa = nm_access_point_get_wpa_flags (ap); + ap_rsn = nm_access_point_get_rsn_flags (ap); + +- if ( (ap_flags & NM_802_11_AP_FLAGS_PRIVACY) +- || (ap_wpa != NM_802_11_AP_SEC_NONE) +- || (ap_rsn != NM_802_11_AP_SEC_NONE)) +- encrypted = TRUE; +- + if (nm_access_point_get_mode (ap) == NM_802_11_MODE_ADHOC) + is_adhoc = TRUE; + + if (is_adhoc) { + gtk_image_set_from_pixbuf (GTK_IMAGE (item->detail), adhoc_icon); +- } else if (encrypted) { +- if (gtk_icon_theme_has_icon (gtk_icon_theme_get_default (), "network-wireless-encrypted")) +- gtk_image_set_from_icon_name (GTK_IMAGE (item->detail), "network-wireless-encrypted", GTK_ICON_SIZE_MENU); +- else +- gtk_image_set_from_icon_name (GTK_IMAGE (item->detail), "gnome-lockscreen", GTK_ICON_SIZE_MENU); + } else { + gtk_image_set_from_stock (GTK_IMAGE (item->detail), NULL, GTK_ICON_SIZE_MENU); + } +@@ -247,6 +262,11 @@ nm_network_menu_item_find_dupe (NMNetworkMenuItem *item, NMAccessPoint *ap) + } + + void ++nm_network_menu_item_set_active (NMNetworkMenuItem *item, gboolean active) ++{ ++ gtk_widget_set_sensitive (item->strength, active); ++} ++void + nm_network_menu_item_add_dupe (NMNetworkMenuItem *item, NMAccessPoint *ap) + { + const char *path; +diff --git a/src/ap-menu-item.h b/src/ap-menu-item.h +index 1d7fdfe..b5f3e6b 100644 +--- a/src/ap-menu-item.h ++++ b/src/ap-menu-item.h +@@ -41,7 +41,7 @@ typedef struct _NMNetworkMenuItemClass NMNetworkMenuItemClass; + + struct _NMNetworkMenuItem + { +- GtkCheckMenuItem check_item; ++ GtkImageMenuItem image_item; + + /*< private >*/ + GtkWidget * ssid; +@@ -53,11 +53,13 @@ struct _NMNetworkMenuItem + guint32 hash_len; + gboolean destroyed; + GSList * dupes; ++ gchar *sort_label; ++ guint32 sort_strength; + }; + + struct _NMNetworkMenuItemClass + { +- GtkCheckMenuItemClass parent_class; ++ GtkImageMenuItemClass parent_class; + }; + + +@@ -69,7 +71,8 @@ void nm_network_menu_item_set_ssid (NMNetworkMenuItem * item, + GByteArray * ssid); + guint32 nm_network_menu_item_get_strength (NMNetworkMenuItem * item); + void nm_network_menu_item_set_strength (NMNetworkMenuItem * item, +- guint32 strength); ++ NMAccessPoint *ap, ++ NMApplet *applet); + const guchar * nm_network_menu_item_get_hash (NMNetworkMenuItem * item, + guint32 * length); + void nm_network_menu_item_set_detail (NMNetworkMenuItem * item, +@@ -83,4 +86,6 @@ gboolean nm_network_menu_item_find_dupe (NMNetworkMenuItem *item, + void nm_network_menu_item_add_dupe (NMNetworkMenuItem *item, + NMAccessPoint *ap); + ++void nm_network_menu_item_set_active (NMNetworkMenuItem * item, ++ gboolean active); + #endif /* __AP_MENU_ITEM_H__ */ +diff --git a/src/applet-device-bt.c b/src/applet-device-bt.c +index 47287fd..0e8ab8e 100644 +--- a/src/applet-device-bt.c ++++ b/src/applet-device-bt.c +@@ -81,11 +81,18 @@ bt_menu_item_activate (GtkMenuItem *item, gpointer user_data) + user_data); + } + ++ ++typedef enum { ++ ADD_ACTIVE = 1, ++ ADD_INACTIVE = 2, ++} AddActiveInactiveEnum; ++ + static void + add_connection_items (NMDevice *device, + GSList *connections, + gboolean carrier, + NMConnection *active, ++ AddActiveInactiveEnum flag, + GtkWidget *menu, + NMApplet *applet) + { +@@ -97,13 +104,18 @@ add_connection_items (NMDevice *device, + NMSettingConnection *s_con; + GtkWidget *item; + ++ if (active == connection) { ++ if ((flag & ADD_ACTIVE) == 0) ++ continue; ++ } else { ++ if ((flag & ADD_INACTIVE) == 0) ++ continue; ++ } ++ + s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); +- item = gtk_check_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); ++ item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); ++ gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (item), carrier); +- gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); +- +- if (connection == active) +- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); + + info = g_slice_new0 (BtMenuItemInfo); + info->applet = applet; +@@ -115,6 +127,8 @@ add_connection_items (NMDevice *device, + info, + (GClosureNotify) bt_menu_item_info_destroy, 0); + ++ applet_menu_item_favorize_helper (GTK_BIN (item), applet->favorites_icon, TRUE); ++ + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + } +@@ -130,7 +144,6 @@ bt_add_menu_item (NMDevice *device, + GtkWidget *item; + GSList *connections, *all; + gboolean carrier = TRUE; +- char *bold_text; + + all = applet_get_all_connections (applet); + connections = utils_filter_connections_for_device (device, all); +@@ -144,15 +157,18 @@ bt_add_menu_item (NMDevice *device, + g_assert (text); + } + +- item = gtk_menu_item_new_with_label (""); +- bold_text = g_markup_printf_escaped ("%s", text); +- gtk_label_set_markup (GTK_LABEL (gtk_bin_get_child (GTK_BIN (item))), bold_text); +- g_free (bold_text); ++ item = applet_menu_item_create_device_item_helper (device, applet, text); + + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + ++ if (active) ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Active"), NULL, -1); ++ ++ if (g_slist_length (connections)) ++ add_connection_items (device, connections, carrier, active, ADD_ACTIVE, menu, applet); ++ + /* Notify user of unmanaged or unavailable device */ + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { +@@ -162,8 +178,10 @@ bt_add_menu_item (NMDevice *device, + + if (!nma_menu_device_check_unusable (device)) { + /* Add menu items for existing bluetooth connections for this device */ +- if (g_slist_length (connections)) +- add_connection_items (device, connections, carrier, active, menu, applet); ++ if (g_slist_length (connections)) { ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), NULL, -1); ++ add_connection_items (device, connections, carrier, active, ADD_INACTIVE, menu, applet); ++ } + } + + g_slist_free (connections); +diff --git a/src/applet-device-cdma.c b/src/applet-device-cdma.c +index cf73890..45610f7 100644 +--- a/src/applet-device-cdma.c ++++ b/src/applet-device-cdma.c +@@ -166,10 +166,17 @@ cdma_menu_item_activate (GtkMenuItem *item, gpointer user_data) + user_data); + } + ++ ++typedef enum { ++ ADD_ACTIVE = 1, ++ ADD_INACTIVE = 2, ++} AddActiveInactiveEnum; ++ + static void + add_connection_items (NMDevice *device, + GSList *connections, + NMConnection *active, ++ AddActiveInactiveEnum flag, + GtkWidget *menu, + NMApplet *applet) + { +@@ -181,12 +188,17 @@ add_connection_items (NMDevice *device, + NMSettingConnection *s_con; + GtkWidget *item; + +- s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); +- item = gtk_check_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); +- gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); ++ if (active == connection) { ++ if ((flag & ADD_ACTIVE) == 0) ++ continue; ++ } else { ++ if ((flag & ADD_INACTIVE) == 0) ++ continue; ++ } + +- if (connection == active) +- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); ++ s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); ++ item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); ++ gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + info = g_slice_new0 (CdmaMenuItemInfo); + info->applet = applet; +@@ -198,6 +210,8 @@ add_connection_items (NMDevice *device, + info, + (GClosureNotify) cdma_menu_item_info_destroy, 0); + ++ applet_menu_item_favorize_helper (GTK_BIN (item), applet->favorites_icon, TRUE); ++ + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + } +@@ -211,7 +225,6 @@ add_default_connection_item (NMDevice *device, + GtkWidget *item; + + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (CDMA) connection...")); +- gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); + + info = g_slice_new0 (CdmaMenuItemInfo); + info->applet = applet; +@@ -255,7 +268,7 @@ cdma_add_menu_item (NMDevice *device, + text = g_strdup (_("Mobile Broadband")); + } + +- item = gtk_menu_item_new_with_label (text); ++ item = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + label = gtk_bin_get_child (GTK_BIN (item)); +@@ -268,6 +281,12 @@ cdma_add_menu_item (NMDevice *device, + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + ++ if (active) ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Active"), NULL, -1); ++ ++ if (g_slist_length (connections)) ++ add_connection_items (device, connections, active, ADD_ACTIVE, menu, applet); ++ + /* Notify user of unmanaged or unavailable device */ + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { +@@ -276,8 +295,11 @@ cdma_add_menu_item (NMDevice *device, + } + + if (!nma_menu_device_check_unusable (device)) { ++ if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), NULL, -1); ++ + if (g_slist_length (connections)) +- add_connection_items (device, connections, active, menu, applet); ++ add_connection_items (device, connections, active, ADD_INACTIVE, menu, applet); + else + add_default_connection_item (device, menu, applet); + } +diff --git a/src/applet-device-gsm.c b/src/applet-device-gsm.c +index 90bf31f..231771f 100644 +--- a/src/applet-device-gsm.c ++++ b/src/applet-device-gsm.c +@@ -168,10 +168,16 @@ gsm_menu_item_activate (GtkMenuItem *item, gpointer user_data) + user_data); + } + ++typedef enum { ++ ADD_ACTIVE = 1, ++ ADD_INACTIVE = 2, ++} AddActiveInactiveEnum; ++ + static void + add_connection_items (NMDevice *device, + GSList *connections, + NMConnection *active, ++ AddActiveInactiveEnum flag, + GtkWidget *menu, + NMApplet *applet) + { +@@ -183,12 +189,17 @@ add_connection_items (NMDevice *device, + NMSettingConnection *s_con; + GtkWidget *item; + +- s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); +- item = gtk_check_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); +- gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); ++ if (active == connection) { ++ if ((flag & ADD_ACTIVE) == 0) ++ continue; ++ } else { ++ if ((flag & ADD_INACTIVE) == 0) ++ continue; ++ } + +- if (connection == active) +- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); ++ s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); ++ item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); ++ gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + info = g_slice_new0 (GSMMenuItemInfo); + info->applet = applet; +@@ -200,6 +211,8 @@ add_connection_items (NMDevice *device, + info, + (GClosureNotify) gsm_menu_item_info_destroy, 0); + ++ applet_menu_item_favorize_helper (GTK_BIN (item), applet->favorites_icon, TRUE); ++ + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + } +@@ -213,7 +226,6 @@ add_default_connection_item (NMDevice *device, + GtkWidget *item; + + item = gtk_check_menu_item_new_with_label (_("New Mobile Broadband (GSM) connection...")); +- gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); + + info = g_slice_new0 (GSMMenuItemInfo); + info->applet = applet; +@@ -237,8 +249,6 @@ gsm_add_menu_item (NMDevice *device, + char *text; + GtkWidget *item; + GSList *connections, *all; +- GtkWidget *label; +- char *bold_text; + + all = applet_get_all_connections (applet); + connections = utils_filter_connections_for_device (device, all); +@@ -257,19 +267,19 @@ gsm_add_menu_item (NMDevice *device, + text = g_strdup (_("Mobile Broadband")); + } + +- item = gtk_menu_item_new_with_label (text); ++ item = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + +- label = gtk_bin_get_child (GTK_BIN (item)); +- bold_text = g_markup_printf_escaped ("%s", +- gtk_label_get_text (GTK_LABEL (label))); +- gtk_label_set_markup (GTK_LABEL (label), bold_text); +- g_free (bold_text); +- + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + ++ if (active) ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Active"), NULL, -1); ++ ++ if (g_slist_length (connections)) ++ add_connection_items (device, connections, active, ADD_ACTIVE, menu, applet); ++ + /* Notify user of unmanaged or unavailable device */ + item = nma_menu_device_get_menu_item (device, applet, NULL); + if (item) { +@@ -278,8 +288,11 @@ gsm_add_menu_item (NMDevice *device, + } + + if (!nma_menu_device_check_unusable (device)) { ++ if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), NULL, -1); ++ + if (g_slist_length (connections)) +- add_connection_items (device, connections, active, menu, applet); ++ add_connection_items (device, connections, active, ADD_INACTIVE, menu, applet); + else + add_default_connection_item (device, menu, applet); + } +diff --git a/src/applet-device-wifi.c b/src/applet-device-wifi.c +index 525f74d..df8fb47 100644 +--- a/src/applet-device-wifi.c ++++ b/src/applet-device-wifi.c +@@ -417,13 +417,15 @@ struct dup_data { + }; + + static void +-find_duplicate (GtkWidget * widget, gpointer user_data) ++find_duplicate (gpointer d, gpointer user_data) + { + struct dup_data * data = (struct dup_data *) user_data; + NMDevice *device; + const guchar * hash; + guint32 hash_len = 0; ++ GtkWidget *widget = GTK_WIDGET (d); + ++ g_assert (d && widget); + g_return_if_fail (data); + g_return_if_fail (data->hash); + +@@ -464,7 +466,6 @@ add_new_ap_item (NMDeviceWifi *device, + NMAccessPoint *active_ap, + NMConnection *active, + GSList *connections, +- GtkWidget *menu, + NMApplet *applet) + { + WirelessMenuItemInfo *info; +@@ -473,29 +474,26 @@ add_new_ap_item (NMDeviceWifi *device, + NMNetworkMenuItem *item = NULL; + GSList *ap_connections = NULL; + const GByteArray *ssid; +- guint8 strength; + guint32 dev_caps; ++ gboolean is_favorite = FALSE; + + ap_connections = filter_connections_for_access_point (connections, device, ap); + + foo = nm_network_menu_item_new (applet->encryption_size_group, + dup_data->hash, AP_HASH_LEN); + item = NM_NETWORK_MENU_ITEM (foo); ++ gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + ssid = nm_access_point_get_ssid (ap); + nm_network_menu_item_set_ssid (item, (GByteArray *) ssid); + +- strength = nm_access_point_get_strength (ap); +- nm_network_menu_item_set_strength (item, strength); +- + dev_caps = nm_device_wifi_get_capabilities (device); ++ nm_network_menu_item_set_strength (item, ap, applet); + nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps); + nm_network_menu_item_add_dupe (item, ap); + + g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); + +- gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); +- + /* If there's only one connection, don't show the submenu */ + if (g_slist_length (ap_connections) > 1) { + GtkWidget *submenu; +@@ -524,6 +522,7 @@ add_new_ap_item (NMDeviceWifi *device, + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), GTK_WIDGET (subitem)); + } + ++ is_favorite = TRUE; + gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); + } else { + NMConnection *connection; +@@ -536,6 +535,7 @@ add_new_ap_item (NMDeviceWifi *device, + if (g_slist_length (ap_connections) == 1) { + connection = NM_CONNECTION (g_slist_nth_data (ap_connections, 0)); + info->connection = g_object_ref (G_OBJECT (connection)); ++ is_favorite = TRUE; + } + + g_signal_connect_data (GTK_WIDGET (item), +@@ -546,19 +546,20 @@ add_new_ap_item (NMDeviceWifi *device, + 0); + } + +- gtk_widget_show_all (GTK_WIDGET (item)); ++ applet_menu_item_favorize_helper (GTK_BIN (item), applet->favorites_icon, is_favorite); + + g_slist_free (ap_connections); + return item; + } + +-static void ++ ++static GList* + add_one_ap_menu_item (NMDeviceWifi *device, + NMAccessPoint *ap, + GSList *connections, + NMAccessPoint *active_ap, + NMConnection *active, +- GtkWidget *menu, ++ GList *menu_list, + NMApplet *applet) + { + const GByteArray *ssid; +@@ -568,16 +569,16 @@ add_one_ap_menu_item (NMDeviceWifi *device, + /* Don't add BSSs that hide their SSID */ + ssid = nm_access_point_get_ssid (ap); + if (!ssid || nm_utils_is_empty_ssid (ssid->data, ssid->len)) +- return; ++ return menu_list; + + dup_data.found = NULL; + dup_data.hash = g_object_get_data (G_OBJECT (ap), "hash"); + if (!dup_data.hash) +- return; ++ return menu_list; + dup_data.device = NM_DEVICE (device); +- gtk_container_foreach (GTK_CONTAINER (menu), +- find_duplicate, +- &dup_data); ++ g_list_foreach (menu_list, ++ find_duplicate, ++ &dup_data); + + if (dup_data.found) { + gint8 strength = nm_access_point_get_strength (ap); +@@ -585,25 +586,22 @@ add_one_ap_menu_item (NMDeviceWifi *device, + item = NM_NETWORK_MENU_ITEM (dup_data.found); + + /* Just update strength if greater than what's there */ +- if (nm_network_menu_item_get_strength (item) < strength) +- nm_network_menu_item_set_strength (item, strength); ++ if (nm_network_menu_item_get_strength (item) < strength) { ++ nm_network_menu_item_set_strength (item, ap, applet); ++ } + + nm_network_menu_item_add_dupe (item, ap); + } else { +- item = add_new_ap_item (device, ap, &dup_data, active_ap, active, connections, menu, applet); ++ item = add_new_ap_item (device, ap, &dup_data, active_ap, active, connections, applet); ++ menu_list = g_list_append (menu_list, item); + } + +- if (!active_ap) +- return; +- +- g_signal_handlers_block_matched (item, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, +- G_CALLBACK (wireless_menu_item_activate), NULL); +- +- if (nm_network_menu_item_find_dupe (item, active_ap)) +- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); ++ if (!active_ap || active_ap == ap) ++ nm_network_menu_item_set_active (item, TRUE); ++ else ++ nm_network_menu_item_set_active (item, FALSE); + +- g_signal_handlers_unblock_matched (item, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, +- G_CALLBACK (wireless_menu_item_activate), NULL); ++ return menu_list; + } + + static gint +@@ -658,6 +656,54 @@ sort_wireless_networks (gconstpointer tmpa, + return 0; + } + ++static gint ++sort_ap_menu_item_by_name0 (gconstpointer a, gconstpointer b) ++{ ++ if (a == b) ++ return 0; ++ if (!a && b) ++ return -1; ++ if (a && !b) ++ return 1; ++ ++ if (!NM_IS_NETWORK_MENU_ITEM (a) || !NM_IS_NETWORK_MENU_ITEM (b)) { ++ return GPOINTER_TO_UINT (a) < GPOINTER_TO_UINT (b) ? -1 : 1; ++ } ++ ++ return g_ascii_strcasecmp (NM_NETWORK_MENU_ITEM (a)->sort_label, NM_NETWORK_MENU_ITEM (b)->sort_label); ++} ++ ++static gint ++sort_ap_menu_item_by_fav_strength_name0 (gconstpointer a, gconstpointer b) ++{ ++ gpointer favorite_a, favorite_b; ++ ++ if (a == b) ++ return 0; ++ if (!a && b) ++ return -1; ++ if (a && !b) ++ return 1; ++ ++ if (!NM_IS_NETWORK_MENU_ITEM (a) || !NM_IS_NETWORK_MENU_ITEM (b)) { ++ return GPOINTER_TO_UINT (a) < GPOINTER_TO_UINT (b) ? -1 : 1; ++ } ++ favorite_a = g_object_get_data (G_OBJECT (a), "favorite"); ++ favorite_b = g_object_get_data (G_OBJECT (b), "favorite"); ++ ++ if (GPOINTER_TO_UINT (favorite_a) < GPOINTER_TO_UINT (favorite_b)) ++ return 1; ++ if (GPOINTER_TO_UINT (favorite_a) > GPOINTER_TO_UINT (favorite_b)) ++ return -1; ++ ++ if (NM_NETWORK_MENU_ITEM (a)->sort_strength < NM_NETWORK_MENU_ITEM (b)->sort_strength) ++ return 1; ++ if (NM_NETWORK_MENU_ITEM (a)->sort_strength > NM_NETWORK_MENU_ITEM (b)->sort_strength) ++ return -1; ++ ++ return g_ascii_strcasecmp (NM_NETWORK_MENU_ITEM (a)->sort_label, NM_NETWORK_MENU_ITEM (b)->sort_label); ++} ++ + static void + wireless_add_menu_item (NMDevice *device, + guint32 n_devices, +@@ -672,9 +718,10 @@ wireless_add_menu_item (NMDevice *device, + int i; + NMAccessPoint *active_ap = NULL; + GSList *connections = NULL, *all, *sorted_aps = NULL, *iter; +- GtkWidget *label; +- char *bold_text; + gboolean wireless_enabled = TRUE; ++ GList *menu_list = NULL; ++ GtkWidget *folded_menu_item; ++ GtkWidget *submenu; + + wdev = NM_DEVICE_WIFI (device); + aps = nm_device_wifi_get_access_points (wdev); +@@ -698,19 +745,22 @@ wireless_add_menu_item (NMDevice *device, + } else + text = g_strdup (ngettext ("Wireless Network", "Wireless Networks", aps ? aps->len : 0)); + +- item = gtk_menu_item_new_with_mnemonic (text); ++ item = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + +- label = gtk_bin_get_child (GTK_BIN (item)); +- bold_text = g_markup_printf_escaped ("%s", +- gtk_label_get_text (GTK_LABEL (label))); +- gtk_label_set_markup (GTK_LABEL (label), bold_text); +- g_free (bold_text); +- + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + ++ active_ap = nm_device_wifi_get_active_access_point (wdev); ++ if (active_ap) { ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Active"), NULL, -1); ++ menu_list = add_one_ap_menu_item (wdev, active_ap, connections, active_ap, active, menu_list, applet); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_list->data); ++ g_list_free (menu_list); ++ menu_list = NULL; ++ } ++ + /* Notify user of unmanaged or unavailable device */ + wireless_enabled = nm_client_wireless_get_enabled (applet->nm_client); + item = nma_menu_device_get_menu_item (device, applet, wireless_enabled ? NULL : _("wireless is disabled")); +@@ -720,7 +770,7 @@ wireless_add_menu_item (NMDevice *device, + } + + if (!nma_menu_device_check_unusable (device)) { +- active_ap = nm_device_wifi_get_active_access_point (wdev); ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), NULL, -1); + + /* Add all networks in our network list to the menu */ + for (i = 0; aps && (i < aps->len); i++) +@@ -728,15 +778,28 @@ wireless_add_menu_item (NMDevice *device, + + sorted_aps = g_slist_sort (sorted_aps, sort_wireless_networks); + for (iter = sorted_aps; iter; iter = g_slist_next (iter)) { +- add_one_ap_menu_item (wdev, +- NM_ACCESS_POINT (iter->data), +- connections, +- active_ap, +- active, +- menu, +- applet); ++ if (active_ap != NM_ACCESS_POINT (iter->data)) { ++ menu_list = add_one_ap_menu_item (wdev, ++ NM_ACCESS_POINT (iter->data), ++ connections, ++ active_ap, ++ active, ++ menu_list, ++ applet); ++ } + } + ++ folded_menu_item = gtk_menu_item_new_with_mnemonic (_("More networks...")); ++ submenu = gtk_menu_new (); ++ gtk_menu_item_set_submenu (GTK_MENU_ITEM (folded_menu_item), submenu); ++ applet_menu_item_favorize_helper (GTK_BIN (folded_menu_item), applet->favorites_icon, FALSE); ++ applet_menu_add_items_top_and_fold_sorted_helper (GTK_MENU (menu), ++ menu_list, ++ 5, ++ GTK_WIDGET (folded_menu_item), ++ sort_ap_menu_item_by_fav_strength_name0, ++ sort_ap_menu_item_by_name0); ++ g_list_free (menu_list); + g_slist_free (sorted_aps); + } + +diff --git a/src/applet-device-wired.c b/src/applet-device-wired.c +index e12f99f..545e3ce 100644 +--- a/src/applet-device-wired.c ++++ b/src/applet-device-wired.c +@@ -106,11 +106,18 @@ wired_menu_item_activate (GtkMenuItem *item, gpointer user_data) + user_data); + } + ++ ++typedef enum { ++ ADD_ACTIVE = 1, ++ ADD_INACTIVE = 2, ++} AddActiveInactiveEnum; ++ + static void + add_connection_items (NMDevice *device, + GSList *connections, + gboolean carrier, + NMConnection *active, ++ AddActiveInactiveEnum flag, + GtkWidget *menu, + NMApplet *applet) + { +@@ -122,13 +129,18 @@ add_connection_items (NMDevice *device, + NMSettingConnection *s_con; + GtkWidget *item; + ++ if (active == connection) { ++ if ((flag & ADD_ACTIVE) == 0) ++ continue; ++ } else { ++ if ((flag & ADD_INACTIVE) == 0) ++ continue; ++ } ++ + s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); +- item = gtk_check_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); ++ item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con)); ++ gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (item), carrier); +- gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); +- +- if (connection == active) +- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); + + info = g_slice_new0 (WiredMenuItemInfo); + info->applet = applet; +@@ -140,6 +152,8 @@ add_connection_items (NMDevice *device, + info, + (GClosureNotify) wired_menu_item_info_destroy, 0); + ++ applet_menu_item_favorize_helper (GTK_BIN (item), applet->favorites_icon, TRUE); ++ + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + } +@@ -180,8 +194,6 @@ wired_add_menu_item (NMDevice *device, + GtkWidget *item; + GSList *connections, *all; + gboolean carrier = TRUE; +- GtkWidget *label; +- char *bold_text; + + all = applet_get_all_connections (applet); + connections = utils_filter_connections_for_device (device, all); +@@ -206,7 +218,7 @@ wired_add_menu_item (NMDevice *device, + text = g_strdup (_("Wired Network")); + } + +- item = gtk_menu_item_new_with_label (text); ++ item = applet_menu_item_create_device_item_helper (device, applet, text); + g_free (text); + + /* Only dim the item if the device supports carrier detection AND +@@ -215,16 +227,16 @@ wired_add_menu_item (NMDevice *device, + if (nm_device_get_capabilities (device) & NM_DEVICE_CAP_CARRIER_DETECT) + carrier = nm_device_ethernet_get_carrier (NM_DEVICE_ETHERNET (device)); + +- label = gtk_bin_get_child (GTK_BIN (item)); +- bold_text = g_markup_printf_escaped ("%s", +- gtk_label_get_text (GTK_LABEL (label))); +- gtk_label_set_markup (GTK_LABEL (label), bold_text); +- g_free (bold_text); +- + gtk_widget_set_sensitive (item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + ++ if (active) ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Active"), NULL, -1); ++ ++ if (g_slist_length (connections)) ++ add_connection_items (device, connections, carrier, active, ADD_ACTIVE, menu, applet); ++ + /* Notify user of unmanaged or unavailable device */ + item = nma_menu_device_get_menu_item (device, applet, carrier ? NULL : _("disconnected")); + if (item) { +@@ -233,8 +245,11 @@ wired_add_menu_item (NMDevice *device, + } + + if (!nma_menu_device_check_unusable (device)) { ++ if ((!active && g_slist_length (connections)) || (active && g_slist_length (connections) > 1)) ++ applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), NULL, -1); ++ + if (g_slist_length (connections)) +- add_connection_items (device, connections, carrier, active, menu, applet); ++ add_connection_items (device, connections, carrier, active, ADD_INACTIVE, menu, applet); + else + add_default_connection_item (device, carrier, menu, applet); + } +diff --git a/src/applet.c b/src/applet.c +index 13bee6a..d3646fa 100644 +--- a/src/applet.c ++++ b/src/applet.c +@@ -417,6 +417,299 @@ applet_menu_item_activate_helper (NMDevice *device, + } + } + ++void ++applet_menu_item_add_complex_separator_helper (GtkWidget *menu, ++ NMApplet *applet, ++ const gchar* label, ++ GdkPixbuf *favicon, ++ int pos) ++{ ++ GtkWidget *menu_item = gtk_image_menu_item_new (); ++ GtkWidget *box = gtk_hbox_new (FALSE, 0); ++ GtkWidget *xlabel = NULL; ++ GtkWidget *favimg = NULL; ++ if (favicon) ++ favimg = gtk_image_new_from_pixbuf (favicon); ++ if (label) { ++ xlabel = gtk_label_new ("Favorites"); ++ gtk_label_set_markup (GTK_LABEL (xlabel), label); ++ } ++ if (favimg || xlabel) ++ gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 5); ++ if (xlabel) ++ gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2); ++ if (favimg) ++ gtk_box_pack_start (GTK_BOX (box), favimg, FALSE, FALSE, 2); ++ ++ gtk_box_pack_start (GTK_BOX (box), gtk_hseparator_new (), TRUE, TRUE, 5); ++ ++ g_object_set (G_OBJECT (menu_item), ++ "child", box, ++ "sensitive", FALSE, ++ NULL); ++ if (pos < 0) ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); ++ else ++ gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, pos); ++ return; ++} ++ ++void ++applet_menu_item_favorize_helper (GtkBin *binitem, ++ GdkPixbuf *favoritePixbuf, ++ gboolean is_favorite) ++{ ++ GtkWidget *child; ++ GtkWidget *box; ++ gpointer already_favorized_ptr; ++ ++ g_assert (binitem); ++ g_assert (favoritePixbuf); ++ ++ child = gtk_bin_get_child (binitem); ++ box = gtk_hbox_new (FALSE, 0); ++ already_favorized_ptr = g_object_get_data (G_OBJECT (binitem), "favorite"); ++ ++ if (already_favorized_ptr) ++ goto abort; ++ ++ if (!is_favorite) { ++ int image_width, image_height; ++ GtkWidget *placeholder = gtk_alignment_new (0,0,0,0); ++ g_object_ref (child); ++ image_width = gdk_pixbuf_get_width (favoritePixbuf); ++ image_height = gdk_pixbuf_get_height (favoritePixbuf); ++ gtk_container_remove (GTK_CONTAINER (binitem), child); ++ gtk_container_add (GTK_CONTAINER (binitem), box); ++ gtk_widget_set_size_request (placeholder, image_width, image_height); ++ gtk_box_pack_start (GTK_BOX (box), placeholder, FALSE, FALSE, 0); ++ gtk_box_pack_start (GTK_BOX (box), child, TRUE, TRUE, 4); ++ g_object_unref (child); ++ g_object_set_data (G_OBJECT (binitem), "favorite", GINT_TO_POINTER (1)); ++ } else { ++ GtkWidget *image = gtk_image_new_from_pixbuf (favoritePixbuf); ++ g_assert (image); ++ g_object_ref (child); ++ gtk_container_remove (GTK_CONTAINER (binitem), child); ++ gtk_container_add (GTK_CONTAINER (binitem), box); ++ gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0); ++ gtk_box_pack_start (GTK_BOX (box), child, TRUE, TRUE, 4); ++ g_object_unref (child); ++ g_object_set_data (G_OBJECT (binitem), "favorite", GINT_TO_POINTER (2)); ++ } ++ ++ return; ++abort: ++ g_object_ref_sink (box); ++ g_object_unref (box); ++} ++ ++void ++applet_menu_add_items_top_and_fold_sorted_helper (GtkMenu *menu, ++ GList *items, ++ guint top_count, ++ GtkWidget *submenu_item, ++ GCompareFunc prio_cmp_func, ++ GCompareFunc generic_cmp_func) ++{ ++ GList *iter = items; ++ GList *clone_top = NULL; ++ GList *clone_top_filtered = NULL; ++ GList *clone_folded = NULL; ++ GtkWidget *submenu; ++ int i; ++ ++ g_assert (menu); ++ g_assert (items); ++ g_assert (top_count > 0); ++ g_assert (submenu_item); ++ g_assert (prio_cmp_func); ++ g_assert (generic_cmp_func); ++ ++ submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (submenu_item)); ++ g_assert (submenu_item); ++ ++ while (iter) { ++ clone_top = g_list_append (clone_top, iter->data); ++ clone_folded = g_list_append (clone_folded, iter->data); ++ iter = iter->next; ++ } ++ ++ clone_top = g_list_sort (clone_top, prio_cmp_func); ++ clone_folded = g_list_sort (clone_folded, generic_cmp_func); ++ ++ iter = clone_top; ++ for (i = 0; !!iter && i < top_count; i++, iter = iter->next) { ++ clone_folded = g_list_remove (clone_folded, iter->data); ++ clone_top_filtered = g_list_append (clone_top_filtered, iter->data); ++ } ++ ++ ++ clone_top_filtered = g_list_sort (clone_top_filtered, generic_cmp_func); ++ iter = clone_top_filtered; ++ while (iter) { ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), iter->data); ++ iter = iter->next; ++ } ++ ++ iter = clone_folded; ++ if (iter) ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), submenu_item); ++ while (iter) { ++ gtk_menu_shell_append (GTK_MENU_SHELL (submenu), iter->data); ++ iter = iter->next; ++ } ++ ++ g_list_free(clone_top); ++ g_list_free(clone_top_filtered); ++ g_list_free(clone_folded); ++} ++ ++static gboolean ++menu_title_item_expose (GtkWidget *widget, ++ GdkEventExpose *event) ++{ ++ #define TITLE_TEXT_R ((double) 0x5e / 255.0 ) ++ #define TITLE_TEXT_G ((double) 0x5e / 255.0 ) ++ #define TITLE_TEXT_B ((double) 0x5e / 255.0 ) ++/* #define TITLE_TEXT_R ((double) style->text[GTK_STATE_NORMAL].red / 65535.0) ++ #define TITLE_TEXT_G ((double) style->text[GTK_STATE_NORMAL].green / 65535.0) ++ #define TITLE_TEXT_B ((double) style->text[GTK_STATE_NORMAL].blue / 65535.0) */ ++ ++ GtkStyle *style = gtk_widget_get_style (widget); ++ GtkWidget *label = gtk_bin_get_child (GTK_BIN (widget)); ++ PangoFontDescription *desc = pango_font_description_copy (style->font_desc); ++ cairo_t *cr = gdk_cairo_create (widget->window); ++ GtkImageMenuItem *image_menu_item = GTK_IS_IMAGE_MENU_ITEM (widget) ? GTK_IMAGE_MENU_ITEM (widget) : NULL; ++ GtkImage *icon = image_menu_item ? GTK_IMAGE (gtk_image_menu_item_get_image (image_menu_item)) : NULL; ++ GdkPixbuf *pixbuf = icon ? gtk_image_get_pixbuf (icon) : NULL; ++ PangoLayout *layout_first = pango_cairo_create_layout (cr); ++ PangoLayout *layout_second = pango_cairo_create_layout (cr); ++ int width = 0, height = 0; ++ int extrawidth = 0; ++ gdouble extraheight = 0; ++ int owidth, oheight; ++ char *first, *second; ++ char *secondtext = NULL; ++ gdouble xpadding = 5.0; ++ gdouble ypadding = 5.0; ++ gdouble postpadding = 0.0; ++ ++ first = g_strdup (gtk_label_get_text (GTK_LABEL (label))); ++ second = strchr (first, ':'); ++ if (second) { ++ *second = 0; ++ second++; ++ second++; ++ secondtext = g_strdup_printf ("%s", second); ++ } ++ ++ /* lets put together both layout lines */ ++ pango_font_description_set_variant (desc, PANGO_VARIANT_SMALL_CAPS); ++ pango_font_description_set_weight (desc, PANGO_WEIGHT_SEMIBOLD); ++ pango_layout_set_font_description (layout_first, desc); ++ pango_layout_set_text (layout_first, first, -1); ++ pango_cairo_update_layout (cr, layout_first); ++ pango_layout_get_size (layout_first, &owidth, &oheight); ++ width = owidth / PANGO_SCALE; ++ height += oheight / PANGO_SCALE; ++ ++ if (second) { ++ pango_font_description_set_weight (desc, PANGO_WEIGHT_NORMAL); ++ pango_layout_set_font_description (layout_second, desc); ++ pango_layout_set_text (layout_second, secondtext, -1); ++ pango_cairo_update_layout (cr, layout_second); ++ pango_layout_get_size (layout_second, &owidth, &oheight); ++ width = width < owidth / PANGO_SCALE ? owidth / PANGO_SCALE : width; ++ height += oheight / PANGO_SCALE; ++ } ++ ++ if (pixbuf) { ++ gdouble w = gdk_pixbuf_get_width (pixbuf); ++ gdouble h = gdk_pixbuf_get_height (pixbuf); ++ if (width < w) ++ width = w; ++ if (height < h) { ++ extraheight = (h - height) / 2.0; ++ height = h; ++ } ++ extrawidth = gdk_pixbuf_get_width (pixbuf) + 5.0 + 5.0; ++ } ++ width += extrawidth; ++ ++ cairo_save (cr); ++ cairo_translate (cr, ((double) event->area.x) , ((double) event->area.y)); ++ ++ cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); ++ cairo_rectangle (cr, 0, 0, ((double) event->area.width), ((double) event->area.height - postpadding)); ++ cairo_fill (cr); ++ ++/* no border atm ++ cairo_set_source_rgba (cr, 0.1, 0.1, 0.1, 0.6); ++ cairo_rectangle (cr, 0, 0, ((double) event->area.width), 0.5); ++ cairo_fill (cr); ++ cairo_set_source_rgba (cr, 0.6, 0.6, 0.6, 0.4); ++ cairo_rectangle (cr, 0, ((double) event->area.height - postpadding - 0.5), ((double) event->area.width), 0.5); ++ cairo_fill (cr); ++*/ ++ ++ /* now the in-padding content */ ++ cairo_translate (cr, xpadding , ypadding); ++ if (pixbuf) { ++ gdouble x = 0.0; ++ gdouble y = height / 2.0 - gdk_pixbuf_get_height (pixbuf) / 2.0; ++ gdouble w = gdk_pixbuf_get_width (pixbuf); ++ gdouble h = gdk_pixbuf_get_height (pixbuf); ++ gdk_cairo_set_source_pixbuf (cr, pixbuf, x, y); ++ cairo_rectangle (cr, x, y, w, h); ++ cairo_fill (cr); ++ } ++ ++ cairo_set_source_rgb (cr, TITLE_TEXT_R, TITLE_TEXT_G, TITLE_TEXT_B); ++ cairo_move_to (cr, extrawidth, extraheight); ++ pango_cairo_show_layout (cr, layout_first); ++ ++ if (second) { ++ cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); ++ cairo_move_to (cr, extrawidth, extraheight + oheight / PANGO_SCALE); ++ pango_cairo_show_layout (cr, layout_second); ++ } ++ ++ cairo_restore(cr); ++ pango_font_description_free (desc); ++ ++ g_free (first); ++ g_object_unref (layout_first); ++ g_object_unref (layout_second); ++ cairo_destroy (cr); ++ ++ gtk_widget_set_size_request (widget, width + 2 * xpadding, height + ypadding + postpadding); ++ ++ return TRUE; ++ ++ #undef TITLE_TEXT_R ++ #undef TITLE_TEXT_G ++ #undef TITLE_TEXT_B ++} ++ ++ ++GtkWidget* ++applet_menu_item_create_device_item_helper (NMDevice *device, ++ NMApplet *applet, ++ const gchar *text) ++{ ++ GtkWidget *item = gtk_image_menu_item_new_with_mnemonic (text); ++ NMADeviceClass *klass = get_device_class (device, applet); ++ GdkPixbuf *pixbuf = klass->get_device_icon ? klass->get_device_icon (device, applet) : NULL; ++ GtkWidget *image = pixbuf ? gtk_image_new_from_pixbuf (pixbuf) : NULL; ++ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); ++ ++ gtk_widget_set_sensitive (item, FALSE); ++ ++ g_signal_connect (item, "expose-event", G_CALLBACK (menu_title_item_expose), NULL); ++ return item; ++} ++ + static void + applet_clear_notify (NMApplet *applet) + { +@@ -1156,12 +1449,13 @@ nma_menu_device_get_menu_item (NMDevice *device, + struct AppletDeviceMenuInfo *info = g_new0 (struct AppletDeviceMenuInfo, 1); + info->device = g_object_ref (device); + info->applet = applet; +- item = gtk_menu_item_new_with_label (_(" Disconnect")); ++ item = gtk_menu_item_new_with_label (_("Disconnect")); + g_signal_connect_data (item, "activate", + G_CALLBACK (applet_device_disconnect_db), + info, + (GClosureNotify) applet_device_info_destroy, 0); + gtk_widget_set_sensitive (item, TRUE); ++ applet_menu_item_favorize_helper (GTK_BIN (item), applet->favorites_icon, FALSE); + break; + } + default: +@@ -1317,11 +1611,12 @@ nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) + NMConnection *connection = NM_CONNECTION (iter->data); + NMActiveConnection *active; + const char *name; ++ GtkWidget *image; + + name = get_connection_id (connection); + +- item = GTK_MENU_ITEM (gtk_check_menu_item_new_with_label (name)); +- gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); ++ item = GTK_MENU_ITEM (gtk_image_menu_item_new_with_label (name)); ++ gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE); + + /* If no VPN connections are active, draw all menu items enabled. If + * >= 1 VPN connections are active, only the active VPN menu item is +@@ -1336,8 +1631,10 @@ nma_menu_add_vpn_submenu (GtkWidget *menu, NMApplet *applet) + else + gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); + +- if (active) +- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); ++ if (active) { ++ image = gtk_image_new_from_stock (GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU); ++ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); ++ } + + g_object_set_data_full (G_OBJECT (item), "connection", + g_object_ref (connection), +@@ -2368,6 +2665,8 @@ static void nma_icons_free (NMApplet *applet) + CLEAR_ICON(applet->wireless_50_icon); + CLEAR_ICON(applet->wireless_75_icon); + CLEAR_ICON(applet->wireless_100_icon); ++ CLEAR_ICON(applet->secure_lock_icon); ++ CLEAR_ICON(applet->favorites_icon); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) +@@ -2416,6 +2715,7 @@ nma_icons_load (NMApplet *applet) + ICON_LOAD(applet->wireless_50_icon, "nm-signal-50"); + ICON_LOAD(applet->wireless_75_icon, "nm-signal-75"); + ICON_LOAD(applet->wireless_100_icon, "nm-signal-100"); ++ ICON_LOAD(applet->secure_lock_icon, "nm-secure-lock"); + + for (i = 0; i < NUM_CONNECTING_STAGES; i++) { + for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { +@@ -2435,6 +2737,8 @@ nma_icons_load (NMApplet *applet) + g_free (name); + } + ++ ICON_LOAD(applet->favorites_icon, "emblem-favorite"); ++ + applet->icons_loaded = TRUE; + + out: +diff --git a/src/applet.h b/src/applet.h +index d38e59a..9a08133 100644 +--- a/src/applet.h ++++ b/src/applet.h +@@ -103,6 +103,7 @@ typedef struct + gboolean icons_loaded; + + GtkIconTheme * icon_theme; ++ GdkPixbuf * active_device_icon; + GdkPixbuf * no_connection_icon; + GdkPixbuf * wired_icon; + GdkPixbuf * adhoc_icon; +@@ -112,6 +113,7 @@ typedef struct + GdkPixbuf * wireless_50_icon; + GdkPixbuf * wireless_75_icon; + GdkPixbuf * wireless_100_icon; ++ GdkPixbuf * secure_lock_icon; + #define NUM_CONNECTING_STAGES 3 + #define NUM_CONNECTING_FRAMES 11 + GdkPixbuf * network_connecting_icons[NUM_CONNECTING_STAGES][NUM_CONNECTING_FRAMES]; +@@ -119,6 +121,8 @@ typedef struct + GdkPixbuf * vpn_connecting_icons[NUM_VPN_CONNECTING_FRAMES]; + GdkPixbuf * vpn_lock_icon; + ++ GdkPixbuf * favorites_icon; ++ + /* Active status icon pixbufs */ + GdkPixbuf * icon_layers[ICON_LAYER_MAX + 1]; + +@@ -178,6 +182,9 @@ struct NMADeviceClass { + char **tip, + NMApplet *applet); + ++ GdkPixbuf * (*get_device_icon) (NMDevice *device, ++ NMApplet *applet); ++ + void (*get_more_info) (NMDevice *device, + NMConnection *connection, + NMApplet *applet, +@@ -219,6 +226,27 @@ void applet_menu_item_activate_helper (NMDevice *device, + void applet_menu_item_disconnect_helper (NMDevice *device, + NMApplet *applet); + ++void applet_menu_item_add_complex_separator_helper (GtkWidget *menu, ++ NMApplet *applet, ++ const gchar* label, ++ GdkPixbuf *favicon, ++ int pos); ++ ++void applet_menu_item_favorize_helper (GtkBin *binitem, ++ GdkPixbuf *favoritePixbuf, ++ gboolean is_favorite); ++ ++void applet_menu_add_items_top_and_fold_sorted_helper (GtkMenu *menu, ++ GList *items, ++ guint top_count, ++ GtkWidget *submenu_item, ++ GCompareFunc prio_cmp_func, ++ GCompareFunc generic_cmp_func); ++GtkWidget* ++applet_menu_item_create_device_item_helper (NMDevice *device, ++ NMApplet *applet, ++ const gchar *text); ++ + NMSettingsConnectionInterface *applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet); + + void applet_do_notify (NMApplet *applet, --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch @@ -0,0 +1,11 @@ +--- network-manager-applet-0.6.5/src/applet.c.orig 2007-10-02 20:53:36.000000000 +0200 ++++ network-manager-applet-0.6.5/src/applet.c 2007-10-02 20:54:46.000000000 +0200 +@@ -132,7 +132,7 @@ static void nma_init (NMApplet *applet) + applet->animation_step = 0; + glade_gnome_init (); + +- if (!nma_icons_init (applet)) ++ if ((!nma_icons_init (applet)) || (g_getenv("LTSP_CLIENT"))) + return; + + /* gtk_window_set_default_icon_from_file (ICONDIR"/NMApplet/wireless-applet.png", NULL); */ --- network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd.orig/debian/patches/lp268803_xdg_autostart_gnome_xfce_only.patch +++ network-manager-applet-0.8~a~git.20090923t220421.1ac8ffd/debian/patches/lp268803_xdg_autostart_gnome_xfce_only.patch @@ -0,0 +1,22 @@ +=== modified file 'nm-applet.desktop' +--- + nm-applet.desktop.in | 1 + + 1 file changed, 1 insertion(+) + +Index: ubuntu.0.7/nm-applet.desktop.in +=================================================================== +--- ubuntu.0.7.orig/nm-applet.desktop.in ++++ ubuntu.0.7/nm-applet.desktop.in +@@ -1,11 +1,12 @@ + [Desktop Entry] + _Name=Network Manager + _Comment=Control your network connections + Icon=nm-device-wireless + Exec=nm-applet --sm-disable + Terminal=false + Type=Application ++OnlyShowIn=GNOME;XFCE; + X-GNOME-Bugzilla-Bugzilla=GNOME + X-GNOME-Bugzilla-Product=NetworkManager + X-GNOME-Bugzilla-Component=general + X-GNOME-Autostart-enabled=true