Merge lp:~cairo-dock-team/ubuntu/precise/cairo-dock-plug-ins/3.0.0.0rc1 into lp:ubuntu/precise/cairo-dock-plug-ins

Proposed by Matthieu Baerts
Status: Merged
Merged at revision: 26
Proposed branch: lp:~cairo-dock-team/ubuntu/precise/cairo-dock-plug-ins/3.0.0.0rc1
Merge into: lp:ubuntu/precise/cairo-dock-plug-ins
Diff against target: 206862 lines (+66950/-58008)
126 files modified
CMakeLists.txt (+66/-49)
Clipper/src/applet-clipboard.c (+4/-3)
Dbus/interfaces/bash/CDBashApplet.sh (+2/-0)
Dbus/interfaces/mono/CDApplet.cs (+4/-0)
Dbus/interfaces/python/CDApplet.py.in (+5/-0)
Dbus/interfaces/python/CairoDock.py.in (+3/-0)
Dbus/interfaces/ruby/CDApplet.rb (+2/-0)
Dbus/interfaces/vala/CDApplet.vala (+4/-0)
Dbus/src/applet-dbus.c (+2/-2)
Dbus/src/interface-applet-methods.c (+1/-1)
Dbus/src/interface-main-methods.c (+3/-3)
Folders/src/applet-notifications.c (+7/-1)
GMenu/src/applet-init.c (+1/-0)
GMenu/src/applet-menu-callbacks.c (+5/-5)
GMenu/src/applet-menu.c (+8/-4)
GMenu/src/applet-menu.h (+1/-1)
GMenu/src/applet-recent.c (+2/-2)
GMenu/src/applet-run-dialog.c (+1/-1)
GMenu/src/applet-struct.h (+1/-0)
Global-Menu/src/applet-draw.c (+38/-13)
Indicator-applet/indicator-applet.c (+45/-13)
Messaging-Menu/data/Messaging-Menu.conf.in (+2/-2)
Network-Monitor/data/Network-Monitor.conf.in (+2/-2)
Recent-Events/data/Recent-Events.conf.in (+1/-1)
Recent-Events/src/applet-dialog.c (+29/-14)
Recent-Events/src/applet-dialog.h (+3/-0)
Recent-Events/src/applet-init.c (+11/-1)
Recent-Events/src/applet-notifications.c (+2/-1)
Recent-Events/src/applet-struct.h (+3/-0)
Remote-Control/src/applet-notifications.c (+14/-6)
Remote-Control/src/applet-struct.h (+1/-1)
Scooby-Do/src/applet-appli-finder.c (+7/-6)
Scooby-Do/src/applet-icon-finder.c (+1/-1)
Status-Notifier/data/Status-Notifier.conf.in (+2/-2)
Status-Notifier/src/CMakeLists.txt (+1/-0)
Status-Notifier/src/applet-draw.c (+23/-10)
Status-Notifier/src/applet-host-ias.c (+109/-21)
Status-Notifier/src/applet-host.c (+5/-3)
Status-Notifier/src/applet-item.c (+28/-9)
Status-Notifier/src/applet-item.h (+1/-1)
Status-Notifier/src/applet-notifications.c (+20/-9)
Status-Notifier/src/applet-struct.h (+2/-1)
System-Monitor/data/System-Monitor.conf.in (+2/-2)
Toons/data/Toons.conf.in (+2/-2)
Toons/src/applet-notifications.c (+1/-1)
alsaMixer/data/AlsaMixer.conf.in (+2/-2)
alsaMixer/src/CMakeLists.txt (+1/-0)
alsaMixer/src/applet-backend-sound-menu.c (+4/-0)
alsaMixer/src/applet-draw.c (+3/-2)
alsaMixer/src/applet-init.c (+5/-8)
alsaMixer/src/applet-notifications.c (+28/-14)
alsaMixer/src/dbus-shared-names-old.h (+37/-0)
alsaMixer/src/dbus-shared-names.h (+4/-4)
alsaMixer/src/metadata-widget.c (+42/-34)
alsaMixer/src/transport-widget.c (+7/-0)
alsaMixer/src/volume-widget.c (+1/-1)
clock/data/clock.conf.in (+5/-2)
clock/src/CMakeLists.txt (+0/-52)
clock/src/applet-config.c (+36/-26)
clock/src/applet-digital.c (+0/-239)
clock/src/applet-digital.h (+0/-38)
clock/src/applet-draw.c (+41/-38)
clock/src/applet-timer.c (+0/-1)
debian/changelog (+69/-0)
debian/control (+3/-3)
dnd2share/src/applet-notifications.c (+5/-4)
drop-indicator/src/applet-notifications.c (+1/-0)
dustbin/src/applet-init.c (+3/-3)
gnome-integration/src/applet-init.c (+22/-13)
gnome-integration/src/applet-utils.c (+1/-0)
gvfs-integration/cairo-dock-gio-vfs.c (+3/-3)
kde-integration/src/applet-vfs.c (+1/-1)
keyboard-indicator/data/keyboard-indicator.conf.in (+2/-2)
logout/src/applet-init.c (+2/-0)
logout/src/applet-logout.c (+29/-16)
logout/src/applet-struct.h (+1/-0)
mail/data/mail.conf.in (+2/-2)
mail/src/cd-mail-applet-config.c (+2/-2)
mail/src/cd-mail-applet-init.c (+2/-2)
musicPlayer/data/musicPlayer.conf.in (+2/-2)
musicPlayer/src/applet-draw.c (+1/-1)
musicPlayer/src/applet-musicplayer.c (+2/-2)
musicPlayer/src/applet-notifications.c (+2/-0)
musicPlayer/src/applet-rhythmbox.c (+1/-1)
netspeed/data/netspeed.conf.in (+2/-2)
po/ar.po (+2509/-2205)
po/cairo-dock.pot (+2477/-2166)
po/cs.po (+2537/-2210)
po/de.po (+2507/-2173)
po/el.po (+2502/-2165)
po/en_GB.po (+2572/-2231)
po/es.po (+2497/-2164)
po/et.po (+2541/-2225)
po/eu.po (+2508/-2203)
po/fr.po (+2502/-2166)
po/hu.po (+2555/-2229)
po/id.po (+2507/-2203)
po/it.po (+2502/-2167)
po/ja.po (+2772/-2266)
po/nl.po (+2496/-2159)
po/pl.po (+2515/-2213)
po/pt.po (+2536/-2210)
po/pt_BR.po (+2487/-2145)
po/ru.po (+2508/-2171)
po/sk.po (+2511/-2174)
po/sr.po (+2528/-2200)
po/sv.po (+2517/-2198)
po/tr.po (+2529/-2215)
po/uk.po (+2484/-2145)
po/zh_CN.po (+2543/-2212)
po/zh_TW.po (+2568/-2179)
powermanager/data/powermanager.conf.in (+2/-2)
powermanager/src/powermanager-menu-functions.c (+14/-1)
quick-browser/src/applet-menu.c (+1/-1)
shortcuts/src/applet-drives.c (+1/-1)
slider/data/slider.conf.in (+2/-2)
slider/src/applet-config.c (+0/-15)
slider/src/applet-init.c (+29/-81)
slider/src/applet-notifications.c (+27/-27)
slider/src/applet-slider.c (+279/-135)
slider/src/applet-slider.h (+6/-12)
stack/src/applet-config.c (+2/-2)
stack/src/applet-load-icons.c (+1/-1)
switcher/src/applet-draw.c (+21/-16)
weather/data/weather.conf.in (+2/-2)
wifi/data/wifi.conf.in (+2/-2)
To merge this branch: bzr merge lp:~cairo-dock-team/ubuntu/precise/cairo-dock-plug-ins/3.0.0.0rc1
Reviewer Review Type Date Requested Status
Jamie Strandboge Approve
Review via email: mp+98724@code.launchpad.net

Description of the change

Hello,

The Cairo-Dock team proposes a new "bugs fixed" version of their Cairo-Dock packages.

This is the Upstream (short) ChangeLog:
 * Upstream ChangeLog: (main changes)
   - Updated translations
   - MusicPlayer:
    + When choosing the player the first time, launch it and set the name
    + It seems the latest stable version of rhythmbox now re-uses this DBus
       address: org.mpris.MediaPlayer2.rhythmbox
   - Use the default bg color for always visible icons
   - GMenu: check if kde4-applications.menu and lxde-applications.menu
      are available
   - Dbus:
    + Bash interface: fixed a typo
    + Changed the third-party applets dir on the server for the 3.0
    + Enabling threads on the Python Interface
    + Modified the old SetEmblem method to use the new overlays
   - Enable GVFS if detected
   - Indicators: handle the case where the service crashes
   - Status-Notifier:
    + Indicator 0.4.90 (and newer) has a new variable (Title)
    + Display Label first if it's available instead of Title first
    + Fixed a bug with empty labels
    + KDE's watcher: if ItemIsMenu is true (e.g. Klipper) and if we only show
       the menu on left click, we emit a signal to the application to show
       its own menu
    + checked if the menu path is different that '/NO_DBUSMENU'
    + IAS: checked if an item is not already available in the systray
       (workaround) and fixed a few typos
    + Added a space between icons and fixed the wrong drawing of the icon
       on a vertical dock if the icon can be resized
    + Used cairo_dock_add_path_to_icon_theme
   - Sound control:
    + Fixed a small bug on reload (invisible icon)
    + Updated the Dbus names to match with Ubuntu 12.04
    + Backported the latest version of Ubuntu's indicator-sound into the
       Sound-Control applet
    + Make some items in the menu invisible if not available
    + Worked around a bug in libindicator, which keeps internally
       the service pointer
   - Logout:
    + Fixed a tiny memory leak
    + Look for a different icon's size if we want to display this icon in
       a menu/a dock/an emblem
   - PowerManager:
    + Removed an extraseparators in the menu
   - Clock:
    + Used the logical rectangle in order to fix the position of the text
    + Removed unused files
    + Removed useless translations (log.x and log.y = 0)
    + Only used this ratio to limit the deformation with the height
    + Fixed a problem with the ratio if this applet is displayed in
       a vertical dock
   - Remote Control: fixed a crash during the 'click' signal
   - Slider:
    + When reloading, display the changes immediately
    + Added the possibility to refresh the images list from the menu
    + Fixed the loading of the image on startup, when the applet's size is
       not yet stable
    + Code cleaning
   - Fixed an error when compiling without libindicator
   - A few minor changes (comments, factorisation, etc)
   - Recent-Events: if zeitgeist is not yet running on first search,
      try 3 times before giving up.

This bzr branch has been linked to this bug report: lp:~cairo-dock-team/ubuntu/precise/cairo-dock-plug-ins/3.0.0.0rc1
This branch should be ready to be pushed on lp:ubuntu/cairo-dock-plug-ins (except the UNRELEASED version in debian/changelog)

Thank you for your help! ;)

PS: 'cairo-dock' package has to be uploaded before this package! (if possible, 30min before) ( LP: #961578 )

To post a comment you must log in.
26. By Matthieu Baerts

* New upstream release. (LP: #961579)
* Upstream ChangeLog: (main changes)
 - Updated translations
 - MusicPlayer:
  + When choosing the player the first time, launch it and set the name
  + It seems the latest stable version of rhythmbox now re-uses this DBus
     address: org.mpris.MediaPlayer2.rhythmbox
 - Use the default bg color for always visible icons
 - GMenu: check if kde4-applications.menu and lxde-applications.menu
    are available
 - Dbus:
  + Bash interface: fixed a typo
  + Changed the third-party applets dir on the server for the 3.0
  + Enabling threads on the Python Interface
  + Modified the old SetEmblem method to use the new overlays
 - Enable GVFS if detected
 - Indicators: handle the case where the service crashes
 - Status-Notifier:
  + Indicator 0.4.90 (and newer) has a new variable (Title)
  + Display Label first if it's available instead of Title first
  + Fixed a bug with empty labels
  + KDE's watcher: if ItemIsMenu is true (e.g. Klipper) and if we only show
     the menu on left click, we emit a signal to the application to show
     its own menu
  + checked if the menu path is different that '/NO_DBUSMENU'
  + IAS: checked if an item is not already available in the systray
     (workaround) and fixed a few typos
  + Added a space between icons and fixed the wrong drawing of the icon
     on a vertical dock if the icon can be resized
  + Used cairo_dock_add_path_to_icon_theme
 - Sound control:
  + Fixed a small bug on reload (invisible icon)
  + Updated the Dbus names to match with Ubuntu 12.04
  + Backported the latest version of Ubuntu's indicator-sound into the
     Sound-Control applet
  + Make some items in the menu invisible if not available
  + Worked around a bug in libindicator, which keeps internally
     the service pointer
 - Logout:
  + Fixed a tiny memory leak
  + Look for a different icon's size if we want to display this icon in
     a menu/a dock/an emblem
 - PowerManager:
  + Removed an extraseparators in the menu
 - Clock:
  + Used the logical rectangle in order to fix the position of the text
  + Removed unused files
  + Removed useless translations (log.x and log.y = 0)
  + Only used this ratio to limit the deformation with the height
  + Fixed a problem with the ratio if this applet is displayed in
     a vertical dock
 - Remote Control: fixed a crash during the 'click' signal
 - Slider:
  + When reloading, display the changes immediately
  + Added the possibility to refresh the images list from the menu
  + Fixed the loading of the image on startup, when the applet's size is
     not yet stable
  + Code cleaning
 - Fixed an error when compiling without libindicator
 - A few minor changes (comments, factorisation, etc)
 - Recent-Events: if zeitgeist is not yet running on first search,
    try 3 times before giving up.
* debian/control:
 - Updated the version of cairo-dock-[core;data;dev].

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

Verified changes against the upstream tarball and successfully build locally. ACK. Thanks!

review: Approve
Revision history for this message
Matthieu Baerts (matttbe) wrote :

Thank you for your help :)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2012-02-16 01:45:57 +0000
3+++ CMakeLists.txt 2012-03-21 20:37:19 +0000
4@@ -11,7 +11,7 @@
5 ########### project ###############
6
7 project ("cairo-dock-plugins")
8-set (VERSION "3.0.0.0beta1")
9+set (VERSION "3.0.0.0rc1")
10
11 add_definitions (-std=c99 -Wextra -Wwrite-strings -Wuninitialized -Werror-implicit-function-declaration -Wstrict-prototypes) # removed for stable versions: -Wstrict-prototypes #-Wunreachable-code -Wno-unused-parameter -Wall
12 if (NOT ${CMAKE_BUILD_TYPE})
13@@ -178,7 +178,7 @@
14 endif()
15 pkg_check_modules (IDO ${IDO_MODULE})
16
17-if ("${INDICATOR_APPLET_FOUND}" STREQUAL "1" AND "${DBUSMENU_FOUND}" STREQUAL "1" AND "${DBUSMENU_GTK_FOUND}" STREQUAL "1")
18+if ("${DBUSMENU_FOUND}" STREQUAL "1" AND "${DBUSMENU_GTK_FOUND}" STREQUAL "1")
19 STRING (REGEX REPLACE "\\..*" "" DBUSMENU_MAJOR "${DBUSMENU_VERSION}")
20 STRING (REGEX REPLACE "[0-9]*\\.([^ ]+)" "\\1" DBUSMENU_MINOR "${DBUSMENU_VERSION}") # 0.1.7 => 1.7
21 STRING (REGEX REPLACE "\\.[0-9]*" "" DBUSMENU_MINOR "${DBUSMENU_MINOR}")
22@@ -190,15 +190,28 @@
23 STRING (REGEX REPLACE "\\.[0-9]*" "" DBUSMENU_GTK_MINOR "${DBUSMENU_GTK_MINOR}")
24 STRING (REGEX REPLACE ".*\\." "" DBUSMENU_GTK_NANO "${DBUSMENU_GTK_VERSION}")
25 STRING (REGEX REPLACE "-.*" "" DBUSMENU_GTK_NANO "${DBUSMENU_GTK_NANO}")
26+
27+ if (${DBUSMENU_GTK_MAJOR} GREATER 0 OR ${DBUSMENU_GTK_MINOR} GREATER 5
28+ OR (${DBUSMENU_GTK_MINOR} EQUAL 5 AND ${DBUSMENU_GTK_NANO} GREATER 89))
29+ set (DBUSMENU_GTK3_NEW 1)
30+ set (INDICATOR_APPLICATIONADDED_HAS_TITLE 1) # Status-Notifier: new parameter "Title" in the "added" signal since Precise
31+ else()
32+ set (INDICATOR_APPLICATIONADDED_HAS_TITLE 0)
33+ endif()
34+endif()
35
36+if ("${INDICATOR_APPLET_FOUND}" STREQUAL "1")
37 STRING (REGEX REPLACE "\\..*" "" INDICATOR_MAJOR "${INDICATOR_APPLET_VERSION}")
38 STRING (REGEX REPLACE "[0-9]*\\.([^ ]+)" "\\1" INDICATOR_MINOR "${INDICATOR_APPLET_VERSION}") # 0.1.7 => 1.7
39 STRING (REGEX REPLACE "\\.[0-9]*" "" INDICATOR_MINOR "${INDICATOR_MINOR}")
40 STRING (REGEX REPLACE ".*\\." "" INDICATOR_NANO "${INDICATOR_APPLET_VERSION}")
41 STRING (REGEX REPLACE "-.*" "" INDICATOR_NANO "${INDICATOR_NANO}")
42-
43- if (${DBUSMENU_GTK_MAJOR} GREATER 0 OR ${DBUSMENU_GTK_MINOR} GREATER 5 OR (${DBUSMENU_GTK_MINOR} EQUAL 5 AND ${DBUSMENU_GTK_NANO} GREATER 89))
44- set (DBUSMENU_GTK3_NEW 1)
45+
46+ if (${INDICATOR_MAJOR} GREATER 0 OR ${INDICATOR_MINOR} GREATER 4
47+ OR (${INDICATOR_MINOR} EQUAL 4 AND ${INDICATOR_NANO} GREATER 89))
48+ set (SOUND_SERVICE_VERSION 1) # Sound-Menu: new DBus path
49+ else() # older than Precise.
50+ set (SOUND_SERVICE_VERSION 0)
51 endif()
52
53 if ("${INDICATOR_NEW_VERSION}" STREQUAL "1") # oneiric and newer
54@@ -225,7 +238,9 @@
55 STRING (REGEX REPLACE "\n" "" INDICATORICONSDIR ${INDICATORICONSDIR}) # la commande rajoute un retour chariot ...
56 add_subdirectory (Indicator-applet)
57 set (with_indicator "yes")
58-else()
59+endif()
60+
61+if (NOT "${DBUSMENU_FOUND}" STREQUAL "1" OR NOT "${DBUSMENU_GTK_FOUND}" STREQUAL "1" OR NOT "${INDICATOR_APPLET_FOUND}" STREQUAL "1")
62 message (WARNING "These modules are required to compile Indicators applet (MeMenu, Messaging-Menu, Sound-Control, Status-Notifier and Global-Menu): ${INDICATOR_APPLET_MODULE}(-0.4), ${IDO_MODULE}, ${DBUSMENU_MODULE}(-0.4), ${DBUSMENU_GTK_MODULE}(-0.4)")
63 set (MODULES_MISSING "${MODULES_MISSING} ${INDICATOR_APPLET_MODULE}(-0.4) (${IDO_MODULE}) ${DBUSMENU_MODULE}(-0.4) ${DBUSMENU_GTK_MODULE}(-0.4)")
64 endif()
65@@ -248,6 +263,51 @@
66 message (STATUS " Indicators: use old Ayatana Dbus names")
67 endif()
68
69+############# DISTRIBUTION #################
70+message (STATUS "> Distribution:")
71+# We try to detect if the user is on Ubuntu to know which bus we have to use...
72+execute_process(
73+ COMMAND lsb_release -i
74+ OUTPUT_VARIABLE DISTRO_ID) # -> "Distributor ID: Ubuntu"
75+if (NOT "${DISTRO_ID}" STREQUAL "") # this tool isn't available on all distributions
76+ STRING (REGEX REPLACE "\n" "" DISTRO_ID ${DISTRO_ID}) # retour chariot
77+ STRING (REGEX REPLACE ".*: *\t*" "" DISTRO_ID ${DISTRO_ID})
78+
79+ execute_process(
80+ COMMAND lsb_release -r
81+ OUTPUT_VARIABLE DISTRO_RELEASE) # -> "Release: 10.10"
82+ STRING (REGEX REPLACE "\n" "" DISTRO_RELEASE ${DISTRO_RELEASE}) # retour chariot
83+ STRING (REGEX REPLACE ".*: *\t*" "" DISTRO_RELEASE ${DISTRO_RELEASE})
84+else()
85+ # on Ubuntu deb builders, lsb_release isn't available but we can have a look to /etc/issue.net
86+ get_filename_component(ISSUE_NET "/etc/issue.net" ABSOLUTE)
87+ if (EXISTS ${ISSUE_NET}) # to not have an error with cat
88+ execute_process(
89+ COMMAND cat ${ISSUE_NET}
90+ OUTPUT_VARIABLE DISTRO_RELEASE) # -> Ubuntu 10.10 || Ubuntu natty (development branch)
91+ if (NOT "${DISTRO_RELEASE}" STREQUAL "")
92+ STRING (REGEX REPLACE "\n" "" DISTRO_RELEASE ${DISTRO_RELEASE}) # retour chariot
93+ STRING (REGEX REPLACE " (.+)" "" DISTRO_ID ${DISTRO_RELEASE})
94+ if ("${DISTRO_ID}" STREQUAL "Ubuntu")
95+ STRING (REGEX REPLACE ".[(]development branch[)]" "" DISTRO_RELEASE ${DISTRO_RELEASE})
96+ STRING (REGEX REPLACE ".LTS" "" DISTRO_RELEASE ${DISTRO_RELEASE}) # Ubuntu 10.04.1 LTS
97+ STRING (REGEX REPLACE "(.+) " "" DISTRO_RELEASE ${DISTRO_RELEASE})
98+ if ("${DISTRO_RELEASE}" STREQUAL "natty")
99+ set (DISTRO_RELEASE "11.04")
100+ elseif ("${DISTRO_RELEASE}" STREQUAL "oneiric")
101+ set (DISTRO_RELEASE "11.10")
102+ elseif ("${DISTRO_RELEASE}" STREQUAL "precise")
103+ set (DISTRO_RELEASE "12.04")
104+ endif()
105+ endif()
106+ endif()
107+ endif()
108+endif()
109+
110+if (NOT "${DISTRO_ID}" STREQUAL "")
111+ message (STATUS " DISTRO_ID: ${DISTRO_ID}, DISTRO_RELEASE: ${DISTRO_RELEASE}")
112+endif()
113+
114 ############# ALSA_MIXER #################
115 message (STATUS "> AlsaMixer:")
116 set (with_alsa "no")
117@@ -809,49 +869,6 @@
118 add_subdirectory ("mail")
119 endif()
120
121-############# DISTRIBUTION #################
122-message (STATUS "> Distribution:")
123-# We try to detect if the user is on Ubuntu to know which bus we have to use...
124-execute_process(
125- COMMAND lsb_release -i
126- OUTPUT_VARIABLE DISTRO_ID) # -> "Distributor ID: Ubuntu"
127-if (NOT "${DISTRO_ID}" STREQUAL "") # this tool isn't available on all distributions
128- STRING (REGEX REPLACE "\n" "" DISTRO_ID ${DISTRO_ID}) # retour chariot
129- STRING (REGEX REPLACE ".*: *\t*" "" DISTRO_ID ${DISTRO_ID})
130-
131- execute_process(
132- COMMAND lsb_release -r
133- OUTPUT_VARIABLE DISTRO_RELEASE) # -> "Release: 10.10"
134- STRING (REGEX REPLACE "\n" "" DISTRO_RELEASE ${DISTRO_RELEASE}) # retour chariot
135- STRING (REGEX REPLACE ".*: *\t*" "" DISTRO_RELEASE ${DISTRO_RELEASE})
136-else()
137- # on Ubuntu deb builders, lsb_release isn't available but we can have a look to /etc/issue.net
138- get_filename_component(ISSUE_NET "/etc/issue.net" ABSOLUTE)
139- if (EXISTS ${ISSUE_NET}) # to not have an error with cat
140- execute_process(
141- COMMAND cat ${ISSUE_NET}
142- OUTPUT_VARIABLE DISTRO_RELEASE) # -> Ubuntu 10.10 || Ubuntu natty (development branch)
143- if (NOT "${DISTRO_RELEASE}" STREQUAL "")
144- STRING (REGEX REPLACE "\n" "" DISTRO_RELEASE ${DISTRO_RELEASE}) # retour chariot
145- STRING (REGEX REPLACE " (.+)" "" DISTRO_ID ${DISTRO_RELEASE})
146- if ("${DISTRO_ID}" STREQUAL "Ubuntu")
147- STRING (REGEX REPLACE ".[(]development branch[)]" "" DISTRO_RELEASE ${DISTRO_RELEASE})
148- STRING (REGEX REPLACE ".LTS" "" DISTRO_RELEASE ${DISTRO_RELEASE}) # Ubuntu 10.04.1 LTS
149- STRING (REGEX REPLACE "(.+) " "" DISTRO_RELEASE ${DISTRO_RELEASE})
150- if ("${DISTRO_RELEASE}" STREQUAL "natty")
151- set (DISTRO_RELEASE "11.04")
152- elseif ("${DISTRO_RELEASE}" STREQUAL "oneiric")
153- set (DISTRO_RELEASE "11.10")
154- endif()
155- endif()
156- endif()
157- endif()
158-endif()
159-
160-if (NOT "${DISTRO_ID}" STREQUAL "")
161- message (STATUS " DISTRO_ID: ${DISTRO_ID}, DISTRO_RELEASE: ${DISTRO_RELEASE}")
162-endif()
163-
164 ############# GLOBAL-MENU #################
165 set (with_global_menu "no")
166 if ("${enable-global-menu}" STREQUAL "yes" AND "${INDICATOR_OLD_NAMES}" STREQUAL "0" AND "${DBUSMENU_FOUND}" AND "${DBUSMENU_GTK_FOUND}") # currently only supported with new name of the indicator module and with newer version of dbusmenu
167
168=== modified file 'Clipper/src/applet-clipboard.c'
169--- Clipper/src/applet-clipboard.c 2012-02-16 01:45:57 +0000
170+++ Clipper/src/applet-clipboard.c 2012-03-21 20:37:19 +0000
171@@ -427,13 +427,14 @@
172 CDClipperCommand *pCommand;
173 gchar *cIconFilePath;
174 GList *pElement;
175+ gint iDesiredIconSize = cairo_dock_search_icon_size (GTK_ICON_SIZE_LARGE_TOOLBAR); // 24px by default
176 for (pElement = pAction->pCommands; pElement != NULL; pElement = pElement->next)
177 {
178 pCommand = pElement->data;
179 if (pCommand->cIconFileName != NULL)
180 {
181 cd_debug (" icone %s", pCommand->cIconFileName);
182- cIconFilePath = cairo_dock_search_icon_s_path (pCommand->cIconFileName);
183+ cIconFilePath = cairo_dock_search_icon_s_path (pCommand->cIconFileName, iDesiredIconSize);
184 }
185 else
186 {
187@@ -442,14 +443,14 @@
188 tmp ++;
189 gchar *cIconName = g_strndup (pCommand->cFormat, tmp - pCommand->cFormat);
190 cd_debug (" icone %s", cIconName);
191- cIconFilePath = cairo_dock_search_icon_s_path (cIconName);
192+ cIconFilePath = cairo_dock_search_icon_s_path (cIconName, iDesiredIconSize);
193 g_free (cIconName);
194 }
195
196 pMenuItem = gtk_image_menu_item_new_with_mnemonic (pCommand->cDescription);
197 if (cIconFilePath != NULL)
198 {
199- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (cIconFilePath, 24, 24, NULL);
200+ GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (cIconFilePath, iDesiredIconSize, iDesiredIconSize, NULL);
201 pImage = gtk_image_new_from_pixbuf (pixbuf);
202 g_free (cIconFilePath);
203 g_object_unref (pixbuf);
204
205=== modified file 'Dbus/interfaces/bash/CDBashApplet.sh'
206--- Dbus/interfaces/bash/CDBashApplet.sh 2012-02-16 01:45:57 +0000
207+++ Dbus/interfaces/bash/CDBashApplet.sh 2012-03-21 20:37:19 +0000
208@@ -48,6 +48,8 @@
209 EMBLEM_TOP=6
210 EMBLEM_RIGHT=7
211 EMBLEM_LEFT=8
212+EMBLEM_PERSISTENT=0
213+EMBLEM_PRINT=9
214 MENU_ENTRY=0
215 MENU_SUB_MENU=1
216 MENU_SEPARATOR=2
217
218=== modified file 'Dbus/interfaces/mono/CDApplet.cs'
219--- Dbus/interfaces/mono/CDApplet.cs 2012-02-16 01:45:57 +0000
220+++ Dbus/interfaces/mono/CDApplet.cs 2012-03-21 20:37:19 +0000
221@@ -68,6 +68,10 @@
222 EMBLEM_RIGHT,
223 EMBLEM_LEFT
224 }
225+ public enum EmblemModifier {
226+ EMBLEM_PERSISTENT = 0,
227+ EMBLEM_PRINT = 9
228+ }
229 public enum MenuItemType {
230 MENU_ENTRY = 0,
231 MENU_SUB_MENU,
232
233=== modified file 'Dbus/interfaces/python/CDApplet.py.in'
234--- Dbus/interfaces/python/CDApplet.py.in 2012-02-16 01:45:57 +0000
235+++ Dbus/interfaces/python/CDApplet.py.in 2012-03-21 20:37:19 +0000
236@@ -30,6 +30,9 @@
237 import dbus
238 from dbus.mainloop.glib import DBusGMainLoop
239
240+gobject.threads_init() # Enabling threading
241+dbus.mainloop.glib.threads_init()
242+
243 DBusGMainLoop(set_as_default=True)
244
245 INSTALL_PREFIX = os.path.abspath("..") # applets are launched from their install directory, so ".." is the folder containing all applets.
246@@ -67,6 +70,8 @@
247 EMBLEM_TOP = 6
248 EMBLEM_RIGHT = 7
249 EMBLEM_LEFT = 8
250+ EMBLEM_PERSISTENT = 0
251+ EMBLEM_PRINT = 9
252 # menu item types
253 MENU_ENTRY = 0
254 MENU_SUB_MENU = 1
255
256=== modified file 'Dbus/interfaces/python/CairoDock.py.in'
257--- Dbus/interfaces/python/CairoDock.py.in 2012-02-16 01:45:57 +0000
258+++ Dbus/interfaces/python/CairoDock.py.in 2012-03-21 20:37:19 +0000
259@@ -53,6 +53,9 @@
260 EMBLEM_TOP = 6
261 EMBLEM_RIGHT = 7
262 EMBLEM_LEFT = 8
263+ # emblem modifier (optionnal, add it to the emblem position)
264+ EMBLEM_PERSISTENT = 0
265+ EMBLEM_PRINT = 9
266 # module category
267 CATEGORY_BEHAVIOR = 0
268 CATEGORY_THEME = 1
269
270=== modified file 'Dbus/interfaces/ruby/CDApplet.rb'
271--- Dbus/interfaces/ruby/CDApplet.rb 2012-02-16 01:45:57 +0000
272+++ Dbus/interfaces/ruby/CDApplet.rb 2012-03-21 20:37:19 +0000
273@@ -44,6 +44,8 @@
274 EMBLEM_TOP = 6
275 EMBLEM_RIGHT = 7
276 EMBLEM_LEFT = 8
277+ EMBLEM_PERSISTENT = 0
278+ EMBLEM_PRINT = 9
279
280 MENU_ENTRY = 0
281 MENU_SUB_MENU = 1
282
283=== modified file 'Dbus/interfaces/vala/CDApplet.vala'
284--- Dbus/interfaces/vala/CDApplet.vala 2012-02-16 01:45:57 +0000
285+++ Dbus/interfaces/vala/CDApplet.vala 2012-03-21 20:37:19 +0000
286@@ -109,6 +109,10 @@
287 EMBLEM_RIGHT,
288 EMBLEM_LEFT
289 }
290+ public enum EmblemModifier {
291+ EMBLEM_PERSISTENT = 0,
292+ EMBLEM_PRINT = 9
293+ }
294 public enum MenuItemType {
295 MENU_ENTRY = 0,
296 MENU_SUB_MENU,
297
298=== modified file 'Dbus/src/applet-dbus.c'
299--- Dbus/src/applet-dbus.c 2012-02-16 01:45:57 +0000
300+++ Dbus/src/applet-dbus.c 2012-03-21 20:37:19 +0000
301@@ -48,7 +48,7 @@
302 #include "interface-applet-signals.h"
303 #include "applet-dbus.h"
304
305-#define DISTANT_DIR "2.4.0"
306+#define DISTANT_DIR "3.0.0"
307 #define GETTEXT_NAME_EXTRAS "cairo-dock-plugins-extra"
308 #define LOCALE_DIR_NAME "locale"
309
310@@ -138,7 +138,7 @@
311 pVisitCard->cAuthor = g_strdup (cAuthor);
312 pVisitCard->iCategory = iCategory;
313 if (cIconName != NULL)
314- pVisitCard->cIconFilePath = cairo_dock_search_icon_s_path (cIconName);
315+ pVisitCard->cIconFilePath = cairo_dock_search_icon_s_path (cIconName, CAIRO_DOCK_DEFAULT_ICON_SIZE);
316 if (pVisitCard->cIconFilePath == NULL)
317 pVisitCard->cIconFilePath = (cShareDataDir ? g_strdup_printf ("%s/icon", cShareDataDir) : NULL);
318 pVisitCard->iSizeOfConfig = 4; // au cas ou ...
319
320=== modified file 'Dbus/src/interface-applet-methods.c'
321--- Dbus/src/interface-applet-methods.c 2012-02-16 01:45:57 +0000
322+++ Dbus/src/interface-applet-methods.c 2012-03-21 20:37:19 +0000
323@@ -269,7 +269,7 @@
324 v = g_hash_table_lookup (hDialogAttributes, "icon");
325 if (v && G_VALUE_HOLDS_STRING (v))
326 {
327- cImageFilePath = cairo_dock_search_icon_s_path (g_value_get_string (v));
328+ cImageFilePath = cairo_dock_search_icon_s_path (g_value_get_string (v), MAX (pIcon->iImageWidth, pIcon->iImageHeight));
329 attr.cImageFilePath = cImageFilePath;
330 }
331 else
332
333=== modified file 'Dbus/src/interface-main-methods.c'
334--- Dbus/src/interface-main-methods.c 2012-02-16 01:45:57 +0000
335+++ Dbus/src/interface-main-methods.c 2012-03-21 20:37:19 +0000
336@@ -1282,12 +1282,12 @@
337
338 if (cImage == NULL || *cImage == '\0' || strcmp (cImage, "none") == 0)
339 {
340- cairo_dock_remove_overlay_at_position (pIcon, iPosition);
341+ cairo_dock_remove_overlay_at_position (pIcon, iPosition < CAIRO_OVERLAY_NB_POSITIONS ? iPosition : iPosition - CAIRO_OVERLAY_NB_POSITIONS); // for ease of use, handle both case similarily.
342 }
343 else
344 {
345- if (iPosition < 0) // [-N, -1] => print the overlay
346- cairo_dock_print_overlay_on_icon_from_image (pIcon, pContainer, cImage, - iPosition - 1);
347+ if (iPosition >= CAIRO_OVERLAY_NB_POSITIONS) // [N; 2N-1] => print the overlay
348+ cairo_dock_print_overlay_on_icon_from_image (pIcon, pContainer, cImage, iPosition - CAIRO_OVERLAY_NB_POSITIONS);
349 else // [0, N-1] => add it
350 cairo_dock_add_overlay_from_image (pIcon, cImage, iPosition);
351 }
352
353=== modified file 'Folders/src/applet-notifications.c'
354--- Folders/src/applet-notifications.c 2012-02-16 01:45:57 +0000
355+++ Folders/src/applet-notifications.c 2012-03-21 20:37:19 +0000
356@@ -385,6 +385,7 @@
357 gchar **pAppInfo;
358 gchar *cIconPath;
359 gpointer *app;
360+ gint iDesiredIconSize = cairo_dock_search_icon_size (GTK_ICON_SIZE_LARGE_TOOLBAR); // 24px
361 for (a = pApps; a != NULL; a = a->next)
362 {
363 pAppInfo = a->data;
364@@ -398,7 +399,7 @@
365 myData.pAppList = g_list_prepend (myData.pAppList, app);
366
367 if (pAppInfo[2] != NULL)
368- cIconPath = cairo_dock_search_icon_s_path (pAppInfo[2]);
369+ cIconPath = cairo_dock_search_icon_s_path (pAppInfo[2], iDesiredIconSize);
370 else
371 cIconPath = NULL;
372 CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (pAppInfo[0], cIconPath, _cd_folders_launch_with, pSubMenu, app);
373@@ -433,6 +434,7 @@
374 typedef struct {
375 gchar *cReceivedData;
376 double fOrder;
377+ gchar *cDockName;
378 } CDDropData;
379
380 static void _on_answer_import (int iClickedButton, GtkWidget *pInteractiveWidget, CDDropData *data, CairoDialog *pDialog)
381@@ -451,6 +453,7 @@
382 G_TYPE_STRING, "Configuration", "dir path", cReceivedData,
383 G_TYPE_BOOLEAN, "Configuration", "show files", bImportFiles,
384 G_TYPE_DOUBLE, "Icon", "order", fOrder,
385+ G_TYPE_STRING, "Icon", "dock name", data->cDockName,
386 G_TYPE_INVALID);
387
388 // instanciate the module from this conf file.
389@@ -476,6 +479,7 @@
390 static void _free_dialog_data (CDDropData *data)
391 {
392 g_free (data->cReceivedData);
393+ g_free (data->cDockName);
394 g_free (data);
395 }
396 gboolean cd_folders_on_drop_data (gpointer data, const gchar *cReceivedData, Icon *icon, double fOrder, CairoContainer *pContainer)
397@@ -520,6 +524,8 @@
398 CDDropData *data = g_new0 (CDDropData, 1);
399 data->cReceivedData = g_strdup (cReceivedData);
400 data->fOrder = fOrder;
401+ if (CAIRO_DOCK_IS_DOCK (pContainer))
402+ data->cDockName = g_strdup (cairo_dock_search_dock_name (CAIRO_DOCK (pContainer)));
403 cairo_dock_show_dialog_full (D_("Do you want to import the content of the folder too?"),
404 pIcon, pContainer,
405 0,
406
407=== modified file 'GMenu/src/applet-init.c'
408--- GMenu/src/applet-init.c 2012-02-16 01:45:57 +0000
409+++ GMenu/src/applet-init.c 2012-03-21 20:37:19 +0000
410@@ -55,6 +55,7 @@
411 }
412 myData.pMenu = create_main_menu (myApplet);
413 myData.iShowQuit = myConfig.iShowQuit;
414+ myData.iPanelDefaultMenuIconSize = cairo_dock_search_icon_size (GTK_ICON_SIZE_LARGE_TOOLBAR); // 24 by default
415
416 CD_APPLET_REGISTER_FOR_CLICK_EVENT;
417 CD_APPLET_REGISTER_FOR_MIDDLE_CLICK_EVENT;
418
419=== modified file 'GMenu/src/applet-menu-callbacks.c'
420--- GMenu/src/applet-menu-callbacks.c 2012-02-16 01:45:57 +0000
421+++ GMenu/src/applet-menu-callbacks.c 2012-03-21 20:37:19 +0000
422@@ -183,19 +183,19 @@
423 GtkWidget *image = NULL;
424 if (*gtkStock == '/')
425 {
426- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (gtkStock, 24, 24, NULL);
427+ GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (gtkStock, myData.iPanelDefaultMenuIconSize, myData.iPanelDefaultMenuIconSize, NULL);
428 image = gtk_image_new_from_pixbuf (pixbuf);
429 g_object_unref (pixbuf);
430 }
431 else
432 {
433- const gchar *cIconPath = cairo_dock_search_icon_s_path (gtkStock);
434+ const gchar *cIconPath = cairo_dock_search_icon_s_path (gtkStock, myData.iPanelDefaultMenuIconSize);
435 if (cIconPath == NULL)
436 {
437 cIconPath = g_strconcat (MY_APPLET_SHARE_DATA_DIR"/", gtkStock, NULL);
438 cIconPath = g_strconcat (cIconPath, ".svg", NULL);
439 }
440- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (cIconPath, 24, 24, NULL);
441+ GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (cIconPath, myData.iPanelDefaultMenuIconSize, myData.iPanelDefaultMenuIconSize, NULL);
442 image = gtk_image_new_from_pixbuf (pixbuf);
443 g_object_unref (pixbuf);
444 }
445@@ -464,7 +464,7 @@
446 IconToAdd *icon_to_add;
447 char *icon_name;
448 GdkPixbuf *pb;
449- int icon_height = PANEL_DEFAULT_MENU_ICON_SIZE;
450+ int icon_height = myData.iPanelDefaultMenuIconSize;
451
452 gtk_icon_size_lookup (icon->icon_size, NULL, &icon_height);
453
454@@ -513,7 +513,7 @@
455 else {*/
456 IconToAdd *icon_to_add;
457 GdkPixbuf *pb;
458- int icon_height = PANEL_DEFAULT_MENU_ICON_SIZE;
459+ int icon_height = myData.iPanelDefaultMenuIconSize;
460
461 gtk_icon_size_lookup (icon->icon_size, NULL, &icon_height);
462
463
464=== modified file 'GMenu/src/applet-menu.c'
465--- GMenu/src/applet-menu.c 2012-02-16 01:45:57 +0000
466+++ GMenu/src/applet-menu.c 2012-03-21 20:37:19 +0000
467@@ -243,7 +243,7 @@
468 {
469 IconToLoad *icon;
470 GtkWidget *image;
471- int icon_height = PANEL_DEFAULT_MENU_ICON_SIZE;
472+ int icon_height = myData.iPanelDefaultMenuIconSize;
473
474 icon = g_new0 (IconToLoad, 1);
475
476@@ -375,14 +375,14 @@
477 (GDestroyNotify) gmenu_tree_item_unref);
478
479 panel_load_menu_image_deferred (menuitem,
480- PANEL_DEFAULT_MENU_ICON_SIZE, //panel_menu_icon_get_size (),
481+ myData.iPanelDefaultMenuIconSize, //panel_menu_icon_get_size (),
482 ///NULL, NULL,
483 alias_directory ? gmenu_tree_directory_get_icon (alias_directory) :
484 gmenu_tree_entry_get_icon (entry),
485 NULL);
486
487 setup_menuitem (menuitem,
488- PANEL_DEFAULT_MENU_ICON_SIZE, //panel_menu_icon_get_size (),
489+ myData.iPanelDefaultMenuIconSize, //panel_menu_icon_get_size (),
490 ///NULL,
491 alias_directory ? gmenu_tree_directory_get_name (alias_directory) :
492 gmenu_tree_entry_get_name (entry));
493@@ -715,9 +715,13 @@
494 cMenuFileName = "gnome-applications.menu";
495 else if (g_file_test (XDG_MENUS_PATH"/kde-applications.menu", G_FILE_TEST_EXISTS))
496 cMenuFileName = "kde-applications.menu";
497+ else if (g_file_test (XDG_MENUS_PATH"/kde4-applications.menu", G_FILE_TEST_EXISTS))
498+ cMenuFileName = "kde4-applications.menu";
499 else if (g_file_test (XDG_MENUS_PATH"/xfce-applications.menu", G_FILE_TEST_EXISTS))
500 cMenuFileName = "xfce-applications.menu";
501- else // kde4-applications.menu, lxde-applications.menu, ...; let's check any *-applications.menu
502+ else if (g_file_test (XDG_MENUS_PATH"/lxde-applications.menu", G_FILE_TEST_EXISTS))
503+ cMenuFileName = "lxde-applications.menu";
504+ else // let's check any *-applications.menu
505 {
506 const gchar *cFileName;
507 GDir *dir = g_dir_open (XDG_MENUS_PATH, 0, NULL);
508
509=== modified file 'GMenu/src/applet-menu.h'
510--- GMenu/src/applet-menu.h 2012-02-16 01:45:57 +0000
511+++ GMenu/src/applet-menu.h 2012-03-21 20:37:19 +0000
512@@ -26,7 +26,7 @@
513 #include <gmenu-tree.h>
514
515 #define PANEL_ICON_FOLDER "folder"
516-#define PANEL_DEFAULT_MENU_ICON_SIZE 24
517+// #define PANEL_DEFAULT_MENU_ICON_SIZE 24
518
519
520 GtkWidget * add_menu_separator (GtkWidget *menu);
521
522=== modified file 'GMenu/src/applet-recent.c'
523--- GMenu/src/applet-recent.c 2011-08-09 18:08:08 +0000
524+++ GMenu/src/applet-recent.c 2012-03-21 20:37:19 +0000
525@@ -55,11 +55,11 @@
526
527 GtkWidget *pMenuItem = gtk_image_menu_item_new_with_label (D_("Recent Documents"));
528
529- const gchar *cIconPath = cairo_dock_search_icon_s_path ("document-open-recent");
530+ const gchar *cIconPath = cairo_dock_search_icon_s_path ("document-open-recent", myData.iPanelDefaultMenuIconSize);
531 if (cIconPath == NULL)
532 cIconPath = MY_APPLET_SHARE_DATA_DIR"/icon-recent.png";
533
534- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (cIconPath, 24, 24, NULL);
535+ GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (cIconPath, myData.iPanelDefaultMenuIconSize, myData.iPanelDefaultMenuIconSize, NULL);
536 GtkWidget *image = gtk_image_new_from_pixbuf (pixbuf);
537 g_object_unref (pixbuf);
538 #if (GTK_MAJOR_VERSION > 2 || GTK_MINOR_VERSION >= 16)
539
540=== modified file 'GMenu/src/applet-run-dialog.c'
541--- GMenu/src/applet-run-dialog.c 2012-02-16 01:45:57 +0000
542+++ GMenu/src/applet-run-dialog.c 2012-03-21 20:37:19 +0000
543@@ -349,7 +349,7 @@
544 }
545 CairoDialog *cd_menu_create_quick_launch_dialog (CairoDockModuleInstance *myApplet)
546 {
547- gchar *cIconPath = cairo_dock_search_icon_s_path (GTK_STOCK_EXECUTE);
548+ gchar *cIconPath = cairo_dock_search_icon_s_path (GTK_STOCK_EXECUTE, myData.iPanelDefaultMenuIconSize);
549 CairoDialog *pDialog = cairo_dock_show_dialog_with_entry (D_("Enter a command to launch:"),
550 myIcon, myContainer,
551 cIconPath ? cIconPath : "same icon",
552
553=== modified file 'GMenu/src/applet-struct.h'
554--- GMenu/src/applet-struct.h 2012-02-16 01:45:57 +0000
555+++ GMenu/src/applet-struct.h 2012-03-21 20:37:19 +0000
556@@ -75,6 +75,7 @@
557 guint iSidFakeMenuIdle;
558 guint iSidCreateMenuIdle;
559 guint iSidTreeChangeIdle;
560+ gint iPanelDefaultMenuIconSize;
561
562 GtkRecentManager *pRecentManager;
563 GtkWidget *pRecentMenuItem;
564
565=== modified file 'Global-Menu/src/applet-draw.c'
566--- Global-Menu/src/applet-draw.c 2012-02-16 01:45:57 +0000
567+++ Global-Menu/src/applet-draw.c 2012-03-21 20:37:19 +0000
568@@ -74,10 +74,21 @@
569 }
570
571 // draw current icon
572+ const CairoDockImageBuffer *pImage = NULL, *pPrevImage = NULL;
573+
574 Icon *pAppli = cairo_dock_get_icon_with_Xid (myData.iCurrentWindow);
575- GLuint iTexture = (pAppli ? pAppli->iIconTexture : myData.defaultIcon.iTexture);
576+ if (pAppli)
577+ {
578+ pImage = cairo_dock_appli_get_image_buffer (pAppli);
579+ }
580+ GLuint iTexture = (pImage ? pImage->iTexture : 0);
581+
582 Icon *pPrevIcon = cairo_dock_get_icon_with_Xid (myData.iPreviousWindow);
583- GLuint iPrevTexture = (pPrevIcon ? pPrevIcon->iIconTexture : myData.defaultIcon.iTexture);
584+ if (pPrevIcon)
585+ {
586+ pPrevImage = cairo_dock_appli_get_image_buffer (pPrevIcon);
587+ }
588+ GLuint iPrevTexture = (pPrevImage ? pPrevImage->iTexture : 0);
589
590 if (iPrevTexture != 0)
591 {
592@@ -178,20 +189,34 @@
593 y = 0; // on top
594 }
595
596- Icon *pAppli = cairo_dock_get_icon_with_Xid (myData.iCurrentWindow);
597- cairo_surface_t *pSurface = (pAppli ? pAppli->pIconBuffer : myData.defaultIcon.pSurface);
598+ const CairoDockImageBuffer *pImage = NULL, *pPrevImage = NULL;
599+
600 Icon *pPrevIcon = cairo_dock_get_icon_with_Xid (myData.iPreviousWindow);
601- cairo_surface_t *pPrevSurface = (pPrevIcon ? pPrevIcon->pIconBuffer : myData.defaultIcon.pSurface);
602-
603- if (pPrevSurface != NULL)
604- {
605- cairo_set_source_surface (myDrawContext, pPrevSurface, x, y);
606+ if (pPrevIcon)
607+ {
608+ pPrevImage = cairo_dock_appli_get_image_buffer (pPrevIcon);
609+ }
610+ if (pPrevImage && pPrevImage->pSurface)
611+ {
612+ cairo_save (myDrawContext);
613+ cairo_scale (myDrawContext, (double)w / pPrevImage->iWidth, (double)h / pPrevImage->iHeight);
614+ cairo_set_source_surface (myDrawContext, pPrevImage->pSurface, x, y);
615 cairo_paint_with_alpha (myDrawContext, 1-f);
616- }
617- if (pSurface != NULL)
618- {
619- cairo_set_source_surface (myDrawContext, pSurface, x, y);
620+ cairo_restore (myDrawContext);
621+ }
622+
623+ Icon *pAppli = cairo_dock_get_icon_with_Xid (myData.iCurrentWindow);
624+ if (pAppli)
625+ {
626+ pImage = cairo_dock_appli_get_image_buffer (pAppli);
627+ }
628+ if (pImage && pImage->pSurface)
629+ {
630+ cairo_save (myDrawContext);
631+ cairo_scale (myDrawContext, (double)w / pImage->iWidth, (double)h / pImage->iHeight);
632+ cairo_set_source_surface (myDrawContext, pImage->pSurface, x, y);
633 cairo_paint_with_alpha (myDrawContext, f);
634+ cairo_restore (myDrawContext);
635 }
636
637 // draw window buttons
638
639=== modified file 'Indicator-applet/indicator-applet.c'
640--- Indicator-applet/indicator-applet.c 2012-02-16 01:45:57 +0000
641+++ Indicator-applet/indicator-applet.c 2012-03-21 20:37:19 +0000
642@@ -33,6 +33,12 @@
643 if (old_menu_pointer == (GObject*)pIndicator->pMenu)
644 pIndicator->pMenu = NULL;
645 }
646+static void _on_service_destroyed (CDAppletIndicator *pIndicator, GObject *old_menu_pointer)
647+{
648+ g_print (" --------- no more service (%p / %p\n", old_menu_pointer, pIndicator->service);
649+ if (old_menu_pointer == (GObject*)pIndicator->service)
650+ pIndicator->service = NULL;
651+}
652
653 static void _cd_indicator_make_menu (CDAppletIndicator *pIndicator)
654 {
655@@ -41,7 +47,7 @@
656 pIndicator->pMenu = dbusmenu_gtkmenu_new ((gchar*)pIndicator->cBusName, (gchar*)pIndicator->cMenuObject); // the cast is unorthodox, but the function definition is clumsy (it should require 2 const gchar*, since it actually duplicates the strings).
657 if (pIndicator->pMenu != NULL)
658 {
659- g_object_ref_sink (G_OBJECT (pIndicator->pMenu));
660+ g_object_ref_sink (G_OBJECT (pIndicator->pMenu)); // the object is floating -> take the reference
661 g_object_weak_ref (G_OBJECT (pIndicator->pMenu),
662 (GWeakNotify)_on_menu_destroyed,
663 pIndicator);
664@@ -63,6 +69,7 @@
665 static void
666 connection_changed (IndicatorServiceManager * sm, gboolean connected, CDAppletIndicator *pIndicator)
667 {
668+ g_print ("%s (%s : %d)\n", __func__, pIndicator->cBusName, connected);
669 CairoDockModuleInstance *myApplet = pIndicator->pApplet;
670 if (connected)
671 {
672@@ -71,7 +78,7 @@
673 // connect to the service.
674 if (pIndicator->pServiceProxy == NULL)
675 {
676- GError * error = NULL;
677+ /**GError * error = NULL;
678 DBusGConnection * sbus = cairo_dock_get_session_connection ();
679 pIndicator->pServiceProxy = dbus_g_proxy_new_for_name_owner(sbus,
680 pIndicator->cBusName,
681@@ -82,7 +89,11 @@
682 {
683 cd_warning ("'%s' service not found on the bus : %s", pIndicator->cServiceObject, error->message);
684 g_error_free(error);
685- }
686+ }*/
687+ pIndicator->pServiceProxy = cairo_dock_create_new_session_proxy (
688+ pIndicator->cBusName,
689+ pIndicator->cServiceObject,
690+ pIndicator->cServiceInterface);
691 if (pIndicator->pServiceProxy == NULL)
692 return;
693
694@@ -111,6 +122,11 @@
695 g_print ("done.\n");
696 pIndicator->pMenu = NULL;
697 }
698+ if (pIndicator->pServiceProxy != NULL)
699+ {
700+ g_object_unref (pIndicator->pServiceProxy); // this removes all the signals connected on the proxy
701+ pIndicator->pServiceProxy = NULL;
702+ }
703 pIndicator->bConnected = FALSE;
704 }
705 }
706@@ -133,8 +149,7 @@
707 if (!s_bIndicatorIconThemeAdded)
708 {
709 s_bIndicatorIconThemeAdded = TRUE;
710- gtk_icon_theme_append_search_path (gtk_icon_theme_get_default(),
711- INDICATOR_ICONS_DIR);
712+ cairo_dock_add_path_to_icon_theme (INDICATOR_ICONS_DIR); /// maybe we should add it back when the icons manager is reloaded ?...
713 }
714 CDAppletIndicator *pIndicator = g_new0 (CDAppletIndicator, 1);
715 pIndicator->pApplet = pApplet;
716@@ -144,6 +159,10 @@
717 pIndicator->cMenuObject = cMenuObject;
718
719 pIndicator->service = indicator_service_manager_new_version ((gchar*)cBusName, iVersion);
720+ g_object_weak_ref (G_OBJECT (pIndicator->service),
721+ (GWeakNotify)_on_service_destroyed,
722+ pIndicator); // most probably useless, but let's be parano, since we're using the dreadful "libindicator" :p
723+
724 g_signal_connect (G_OBJECT(pIndicator->service), INDICATOR_SERVICE_MANAGER_SIGNAL_CONNECTION_CHANGE, G_CALLBACK(connection_changed), pIndicator); // on sera appele une fois la connexion etablie. // pour le cast, cf plus haut.
725
726 // indicators don't send the 'connection-change' signal if the connection couldn't be done, so we have to handle this case ourselves.
727@@ -161,15 +180,28 @@
728 g_source_remove (pIndicator->iSidGetMenuOnce);
729 if (pIndicator->iSidCheckIndicator != 0)
730 g_source_remove (pIndicator->iSidCheckIndicator);
731+ pIndicator->bConnected = FALSE;
732 pIndicator->on_disconnect = NULL; // since the indicator has been explicitely destroyed, we don't want to call the callback when we'll disconnect from the service.
733- if (pIndicator->service)
734- g_object_unref (pIndicator->service);
735+ g_print ("destroy indicator menu...\n");
736+ if (pIndicator->pMenu)
737+ g_object_unref (pIndicator->pMenu);
738+ g_print ("done.\n");
739 if (pIndicator->pServiceProxy)
740+ {
741 g_object_unref (pIndicator->pServiceProxy);
742- cd_debug ("destroy indicator menu...");
743- if (pIndicator->pMenu)
744- g_object_unref (pIndicator->pMenu);
745- cd_debug ("done.");
746+ pIndicator->pServiceProxy = NULL;
747+ }
748+ g_print ("destroy service...\n");
749+ if (pIndicator->service)
750+ {
751+ //g_object_unref (pIndicator->service); // this causes a crash in libindicator (beacuse they keep the service as parameter of the callback 'service_proxy_name_changed'). so just be sure to disconnect from this object, and forget it.
752+ g_signal_handlers_disconnect_by_func (G_OBJECT(pIndicator->service), G_CALLBACK(connection_changed), pIndicator);
753+ g_object_weak_unref (G_OBJECT (pIndicator->service),
754+ (GWeakNotify)_on_service_destroyed,
755+ pIndicator);
756+ pIndicator->service = NULL;
757+ }
758+ g_print ("done.\n");
759 g_free (pIndicator);
760 }
761
762@@ -187,7 +219,7 @@
763
764 const gchar *cIconName = cStatusIcon;
765 gchar *tmp_icon_name = NULL;
766- gchar *cIconPath = cairo_dock_search_icon_s_path (cIconName); // on regarde si l'icone sera trouvee.
767+ gchar *cIconPath = cairo_dock_search_icon_s_path (cIconName, MAX (myIcon->iImageWidth, myIcon->iImageHeight)); // on regarde si l'icone sera trouvee.
768 gchar *cIconPathFallback = NULL;
769 if (cIconPath == NULL) // l'icone ne sera pas trouvee, on regarde si ce n'est pas une icone en carton d'Ubuntu.
770 {
771@@ -196,7 +228,7 @@
772 {
773 tmp_icon_name = g_strndup (cIconName, str - cIconName);
774 cIconName = tmp_icon_name;
775- cIconPath = cairo_dock_search_icon_s_path (cIconName);
776+ cIconPath = cairo_dock_search_icon_s_path (cIconName, MAX (myIcon->iImageWidth, myIcon->iImageHeight));
777 }
778 }
779 if (cIconPath == NULL) // l'icone ne sera pas trouvee, on met une icone par defaut.
780
781=== modified file 'Messaging-Menu/data/Messaging-Menu.conf.in'
782--- Messaging-Menu/data/Messaging-Menu.conf.in 2012-02-16 01:45:57 +0000
783+++ Messaging-Menu/data/Messaging-Menu.conf.in 2012-03-21 20:37:19 +0000
784@@ -20,8 +20,8 @@
785 #{Set to 0 to use the default applet size}
786 icon size = 0;0
787
788-#B Always display the icon, even when the dock is hidden?
789-always visi = false
790+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
791+always_visi = 0
792
793 #C+ Background color to add in this case
794 bg color = .8;.8;.8;.5
795
796=== modified file 'Network-Monitor/data/Network-Monitor.conf.in'
797--- Network-Monitor/data/Network-Monitor.conf.in 2012-02-16 01:45:57 +0000
798+++ Network-Monitor/data/Network-Monitor.conf.in 2012-03-21 20:37:19 +0000
799@@ -21,8 +21,8 @@
800 #{Set to 0 to use the default applet size}
801 icon size = 0;0
802
803-#B Always display the icon, even when the dock is hidden?
804-always visi = false
805+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
806+always_visi = 0
807
808 #C+ Background color to add in this case
809 bg color = .8;.8;.8;.5
810
811=== modified file 'Recent-Events/data/Recent-Events.conf.in'
812--- Recent-Events/data/Recent-Events.conf.in 2012-02-16 01:45:57 +0000
813+++ Recent-Events/data/Recent-Events.conf.in 2012-03-21 20:37:19 +0000
814@@ -14,7 +14,7 @@
815 #v
816 sep_display=
817
818-#S+ Image filename:
819+#S+[Default] Image filename:
820 #{Leave empty to use the default one.}
821 icon=folder-recent
822
823
824=== modified file 'Recent-Events/src/applet-dialog.c'
825--- Recent-Events/src/applet-dialog.c 2012-02-16 01:45:57 +0000
826+++ Recent-Events/src/applet-dialog.c 2012-03-21 20:37:19 +0000
827@@ -116,7 +116,7 @@
828 //\_____________ find the icon.
829 if (strncmp (cEventURI, "http", 4) == 0) // gvfs is deadly slow to get info on distant URI...
830 {
831- cIconName = cairo_dock_search_icon_s_path ("text-html");
832+ cIconName = cairo_dock_search_icon_s_path ("text-html", myData.iDesiredIconSize);
833 }
834 else
835 {
836@@ -124,8 +124,8 @@
837 }
838 if (cIconName != NULL)
839 {
840- cIconPath = cairo_dock_search_icon_s_path (cIconName);
841- pixbuf = gdk_pixbuf_new_from_file_at_size (cIconPath, 32, 32, NULL);
842+ cIconPath = cairo_dock_search_icon_s_path (cIconName, myData.iDesiredIconSize);
843+ pixbuf = gdk_pixbuf_new_from_file_at_size (cIconPath, myData.iDesiredIconSize, myData.iDesiredIconSize, NULL);
844 g_free (cIconPath);
845 }
846 else
847@@ -274,7 +274,7 @@
848 myData.pAppList = g_list_prepend (myData.pAppList, pAppInfo[1]);
849
850 if (pAppInfo[2] != NULL)
851- cIconPath = cairo_dock_search_icon_s_path (pAppInfo[2]);
852+ cIconPath = cairo_dock_search_icon_s_path (pAppInfo[2], cairo_dock_search_icon_size (GTK_ICON_SIZE_LARGE_TOOLBAR));
853 else
854 cIconPath = NULL;
855 CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (pAppInfo[0], cIconPath, _cd_launch_with, pSubMenu, pAppInfo[1]);
856@@ -466,7 +466,24 @@
857 static gboolean _show_dialog_delayed (gpointer data)
858 {
859 cd_toggle_dialog ();
860- return FALSE;
861+ if (myData.pDialog != NULL) // dialog built with success, quit.
862+ {
863+ myData.iSidTryDialog = 0;
864+ return FALSE;
865+ }
866+ else // failed, retry up to 3 times.
867+ {
868+ myData.iNbTries ++;
869+ cd_debug (" %d tries", myData.iNbTries);
870+ if (myData.iNbTries >= 3) // definitely no hope -> show a message to the user.
871+ {
872+ cairo_dock_remove_dialog_if_any (myIcon);
873+ cairo_dock_show_temporary_dialog_with_icon (D_("You need to install the Zeitgeist data engine."), myIcon, myContainer, 6000, "same icon");
874+ myData.iSidTryDialog = 0;
875+ return FALSE;
876+ }
877+ }
878+ return TRUE;
879 }
880 void cd_toggle_dialog (void)
881 {
882@@ -482,17 +499,15 @@
883 {
884 cd_debug ("first search");
885 myData.pLog = zeitgeist_log_new (); // may launch the Zeitgeist daemon if it's not yet running.
886- if (! zeitgeist_log_is_connected (myData.pLog)) // the connection may not be immediate (even if the daemon is already running), in this case come back in 1s.
887+ }
888+ if (! zeitgeist_log_is_connected (myData.pLog))
889+ {
890+ cd_debug ("not yet connected");
891+ if (myData.iSidTryDialog == 0)
892 {
893- cd_debug ("come back in 1s...");
894- g_timeout_add_seconds (1, _show_dialog_delayed, NULL);
895- return;
896+ myData.iNbTries = 0;
897+ myData.iSidTryDialog = g_timeout_add_seconds (1, _show_dialog_delayed, NULL);
898 }
899- }
900- else if (! zeitgeist_log_is_connected (myData.pLog))
901- {
902- cairo_dock_remove_dialog_if_any (myIcon);
903- cairo_dock_show_temporary_dialog_with_icon (D_("You need to install the Zeitgeist data engine."), myIcon, myContainer, 6000, "same icon");
904 return;
905 }
906
907
908=== modified file 'Recent-Events/src/applet-dialog.h'
909--- Recent-Events/src/applet-dialog.h 2011-04-20 20:46:51 +0000
910+++ Recent-Events/src/applet-dialog.h 2012-03-21 20:37:19 +0000
911@@ -30,4 +30,7 @@
912 void cd_toggle_dialog (void);
913
914
915+void cd_folders_free_apps_list (CairoDockModuleInstance *myApplet);
916+
917+
918 #endif
919
920=== modified file 'Recent-Events/src/applet-init.c'
921--- Recent-Events/src/applet-init.c 2012-02-16 01:45:57 +0000
922+++ Recent-Events/src/applet-init.c 2012-03-21 20:37:19 +0000
923@@ -22,6 +22,7 @@
924 #include "applet-config.h"
925 #include "applet-notifications.h"
926 #include "applet-struct.h"
927+#include "applet-dialog.h"
928 #include "applet-init.h"
929
930
931@@ -42,7 +43,8 @@
932 }
933
934 CD_APPLET_SET_DEFAULT_IMAGE_ON_MY_ICON_IF_NONE; // set the default icon if none is specified in conf.
935-
936+
937+ myData.iDesiredIconSize = cairo_dock_search_icon_size (GTK_ICON_SIZE_DND); // 32px
938
939 CD_APPLET_REGISTER_FOR_CLICK_EVENT;
940 CD_APPLET_REGISTER_FOR_MIDDLE_CLICK_EVENT;
941@@ -66,6 +68,14 @@
942 cairo_dock_remove_notification_func_on_object (&myContainersMgr,
943 NOTIFICATION_BUILD_ICON_MENU, (CairoDockNotificationFunc) CD_APPLET_ON_BUILD_MENU_FUNC, myApplet);
944
945+ if (myData.iSidTryDialog != 0)
946+ g_source_remove (myData.iSidTryDialog);
947+
948+ cairo_dock_dialog_unreference (myData.pDialog); // pModel will be destroyed with the viewport.
949+
950+ g_free (myData.cCurrentUri);
951+ cd_folders_free_apps_list (myApplet);
952+
953 cd_keybinder_unbind (myData.pKeyBinding);
954 CD_APPLET_STOP_END
955
956
957=== modified file 'Recent-Events/src/applet-notifications.c'
958--- Recent-Events/src/applet-notifications.c 2012-02-16 01:45:57 +0000
959+++ Recent-Events/src/applet-notifications.c 2012-03-21 20:37:19 +0000
960@@ -106,6 +106,7 @@
961 double fOrder;
962 int iVolumeID;
963 gboolean bIsDirectory;
964+ gint iDesiredIconSize = cairo_dock_search_icon_size (GTK_ICON_SIZE_LARGE_TOOLBAR); // 24px
965
966 CD_APPLET_ADD_SEPARATOR_IN_MENU (s_pMenu);
967
968@@ -127,7 +128,7 @@
969 g_free (cPath);
970 s_pEventList = g_list_prepend (s_pEventList, cCommand);
971
972- cIconPath = cairo_dock_search_icon_s_path (cIconName);
973+ cIconPath = cairo_dock_search_icon_s_path (cIconName, iDesiredIconSize);
974 CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (zeitgeist_subject_get_text (subject), cIconPath, _open_file, pSubMenu, cCommand);
975 g_free (cIconPath);
976 g_free (cIconName);
977
978=== modified file 'Recent-Events/src/applet-struct.h'
979--- Recent-Events/src/applet-struct.h 2012-02-16 01:45:57 +0000
980+++ Recent-Events/src/applet-struct.h 2012-03-21 20:37:19 +0000
981@@ -68,6 +68,9 @@
982 CairoDialog *pDialog;
983 CDEventType iCurrentCaterogy;
984 CairoKeyBinding *pKeyBinding;
985+ gint iDesiredIconSize;
986+ guint iSidTryDialog;
987+ gint iNbTries;
988 } ;
989
990
991
992=== modified file 'Remote-Control/src/applet-notifications.c'
993--- Remote-Control/src/applet-notifications.c 2012-02-16 01:45:57 +0000
994+++ Remote-Control/src/applet-notifications.c 2012-03-21 20:37:19 +0000
995@@ -37,6 +37,13 @@
996
997 const int s_iNbPromptAnimationSteps = 40;
998
999+static void cd_do_simulate_click (CairoContainer *pContainer, Icon *pIcon, int iModifierType)
1000+{
1001+ g_return_if_fail (pIcon != NULL);
1002+ myData.bIgnoreClick = TRUE; // -> ignore the "click" notification, which would close the session and remove the notification while in the loop. the caller of this method should ensure to close the session after.
1003+ cairo_dock_notify_on_object (pContainer, NOTIFICATION_CLICK_ICON, pIcon, pContainer, iModifierType);
1004+ myData.bIgnoreClick = FALSE;
1005+}
1006
1007 static inline int _orient_arrow (CairoContainer *pContainer, int iKeyVal)
1008 {
1009@@ -142,8 +149,8 @@
1010 if (pNthIcon != NULL)
1011 {
1012 g_print ("click on %s\n", pNthIcon->cName);
1013- ///cairo_dock_notify_on_object (&myContainersMgr, NOTIFICATION_CLICK_ICON, pNthIcon, myData.pCurrentDock, iModifierType);
1014- cairo_dock_notify_on_object (CAIRO_CONTAINER (myData.pCurrentDock), NOTIFICATION_CLICK_ICON, pNthIcon, myData.pCurrentDock, iModifierType);
1015+ ///cairo_dock_notify_on_object (CAIRO_CONTAINER (myData.pCurrentDock), NOTIFICATION_CLICK_ICON, pNthIcon, myData.pCurrentDock, iModifierType);
1016+ cd_do_simulate_click (CAIRO_CONTAINER (myData.pCurrentDock), pNthIcon, iModifierType);
1017
1018 cairo_dock_start_icon_animation (pNthIcon, myData.pCurrentDock);
1019 myData.bIgnoreIconState = FALSE;
1020@@ -241,7 +248,7 @@
1021 {
1022 if (myData.pCurrentIcon != NULL)
1023 {
1024- cd_debug ("on clique sur l'icone '%s' [%d, %d]\n", myData.pCurrentIcon->cName, iModifierType, GDK_SHIFT_MASK);
1025+ g_print ("on clique sur l'icone '%s' [%d, %d]\n", myData.pCurrentIcon->cName, iModifierType, GDK_SHIFT_MASK);
1026
1027 myData.bIgnoreIconState = TRUE;
1028 if (iModifierType & GDK_MOD1_MASK) // ALT
1029@@ -264,8 +271,8 @@
1030 }
1031 else
1032 {
1033- ///cairo_dock_notify_on_object (&myContainersMgr, NOTIFICATION_CLICK_ICON, myData.pCurrentIcon, myData.pCurrentDock, iModifierType);
1034- cairo_dock_notify_on_object (CAIRO_CONTAINER (myData.pCurrentDock), NOTIFICATION_CLICK_ICON, myData.pCurrentIcon, myData.pCurrentDock, iModifierType);
1035+ ///cairo_dock_notify_on_object (CAIRO_CONTAINER (myData.pCurrentDock), NOTIFICATION_CLICK_ICON, myData.pCurrentIcon, myData.pCurrentDock, iModifierType);
1036+ cd_do_simulate_click (CAIRO_CONTAINER (myData.pCurrentDock), myData.pCurrentIcon, iModifierType);
1037 }
1038 cairo_dock_start_icon_animation (myData.pCurrentIcon, myData.pCurrentDock);
1039 myData.bIgnoreIconState = FALSE;
1040@@ -585,7 +592,8 @@
1041 {
1042 g_return_val_if_fail (!cd_do_session_is_off (), CAIRO_DOCK_LET_PASS_NOTIFICATION);
1043
1044- cd_do_close_session ();
1045+ if (! myData.bIgnoreClick)
1046+ cd_do_close_session ();
1047
1048 return CAIRO_DOCK_LET_PASS_NOTIFICATION;
1049 }
1050
1051=== modified file 'Remote-Control/src/applet-struct.h'
1052--- Remote-Control/src/applet-struct.h 2012-02-16 01:45:57 +0000
1053+++ Remote-Control/src/applet-struct.h 2012-03-21 20:37:19 +0000
1054@@ -48,7 +48,7 @@
1055 Icon *pCurrentIcon;
1056 CairoDock *pCurrentDock;
1057 gboolean bIgnoreIconState;
1058-
1059+ gboolean bIgnoreClick;
1060 int iPrevMouseX, iPrevMouseY;
1061 int iMouseX, iMouseY;
1062 int iMotionCount;
1063
1064=== modified file 'Scooby-Do/src/applet-appli-finder.c'
1065--- Scooby-Do/src/applet-appli-finder.c 2010-08-10 00:05:57 +0000
1066+++ Scooby-Do/src/applet-appli-finder.c 2012-03-21 20:37:19 +0000
1067@@ -174,17 +174,18 @@
1068 int iNbAppliLoaded = 0;
1069 Icon *pIcon;
1070 gboolean bLoadTexture = (CAIRO_CONTAINER_IS_OPENGL (g_pMainDock));
1071+ gint iDesiredIconSize = 10; // cairo_dock_search_icon_size (GTK_ICON_SIZE_MENU); // 16px (was 48px but why?) // to data?
1072 GList *a;
1073 for (a = myData.pCurrentApplicationToLoad; a != NULL && iNbAppliLoaded < 3; a = a->next) // on en charge 3 d'un coup.
1074 {
1075 pIcon = a->data;
1076 if (pIcon->pIconBuffer == NULL)
1077 {
1078- pIcon->fWidth = 48.;
1079- pIcon->fHeight = 48.;
1080+ pIcon->fWidth = iDesiredIconSize;
1081+ pIcon->fHeight = iDesiredIconSize;
1082 pIcon->fScale = 1.;
1083- gchar *cIconPath = cairo_dock_search_icon_s_path (pIcon->cFileName);
1084- pIcon->pIconBuffer = cairo_dock_create_surface_for_icon (cIconPath, 48., 48);
1085+ gchar *cIconPath = cairo_dock_search_icon_s_path (pIcon->cFileName, iDesiredIconSize);
1086+ pIcon->pIconBuffer = cairo_dock_create_surface_for_icon (cIconPath, iDesiredIconSize, iDesiredIconSize);
1087 g_free (cIconPath);
1088 if (bLoadTexture)
1089 pIcon->iIconTexture = cairo_dock_create_texture_from_surface (pIcon->pIconBuffer);
1090@@ -230,14 +231,14 @@
1091 bMatch = FALSE;
1092 else
1093 {
1094- bMatch = (g_strncasecmp (pIcon->cCommand, myData.sCurrentText->str, myData.sCurrentText->len) == 0);
1095+ bMatch = (g_ascii_strncasecmp (pIcon->cCommand, myData.sCurrentText->str, myData.sCurrentText->len) == 0);
1096 if (!bMatch)
1097 {
1098 gchar *str = strchr (pIcon->cCommand, '-'); // on se limite au 1er tiret.
1099 if (str && *(str-1) != ' ') // on verifie qu'il n'est pas un tiret d'option
1100 {
1101 str ++;
1102- bMatch = (g_strncasecmp (str, myData.sCurrentText->str, myData.sCurrentText->len) == 0);
1103+ bMatch = (g_ascii_strncasecmp (str, myData.sCurrentText->str, myData.sCurrentText->len) == 0);
1104 }
1105 }
1106 }
1107
1108=== modified file 'Scooby-Do/src/applet-icon-finder.c'
1109--- Scooby-Do/src/applet-icon-finder.c 2011-09-26 12:56:12 +0000
1110+++ Scooby-Do/src/applet-icon-finder.c 2012-03-21 20:37:19 +0000
1111@@ -43,7 +43,7 @@
1112 if (str && *(str-1) != ' ') // on verifie qu'il n'est pas un tiret d'option
1113 {
1114 str ++;
1115- bMatch = (g_strncasecmp (str, cCommandPrefix, length) == 0);
1116+ bMatch = (g_ascii_strncasecmp (str, cCommandPrefix, length) == 0);
1117 }
1118 if (!bMatch && pIcon->cName)
1119 bMatch = (g_ascii_strncasecmp (cCommandPrefix, pIcon->cName, length) == 0);
1120
1121=== modified file 'Status-Notifier/data/Status-Notifier.conf.in'
1122--- Status-Notifier/data/Status-Notifier.conf.in 2012-02-16 01:45:57 +0000
1123+++ Status-Notifier/data/Status-Notifier.conf.in 2012-03-21 20:37:19 +0000
1124@@ -22,8 +22,8 @@
1125 #{Set to 0 to use the default applet size}
1126 icon size = 0;0
1127
1128-#B Always display the icon, even when the dock is hidden?
1129-always visi = false
1130+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
1131+always_visi = 0
1132
1133 #C+ Background color to add in this case
1134 bg color = .8;.8;.8;.5
1135
1136=== modified file 'Status-Notifier/src/CMakeLists.txt'
1137--- Status-Notifier/src/CMakeLists.txt 2012-02-16 01:45:57 +0000
1138+++ Status-Notifier/src/CMakeLists.txt 2012-03-21 20:37:19 +0000
1139@@ -26,6 +26,7 @@
1140 add_definitions (-DMY_APPLET_ICON_FILE="icon.png")
1141 add_definitions (-DINDICATOR_OLD_NAMES=${INDICATOR_OLD_NAMES})
1142 add_definitions (-DINDICATOR_APPLICATIONADDED_HAS_HINT=${INDICATOR_APPLICATIONADDED_HAS_HINT})
1143+add_definitions (-DINDICATOR_APPLICATIONADDED_HAS_TITLE=${INDICATOR_APPLICATIONADDED_HAS_TITLE})
1144 add_definitions (-DCD_PLUGINS_DIR="${pluginsdir}")
1145 if (DBUSMENU_GTK3_NEW)
1146 add_definitions (-DDBUSMENU_GTK3_NEW=1)
1147
1148=== modified file 'Status-Notifier/src/applet-draw.c'
1149--- Status-Notifier/src/applet-draw.c 2012-02-16 01:45:57 +0000
1150+++ Status-Notifier/src/applet-draw.c 2012-03-21 20:37:19 +0000
1151@@ -101,21 +101,24 @@
1152 myData.iNbLines = myConfig.iNbLines;
1153 myData.iItemSize = MAX (1, iHeight / myConfig.iNbLines);
1154 myData.iNbColumns = ceil ((float)iNbItems / myConfig.iNbLines); // nb items by line.
1155- w = MAX (w0, myData.iItemSize * myData.iNbColumns);
1156+ w = MAX (w0, myData.iItemSize * myData.iNbColumns + myIconsParam.iIconGap * (myData.iNbColumns - 1));
1157 }
1158 else
1159 {
1160 myData.iNbColumns = myConfig.iNbLines;
1161 myData.iItemSize = MAX (1, iHeight / myConfig.iNbLines);
1162 myData.iNbLines = ceil ((float)iNbItems / myConfig.iNbLines); // nb items by line.
1163- w = MAX (w0, myData.iItemSize * myData.iNbLines);
1164+ w = MAX (w0, myData.iItemSize * myData.iNbLines + myIconsParam.iIconGap * (myData.iNbLines - 1));
1165 }
1166 cd_debug ("=== required width: %d (now: %d)", w, iWidth);
1167
1168 // if width has changed, update the icon size.
1169 if (w != iWidth)
1170 {
1171- cairo_dock_resize_applet (myApplet, w, h0);
1172+ if (myContainer->bIsHorizontal)
1173+ cairo_dock_resize_applet (myApplet, w, h0);
1174+ else
1175+ cairo_dock_resize_applet (myApplet, w0, w);
1176 }
1177 }
1178
1179@@ -143,8 +146,13 @@
1180 cairo_paint (myDrawContext);
1181 cairo_restore (myDrawContext);
1182 }
1183-
1184- int x_pad = (iWidth - myData.iItemSize * myData.iNbColumns) / 2; // pad to center the drawing.
1185+
1186+ int iIconGap;
1187+ if (myConfig.bResizeIcon)
1188+ iIconGap = myIconsParam.iIconGap;
1189+ else
1190+ iIconGap = 0;
1191+ int x_pad = (iWidth - myData.iItemSize * myData.iNbColumns - iIconGap * (myData.iNbColumns - 1)) / 2; // pad to center the drawing.
1192 int y_pad = (iHeight - myData.iItemSize * myData.iNbLines) / 2;
1193 cd_debug ("pad: %d;%d; grid: %dx%d, icon: %dx%d", x_pad, y_pad, myData.iNbLines, myData.iNbColumns, iWidth, iHeight);
1194
1195@@ -160,7 +168,7 @@
1196 cd_debug ("=== draw %s (%d)", pItem->cId, pItem->iPosition);
1197 cairo_set_source_surface (myDrawContext,
1198 pItem->pSurface,
1199- x_pad + j * myData.iItemSize,
1200+ x_pad + j * (myData.iItemSize + iIconGap),
1201 y_pad + i * myData.iItemSize);
1202 cairo_paint (myDrawContext);
1203
1204@@ -208,7 +216,7 @@
1205 {
1206 if (iPrevSize != myData.iItemSize || pItem->pSurface == NULL)
1207 {
1208- gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem);
1209+ gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem, myData.iItemSize);
1210 if (cIconPath != NULL)
1211 {
1212 if (pItem->pSurface != NULL)
1213@@ -256,11 +264,16 @@
1214 }
1215
1216 // get index on the grid.
1217- int x_pad = (iWidth - myData.iItemSize * myData.iNbColumns) / 2;
1218+ int iIconGap;
1219+ if (myConfig.bResizeIcon)
1220+ iIconGap = myIconsParam.iIconGap;
1221+ else
1222+ iIconGap = 0;
1223+ int x_pad = (iWidth - myData.iItemSize * myData.iNbColumns - iIconGap * (myData.iNbColumns - 1)) / 2;
1224 int y_pad = (iHeight - myData.iItemSize * myData.iNbLines) / 2;
1225
1226 int line, col; // line, column
1227- col = (iMouseX - x_pad) / myData.iItemSize;
1228+ col = (iMouseX - x_pad) / (myData.iItemSize + iIconGap);
1229 line = (iMouseY - y_pad) / myData.iItemSize;
1230
1231 // get item from index.
1232@@ -294,7 +307,7 @@
1233 {
1234 if (myConfig.bCompactMode)
1235 {
1236- gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem);
1237+ gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem, myData.iItemSize);
1238 if (cIconPath != NULL)
1239 {
1240 if (pItem->pSurface != NULL)
1241
1242=== modified file 'Status-Notifier/src/applet-host-ias.c'
1243--- Status-Notifier/src/applet-host-ias.c 2012-02-16 01:45:57 +0000
1244+++ Status-Notifier/src/applet-host-ias.c 2012-03-21 20:37:19 +0000
1245@@ -94,7 +94,9 @@
1246 data2);
1247 }
1248 #else // Natty
1249-#if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1250+#if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1251+static void _cd_cclosure_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING (
1252+#elif (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1253 static void _cd_cclosure_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING (
1254 #else
1255 static void _cd_cclosure_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING (
1256@@ -107,7 +109,9 @@
1257 gpointer marshal_data)
1258 {
1259 //cd_debug ("=== %s ()\n", __func__);
1260- #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1261+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1262+ typedef void (*GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING) (
1263+ #elif (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1264 typedef void (*GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING) (
1265 #else
1266 typedef void (*GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING) (
1267@@ -123,9 +127,14 @@
1268 gchar *arg_8,
1269 #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1270 gchar *arg_9,
1271+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1272+ gchar *arg_10,
1273+ #endif
1274 #endif
1275 gpointer data2);
1276- #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1277+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1278+ register GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING callback;
1279+ #elif (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1280 register GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING callback;
1281 #else
1282 register GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING callback;
1283@@ -133,7 +142,9 @@
1284 register GCClosure *cc = (GCClosure*) closure;
1285 register gpointer data1, data2;
1286 // return_value est NULL ici, car la callback ne renvoit rien.
1287- #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1288+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1289+ g_return_if_fail (n_param_values == 11);
1290+ #elif (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1291 g_return_if_fail (n_param_values == 10);
1292 #else
1293 g_return_if_fail (n_param_values == 9);
1294@@ -149,7 +160,9 @@
1295 data1 = g_value_peek_pointer (param_values + 0);
1296 data2 = closure->data;
1297 }
1298- #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1299+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1300+ callback = (GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING)
1301+ #elif (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1302 callback = (GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING)
1303 #else
1304 callback = (GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING)
1305@@ -167,6 +180,9 @@
1306 (char*) g_value_get_string (param_values + 8),
1307 #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1308 (char*) g_value_get_string (param_values + 9),
1309+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1310+ (char*) g_value_get_string (param_values + 10),
1311+ #endif
1312 #endif
1313 data2);
1314 }
1315@@ -176,21 +192,27 @@
1316 /// Signals ///
1317 ///////////////
1318
1319-static void on_new_application (DBusGProxy *proxy_watcher, const gchar *cIconName, gint iPosition, const gchar *cAdress, const gchar *cObjectPath, const gchar *cIconThemePath, const gchar *cLabel, const gchar *cLabelGuide,
1320+static void on_new_application (DBusGProxy *proxy_watcher, const gchar *cIconName, gint iPosition, const gchar *cAddress, const gchar *cObjectPath, const gchar *cIconThemePath, const gchar *cLabel, const gchar *cLabelGuide,
1321 #if (INDICATOR_OLD_NAMES == 0) // Natty
1322 const gchar *cAccessbleDesc, // WTF is this new param ??
1323 #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1324 const gchar *cHint, // <irony> is this a hint to work around a clumsy API ? </irony>
1325+#if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1326+const gchar *cTitle,
1327+#endif
1328 #endif
1329 #endif
1330 CairoDockModuleInstance *myApplet)
1331 {
1332 CD_APPLET_ENTER;
1333- cd_debug ("=== %s (%s, %s, %s, %s, %d)", __func__, cAdress, cObjectPath, cIconName, cIconThemePath, iPosition);
1334+ cd_debug ("=== %s (%s, %s, %s, %s, %d)", __func__, cAddress, cObjectPath, cIconName, cIconThemePath, iPosition);
1335 #if (INDICATOR_OLD_NAMES == 0) // Natty
1336 cd_debug (" %s", cAccessbleDesc);
1337 #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1338 cd_debug (" %s", cHint);
1339+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1340+ cd_debug (" %s", cTitle);
1341+ #endif
1342 #endif
1343 #endif
1344
1345@@ -207,14 +229,21 @@
1346 }
1347 }
1348
1349- cd_satus_notifier_add_new_item_with_default (cAdress, cObjectPath, iPosition,
1350+ cd_satus_notifier_add_new_item_with_default (cAddress, cObjectPath, iPosition,
1351 #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1352 cIconName ? cIconName : cHint,
1353 #else
1354 cIconName,
1355 #endif
1356 cIconThemePath,
1357- cLabel);
1358+ #if (INDICATOR_OLD_NAMES == 0)
1359+ cAccessbleDesc && *cAccessbleDesc != '\0' ? cAccessbleDesc :
1360+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1361+ cTitle && *cTitle != '\0' ? cTitle :
1362+ #endif
1363+ #endif
1364+ cLabel
1365+ );
1366
1367 CD_APPLET_LEAVE ();
1368 }
1369@@ -264,6 +293,15 @@
1370 G_TYPE_STRING, // iconpath
1371 G_TYPE_STRING, // label
1372 G_TYPE_STRING, // labelguide
1373+ #if (INDICATOR_OLD_NAMES == 0) // Natty
1374+ G_TYPE_STRING, // accessibledesc
1375+ #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1376+ G_TYPE_STRING, // hint
1377+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1378+ G_TYPE_STRING, // title
1379+ #endif
1380+ #endif
1381+ #endif
1382 G_TYPE_INVALID));
1383 gboolean bSuccess = dbus_g_proxy_end_call (proxy,
1384 call_id,
1385@@ -280,14 +318,15 @@
1386 CD_APPLET_LEAVE ();
1387
1388 //\______________________ build each items.
1389- cd_debug ("=== got %d aplications", pApplications->len);
1390+ cd_debug ("=== got %d applications", pApplications->len);
1391 guint i, j;
1392 GValueArray *va;
1393 GValue *v;
1394- CDStatusNotifierItem *pItem=NULL;
1395+ CDStatusNotifierItem *pItem = NULL;
1396 //cd_debug ("=== %d apps in the systray", pApplications->len);
1397 for (i = 0; i < pApplications->len; i ++)
1398 {
1399+ // get the properties of the item
1400 cd_debug ("=== %d) %p", i, pApplications->pdata[i]);
1401 va = pApplications->pdata[i];
1402 if (! va)
1403@@ -295,11 +334,14 @@
1404
1405 const gchar *cIconName = NULL;
1406 gint iPosition = -1;
1407- const gchar *cAdress = NULL;
1408+ const gchar *cAddress = NULL;
1409 const gchar *cObjectPath = NULL;
1410 const gchar *cIconThemePath = NULL;
1411 const gchar *cLabel = NULL;
1412 const gchar *cLabelGuide = NULL;
1413+ const gchar *cAccessibleDesc = NULL; // natty
1414+ // const gchar *cHint = NULL; // oneiric
1415+ const gchar *cTitle = NULL; // precise
1416
1417 v = g_value_array_get_nth (va, 0);
1418 if (v && G_VALUE_HOLDS_STRING (v))
1419@@ -311,7 +353,7 @@
1420
1421 v = g_value_array_get_nth (va, 2);
1422 if (v && G_VALUE_HOLDS_STRING (v))
1423- cAdress = g_value_get_string (v);
1424+ cAddress = g_value_get_string (v);
1425
1426 v = g_value_array_get_nth (va, 3);
1427 if (v && G_VALUE_HOLDS (v, DBUS_TYPE_G_OBJECT_PATH))
1428@@ -337,22 +379,59 @@
1429 if (v && G_VALUE_HOLDS_STRING (v))
1430 cLabelGuide = g_value_get_string (v);
1431
1432- cd_debug ("=== + item {%s ; %d ; %s ; %s ; %s ; %s ; %s}",
1433+ #if (INDICATOR_OLD_NAMES == 0)
1434+ v = g_value_array_get_nth (va, 7);
1435+ if (v && G_VALUE_HOLDS_STRING (v))
1436+ cAccessibleDesc = g_value_get_string (v);
1437+
1438+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1439+ v = g_value_array_get_nth (va, 9);
1440+ if (v && G_VALUE_HOLDS_STRING (v))
1441+ cTitle = g_value_get_string (v);
1442+ #endif
1443+ #endif
1444+
1445+ cd_debug ("=== + item {%s ; %d ; %s ; %s ; %s ; %s ; %s ; %s ; %s}",
1446 cIconName,
1447 iPosition,
1448- cAdress,
1449+ cAddress,
1450 cObjectPath,
1451 cIconThemePath,
1452 cLabel,
1453- cLabelGuide);
1454-
1455- pItem = cd_satus_notifier_create_item (cAdress, cObjectPath);
1456+ cLabelGuide,
1457+ cAccessibleDesc,
1458+ cTitle);
1459+
1460+ if (!cAddress)
1461+ continue;
1462+
1463+ // ensure we're not duplicating an existing item (this should never happen if the service is ok, but since it doesn't depend on us, let's be careful).
1464+ GList *it;
1465+ for (it = myData.pItems; it != NULL; it = it->next)
1466+ {
1467+ pItem = it->data;
1468+ if (strcmp (cAddress, pItem->cService) == 0) // pItem->cService is never NULL
1469+ {
1470+ cd_warning ("Duplicated item: %s (%s)", cIconName, cAddress);
1471+ return;
1472+ }
1473+ if (iPosition != -1 && pItem->iPosition == iPosition)
1474+ {
1475+ cd_warning ("Possible duplicated item: %s/%s/%d , %s/%s/%d)", cIconName, cAddress, iPosition, pItem->cIconName, pItem->cService, pItem->iPosition);
1476+ }
1477+ }
1478+
1479+ // make a new item based on these properties.
1480+ pItem = cd_satus_notifier_create_item (cAddress, cObjectPath);
1481 if (! pItem)
1482 continue;
1483 if (pItem->iPosition == -1)
1484 pItem->iPosition = iPosition;
1485- if (pItem->cTitle == NULL && pItem->cLabel == NULL)
1486- pItem->cLabel = g_strdup (cLabel && *cLabel != '\0' ? cLabel : pItem->cId);
1487+ if (pItem->cTitle == NULL && pItem->cLabel == NULL && pItem->cAccessibleDesc == NULL)
1488+ pItem->cLabel = g_strdup (cAccessibleDesc && *cAccessibleDesc != '\0' ? cAccessibleDesc :
1489+ cLabel && *cLabel != '\0' ? cLabel :
1490+ cTitle && *cTitle != '\0' ? cTitle :
1491+ NULL); // don't use cId as a fallback, because it often has cryptic names (nm-applet ; dropbox-xxxx). If the appli doesn't provide a title, it's its fault.
1492 myData.pItems = g_list_prepend (myData.pItems, pItem);
1493 }
1494
1495@@ -396,7 +475,9 @@
1496 G_TYPE_NONE, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
1497 #else // Natty
1498 dbus_g_object_register_marshaller(
1499- #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1500+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1501+ _cd_cclosure_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING_STRING,
1502+ #elif (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1503 _cd_cclosure_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING_STRING,
1504 #else
1505 _cd_cclosure_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING_STRING,
1506@@ -406,6 +487,9 @@
1507 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
1508 #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1509 G_TYPE_STRING,
1510+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1511+ G_TYPE_STRING,
1512+ #endif
1513 #endif
1514 G_TYPE_INVALID);
1515 #endif
1516@@ -425,6 +509,9 @@
1517 G_TYPE_STRING, // accessibledesc
1518 #if (INDICATOR_APPLICATIONADDED_HAS_HINT == 1)
1519 G_TYPE_STRING, // hint => only with indicator-0.4 (Oneiric)
1520+ #if (INDICATOR_APPLICATIONADDED_HAS_TITLE == 1)
1521+ G_TYPE_STRING, // title => only with indicator-0.4.90 (Precise)
1522+ #endif
1523 #endif
1524 #endif
1525 G_TYPE_INVALID);
1526@@ -436,6 +523,7 @@
1527 G_TYPE_INVALID);
1528 dbus_g_proxy_connect_signal(myData.pProxyIndicatorApplicationService, "ApplicationRemoved",
1529 G_CALLBACK(on_removed_application), myApplet, NULL);
1530+ // TODO? ApplicationIconChanged, ApplicationIconThemePathChanged, ApplicationLabelChanged, ApplicationTitleChanged
1531 }
1532
1533 //////////////////
1534
1535=== modified file 'Status-Notifier/src/applet-host.c'
1536--- Status-Notifier/src/applet-host.c 2012-02-16 01:45:57 +0000
1537+++ Status-Notifier/src/applet-host.c 2012-03-21 20:37:19 +0000
1538@@ -203,7 +203,8 @@
1539 g_hash_table_insert (myData.pThemePaths, g_strdup (cThemePath), GINT_TO_POINTER (ref)); // et on la met a jour dans la table.
1540
1541 if (ref == 1) // premiere fois qu'on voit ce chemin.
1542- gtk_icon_theme_append_search_path (gtk_icon_theme_get_default(), cThemePath); // append car ce sont des icones par defaut.
1543+ ///gtk_icon_theme_append_search_path (gtk_icon_theme_get_default(), cThemePath); // append car ce sont des icones par defaut.
1544+ cairo_dock_add_path_to_icon_theme (cThemePath);
1545 }
1546
1547 void cd_satus_notifier_remove_theme_path (const gchar * cThemePath)
1548@@ -217,7 +218,8 @@
1549 {
1550 g_hash_table_remove (myData.pThemePaths, cThemePath); // on le supprime de la table.
1551
1552- GtkIconTheme *pIconTheme = gtk_icon_theme_get_default(); // et du theme.
1553+ cairo_dock_remove_path_from_icon_theme (cThemePath);
1554+ /**GtkIconTheme *pIconTheme = gtk_icon_theme_get_default(); // et du theme.
1555 gchar **paths = NULL;
1556 gint iNbPaths = 0;
1557 gtk_icon_theme_get_search_path (pIconTheme, &paths, &iNbPaths);
1558@@ -239,7 +241,7 @@
1559 gtk_icon_theme_set_search_path (pIconTheme, (const gchar **)paths, iNbPaths - 1);
1560 }
1561
1562- g_strfreev (paths);
1563+ g_strfreev (paths);*/
1564 }
1565 else // on decremente la reference.
1566 {
1567
1568=== modified file 'Status-Notifier/src/applet-item.c'
1569--- Status-Notifier/src/applet-item.c 2012-02-16 01:45:57 +0000
1570+++ Status-Notifier/src/applet-item.c 2012-03-21 20:37:19 +0000
1571@@ -145,6 +145,8 @@
1572
1573 g_free (pItem->cIconName);
1574 pItem->cIconName = cairo_dock_dbus_get_property_as_string (pItem->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "IconName");
1575+ g_free (pItem->cAccessibleDesc);
1576+ pItem->cAccessibleDesc = cairo_dock_dbus_get_property_as_string (pItem->pProxyProps, CD_STATUS_NOTIFIER_ITEM_IFACE, "IconAccessibleDesc");
1577 //g_print ("=== new icon : %s\n", pItem->cIconName);
1578
1579 if (pItem->iStatus != CD_STATUS_NEEDS_ATTENTION)
1580@@ -328,7 +330,7 @@
1581 CD_APPLET_LEAVE ();
1582 }
1583
1584-gchar *cd_satus_notifier_search_item_icon_s_path (CDStatusNotifierItem *pItem)
1585+gchar *cd_satus_notifier_search_item_icon_s_path (CDStatusNotifierItem *pItem, gint iSize)
1586 {
1587 g_return_val_if_fail (pItem != NULL, NULL);
1588 gchar *cImageName = (pItem->iStatus == CD_STATUS_NEEDS_ATTENTION ? pItem->cAttentionIconName: pItem->cIconName);
1589@@ -346,7 +348,7 @@
1590
1591 if (cIconPath == NULL)
1592 {
1593- cIconPath = cairo_dock_search_icon_s_path (cImageName);
1594+ cIconPath = cairo_dock_search_icon_s_path (cImageName, iSize);
1595 }
1596
1597 if (cIconPath == NULL)
1598@@ -358,7 +360,7 @@
1599 CDStatusNotifierItem *cd_satus_notifier_create_item (const gchar *cService, const gchar *cObjectPath)
1600 {
1601 g_return_val_if_fail (cService != NULL, NULL);
1602- g_print ("=== %s (%s, %s)\n", __func__, cService, cObjectPath);
1603+ cd_debug ("=== %s (%s, %s)", __func__, cService, cObjectPath);
1604
1605 gchar *str = strchr (cService, '/'); // just to be sure.
1606 if (str)
1607@@ -372,7 +374,6 @@
1608 const gchar *str = strrchr (cObjectPath, '/');
1609 if (str)
1610 {
1611-
1612 cRealObjectPath = g_strndup (cObjectPath, str - cObjectPath);
1613 }
1614 }
1615@@ -470,7 +471,7 @@
1616
1617 const gchar *cLabel = NULL;
1618 v = g_hash_table_lookup (hProps, "XAyatanaLabel");
1619- if (v && G_VALUE_HOLDS_BOXED(v))
1620+ if (v && G_VALUE_HOLDS_STRING(v))
1621 {
1622 cLabel = g_value_get_string (v);
1623 }
1624@@ -478,11 +479,18 @@
1625
1626 const gchar *cLabelGuide = NULL;
1627 v = g_hash_table_lookup (hProps, "XAyatanaLabelGuide");
1628- if (v && G_VALUE_HOLDS_BOXED(v))
1629+ if (v && G_VALUE_HOLDS_STRING(v))
1630 {
1631 cLabelGuide = g_value_get_string (v);
1632 }
1633 //g_print ("=== cLabelGuide '%s'\n", cLabelGuide);
1634+
1635+ const gchar *cAccessibleDesc = NULL;
1636+ v = g_hash_table_lookup (hProps, "IconAccessibleDesc");
1637+ if (v && G_VALUE_HOLDS_STRING(v))
1638+ {
1639+ cAccessibleDesc = g_value_get_string (v);
1640+ } // Updated with ApplicationIconChanged
1641
1642 // properties supported by KDE.
1643 const gchar *cTitle = NULL;
1644@@ -491,7 +499,7 @@
1645 {
1646 cTitle = g_value_get_string (v);
1647 }
1648- cd_debug ("=== Title '%s", cTitle);
1649+ cd_debug ("=== Title '%s'", cTitle);
1650
1651 v = g_hash_table_lookup (hProps, "WindowId");
1652 guint iWindowId = 0;
1653@@ -524,6 +532,13 @@
1654 pToolTipTab = g_value_get_boxed (v);
1655 }
1656
1657+ gboolean bItemIsMenu = FALSE; // "when is true the dbusmenu will be shown instead of emitting Activate()"
1658+ v = g_hash_table_lookup (hProps, "ItemIsMenu");
1659+ if (v && G_VALUE_HOLDS_BOOLEAN (v))
1660+ {
1661+ bItemIsMenu = g_value_get_boolean (v);
1662+ }
1663+
1664 DBusGProxy *pProxyItem = cairo_dock_create_new_session_proxy (
1665 cService,
1666 cRealObjectPath ? cRealObjectPath : cObjectPath,
1667@@ -541,7 +556,9 @@
1668 pItem->cTitle = g_strdup (cTitle);
1669 pItem->cLabel = g_strdup (cLabel);
1670 pItem->cLabelGuide = g_strdup (cLabelGuide);
1671- pItem->cMenuPath = (cMenuPath ? g_strdup (cMenuPath) : g_strdup (cObjectPath));
1672+ pItem->cAccessibleDesc = g_strdup (cAccessibleDesc);
1673+ ///pItem->cMenuPath = (cMenuPath ? g_strdup (cMenuPath) : g_strdup (cObjectPath));
1674+ pItem->cMenuPath = g_strdup (cMenuPath); // if NULL, we'll just send the ContextMenu() signal.
1675 pItem->iWindowId = iWindowId;
1676 pItem->iCategory = _find_category (cCategory);
1677 pItem->iStatus = _find_status (cStatus);
1678@@ -550,6 +567,7 @@
1679 pItem->cAttentionIconName = g_strdup (cAttentionIconName);
1680 pItem->cAttentionMovieName = g_strdup (cAttentionMovieName);
1681 pItem->cOverlayIconName = g_strdup (cOverlayIconName);
1682+ pItem->bItemIsMenu = bItemIsMenu;
1683 if (pToolTipTab)
1684 {
1685 pItem->pToolTip = _make_tooltip_from_dbus_struct (pToolTipTab);
1686@@ -630,6 +648,7 @@
1687 g_free (pItem->cAttentionIconName);
1688 g_free (pItem->cLabel);
1689 g_free (pItem->cLabelGuide);
1690+ g_free (pItem->cAccessibleDesc);
1691 g_free (pItem->cTitle);
1692 g_free (pItem->cAttentionMovieName);
1693 g_free (pItem->cOverlayIconName);
1694@@ -645,7 +664,7 @@
1695 int iHeight = icon->iImageHeight;
1696
1697 CDStatusNotifierItem *pItem = cd_satus_notifier_get_item_from_icon (icon);
1698- gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem);
1699+ gchar *cIconPath = cd_satus_notifier_search_item_icon_s_path (pItem, MAX (iWidth, iHeight));
1700 if (cIconPath != NULL && *cIconPath != '\0')
1701 icon->pIconBuffer = cairo_dock_create_surface_from_image_simple (cIconPath,
1702 iWidth,
1703
1704=== modified file 'Status-Notifier/src/applet-item.h'
1705--- Status-Notifier/src/applet-item.h 2012-02-16 01:45:57 +0000
1706+++ Status-Notifier/src/applet-item.h 2012-03-21 20:37:19 +0000
1707@@ -27,7 +27,7 @@
1708
1709 void cd_free_item (CDStatusNotifierItem *pItem);
1710
1711-gchar *cd_satus_notifier_search_item_icon_s_path (CDStatusNotifierItem *pItem);
1712+gchar *cd_satus_notifier_search_item_icon_s_path (CDStatusNotifierItem *pItem, gint iSize);
1713
1714 Icon *cd_satus_notifier_create_icon_for_item (CDStatusNotifierItem *pItem);
1715
1716
1717=== modified file 'Status-Notifier/src/applet-notifications.c'
1718--- Status-Notifier/src/applet-notifications.c 2012-02-16 01:45:57 +0000
1719+++ Status-Notifier/src/applet-notifications.c 2012-03-21 20:37:19 +0000
1720@@ -87,7 +87,7 @@
1721 static inline gboolean _popup_menu (CDStatusNotifierItem *pItem, Icon *pIcon, CairoContainer *pContainer)
1722 {
1723 gboolean r = FALSE;
1724- if (pItem->cMenuPath != NULL)
1725+ if (pItem->cMenuPath != NULL && *pItem->cMenuPath != '\0' && strcmp (pItem->cMenuPath, "/NO_DBUSMENU") != 0) // hopefully, if the item doesn't have a dbusmenu, it will not set something different as these 2 choices.
1726 {
1727 if (pItem->pMenu == NULL)
1728 pItem->pMenu = dbusmenu_gtkmenu_new ((gchar *)pItem->cService, (gchar *)pItem->cMenuPath);
1729@@ -98,15 +98,17 @@
1730 }
1731 }
1732
1733- if (!r)
1734+ if (!r) // no menu available, send the corresponding action
1735 {
1736 r = _emit_click (pItem, pIcon, pContainer, "ContextMenu");
1737 }
1738
1739- if (!r)
1740+ if (!r) // no luck, try to fallback on 'activate()'
1741 {
1742 r = _emit_click (pItem, pIcon, pContainer, "Activate");
1743 }
1744+
1745+ return r;
1746 }
1747
1748 CD_APPLET_ON_CLICK_BEGIN
1749@@ -114,19 +116,22 @@
1750 //g_print ("click on item '%s'\n", pItem?pItem->cService:"none");
1751 if (pItem != NULL)
1752 {
1753- if (myConfig.bMenuOnLeftClick)
1754+ // Ubuntu-like: show the menu on left click as the sole action (right-click = usual Cairo-Dock menu).
1755+ if (myConfig.bMenuOnLeftClick || pItem->bItemIsMenu) // if bItemIsMenu: "The item only support the context menu, the visualization should prefer sending ContextMenu() instead of Activate()"
1756 {
1757 _popup_menu (pItem, CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER);
1758 }
1759- else
1760+ else // KDE-like: activate the item on left click, and show its menu on right-click.
1761 {
1762- gboolean r = _emit_click (pItem, CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER, "Activate");
1763+ gboolean r;
1764+ r = _emit_click (pItem, CD_APPLET_CLICKED_ICON, CD_APPLET_CLICKED_CONTAINER, "Activate");
1765+
1766 if (!r)
1767 {
1768 if (pItem->cId != NULL)
1769 {
1770 /// TODO: try to get the icon in the taskbar, because launch the command doesn't raise the window if it was already visible (but it does pop up it if it was hidden, usually).
1771- cairo_dock_launch_command (pItem->cId); // lancer une nouvelle fois l'appli montre sa fenetre (enfin, generalement).
1772+ cairo_dock_launch_command (pItem->cId); // try to launch the application because generally this click shows its item's window.
1773 }
1774 }
1775 }
1776@@ -197,7 +202,7 @@
1777 gchar *cIconPath = NULL;
1778 if (pItemData->pToolTip->cIconName)
1779 {
1780- cIconPath = cairo_dock_search_icon_s_path (pItemData->pToolTip->cIconName);
1781+ cIconPath = cairo_dock_search_icon_s_path (pItemData->pToolTip->cIconName, 32); // dialog
1782 }
1783
1784 cairo_dock_show_temporary_dialog_with_icon (cText, pIcon, CAIRO_CONTAINER (myIcon->pSubDock), 3000, cIconPath ? cIconPath : "same icon");
1785@@ -251,7 +256,13 @@
1786 if (pItem == NULL)
1787 CD_APPLET_SET_NAME_FOR_MY_ICON (NULL);
1788 else
1789- CD_APPLET_SET_NAME_FOR_MY_ICON (pItem->cLabel ? pItem->cLabel : pItem->cTitle ? pItem->cTitle : pItem->cId);
1790+ CD_APPLET_SET_NAME_FOR_MY_ICON (
1791+ pItem->cAccessibleDesc && *pItem->cAccessibleDesc != '\0' ? pItem->cAccessibleDesc :
1792+ pItem->cLabel && *pItem->cLabel != '\0' ? pItem->cLabel :
1793+ pItem->cTitle && *pItem->cTitle != '\0' ? pItem->cTitle :
1794+ NULL);
1795+ // pItem->cId && *pItem->cId != '\0' ? pItem->cId :
1796+ // maybe better to not display cId, e.g: nm-applet ; dropbox-xxxx ; etc.
1797
1798 if (myDock)
1799 CAIRO_DOCK_REDRAW_MY_CONTAINER;
1800
1801=== modified file 'Status-Notifier/src/applet-struct.h'
1802--- Status-Notifier/src/applet-struct.h 2012-02-16 01:45:57 +0000
1803+++ Status-Notifier/src/applet-struct.h 2012-03-21 20:37:19 +0000
1804@@ -84,12 +84,13 @@
1805 gchar *cLabel;
1806 gchar *cLabelGuide;
1807 gchar *cMenuPath;
1808+ gchar *cAccessibleDesc;
1809 // additionnal props supported by KDE
1810 Window iWindowId;
1811 gchar *cAttentionMovieName;
1812 gchar *cOverlayIconName;
1813 CDToolTip *pToolTip;
1814-
1815+ gboolean bItemIsMenu;
1816 gint iPosition; // donnee par l'indicator service
1817 guint iSidPopupTooltip;
1818 // data
1819
1820=== modified file 'System-Monitor/data/System-Monitor.conf.in'
1821--- System-Monitor/data/System-Monitor.conf.in 2012-02-16 01:45:57 +0000
1822+++ System-Monitor/data/System-Monitor.conf.in 2012-03-21 20:37:19 +0000
1823@@ -20,8 +20,8 @@
1824 #{Set to 0 to use the default applet size}
1825 icon size = 0;0
1826
1827-#B Always display the icon, even when the dock is hidden?
1828-always visi = false
1829+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
1830+always_visi = 0
1831
1832 #C+ Background color to add in this case
1833 bg color = .8;.8;.8;.5
1834
1835=== modified file 'Toons/data/Toons.conf.in'
1836--- Toons/data/Toons.conf.in 2012-02-16 01:45:57 +0000
1837+++ Toons/data/Toons.conf.in 2012-03-21 20:37:19 +0000
1838@@ -20,8 +20,8 @@
1839 #{Set to 0 to use the default applet size}
1840 icon size = 0;0
1841
1842-#B Always display the icon, even when the dock is hidden?
1843-always visi = false
1844+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
1845+always_visi = 0
1846
1847 #C+ Background color to add in this case
1848 bg color = .8;.8;.8;.5
1849
1850=== modified file 'Toons/src/applet-notifications.c'
1851--- Toons/src/applet-notifications.c 2012-02-16 01:45:57 +0000
1852+++ Toons/src/applet-notifications.c 2012-03-21 20:37:19 +0000
1853@@ -36,7 +36,7 @@
1854 CD_APPLET_ON_UPDATE_ICON_BEGIN
1855 //\_________________ On chope les coordonnees du curseur par rapport a notre container.
1856 int iMouseX, iMouseY;
1857- gdk_window_get_pointer (gldi_container_get_gdk_window (myContainer), &iMouseX, &iMouseY, NULL);
1858+ gldi_display_get_pointer (&iMouseX, &iMouseY);
1859
1860 //\_________________ On calcule les nouvelles coordonnees.
1861 gboolean bNeedsUpdate = FALSE;
1862
1863=== modified file 'alsaMixer/data/AlsaMixer.conf.in'
1864--- alsaMixer/data/AlsaMixer.conf.in 2012-02-16 01:45:57 +0000
1865+++ alsaMixer/data/AlsaMixer.conf.in 2012-03-21 20:37:19 +0000
1866@@ -21,8 +21,8 @@
1867 #{Set to 0 to use the default applet size}
1868 icon size = 0;0
1869
1870-#B Always display the icon, even when the dock is hidden?
1871-always visi = false
1872+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
1873+always_visi = 0
1874
1875 #C+ Background color to add in this case
1876 bg color = .8;.8;.8;.5
1877
1878=== modified file 'alsaMixer/data/preview.jpg'
1879Binary files alsaMixer/data/preview.jpg 2010-04-20 01:52:21 +0000 and alsaMixer/data/preview.jpg 2012-03-21 20:37:19 +0000 differ
1880=== modified file 'alsaMixer/src/CMakeLists.txt'
1881--- alsaMixer/src/CMakeLists.txt 2012-02-16 01:45:57 +0000
1882+++ alsaMixer/src/CMakeLists.txt 2012-03-21 20:37:19 +0000
1883@@ -37,6 +37,7 @@
1884 add_definitions (-DMY_APPLET_ICON_FILE="icon.png")
1885 if ("${with_soundmenu}" STREQUAL "yes")
1886 add_definitions (-DSOUND_SERVICE_SUPPORT="1")
1887+ add_definitions (-DSOUND_SERVICE_VERSION=${SOUND_SERVICE_VERSION})
1888 endif()
1889 if (DBUSMENU_GTK3_NEW)
1890 add_definitions (-DDBUSMENU_GTK3_NEW=1)
1891
1892=== modified file 'alsaMixer/src/applet-backend-sound-menu.c'
1893--- alsaMixer/src/applet-backend-sound-menu.c 2012-02-16 01:45:57 +0000
1894+++ alsaMixer/src/applet-backend-sound-menu.c 2012-03-21 20:37:19 +0000
1895@@ -23,7 +23,11 @@
1896 #include <stdlib.h>
1897 #include <string.h>
1898
1899+#if (SOUND_SERVICE_VERSION < 1)
1900+#include "dbus-shared-names-old.h"
1901+#else
1902 #include "dbus-shared-names.h"
1903+#endif
1904
1905 #include "common-defs.h"
1906 #include "volume-widget.h"
1907
1908=== modified file 'alsaMixer/src/applet-draw.c'
1909--- alsaMixer/src/applet-draw.c 2012-02-16 01:45:57 +0000
1910+++ alsaMixer/src/applet-draw.c 2012-03-21 20:37:19 +0000
1911@@ -46,6 +46,7 @@
1912
1913 static void mixer_draw_bar (cairo_surface_t *pSurface)
1914 {
1915+ g_print ("%s (%p, %d)\n", __func__, pSurface, myData.iCurrentVolume);
1916 CD_APPLET_SET_SURFACE_ON_MY_ICON_WITH_BAR (pSurface, myData.iCurrentVolume * .01);
1917 }
1918
1919@@ -148,7 +149,7 @@
1920
1921 if (myConfig.cDefaultIcon != NULL)
1922 {
1923- gchar *cImagePath = cairo_dock_search_icon_s_path (myConfig.cDefaultIcon);
1924+ gchar *cImagePath = cairo_dock_search_icon_s_path (myConfig.cDefaultIcon, MAX (myIcon->iImageWidth, myIcon->iImageHeight));
1925 if (cImagePath == NULL)
1926 cImagePath = cairo_dock_search_image_s_path (myConfig.cDefaultIcon);
1927 if (cImagePath != NULL)
1928@@ -174,7 +175,7 @@
1929 {
1930 if (myConfig.cMuteIcon != NULL)
1931 {
1932- gchar *cImagePath = cairo_dock_search_icon_s_path (myConfig.cMuteIcon);
1933+ gchar *cImagePath = cairo_dock_search_icon_s_path (myConfig.cMuteIcon, MAX (myIcon->iImageWidth, myIcon->iImageHeight));
1934 if (cImagePath == NULL)
1935 cImagePath = cairo_dock_search_image_s_path (myConfig.cMuteIcon);
1936 if (cImagePath != NULL)
1937
1938=== modified file 'alsaMixer/src/applet-init.c'
1939--- alsaMixer/src/applet-init.c 2012-02-16 01:45:57 +0000
1940+++ alsaMixer/src/applet-init.c 2012-03-21 20:37:19 +0000
1941@@ -33,10 +33,9 @@
1942 CAIRO_DOCK_CATEGORY_APPLET_SYSTEM,
1943 N_("This applet lets you control the sound volume from the dock.\n"
1944 "Scroll up/down on the icon to increase/decrease the volume.\n"
1945- "Click on icon to show/hide volume control (you can bind a keyboard shortcut for it)\n"
1946- "You can also hide the dialog by clicking on it.\n"
1947+ "Click on icon to show/hide the volume control (you can bind a keyboard shortcut for it)\n"
1948 "Middle-click to set or unset to mute, double-click to raise the channels mixer.\n"
1949- "This applet works with the Alsa sound driver."),
1950+ "The applet can either use the Ubuntu Sound-menu or the Alsa driver."),
1951 "Fabounet (Fabrice Rey)")
1952 CD_APPLET_DEFINE_COMMON_APPLET_INTERFACE
1953 CD_APPLET_ALLOW_EMPTY_TITLE
1954@@ -247,11 +246,9 @@
1955 if (myDesklet && myDesklet->container.iHeight <= 64)
1956 gtk_widget_hide (myData.pScale);
1957
1958- CD_APPLET_RELOAD_MY_DATA_RENDERER (NULL);
1959+ if (myConfig.iVolumeEffect == VOLUME_EFFECT_GAUGE)
1960+ CD_APPLET_RELOAD_MY_DATA_RENDERER (NULL);
1961
1962- if (myData.pControledElement != NULL)
1963- {
1964- cd_update_icon ();
1965- }
1966+ cd_update_icon ();
1967 }
1968 CD_APPLET_RELOAD_END
1969
1970=== modified file 'alsaMixer/src/applet-notifications.c'
1971--- alsaMixer/src/applet-notifications.c 2012-02-16 01:45:57 +0000
1972+++ alsaMixer/src/applet-notifications.c 2012-03-21 20:37:19 +0000
1973@@ -26,6 +26,7 @@
1974 #include "applet-generic.h"
1975 #include "applet-notifications.h"
1976
1977+static const gchar *s_cMixerCmd = NULL;
1978
1979 CD_APPLET_ON_CLICK_BEGIN
1980 cd_show_hide ();
1981@@ -40,18 +41,9 @@
1982 {
1983 g_spawn_command_line_async (myConfig.cShowAdvancedMixerCommand, &erreur);
1984 }
1985- else
1986+ else if (s_cMixerCmd != NULL)
1987 {
1988- gchar *cResult = cairo_dock_launch_command_sync ("which gnome-volume-control");
1989- if (cResult != NULL && *cResult == '/')
1990- {
1991- g_spawn_command_line_async ("gnome-volume-control -p applications", &erreur); // gnome 2
1992- }
1993- else /// TODO: we need to handle the other DE too ...
1994- {
1995- g_spawn_command_line_async ("gnome-control-center sound", &erreur); // Gnome 3
1996- }
1997- g_free (cResult);
1998+ g_spawn_command_line_async (s_cMixerCmd, &erreur);
1999 }
2000
2001 if (erreur != NULL)
2002@@ -62,11 +54,33 @@
2003 CD_APPLET_LEAVE();
2004 }
2005 CD_APPLET_ON_BUILD_MENU_BEGIN
2006+ static gboolean bMixerChecked = FALSE;
2007 gchar *cLabel;
2008
2009- cLabel = g_strdup_printf ("%s (%s)", D_("Adjust channels"), D_("double-click"));
2010- CD_APPLET_ADD_IN_MENU_WITH_STOCK (cLabel, GTK_STOCK_PREFERENCES, _mixer_show_advanced_mixer, CD_APPLET_MY_MENU);
2011- g_free (cLabel);
2012+ if (!myConfig.cShowAdvancedMixerCommand && !bMixerChecked)
2013+ {
2014+ bMixerChecked = TRUE;
2015+ gchar *cResult = cairo_dock_launch_command_sync ("which gnome-control-center"); // Gnome3
2016+ if (cResult != NULL && *cResult == '/')
2017+ {
2018+ s_cMixerCmd = "gnome-control-center sound";
2019+ }
2020+ else
2021+ {
2022+ g_free (cResult);
2023+ cResult = cairo_dock_launch_command_sync ("which gnome-volume-control"); // Gnome2
2024+ if (cResult != NULL && *cResult == '/') /// TODO: other DE...
2025+ s_cMixerCmd = "gnome-volume-control -p applications";
2026+ } /// TODO: handle other DE ...
2027+ g_free (cResult);
2028+ }
2029+
2030+ if (myConfig.cShowAdvancedMixerCommand || s_cMixerCmd)
2031+ {
2032+ cLabel = g_strdup_printf ("%s (%s)", D_("Adjust channels"), D_("double-click"));
2033+ CD_APPLET_ADD_IN_MENU_WITH_STOCK (cLabel, GTK_STOCK_PREFERENCES, _mixer_show_advanced_mixer, CD_APPLET_MY_MENU);
2034+ g_free (cLabel);
2035+ }
2036
2037 cLabel = g_strdup_printf ("%s (%s)", (myData.bIsMute ? D_("Unmute") : D_("Mute")), D_("middle-click"));
2038 CD_APPLET_ADD_IN_MENU_WITH_STOCK (cLabel, MY_APPLET_SHARE_DATA_DIR"/emblem-mute.svg", cd_toggle_mute, CD_APPLET_MY_MENU);
2039
2040=== added file 'alsaMixer/src/dbus-shared-names-old.h'
2041--- alsaMixer/src/dbus-shared-names-old.h 1970-01-01 00:00:00 +0000
2042+++ alsaMixer/src/dbus-shared-names-old.h 2012-03-21 20:37:19 +0000
2043@@ -0,0 +1,37 @@
2044+/*
2045+A small wrapper utility to load indicators and put them as menu items
2046+into the gnome-panel using it's applet interface.
2047+
2048+Copyright 2010 Canonical Ltd.
2049+
2050+Authors:
2051+ Conor Curran <conor.curran@canonical.com>
2052+ Ted Gould <ted@canonical.com>
2053+
2054+This program is free software: you can redistribute it and/or modify it
2055+under the terms of the GNU General Public License version 3, as published
2056+by the Free Software Foundation.
2057+
2058+This program is distributed in the hope that it will be useful, but
2059+WITHOUT ANY WARRANTY; without even the implied warranties of
2060+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
2061+PURPOSE. See the GNU General Public License for more details.
2062+
2063+You should have received a copy of the GNU General Public License along
2064+with this program. If not, see <http://www.gnu.org/licenses/>.
2065+*/
2066+
2067+
2068+#ifndef __DBUS_SHARED_NAMES_H__
2069+#define __DBUS_SHARED_NAMES_H__
2070+
2071+#define INDICATOR_SOUND_DBUS_NAME "com.canonical.indicators.sound"
2072+#define INDICATOR_SOUND_MENU_DBUS_OBJECT_PATH "/com/canonical/indicators/sound/menu"
2073+#define INDICATOR_SOUND_SERVICE_DBUS_OBJECT_PATH "/com/canonical/indicators/sound/service"
2074+#define INDICATOR_SOUND_DBUS_INTERFACE "com.canonical.indicators.sound"
2075+#define INDICATOR_SOUND_DBUS_VERSION 0
2076+
2077+#define INDICATOR_SOUND_SIGNAL_STATE_UPDATE "SoundStateUpdate"
2078+
2079+
2080+#endif /* __DBUS_SHARED_NAMES_H__ */
2081
2082=== modified file 'alsaMixer/src/dbus-shared-names.h'
2083--- alsaMixer/src/dbus-shared-names.h 2012-02-16 01:45:57 +0000
2084+++ alsaMixer/src/dbus-shared-names.h 2012-03-21 20:37:19 +0000
2085@@ -25,10 +25,10 @@
2086 #ifndef __DBUS_SHARED_NAMES_H__
2087 #define __DBUS_SHARED_NAMES_H__
2088
2089-#define INDICATOR_SOUND_DBUS_NAME "com.canonical.indicators.sound"
2090-#define INDICATOR_SOUND_MENU_DBUS_OBJECT_PATH "/com/canonical/indicators/sound/menu"
2091-#define INDICATOR_SOUND_SERVICE_DBUS_OBJECT_PATH "/com/canonical/indicators/sound/service"
2092-#define INDICATOR_SOUND_DBUS_INTERFACE "com.canonical.indicators.sound"
2093+#define INDICATOR_SOUND_DBUS_NAME "com.canonical.indicator.sound"
2094+#define INDICATOR_SOUND_MENU_DBUS_OBJECT_PATH "/com/canonical/indicator/sound/menu"
2095+#define INDICATOR_SOUND_SERVICE_DBUS_OBJECT_PATH "/com/canonical/indicator/sound/service"
2096+#define INDICATOR_SOUND_DBUS_INTERFACE "com.canonical.indicator.sound"
2097 #define INDICATOR_SOUND_DBUS_VERSION 0
2098
2099 #define INDICATOR_SOUND_SIGNAL_STATE_UPDATE "SoundStateUpdate"
2100
2101=== modified file 'alsaMixer/src/metadata-widget.c'
2102--- alsaMixer/src/metadata-widget.c 2012-02-16 01:45:57 +0000
2103+++ alsaMixer/src/metadata-widget.c 2012-03-21 20:37:19 +0000
2104@@ -217,9 +217,9 @@
2105 // player label
2106 GtkWidget* player_label;
2107 player_label = gtk_label_new("");
2108- gtk_misc_set_alignment(GTK_MISC(player_label), (gfloat)0, (gfloat)0.5);
2109- gtk_misc_set_padding (GTK_MISC(player_label), (gfloat)1, (gfloat)0);
2110- gtk_widget_set_size_request (player_label, 200, 24);
2111+ gtk_misc_set_alignment(GTK_MISC(player_label), (gfloat)0, (gfloat)0);
2112+ gtk_misc_set_padding (GTK_MISC(player_label), (gfloat)1, (gfloat)4);
2113+ gtk_widget_set_size_request (player_label, 150, 24);
2114 priv->player_label = player_label;
2115
2116 gtk_box_pack_start (GTK_BOX(outer_v_box), priv->player_label, FALSE, FALSE, 0);
2117@@ -241,7 +241,12 @@
2118
2119 if (priv->icon_buf != NULL){
2120 gdk_pixbuf_unref(priv->icon_buf);
2121+ priv->icon_buf = NULL;
2122 }
2123+ g_string_free (priv->image_path, TRUE);
2124+ priv->image_path = NULL;
2125+ g_string_free (priv->old_image_path, TRUE);
2126+ priv->old_image_path = NULL;
2127 G_OBJECT_CLASS (metadata_widget_parent_class)->dispose (object);
2128 }
2129
2130@@ -410,36 +415,37 @@
2131 {
2132 return FALSE;
2133 }
2134-
2135+
2136+ if(priv->image_path->len > 0){
2137+ if(g_string_equal(priv->image_path, priv->old_image_path) == FALSE ||
2138+ priv->theme_change_occured == TRUE){
2139+ priv->theme_change_occured = FALSE;
2140+ GdkPixbuf* pixbuf;
2141+ pixbuf = gdk_pixbuf_new_from_file_at_size(priv->image_path->str, 60, 60, NULL);
2142+
2143+ if(GDK_IS_PIXBUF(pixbuf) == FALSE){
2144+ gtk_image_clear ( GTK_IMAGE(priv->album_art));
2145+ gtk_widget_set_size_request(GTK_WIDGET(priv->album_art), 60, 60);
2146+ draw_album_border_gtk_3 (metadata, FALSE, cr);
2147+ draw_album_art_placeholder_gtk_3(metadata, cr);
2148+ return FALSE;
2149+ }
2150+
2151+ gtk_image_set_from_pixbuf(GTK_IMAGE(priv->album_art), pixbuf);
2152+ gtk_widget_set_size_request(GTK_WIDGET(priv->album_art),
2153+ gdk_pixbuf_get_width(pixbuf),
2154+ gdk_pixbuf_get_height(pixbuf));
2155+
2156+ draw_album_border_gtk_3 (metadata, FALSE, cr);
2157+ g_string_erase (priv->old_image_path, 0, -1);
2158+ g_string_overwrite (priv->old_image_path, 0, priv->image_path->str);
2159+ g_object_unref(pixbuf);
2160+ }
2161+ return FALSE;
2162+ }
2163+ gtk_image_clear (GTK_IMAGE(priv->album_art));
2164+ gtk_widget_set_size_request(GTK_WIDGET(priv->album_art), 60, 60);
2165 draw_album_border_gtk_3 (metadata, FALSE, cr);
2166-
2167- if(priv->image_path->len > 0){
2168- if(g_string_equal(priv->image_path, priv->old_image_path) == FALSE ||
2169- priv->theme_change_occured == TRUE){
2170- priv->theme_change_occured = FALSE;
2171- GdkPixbuf* pixbuf;
2172- pixbuf = gdk_pixbuf_new_from_file_at_size(priv->image_path->str, 60, 60, NULL);
2173-
2174- if(GDK_IS_PIXBUF(pixbuf) == FALSE){
2175- gtk_image_clear ( GTK_IMAGE(priv->album_art));
2176- gtk_widget_set_size_request(GTK_WIDGET(priv->album_art), 60, 60);
2177- draw_album_art_placeholder_gtk_3(metadata, cr);
2178- return FALSE;
2179- }
2180-
2181- gtk_image_set_from_pixbuf(GTK_IMAGE(priv->album_art), pixbuf);
2182- gtk_widget_set_size_request(GTK_WIDGET(priv->album_art),
2183- gdk_pixbuf_get_width(pixbuf),
2184- gdk_pixbuf_get_height(pixbuf));
2185-
2186- g_string_erase (priv->old_image_path, 0, -1);
2187- g_string_overwrite (priv->old_image_path, 0, priv->image_path->str);
2188- g_object_unref(pixbuf);
2189- }
2190- return FALSE;
2191- }
2192- gtk_image_clear (GTK_IMAGE(priv->album_art));
2193- gtk_widget_set_size_request(GTK_WIDGET(priv->album_art), 60, 60);
2194 draw_album_art_placeholder_gtk_3(metadata, cr);
2195 return FALSE;
2196 }
2197@@ -907,8 +913,10 @@
2198 gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, &height);
2199
2200 GString* banshee_string = g_string_new ( "banshee" );
2201- GString* app_panel = g_string_new ( g_utf8_strdown (dbusmenu_menuitem_property_get(priv->twin_item, DBUSMENU_METADATA_MENUITEM_PLAYER_NAME),
2202- -1));
2203+ gchar * tmp = g_utf8_strdown (dbusmenu_menuitem_property_get(priv->twin_item, DBUSMENU_METADATA_MENUITEM_PLAYER_NAME), -1);
2204+ GString* app_panel = g_string_new (tmp);
2205+ g_free (tmp);
2206+
2207 GdkPixbuf* icon_buf;
2208
2209 // Banshee Special case!
2210
2211=== modified file 'alsaMixer/src/transport-widget.c'
2212--- alsaMixer/src/transport-widget.c 2012-02-16 01:45:57 +0000
2213+++ alsaMixer/src/transport-widget.c 2012-03-21 20:37:19 +0000
2214@@ -269,6 +269,13 @@
2215 }
2216 }
2217 #endif
2218+
2219+ TransportWidgetPrivate* priv = TRANSPORT_WIDGET_GET_PRIVATE(object);
2220+ if (priv->command_coordinates != NULL) {
2221+ g_hash_table_destroy (priv->command_coordinates);
2222+ priv->command_coordinates = NULL;
2223+ }
2224+
2225 G_OBJECT_CLASS (transport_widget_parent_class)->dispose (object);
2226 }
2227
2228
2229=== modified file 'alsaMixer/src/volume-widget.c'
2230--- alsaMixer/src/volume-widget.c 2012-02-16 01:45:57 +0000
2231+++ alsaMixer/src/volume-widget.c 2012-03-21 20:37:19 +0000
2232@@ -218,7 +218,7 @@
2233
2234 volume_widget_update(mitem, new_value, "change-value");
2235
2236- /// I think we need to update the icon here.
2237+ // we need to update the icon here.
2238 update_accessible_desc (new_value);
2239 return FALSE;
2240 }
2241
2242=== modified file 'clock/data/clock.conf.in'
2243--- clock/data/clock.conf.in 2012-02-16 01:45:57 +0000
2244+++ clock/data/clock.conf.in 2012-03-21 20:37:19 +0000
2245@@ -21,8 +21,8 @@
2246 #{Set to 0 to use the default applet size}
2247 icon size = 0;0
2248
2249-#B Always display the icon, even when the dock is hidden?
2250-always visi = false
2251+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
2252+always_visi = 0
2253
2254 #C+ Background color to add in this case
2255 bg color = .8;.8;.8;.5
2256@@ -151,6 +151,9 @@
2257 #X[Digital View;gtk-italic]
2258 numeric=
2259
2260+#B+ Use a custom font
2261+custom font = false
2262+
2263 #P+ Font:
2264 font = Sans 16
2265
2266
2267=== modified file 'clock/src/CMakeLists.txt'
2268--- clock/src/CMakeLists.txt 2010-09-18 14:20:27 +0000
2269+++ clock/src/CMakeLists.txt 2012-03-21 20:37:19 +0000
2270@@ -47,55 +47,3 @@
2271 ########### install files ###############
2272
2273 install(TARGETS ${PACKAGE_CLOCK} DESTINATION ${pluginsdir})
2274-
2275-
2276-#original Makefile.am contents follow:
2277-
2278-# #dnl Process this file with automake to produce Makefile.in
2279-#
2280-#lib_LTLIBRARIES =
2281-# libcd-clock.la
2282-#
2283-#
2284-#libcd_clock_la_SOURCES =
2285-# applet-struct.h
2286-# applet-init.c
2287-# applet-init.h
2288-# applet-draw.c
2289-# applet-draw.h
2290-# applet-digital.c
2291-# applet-digital.h
2292-# applet-config.c
2293-# applet-config.h
2294-# applet-notifications.c
2295-# applet-notifications.h
2296-# applet-theme.c
2297-# applet-theme.h
2298-#
2299-#
2300-#dock_version = `pkg-config --modversion cairo-dock`
2301-#
2302-#libcd_clock_la_CFLAGS =
2303-# -I$(top_srcdir)/src
2304-# $(PACKAGE_CFLAGS)
2305-# -DMY_APPLET_SHARE_DATA_DIR=""${clockdatadir)""
2306-# -DMY_APPLET_PREVIEW_FILE=""preview.jpg""
2307-# -DMY_APPLET_CONF_FILE=""clock.conf""
2308-# -DMY_APPLET_USER_DATA_DIR=""${clockuserdirname)""
2309-# -DMY_APPLET_VERSION=""${VERSION_CLOCK)""
2310-# -DMY_APPLET_GETTEXT_DOMAIN=""${GETTEXT_CLOCK)""
2311-# -DMY_APPLET_DOCK_VERSION=""${dock_version)""
2312-# -DMY_APPLET_ICON_FILE=""icon.png""
2313-# -DCD_APPLET_MULTI_INSTANCE="1"
2314-# -DGL_GLEXT_PROTOTYPES=""1""
2315-# -std=c99
2316-# -Wall
2317-## -g -ggdb -W -Wall
2318-#
2319-#
2320-#libcd_clock_la_LIBADD =
2321-# $(PACKAGE_LIBS) -lm
2322-#
2323-#
2324-#libcd_clock_la_LDFLAGS =
2325-# -avoid-version -module
2326
2327=== modified file 'clock/src/applet-config.c'
2328--- clock/src/applet-config.c 2011-04-20 20:46:51 +0000
2329+++ clock/src/applet-config.c 2012-03-21 20:37:19 +0000
2330@@ -76,31 +76,42 @@
2331 {
2332 CD_CONFIG_GET_COLOR_WITH_DEFAULT ("Configuration", "text color", myConfig.fTextColor, couleur);
2333
2334- gchar *cFontDescription = CD_CONFIG_GET_STRING ("Configuration", "font");
2335- if (cFontDescription == NULL)
2336- {
2337- cFontDescription = g_strdup ("Sans"); // sinon fd est NULL. On ne precise pas la taille ici pour pouvoir intercepter ce cas.
2338- }
2339- PangoFontDescription *fd = pango_font_description_from_string (cFontDescription);
2340-
2341- myConfig.cFont = g_strdup (pango_font_description_get_family (fd));
2342- myConfig.iWeight = pango_font_description_get_weight (fd);
2343- myConfig.iStyle = pango_font_description_get_style (fd);
2344- if (pango_font_description_get_size (fd) == 0) // anciens parametres de font.
2345- {
2346- int iWeight = g_key_file_get_integer (pKeyFile, "Configuration", "weight", NULL);
2347- myConfig.iWeight = cairo_dock_get_pango_weight_from_1_9 (iWeight);
2348- myConfig.iStyle = PANGO_STYLE_NORMAL;
2349-
2350- pango_font_description_set_size (fd, 16 * PANGO_SCALE);
2351- pango_font_description_set_weight (fd, myConfig.iWeight);
2352- pango_font_description_set_style (fd, myConfig.iStyle);
2353+ gboolean bCustomFont = CD_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Configuration", "custom font", FALSE); // false by default
2354+ if (bCustomFont)
2355+ {
2356+ gchar *cFontDescription = CD_CONFIG_GET_STRING ("Configuration", "font");
2357+ if (cFontDescription == NULL)
2358+ {
2359+ cFontDescription = g_strdup ("Sans"); // sinon fd est NULL. On ne precise pas la taille ici pour pouvoir intercepter ce cas.
2360+ }
2361+ PangoFontDescription *fd = pango_font_description_from_string (cFontDescription);
2362+
2363+ myConfig.cFont = g_strdup (pango_font_description_get_family (fd));
2364+ myConfig.iWeight = pango_font_description_get_weight (fd);
2365+ myConfig.iStyle = pango_font_description_get_style (fd);
2366+
2367+ if (pango_font_description_get_size (fd) == 0) // anciens parametres de font.
2368+ {
2369+ int iWeight = g_key_file_get_integer (pKeyFile, "Configuration", "weight", NULL);
2370+ myConfig.iWeight = cairo_dock_get_pango_weight_from_1_9 (iWeight);
2371+ myConfig.iStyle = PANGO_STYLE_NORMAL;
2372+
2373+ pango_font_description_set_size (fd, 16 * PANGO_SCALE);
2374+ pango_font_description_set_weight (fd, myConfig.iWeight);
2375+ pango_font_description_set_style (fd, myConfig.iStyle);
2376+ g_free (cFontDescription);
2377+ cFontDescription = pango_font_description_to_string (fd);
2378+ g_key_file_set_string (pKeyFile, "Configuration", "font", cFontDescription);
2379+ }
2380+ pango_font_description_free (fd);
2381 g_free (cFontDescription);
2382- cFontDescription = pango_font_description_to_string (fd);
2383- g_key_file_set_string (pKeyFile, "Configuration", "font", cFontDescription);
2384- }
2385- pango_font_description_free (fd);
2386- g_free (cFontDescription);
2387+ }
2388+ else // use the same font as the labels
2389+ {
2390+ myConfig.cFont = g_strdup (myIconsParam.iconTextDescription.cFont);
2391+ myConfig.iWeight = PANGO_WEIGHT_HEAVY; // force to bold, it's much more readable.
2392+ myConfig.iStyle = myIconsParam.iconTextDescription.iStyle;
2393+ }
2394
2395 myConfig.cNumericBackgroundImage = CD_CONFIG_GET_STRING ("Configuration", "numeric bg");
2396 myConfig.fTextRatio = CD_CONFIG_GET_DOUBLE_WITH_DEFAULT ("Configuration", "text ratio", 1.);
2397@@ -456,9 +467,8 @@
2398 s_pTimeZoneList = NULL;
2399 }
2400
2401-void cd_clock_load_custom_widget (CairoDockModuleInstance *myApplet, GKeyFile* pKeyFile)
2402+void cd_clock_load_custom_widget (CairoDockModuleInstance *myApplet, GKeyFile* pKeyFile) // warning: myApplet can be NULL if the applet has not been yet started.
2403 {
2404- cd_debug ("%s (%s)", __func__, myIcon->cName);
2405 //\____________ On recupere notre widget personnalise (un simple container vide qu'on va remplir avec nos trucs).
2406 CairoDockGroupKeyWidget *pGroupKeyWidget = CD_APPLET_GET_CONFIG_PANEL_GROUP_KEY_WIDGET ("Alarm", "add new");
2407 g_return_if_fail (pGroupKeyWidget != NULL);
2408
2409=== removed file 'clock/src/applet-digital.c'
2410--- clock/src/applet-digital.c 2011-04-20 20:46:51 +0000
2411+++ clock/src/applet-digital.c 1970-01-01 00:00:00 +0000
2412@@ -1,239 +0,0 @@
2413-/**
2414-* This file is a part of the Cairo-Dock project
2415-*
2416-* Copyright : (C) see the 'copyright' file.
2417-* E-mail : see the 'copyright' file.
2418-*
2419-* This program is free software; you can redistribute it and/or
2420-* modify it under the terms of the GNU General Public License
2421-* as published by the Free Software Foundation; either version 3
2422-* of the License, or (at your option) any later version.
2423-*
2424-* This program is distributed in the hope that it will be useful,
2425-* but WITHOUT ANY WARRANTY; without even the implied warranty of
2426-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2427-* GNU General Public License for more details.
2428-* You should have received a copy of the GNU General Public License
2429-* along with this program. If not, see <http://www.gnu.org/licenses/>.
2430-*/
2431-
2432-#include <stdlib.h>
2433-#include <math.h>
2434-
2435-#include "applet-struct.h"
2436-#include "applet-config.h"
2437-#include "applet-digital.h"
2438-
2439-
2440-#define CD_CLOCK_DATE_BUFFER_LENGTH 50
2441-static char s_cDateBuffer[CD_CLOCK_DATE_BUFFER_LENGTH+1];
2442-
2443-void cd_clock_configure_digital (CairoDockModuleInstance *myApplet) {
2444- cd_debug ("%s", __func__);
2445-
2446- GError *erreur = NULL;
2447- GKeyFile *pKeyFile = g_key_file_new (); //On ouvre le fichier de conf
2448- if (myConfig.cDigital == NULL)
2449- myConfig.cDigital = g_strdup ("default");
2450-
2451- gchar *cConfPath = g_strdup_printf ("%s/digital/%s/config", MY_APPLET_SHARE_DATA_DIR, myConfig.cDigital);
2452- cd_debug ("Clock: Using %s digital theme", cConfPath);
2453- g_key_file_load_from_file (pKeyFile, cConfPath, G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, &erreur);
2454-
2455- if (erreur != NULL) {
2456- cd_warning ("Attention : %s", erreur->message);
2457- g_error_free (erreur);
2458- erreur = NULL;
2459- return;
2460- }
2461-
2462- myData.pDigitalClock.bSecondCapable = cairo_dock_get_boolean_key_value (pKeyFile, "configuration", "seconds", FALSE, FALSE, NULL, NULL);
2463- myData.pDigitalClock.iFrameSpacing = cairo_dock_get_integer_key_value (pKeyFile, "configuration", "framespacing", FALSE, 2, NULL, NULL);
2464-
2465- myData.pDigitalClock.i12modeWidth = cairo_dock_get_integer_key_value (pKeyFile, "configuration", "12width", FALSE, 6, NULL, NULL);
2466- myData.pDigitalClock.i12modeHeight = cairo_dock_get_integer_key_value (pKeyFile, "configuration", "12height", FALSE, 6, NULL, NULL);
2467- myData.pDigitalClock.i12modeXOffset = cairo_dock_get_integer_key_value (pKeyFile, "configuration", "12offsetX", FALSE, 4, NULL, NULL);
2468- myData.pDigitalClock.i12modeYOffset = cairo_dock_get_integer_key_value (pKeyFile, "configuration", "12offsetY", FALSE, 1, NULL, NULL);
2469- myData.pDigitalClock.i12modeFrame = cairo_dock_get_integer_key_value (pKeyFile, "configuration", "12frame", FALSE, 4, NULL, NULL);
2470-
2471- int i = 0, j = (myData.pDigitalClock.bSecondCapable == TRUE ? 3 : 4);
2472- //Avec secondes 3 frames, une par unités (hh : mm : ss)
2473- //Sans secondes 4 frames, une par nombre (1|2:4|5)
2474- for (i = 0; i < j; i++) {
2475- gchar *cGroupName = g_strdup_printf ("frame_%d", i);
2476- myData.pDigitalClock.pFrame[i].iWidth = cairo_dock_get_integer_key_value (pKeyFile, cGroupName, "width", FALSE, 4, NULL, NULL);
2477- myData.pDigitalClock.pFrame[i].iHeight = cairo_dock_get_integer_key_value (pKeyFile, cGroupName, "height", FALSE, 4, NULL, NULL);
2478- myData.pDigitalClock.pFrame[i].iXOffset = cairo_dock_get_integer_key_value (pKeyFile, cGroupName, "offsetX", FALSE, 0, NULL, NULL);
2479- myData.pDigitalClock.pFrame[i].iYOffset = cairo_dock_get_integer_key_value (pKeyFile, cGroupName, "offsetY", FALSE, 0, NULL, NULL);
2480- g_free (cGroupName);
2481-
2482- cGroupName = g_strdup_printf ("text_%d", i);
2483- myData.pDigitalClock.pText[i].iXOffset = cairo_dock_get_integer_key_value (pKeyFile, cGroupName, "offsetX", FALSE, -1, NULL, NULL);
2484- myData.pDigitalClock.pText[i].iYOffset = cairo_dock_get_integer_key_value (pKeyFile, cGroupName, "offsetY", FALSE, -1, NULL, NULL);
2485- g_free (cGroupName);
2486- }
2487-
2488- g_key_file_free (pKeyFile);
2489- g_free (cConfPath);
2490-
2491- cd_clock_digital_load_frames (myApplet);
2492-}
2493-
2494-void cd_clock_digital_load_frames (CairoDockModuleInstance *myApplet) {
2495- cd_debug ("%s", __func__);
2496-
2497- int i = 0, j = (myData.pDigitalClock.bSecondCapable == TRUE ? 3 : 4);
2498- double fFrameWidth = 1, fFrameHeight = 1;
2499- //Avec secondes 3 frames, une par unités (hh : mm : ss)
2500- //Sans secondes 4 frames, une par nombre (1|2:4|5)
2501- for (i = 0; i < j; i++) {
2502- fFrameWidth = myIcon->fWidth / (double) myData.pDigitalClock.pFrame[i].iWidth;
2503- cd_debug ("Clock: frame %d width %.02f (%.02f %d)", i+1, fFrameWidth, myIcon->fWidth, myData.pDigitalClock.pFrame[i].iWidth);
2504- fFrameWidth = fFrameWidth - myData.pDigitalClock.iFrameSpacing;
2505- fFrameHeight = myIcon->fHeight; /// myData.pDigitalClock.pFrame[i].iHeight;
2506- double fImgW=0, fImgH=0;
2507-
2508- if (myConfig.cDigital == NULL)
2509- myConfig.cDigital = g_strdup ("default");
2510-
2511- gchar *cImagePath = g_strdup_printf ("%s/digital/%s/frame_%d.svg", MY_APPLET_SHARE_DATA_DIR, myConfig.cDigital, i);
2512- cd_debug ("Clock: Loading %s frame (%.02fx%.02f)", cImagePath, fFrameWidth, fFrameHeight);
2513- cairo_t *pCairoContext = cairo_dock_create_context_from_window (myContainer);
2514- myData.pDigitalClock.pFrame[i].pFrameSurface = cairo_dock_create_surface_from_image (cImagePath,
2515- 1.,
2516- fFrameWidth, fFrameHeight,
2517- FALSE,
2518- &fImgW, &fImgH,
2519- NULL, NULL);
2520- cairo_destroy (pCairoContext);
2521- g_free (cImagePath);
2522- }
2523-}
2524-
2525-void cd_clock_draw_frames (CairoDockModuleInstance *myApplet) {
2526- cd_debug ("%s", __func__);
2527-
2528- cairo_set_source_rgba (myDrawContext, 0., 0., 0., 0.);
2529- cairo_set_operator (myDrawContext, CAIRO_OPERATOR_SOURCE);
2530- cairo_paint (myDrawContext);
2531- cairo_set_operator (myDrawContext, CAIRO_OPERATOR_OVER);
2532-
2533- int i = 0, j = (myData.pDigitalClock.bSecondCapable == TRUE ? 3 : 4);
2534- double fX, fY;
2535- //Avec secondes 3 frames, une par unité (hh | mm | ss)
2536- //Sans secondes 4 frames, une par nombre (1|2 | 4|5)
2537- for (i = 0; i < j; i++) {
2538- fX = (myIcon->fWidth / j) * i + myData.pDigitalClock.pFrame[i].iXOffset;
2539- fY = myData.pDigitalClock.pFrame[i].iYOffset;
2540- cd_debug ("Clock: frame:%d ; fX:%.02f ; fY:%.02f", i+1, fX, fY);
2541- cairo_set_source_surface (myDrawContext, myData.pDigitalClock.pFrame[i].pFrameSurface, fX, fY);
2542- cairo_paint (myDrawContext);
2543- }
2544-
2545- CD_APPLET_REDRAW_MY_ICON;
2546-}
2547-
2548-void cd_clock_put_text_on_frames (CairoDockModuleInstance *myApplet, int width, int height, double fMaxScale, struct tm *pTime) {
2549- cd_debug ("%s", __func__);
2550-
2551- cairo_t *pSourceContext = myDrawContext;
2552- GString *sFormat = g_string_new ("");
2553-
2554- if (myConfig.b24Mode) {
2555- if (myData.pDigitalClock.bSecondCapable)
2556- g_string_printf (sFormat, "%%T");
2557- else
2558- g_string_printf (sFormat, " %%R");
2559- }
2560- else {
2561- if (myData.pDigitalClock.bSecondCapable)
2562- g_string_printf (sFormat, "%%r%%s");
2563- else
2564- g_string_printf (sFormat, "%%I:%%M");
2565- }
2566-
2567- if (myConfig.iShowDate == CAIRO_DOCK_INFO_ON_ICON)
2568- cd_clock_draw_date_on_frame (myApplet);
2569- //Erf! Comment bien gérer ca ...
2570-
2571- strftime (s_cDateBuffer, CD_CLOCK_DATE_BUFFER_LENGTH, sFormat->str, pTime);
2572- g_string_free (sFormat, TRUE);
2573-
2574- /// Attention : soit on passe un char a cd_clock_fill_text_surface(), soit un char *, il faut choisir.
2575- /// Ne pas modifier le pointeur d'une chaine ! utiliser un pointeur secondaire qu'on balade dessus, sinon au free ca fait mal ;-)
2576- gchar *cTime = g_strdup (s_cDateBuffer), *cT1 = NULL;
2577- if (myData.pDigitalClock.bSecondCapable) { //On coupe aux ':' donc on arrive a 12|45|32
2578- cT1 = g_strdup (cTime);
2579- gchar *str = strchr (cT1, ':'); //On récupère [12]:45:32
2580- if (str != NULL)
2581- *str = '\0';
2582- cd_clock_fill_text_surface (myApplet, cT1, 0);
2583-
2584- cT1 = g_strdup (cTime);
2585- str = strrchr (cT1, ':'); //On récupère [12:45]:32
2586- if (str != NULL)
2587- *str = '\0';
2588- str = strchr (cT1, ':'); //On récupère 12:[45]:32
2589- str++;
2590- cd_clock_fill_text_surface (myApplet, str, 1);
2591-
2592- cT1 = g_strdup (cTime);
2593- str = strrchr (cT1, ':'); //On récupère 12:45:[32]
2594- str++;
2595- cd_clock_fill_text_surface (myApplet, str, 2);
2596- }
2597- else { //On coupe au ':' puis on sépare les chiffres donc on arrive a 1|2 | 4|5
2598- cT1 = g_strdup (cTime);
2599- gchar *str = strchr (cT1, ':'); //On récupère [12]:45
2600- if (str != NULL)
2601- *str = '\0';
2602- cd_clock_fill_text_surface (myApplet, *cT1, 0);
2603- cT1++; /// GLUPS !
2604- cd_clock_fill_text_surface (myApplet, *cT1, 1);
2605-
2606- cT1 = g_strdup (cTime);
2607- str = strrchr (cT1, ':'); //On récupère 12:[45]
2608- str++;
2609- cd_clock_fill_text_surface (myApplet, *str, 2);
2610- str++;
2611- cd_clock_fill_text_surface (myApplet, *str, 3);
2612- }
2613- g_free (cTime);
2614- g_free (cT1);
2615-
2616- int i = 0, j = (myData.pDigitalClock.bSecondCapable == TRUE ? 3 : 4);
2617- for (i = 0; i < j; i++) {
2618- //On dessine le texte dans les frames
2619- cd_clock_draw_text_from_surface (myApplet, i);
2620- }
2621-
2622- //On ajoute le am/pm s'il le faut
2623- if (! myConfig.b24Mode) {
2624- if (pTime->tm_hour > 12)
2625- cd_clock_draw_ampm (myApplet, "PM");
2626- else
2627- cd_clock_draw_ampm (myApplet, "AM");
2628- }
2629-}
2630-
2631-void cd_clock_draw_ampm (CairoDockModuleInstance *myApplet, gchar *cMark) {
2632- cd_debug ("Adding %s to the last frame", cMark);
2633- //Ca s'est gérer dans la config.
2634- //Vérifier les structures necessaires.
2635-}
2636-
2637-void cd_clock_draw_text_from_surface (CairoDockModuleInstance *myApplet, int iNumber) {
2638- cd_debug ("Printing text #%d on corresponding frame", iNumber);
2639- //Il faudra surment scale down la surface avant de cairo_print
2640- //TODO prendre le code sur slider.
2641-}
2642-
2643-void cd_clock_fill_text_surface (CairoDockModuleInstance *myApplet, gchar *cStr, int iNumber) {
2644- cd_debug ("Filling the #%d surface with %s", iNumber, cStr);
2645- //Aucune idée de comment faire!
2646- //TODO demander a fabounet des indices ici.
2647-}
2648-
2649-void cd_clock_draw_date_on_frame (CairoDockModuleInstance *myApplet) {
2650- cd_debug ("Add date on frame");
2651-}
2652
2653=== removed file 'clock/src/applet-digital.h'
2654--- clock/src/applet-digital.h 2009-10-05 19:27:17 +0000
2655+++ clock/src/applet-digital.h 1970-01-01 00:00:00 +0000
2656@@ -1,38 +0,0 @@
2657-/**
2658-* This file is a part of the Cairo-Dock project
2659-*
2660-* Copyright : (C) see the 'copyright' file.
2661-* E-mail : see the 'copyright' file.
2662-*
2663-* This program is free software; you can redistribute it and/or
2664-* modify it under the terms of the GNU General Public License
2665-* as published by the Free Software Foundation; either version 3
2666-* of the License, or (at your option) any later version.
2667-*
2668-* This program is distributed in the hope that it will be useful,
2669-* but WITHOUT ANY WARRANTY; without even the implied warranty of
2670-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2671-* GNU General Public License for more details.
2672-* You should have received a copy of the GNU General Public License
2673-* along with this program. If not, see <http://www.gnu.org/licenses/>.
2674-*/
2675-
2676-
2677-#ifndef __CD_CLOCK_DIGITAL__
2678-#define __CD_CLOCK_DIGITAL__
2679-
2680-
2681-#include <cairo-dock.h>
2682-#include "applet-struct.h"
2683-
2684-void cd_clock_configure_digital (CairoDockModuleInstance *myApplet);
2685-void cd_clock_digital_load_frames (CairoDockModuleInstance *myApplet);
2686-void cd_clock_draw_frames (CairoDockModuleInstance *myApplet);
2687-void cd_clock_put_text_on_frames (CairoDockModuleInstance *myApplet, int width, int height, double fMaxScale, struct tm *pTime);
2688-void cd_clock_draw_ampm (CairoDockModuleInstance *myApplet, gchar *cMark);
2689-void cd_clock_draw_text_from_surface (CairoDockModuleInstance *myApplet, int iNumber);
2690-void cd_clock_fill_text_surface (CairoDockModuleInstance *myApplet, gchar *cStr, int iNumber);
2691-void cd_clock_draw_date_on_frame (CairoDockModuleInstance *myApplet);
2692-
2693-
2694-#endif
2695
2696=== modified file 'clock/src/applet-draw.c'
2697--- clock/src/applet-draw.c 2012-02-16 01:45:57 +0000
2698+++ clock/src/applet-draw.c 2012-03-21 20:37:19 +0000
2699@@ -76,8 +76,8 @@
2700
2701 strftime (s_cDateBuffer, CD_CLOCK_DATE_BUFFER_LENGTH, cFormat, pTime);
2702 pango_layout_set_text (pLayout, s_cDateBuffer, -1);
2703- PangoRectangle ink, log;
2704- pango_layout_get_pixel_extents (pLayout, &ink, &log);
2705+ PangoRectangle log;
2706+ pango_layout_get_pixel_extents (pLayout, NULL, &log);
2707
2708 //\______________ On dessine le texte.
2709 cairo_save (myDrawContext);
2710@@ -88,40 +88,45 @@
2711
2712 strftime (s_cDateBuffer, CD_CLOCK_DATE_BUFFER_LENGTH, "%a %d %b", pTime);
2713 pango_layout_set_text (pLayout2, s_cDateBuffer, -1);
2714- PangoRectangle ink2, log2;
2715- pango_layout_get_pixel_extents (pLayout2, &ink2, &log2);
2716+ PangoRectangle log2;
2717+ pango_layout_get_pixel_extents (pLayout2, NULL, &log2);
2718
2719 double h=0, w=0, fZoomX=0, fZoomY=0; // parametres d'affichage 2 lignes
2720 double h_=0, w_=0, fZoomX_=0, fZoomY_=0; // parametres d'affichage 1 ligne
2721 if (myData.iTextLayout == CD_TEXT_LAYOUT_2_LINES || myData.iTextLayout == CD_TEXT_LAYOUT_AUTO)
2722 {
2723- h = ink.height + ink2.height + GAPY * iHeight;
2724- w = MAX (ink.width, ink2.width);
2725+ h = log.height + log2.height + GAPY * iHeight;
2726+ w = MAX (log.width, log2.width);
2727 fZoomX = (double) iWidth / w;
2728 fZoomY = (double) iHeight / h;
2729- if (myDock && fZoomY > MAX_RATIO * fZoomX) // on ne garde pas le ratio car ca ferait un texte trop petit en hauteur, toutefois on limite un peu la deformation en hauteur.
2730- fZoomY = MAX_RATIO * fZoomX;
2731+ if (myDock)
2732+ {
2733+ if (myContainer->bIsHorizontal && fZoomY > MAX_RATIO * fZoomX) // we limit the deformation
2734+ fZoomY = MAX_RATIO * fZoomX;
2735+ else if (myContainer->bIsHorizontal && fZoomX > MAX_RATIO * fZoomY)
2736+ fZoomX = MAX_RATIO * fZoomY;
2737+ }
2738
2739 if (myConfig.fTextRatio < 1)
2740- {
2741- fZoomX *= myConfig.fTextRatio;
2742 fZoomY *= myConfig.fTextRatio;
2743- }
2744 }
2745 if (myData.iTextLayout == CD_TEXT_LAYOUT_1_LINE || myData.iTextLayout == CD_TEXT_LAYOUT_AUTO)
2746 {
2747- h_ = MAX (ink.height, ink2.height);
2748- w_ = ink.width + ink2.width + GAPX * iWidth;
2749+ h_ = MAX (log.height, log2.height);
2750+ w_ = log.width + log2.width + GAPX * iWidth;
2751 fZoomX_ = (double) iWidth / w_;
2752 fZoomY_ = (double) iHeight / h_;
2753- if (myDock && fZoomY_ > MAX_RATIO * fZoomX_) // on ne garde pas le ratio car ca ferait un texte trop petit en hauteur, toutefois on limite un peu la deformation en hauteur.
2754- fZoomY_ = MAX_RATIO * fZoomX_;
2755+ if (myDock)
2756+ {
2757+ if (myContainer->bIsHorizontal && fZoomY_ > MAX_RATIO * fZoomX_) // we limit the deformation
2758+ fZoomY_ = MAX_RATIO * fZoomX_;
2759+ else if (myContainer->bIsHorizontal && fZoomX_ > MAX_RATIO * fZoomY_)
2760+ fZoomX_ = MAX_RATIO * fZoomY_;
2761+ }
2762
2763 if (myConfig.fTextRatio < 1)
2764- {
2765- fZoomX_ *= myConfig.fTextRatio;
2766 fZoomY_ *= myConfig.fTextRatio;
2767- }
2768+
2769 if (fZoomY_ > fZoomX_)
2770 {
2771 double fMaxScale = cairo_dock_get_icon_max_scale (myIcon);
2772@@ -143,52 +148,50 @@
2773 {
2774 cairo_translate (myDrawContext, (iWidth - fZoomX_ * w_) / 2, (iHeight - fZoomY_ * h_)/2); // centre verticalement.
2775 cairo_scale (myDrawContext, fZoomX_, fZoomY_);
2776- cairo_translate (myDrawContext, -ink2.x, -ink2.y);
2777 pango_cairo_show_layout (myDrawContext, pLayout2);
2778
2779 cairo_restore (myDrawContext);
2780 cairo_save (myDrawContext);
2781
2782- cairo_translate (myDrawContext, (iWidth + fZoomX_ * w_) / 2 - fZoomX_ * ink.width, (iHeight - fZoomY_ * h_)/2);
2783+ cairo_translate (myDrawContext, (iWidth + fZoomX_ * w_) / 2 - fZoomX_ * log.width, (iHeight - fZoomY_ * h_)/2);
2784 cairo_scale (myDrawContext, fZoomX_, fZoomY_);
2785- cairo_translate (myDrawContext, -ink.x, -ink.y);
2786 pango_cairo_show_layout (myDrawContext, pLayout);
2787 }
2788 else // mode 2 lignes
2789 {
2790- cairo_translate (myDrawContext, (iWidth - fZoomX * ink.width) / 2, (iHeight - fZoomY * h)/2); // centre verticalement.
2791+ cairo_translate (myDrawContext, (iWidth - fZoomX * log.width) / 2, (iHeight - fZoomY * h)/2); // centre verticalement.
2792 cairo_scale (myDrawContext, fZoomX, fZoomY);
2793- cairo_translate (myDrawContext, -ink.x, -ink.y);
2794 pango_cairo_show_layout (myDrawContext, pLayout);
2795
2796 cairo_restore (myDrawContext);
2797 cairo_save (myDrawContext);
2798
2799- cairo_translate (myDrawContext, (iWidth - fZoomX * ink2.width) / 2, (iHeight + fZoomY * GAPY)/2);
2800+ cairo_translate (myDrawContext, (iWidth - fZoomX * log2.width) / 2, (iHeight + fZoomY * GAPY)/2);
2801 cairo_scale (myDrawContext, fZoomX, fZoomY);
2802- cairo_translate (myDrawContext, -ink2.x, -ink2.y);
2803 pango_cairo_show_layout (myDrawContext, pLayout2);
2804 }
2805 g_object_unref (pLayout2);
2806 }
2807- else // affichage simple de l'heure sur 1 ligne.
2808+ else // only the hour with 1 line.
2809 {
2810- double fZoomX = (double) iWidth / ink.width;
2811- double fZoomY = (double) iHeight / ink.height;
2812- if (myDock && fZoomY > MAX_RATIO * fZoomX) // on ne garde pas le ratio car ca ferait un texte trop petit en hauteur, toutefois on limite un peu la deformation en hauteur.
2813- fZoomY = MAX_RATIO * fZoomX;
2814-
2815+ double fZoomX = (double) iWidth / log.width;
2816+ double fZoomY = (double) iHeight / log.height;
2817+ if (myDock)
2818+ {
2819+ if (myContainer->bIsHorizontal && fZoomY > MAX_RATIO * fZoomX) // we limit the deformation
2820+ fZoomY = MAX_RATIO * fZoomX;
2821+ else if (myContainer->bIsHorizontal && fZoomX > MAX_RATIO * fZoomY)
2822+ fZoomX = MAX_RATIO * fZoomY;
2823+ }
2824+
2825 if (myConfig.fTextRatio < 1)
2826 {
2827- fZoomX *= myConfig.fTextRatio;
2828- fZoomY *= myConfig.fTextRatio;
2829+ fZoomY *= myConfig.fTextRatio; // only for the height
2830+ cairo_translate (myDrawContext,
2831+ 0,
2832+ (iHeight - fZoomY * log.height)/2); // this text will be centred.
2833 }
2834-
2835- cairo_translate (myDrawContext,
2836- (iWidth - fZoomX * ink.width)/2,
2837- (iHeight - fZoomY * ink.height)/2); // le texte sera centre.
2838 cairo_scale (myDrawContext, fZoomX, fZoomY);
2839- cairo_translate (myDrawContext, -ink.x, -ink.y);
2840 pango_cairo_show_layout (myDrawContext, pLayout);
2841 }
2842 cairo_restore (myDrawContext);
2843
2844=== modified file 'clock/src/applet-timer.c'
2845--- clock/src/applet-timer.c 2012-02-16 01:45:57 +0000
2846+++ clock/src/applet-timer.c 2012-03-21 20:37:19 +0000
2847@@ -25,7 +25,6 @@
2848
2849 #include "applet-struct.h"
2850 #include "applet-config.h"
2851-#include "applet-digital.h" //Digital html like renderer
2852 #include "applet-calendar.h"
2853 #include "applet-draw.h"
2854 #include "applet-timer.h"
2855
2856=== modified file 'debian/changelog'
2857--- debian/changelog 2012-02-16 01:45:57 +0000
2858+++ debian/changelog 2012-03-21 20:37:19 +0000
2859@@ -1,3 +1,72 @@
2860+cairo-dock-plug-ins (3.0.0.0rc1-0ubuntu1) UNRELEASED; urgency=low
2861+
2862+ * New upstream release. (LP: #961579)
2863+ * Upstream ChangeLog: (main changes)
2864+ - Updated translations
2865+ - MusicPlayer:
2866+ + When choosing the player the first time, launch it and set the name
2867+ + It seems the latest stable version of rhythmbox now re-uses this DBus
2868+ address: org.mpris.MediaPlayer2.rhythmbox
2869+ - Use the default bg color for always visible icons
2870+ - GMenu: check if kde4-applications.menu and lxde-applications.menu
2871+ are available
2872+ - Dbus:
2873+ + Bash interface: fixed a typo
2874+ + Changed the third-party applets dir on the server for the 3.0
2875+ + Enabling threads on the Python Interface
2876+ + Modified the old SetEmblem method to use the new overlays
2877+ - Enable GVFS if detected
2878+ - Indicators: handle the case where the service crashes
2879+ - Status-Notifier:
2880+ + Indicator 0.4.90 (and newer) has a new variable (Title)
2881+ + Display Label first if it's available instead of Title first
2882+ + Fixed a bug with empty labels
2883+ + KDE's watcher: if ItemIsMenu is true (e.g. Klipper) and if we only show
2884+ the menu on left click, we emit a signal to the application to show
2885+ its own menu
2886+ + checked if the menu path is different that '/NO_DBUSMENU'
2887+ + IAS: checked if an item is not already available in the systray
2888+ (workaround) and fixed a few typos
2889+ + Added a space between icons and fixed the wrong drawing of the icon
2890+ on a vertical dock if the icon can be resized
2891+ + Used cairo_dock_add_path_to_icon_theme
2892+ - Sound control:
2893+ + Fixed a small bug on reload (invisible icon)
2894+ + Updated the Dbus names to match with Ubuntu 12.04
2895+ + Backported the latest version of Ubuntu's indicator-sound into the
2896+ Sound-Control applet
2897+ + Make some items in the menu invisible if not available
2898+ + Worked around a bug in libindicator, which keeps internally
2899+ the service pointer
2900+ - Logout:
2901+ + Fixed a tiny memory leak
2902+ + Look for a different icon's size if we want to display this icon in
2903+ a menu/a dock/an emblem
2904+ - PowerManager:
2905+ + Removed an extraseparators in the menu
2906+ - Clock:
2907+ + Used the logical rectangle in order to fix the position of the text
2908+ + Removed unused files
2909+ + Removed useless translations (log.x and log.y = 0)
2910+ + Only used this ratio to limit the deformation with the height
2911+ + Fixed a problem with the ratio if this applet is displayed in
2912+ a vertical dock
2913+ - Remote Control: fixed a crash during the 'click' signal
2914+ - Slider:
2915+ + When reloading, display the changes immediately
2916+ + Added the possibility to refresh the images list from the menu
2917+ + Fixed the loading of the image on startup, when the applet's size is
2918+ not yet stable
2919+ + Code cleaning
2920+ - Fixed an error when compiling without libindicator
2921+ - A few minor changes (comments, factorisation, etc)
2922+ - Recent-Events: if zeitgeist is not yet running on first search,
2923+ try 3 times before giving up.
2924+ * debian/control:
2925+ - Updated the version of cairo-dock-[core;data;dev].
2926+
2927+ -- Matthieu Baerts (matttbe) <matttbe@gmail.com> Wed, 21 Mar 2012 21:31:34 +0100
2928+
2929 cairo-dock-plug-ins (3.0.0.0beta1-0ubuntu1) precise; urgency=low
2930
2931 * New upstream release. (LP: #932042)
2932
2933=== modified file 'debian/control'
2934--- debian/control 2012-02-16 01:45:57 +0000
2935+++ debian/control 2012-03-21 20:37:19 +0000
2936@@ -17,7 +17,7 @@
2937 libgl1-mesa-dev | libgl-dev,
2938 libglu1-mesa-dev | libglu-dev,
2939 libpango1.0-dev,
2940- libgldi-dev (>= 3.0.0.0beta1),
2941+ libgldi-dev (>= 3.0.0.0rc1),
2942 libasound2-dev,
2943 libvte-2.90-dev,
2944 x11proto-xf86vidmode-dev,
2945@@ -55,7 +55,7 @@
2946 Conflicts: cairo-dock-plug-ins (<= 2.0.8.0)
2947 Replaces: cairo-dock-plug-ins (<= 2.0.8.0)
2948 Depends: cairo-dock-plug-ins-data (>= ${source:Version}),
2949- cairo-dock-core (>= 3.0.0.0beta1),
2950+ cairo-dock-core (>= 3.0.0.0rc1),
2951 ${misc:Depends}
2952 Pre-Depends: ${misc:Pre-Depends}
2953 Suggests: gvfs
2954@@ -72,7 +72,7 @@
2955 Architecture: any
2956 Conflicts: cairo-dock-plug-ins (<= 2.0.8.0)
2957 Depends: cairo-dock-plug-ins-data (>= ${source:Version}),
2958- cairo-dock-core (>= 3.0.0.0beta1),
2959+ cairo-dock-core (>= 3.0.0.0rc1),
2960 curl,
2961 wget,
2962 ${shlibs:Depends},
2963
2964=== modified file 'dnd2share/src/applet-notifications.c'
2965--- dnd2share/src/applet-notifications.c 2012-02-16 01:45:57 +0000
2966+++ dnd2share/src/applet-notifications.c 2012-03-21 20:37:19 +0000
2967@@ -423,6 +423,7 @@
2968 gboolean bIsDirectory;
2969 int iVolumeID;
2970 double fOrder;
2971+ gint iDesiredIconSize = cairo_dock_search_icon_size (GTK_ICON_SIZE_LARGE_TOOLBAR); // 24px by default
2972 int i;
2973 GList *it;
2974 for (it = myData.pUpoadedItems; it != NULL; it = it->next)
2975@@ -437,22 +438,22 @@
2976 if (! g_file_test (cPreview, G_FILE_TEST_EXISTS))
2977 {
2978 g_free (cPreview);
2979- cPreview = cairo_dock_search_icon_s_path ("image-x-generic");;
2980+ cPreview = cairo_dock_search_icon_s_path ("image-x-generic", iDesiredIconSize);
2981 }
2982 }
2983 else if (pItem->iFileType == CD_TYPE_TEXT)
2984 {
2985- cPreview = cairo_dock_search_icon_s_path ("text-x-generic");
2986+ cPreview = cairo_dock_search_icon_s_path ("text-x-generic", iDesiredIconSize);
2987 }
2988 else if (pItem->iFileType == CD_TYPE_VIDEO)
2989 {
2990- cPreview = cairo_dock_search_icon_s_path ("video-x-generic");
2991+ cPreview = cairo_dock_search_icon_s_path ("video-x-generic", iDesiredIconSize);
2992 }
2993 if (cPreview == NULL)
2994 {
2995 gchar *cIconName = NULL;
2996 cairo_dock_fm_get_file_info (pItem->cLocalPath, &cName, &cURI, &cIconName, &bIsDirectory, &iVolumeID, &fOrder, 0);
2997- cPreview = cairo_dock_search_icon_s_path (cIconName);
2998+ cPreview = cairo_dock_search_icon_s_path (cIconName, iDesiredIconSize);
2999 g_free (cIconName);
3000 g_free (cName);
3001 cName = NULL;
3002
3003=== modified file 'drop-indicator/src/applet-notifications.c'
3004--- drop-indicator/src/applet-notifications.c 2012-02-16 01:45:57 +0000
3005+++ drop-indicator/src/applet-notifications.c 2012-03-21 20:37:19 +0000
3006@@ -382,6 +382,7 @@
3007 iHeight,
3008 CAIRO_DOCK_KEEP_RATIO);
3009 }
3010+ g_print (" %p, %d, %d\n", myData.hoverIndicator.pSurface, myData.hoverIndicator.iTexture, g_bUseOpenGL);
3011 }
3012
3013 void cd_drop_indicator_free_buffers (void)
3014
3015=== modified file 'dustbin/src/applet-init.c'
3016--- dustbin/src/applet-init.c 2011-09-26 12:56:12 +0000
3017+++ dustbin/src/applet-init.c 2012-03-21 20:37:19 +0000
3018@@ -40,7 +40,7 @@
3019 // get the user images first, as they overwrite the theme.
3020 if (myConfig.cEmptyUserImage != NULL)
3021 {
3022- gchar *cPath = cairo_dock_search_icon_s_path (myConfig.cEmptyUserImage);
3023+ gchar *cPath = cairo_dock_search_icon_s_path (myConfig.cEmptyUserImage, CAIRO_DOCK_DEFAULT_ICON_SIZE);
3024 if (! g_file_test (cPath, G_FILE_TEST_EXISTS))
3025 {
3026 g_free (myConfig.cEmptyUserImage);
3027@@ -50,13 +50,13 @@
3028 }
3029 if (myConfig.cFullUserImage != NULL)
3030 {
3031- gchar *cPath = cairo_dock_search_icon_s_path (myConfig.cFullUserImage);
3032+ gchar *cPath = cairo_dock_search_icon_s_path (myConfig.cFullUserImage, CAIRO_DOCK_DEFAULT_ICON_SIZE);
3033 if (! g_file_test (cPath, G_FILE_TEST_EXISTS))
3034 {
3035 g_free (myConfig.cFullUserImage);
3036 myConfig.cFullUserImage = NULL;
3037 }
3038- g_free (cPath);
3039+ g_free (cPath);
3040 }
3041 // if a theme is defined, and user images are not defined, use the theme.
3042 if (myConfig.cThemePath != NULL)
3043
3044=== modified file 'gnome-integration/src/applet-init.c'
3045--- gnome-integration/src/applet-init.c 2012-02-16 01:45:57 +0000
3046+++ gnome-integration/src/applet-init.c 2012-03-21 20:37:19 +0000
3047@@ -32,25 +32,34 @@
3048 "It is auto-activated, so you don't need to activate it.\n"
3049 "It is designed for the a GNOME version >= 2.22",
3050 "Fabounet (Fabrice Rey)")
3051- if (g_iDesktopEnv == CAIRO_DOCK_GNOME && (glib_major_version > 2 || glib_minor_version >= 16))
3052+
3053+ CairoDockDesktopEnvBackend *pVFSBackend = NULL;
3054+ if (! cairo_dock_fm_vfs_backend_is_defined ()) // the Gnome backend will register the GVFS functions, even if it's not a Gnome environment. It will not overwrite the other functions of the backend, and if another backend comes later, it can set its own functions.
3055 {
3056- cd_debug ("GNOME");
3057 if (cairo_dock_gio_vfs_init ())
3058 {
3059 cd_debug ("GVFS");
3060- CairoDockDesktopEnvBackend *pVFSBackend = g_new0 (CairoDockDesktopEnvBackend, 1);
3061-
3062- cairo_dock_gio_vfs_fill_backend(pVFSBackend);
3063-
3064- pVFSBackend->logout = env_backend_logout;
3065- pVFSBackend->shutdown = env_backend_shutdown;
3066- pVFSBackend->reboot = env_backend_shutdown;
3067- pVFSBackend->lock_screen = env_backend_lock_screen;
3068- pVFSBackend->setup_time = env_backend_setup_time;
3069- pVFSBackend->show_system_monitor = env_backend_show_system_monitor;
3070- cairo_dock_fm_register_vfs_backend (pVFSBackend);
3071+ pVFSBackend = g_new0 (CairoDockDesktopEnvBackend, 1);
3072+ cairo_dock_gio_vfs_fill_backend (pVFSBackend);
3073 }
3074 }
3075+
3076+ if (g_iDesktopEnv == CAIRO_DOCK_GNOME && (glib_major_version > 2 || glib_minor_version >= 16))
3077+ {
3078+ cd_debug ("GNOME");
3079+ if (pVFSBackend == NULL)
3080+ pVFSBackend = g_new0 (CairoDockDesktopEnvBackend, 1);
3081+
3082+ pVFSBackend->logout = env_backend_logout;
3083+ pVFSBackend->shutdown = env_backend_shutdown;
3084+ pVFSBackend->reboot = env_backend_shutdown;
3085+ pVFSBackend->lock_screen = env_backend_lock_screen;
3086+ pVFSBackend->setup_time = env_backend_setup_time;
3087+ pVFSBackend->show_system_monitor = env_backend_show_system_monitor;
3088+ }
3089+
3090+ if (pVFSBackend != NULL)
3091+ cairo_dock_fm_register_vfs_backend (pVFSBackend);
3092 else
3093 return FALSE;
3094 CD_APPLET_SET_CONTAINER_TYPE (CAIRO_DOCK_MODULE_IS_PLUGIN);
3095
3096=== modified file 'gnome-integration/src/applet-utils.c'
3097--- gnome-integration/src/applet-utils.c 2012-02-16 01:45:57 +0000
3098+++ gnome-integration/src/applet-utils.c 2012-03-21 20:37:19 +0000
3099@@ -53,6 +53,7 @@
3100 void env_backend_setup_time (void)
3101 {
3102 cairo_dock_launch_command ("time-admin"); // it uses PolicyKit => no gksudo.
3103+ /// TODO: use gnome-control-center ...
3104 }
3105
3106 void env_backend_show_system_monitor (void)
3107
3108=== modified file 'gvfs-integration/cairo-dock-gio-vfs.c'
3109--- gvfs-integration/cairo-dock-gio-vfs.c 2011-09-26 12:56:12 +0000
3110+++ gvfs-integration/cairo-dock-gio-vfs.c 2012-03-21 20:37:19 +0000
3111@@ -92,7 +92,7 @@
3112 {
3113 //g_print (" une icone possible est : %s\n", cFileNames[i]);
3114
3115- gchar *path = cairo_dock_search_icon_s_path (cFileNames[i]);
3116+ gchar *path = cairo_dock_search_icon_s_path (cFileNames[i], CAIRO_DOCK_DEFAULT_ICON_SIZE);
3117 if (path)
3118 {
3119 g_free (path);
3120@@ -169,7 +169,7 @@
3121 if (iFileType == G_FILE_TYPE_MOUNTABLE)
3122 {
3123 const gchar *cFileName = g_file_info_get_name (pFileInfo);
3124- cd_message (" test de %s...", cFileName);
3125+ cd_debug (" test of %s...", cFileName);
3126 const gchar *cTargetURI = g_file_info_get_attribute_string (pFileInfo, G_FILE_ATTRIBUTE_STANDARD_TARGET_URI);
3127
3128 GMount *pMount = NULL;
3129@@ -185,7 +185,7 @@
3130 cd_message (" mount : %s", cName);
3131 if (cName != NULL && strcmp (cName, cVolumeName) == 0)
3132 {
3133- cd_message ("TROUVE");
3134+ cd_debug ("Found");
3135 *pFoundMount = pMount;
3136 *cURI = g_strconcat ("computer:///", cFileName, NULL);
3137 GIcon *pSystemIcon = g_mount_get_icon (pMount);
3138
3139=== modified file 'kde-integration/src/applet-vfs.c'
3140--- kde-integration/src/applet-vfs.c 2011-04-20 20:46:51 +0000
3141+++ kde-integration/src/applet-vfs.c 2012-03-21 20:37:19 +0000
3142@@ -79,7 +79,7 @@
3143 for (i = 0; cFileNames[i] != NULL && cIconPath == NULL; i ++)
3144 {
3145 //cd_message (" une icone possible est : %s\n", cFileNames[i]);
3146- cIconPath = cairo_dock_search_icon_s_path (cFileNames[i]);
3147+ cIconPath = cairo_dock_search_icon_s_path (cFileNames[i], CAIRO_DOCK_DEFAULT_ICON_SIZE);
3148 //cd_message (" chemin trouve : %s\n", cIconPath);
3149 }
3150 }
3151
3152=== modified file 'keyboard-indicator/data/keyboard-indicator.conf.in'
3153--- keyboard-indicator/data/keyboard-indicator.conf.in 2012-02-16 01:45:57 +0000
3154+++ keyboard-indicator/data/keyboard-indicator.conf.in 2012-03-21 20:37:19 +0000
3155@@ -20,8 +20,8 @@
3156 #{Set to 0 to use the default applet size}
3157 icon size = 0;0
3158
3159-#B Always display the icon, even when the dock is hidden?
3160-always visi = false
3161+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
3162+always_visi = 0
3163
3164 #C+ Background color to add in this case
3165 bg color = .8;.8;.8;.5
3166
3167=== modified file 'logout/src/applet-init.c'
3168--- logout/src/applet-init.c 2012-02-16 01:45:57 +0000
3169+++ logout/src/applet-init.c 2012-03-21 20:37:19 +0000
3170@@ -53,6 +53,8 @@
3171 CD_APPLET_MANAGE_APPLICATION ("xfce4-session-logout"); // x-session-manager before 4.8
3172 else if (g_iDesktopEnv == CAIRO_DOCK_KDE)
3173 CD_APPLET_MANAGE_APPLICATION ("ksmserver"); /// pas du tout sur...
3174+
3175+ myData.iDesiredIconSize = cairo_dock_search_icon_size (GTK_ICON_SIZE_MENU);
3176
3177 //\_______________ On enregistre nos notifications.
3178 CD_APPLET_REGISTER_FOR_CLICK_EVENT;
3179
3180=== modified file 'logout/src/applet-logout.c'
3181--- logout/src/applet-logout.c 2012-02-16 01:45:57 +0000
3182+++ logout/src/applet-logout.c 2012-03-21 20:37:19 +0000
3183@@ -32,6 +32,7 @@
3184 typedef struct {
3185 gchar *cUserName;
3186 gchar *cIconFile;
3187+ gchar *cRealName;
3188 } CDUser;
3189
3190 static void cd_logout_shut_down (void);
3191@@ -60,7 +61,7 @@
3192 // get capabilities from UPower.
3193 #ifdef CD_UPOWER_AVAILABLE
3194 UpClient *pUPowerClient = up_client_new ();
3195- up_client_get_properties_sync (pUPowerClient, NULL, &error); // this function always returns false ...
3196+ up_client_get_properties_sync (pUPowerClient, NULL, &error); // this function always returns false ... and it crashes the dock (Debian 6) ! :-O
3197 if (error)
3198 {
3199 cd_warning ("UPower error: %s", error->message);
3200@@ -115,6 +116,7 @@
3201 seat,
3202 DBUS_INTERFACE_PROPERTIES);
3203 pSharedMemory->bHasGuestAccount = cairo_dock_dbus_get_property_as_boolean (pProxy, "org.freedesktop.DisplayManager.Seat", "HasGuestAccount");
3204+ g_object_unref (pProxy);
3205 }
3206 }
3207
3208@@ -167,9 +169,9 @@
3209 /// MENU ///
3210 ////////////
3211
3212-static gchar *_check_icon (const gchar *cIconStock)
3213+static gchar *_check_icon (const gchar *cIconStock, gint iIconSize)
3214 {
3215- gchar *cImagePath = cairo_dock_search_icon_s_path (cIconStock);
3216+ gchar *cImagePath = cairo_dock_search_icon_s_path (cIconStock, iIconSize);
3217 if (cImagePath != NULL && g_file_test (cImagePath, G_FILE_TEST_EXISTS))
3218 return cImagePath;
3219 else
3220@@ -194,26 +196,26 @@
3221 GtkWidget *pMenuItem;
3222
3223 gchar *cImagePath;
3224- cImagePath = _check_icon ("system-shutdown");
3225+ cImagePath = _check_icon ("system-shutdown", myData.iDesiredIconSize);
3226 pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Shut down"), cImagePath ? cImagePath : MY_APPLET_SHARE_DATA_DIR"/system-shutdown.svg", cd_logout_shut_down, pMenu);
3227 g_free (cImagePath);
3228 if (!myData.bCanStop && ! myConfig.cUserAction2)
3229 gtk_widget_set_sensitive (pMenuItem, FALSE);
3230
3231- cImagePath = _check_icon (GTK_STOCK_REFRESH);
3232+ cImagePath = _check_icon (GTK_STOCK_REFRESH, myData.iDesiredIconSize);
3233 pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Restart"), cImagePath ? cImagePath : MY_APPLET_SHARE_DATA_DIR"/system-restart.svg", cd_logout_restart, pMenu);
3234 g_free (cImagePath);
3235 if (!myData.bCanRestart)
3236 gtk_widget_set_sensitive (pMenuItem, FALSE);
3237
3238- cImagePath = _check_icon ("sleep");
3239+ cImagePath = _check_icon ("sleep", myData.iDesiredIconSize);
3240 pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Hibernate"), cImagePath ? cImagePath : MY_APPLET_SHARE_DATA_DIR"/system-hibernate.svg", cd_logout_hibernate, pMenu);
3241 g_free (cImagePath);
3242 gtk_widget_set_tooltip_text (pMenuItem, D_("Your computer will not consume any energy."));
3243 if (!myData.bCanHibernate)
3244 gtk_widget_set_sensitive (pMenuItem, FALSE);
3245
3246- cImagePath = _check_icon ("clock");
3247+ cImagePath = _check_icon ("clock", myData.iDesiredIconSize);
3248 pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Suspend"), cImagePath ? cImagePath : MY_APPLET_SHARE_DATA_DIR"/system-suspend.svg", cd_logout_suspend, pMenu);
3249 g_free (cImagePath);
3250 gtk_widget_set_tooltip_text (pMenuItem, D_("Your computer will still consume a small amount of energy."));
3251@@ -222,7 +224,7 @@
3252
3253 if (g_getenv ("SESSION_MANAGER") != NULL) // needs a session manager for this.
3254 {
3255- cImagePath = _check_icon ("system-log-out");
3256+ cImagePath = _check_icon ("system-log-out", myData.iDesiredIconSize);
3257 pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Log out"), cImagePath ? cImagePath : MY_APPLET_SHARE_DATA_DIR"/system-log-out.svg", cd_logout_close_session, pMenu);
3258 g_free (cImagePath);
3259 gtk_widget_set_tooltip_text (pMenuItem, D_("Close your session and allow to open a new one."));
3260@@ -245,14 +247,16 @@
3261 for (u = myData.pUserList; u != NULL; u = u->next)
3262 {
3263 pUser = u->data;
3264- pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (pUser->cUserName, pUser->cIconFile, _switch_to_user, pUsersSubMenu, pUser->cUserName);
3265- if (cCurrentUser && strcmp (cCurrentUser, pUser->cUserName) == 0)
3266+ pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (
3267+ (pUser->cRealName && *(pUser->cRealName) != '\0') ? pUser->cRealName : pUser->cUserName,
3268+ pUser->cIconFile, _switch_to_user, pUsersSubMenu, pUser->cUserName);
3269+ if (! bFoundUser && cCurrentUser && strcmp (cCurrentUser, pUser->cUserName) == 0)
3270 {
3271 bFoundUser = TRUE;
3272 gtk_widget_set_sensitive (pMenuItem, FALSE);
3273 }
3274 }
3275-
3276+
3277 if (myData.bHasGuestAccount && bFoundUser) // if we didn't find the user yet, it means we are the guest, so don't show this entry.
3278 {
3279 CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Guest session"), NULL, _switch_to_user, pUsersSubMenu, NULL); // NULL will mean "guest"
3280@@ -261,12 +265,12 @@
3281
3282 CD_APPLET_ADD_SEPARATOR_IN_MENU (pMenu);
3283
3284- cImagePath = _check_icon ("system-lock-screen");
3285+ cImagePath = _check_icon ("system-lock-screen", myData.iDesiredIconSize);
3286 CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Lock screen"), cImagePath ? cImagePath : MY_APPLET_SHARE_DATA_DIR"/locked.svg", cairo_dock_fm_lock_screen, pMenu); /// TODO: same question...
3287 g_free (cImagePath);
3288 if (myData.bCanStop)
3289 {
3290- cImagePath = _check_icon ("document-open-recent");
3291+ cImagePath = _check_icon ("document-open-recent", myData.iDesiredIconSize);
3292 CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Program an automatic shut-down"), cImagePath ? cImagePath : MY_APPLET_SHARE_DATA_DIR"/icon-scheduling.svg", cd_logout_program_shutdown, pMenu);
3293 g_free (cImagePath);
3294 }
3295@@ -414,10 +418,17 @@
3296 CD_APPLET_DEMANDS_ATTENTION ("pulse", 20);
3297 cairo_dock_show_temporary_dialog_with_icon (myIcon->cName, myIcon, myContainer, 5e3, "same icon");
3298
3299- gchar *cImagePath = _check_icon (myConfig.cEmblemPath);
3300+ gint iIconSize = MAX (myIcon->iImageWidth, myIcon->iImageHeight);
3301+ gchar *cImagePath = _check_icon (myConfig.cEmblemPath,
3302+ (myConfig.iRebootNeededImage == CD_DISPLAY_EMBLEM ?
3303+ iIconSize / 2 :
3304+ iIconSize));
3305 if (! cImagePath)
3306 {
3307- cImagePath = _check_icon (GTK_STOCK_REFRESH);
3308+ cImagePath = _check_icon (GTK_STOCK_REFRESH,
3309+ (myConfig.iRebootNeededImage == CD_DISPLAY_EMBLEM ?
3310+ iIconSize / 2 :
3311+ iIconSize));
3312 if (! cImagePath)
3313 cImagePath = g_strdup (MY_APPLET_SHARE_DATA_DIR"/system-restart.svg");
3314 }
3315@@ -491,7 +502,7 @@
3316 }
3317 static void _demand_confirmation (const gchar *cMessage, const gchar *cIconStock, const gchar *cIconImage, void (*callback) (void))
3318 {
3319- gchar *cImagePath = _check_icon (cIconStock);
3320+ gchar *cImagePath = _check_icon (cIconStock, 32); // dialog
3321 myData.pConfirmationDialog = cairo_dock_show_dialog_full (cMessage, myIcon, myContainer, 0, cImagePath ? cImagePath : cIconImage, NULL, (CairoDockActionOnAnswerFunc) _exec_action, callback, NULL);
3322 g_free (cImagePath);
3323 }
3324@@ -697,6 +708,7 @@
3325 {
3326 g_free (pUser->cUserName);
3327 g_free (pUser->cIconFile);
3328+ g_free (pUser->cRealName);
3329 g_free (pUser);
3330 }
3331
3332@@ -745,6 +757,7 @@
3333 if (pUser->cUserName == NULL) // shouldn't happen
3334 continue;
3335 pUser->cIconFile = cairo_dock_dbus_get_property_as_string (pProxy, "org.freedesktop.Accounts.User", "IconFile");
3336+ pUser->cRealName = cairo_dock_dbus_get_property_as_string (pProxy, "org.freedesktop.Accounts.User", "RealName");
3337 pUserList = g_list_insert_sorted (pUserList, pUser, (GCompareFunc)_compare_user_name);
3338
3339 g_object_unref (pProxy);
3340
3341=== modified file 'logout/src/applet-struct.h'
3342--- logout/src/applet-struct.h 2012-02-16 01:45:57 +0000
3343+++ logout/src/applet-struct.h 2012-03-21 20:37:19 +0000
3344@@ -79,6 +79,7 @@
3345 gint iCountDown;
3346 guint iSidShutDown;
3347 CairoDialog *pConfirmationDialog;
3348+ gint iDesiredIconSize;
3349 } ;
3350
3351 #endif
3352
3353=== modified file 'mail/data/mail.conf.in'
3354--- mail/data/mail.conf.in 2012-02-16 01:45:57 +0000
3355+++ mail/data/mail.conf.in 2012-03-21 20:37:19 +0000
3356@@ -20,8 +20,8 @@
3357 #{Set to 0 to use the default applet size}
3358 icon size = 0;0
3359
3360-#B Always display the icon, even when the dock is hidden?
3361-always visi = false
3362+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
3363+always_visi = 0
3364
3365 #C+ Background color to add in this case
3366 bg color = .8;.8;.8;.5
3367
3368=== modified file 'mail/src/cd-mail-applet-config.c'
3369--- mail/src/cd-mail-applet-config.c 2012-02-16 01:45:57 +0000
3370+++ mail/src/cd-mail-applet-config.c 2012-03-21 20:37:19 +0000
3371@@ -105,7 +105,7 @@
3372
3373 for( j = 0; j < MAIL_NB_STORAGE_TYPES; j++ )
3374 {
3375- if (g_strcasecmp(storage_tab[j].name, cMailAccountType) == 0)
3376+ if (g_ascii_strcasecmp (storage_tab[j].name, cMailAccountType) == 0)
3377 {
3378 break;
3379 }
3380@@ -141,7 +141,7 @@
3381 if (path != NULL) { \
3382 _found_image = cairo_dock_search_image_s_path (path); \
3383 if (_found_image == NULL)\
3384- _found_image = cairo_dock_search_icon_s_path (path); }\
3385+ _found_image = cairo_dock_search_icon_s_path (path, MAX (myIcon->iImageWidth, myIcon->iImageHeight)); }\
3386 _found_image; })
3387 CD_APPLET_GET_CONFIG_BEGIN
3388 //\_________________ On recupere toutes les valeurs de notre fichier de conf.
3389
3390=== modified file 'mail/src/cd-mail-applet-init.c'
3391--- mail/src/cd-mail-applet-init.c 2010-08-10 00:05:57 +0000
3392+++ mail/src/cd-mail-applet-init.c 2012-03-21 20:37:19 +0000
3393@@ -103,7 +103,7 @@
3394 //\_______________ On charge le theme si necessaire, avec en priorite les images utilisateur.
3395 if (myConfig.cNoMailUserImage != NULL)
3396 {
3397- gchar *cPath = cairo_dock_search_icon_s_path (myConfig.cNoMailUserImage);
3398+ gchar *cPath = cairo_dock_search_icon_s_path (myConfig.cNoMailUserImage, MAX (myIcon->iImageWidth, myIcon->iImageHeight));
3399 if (! g_file_test (cPath, G_FILE_TEST_EXISTS))
3400 {
3401 g_free (myConfig.cNoMailUserImage);
3402@@ -113,7 +113,7 @@
3403 }
3404 if (myConfig.cHasMailUserImage != NULL)
3405 {
3406- gchar *cPath = cairo_dock_search_icon_s_path (myConfig.cHasMailUserImage);
3407+ gchar *cPath = cairo_dock_search_icon_s_path (myConfig.cHasMailUserImage, MAX (myIcon->iImageWidth, myIcon->iImageHeight));
3408 if (! g_file_test (cPath, G_FILE_TEST_EXISTS))
3409 {
3410 g_free (myConfig.cHasMailUserImage);
3411
3412=== modified file 'musicPlayer/data/musicPlayer.conf.in'
3413--- musicPlayer/data/musicPlayer.conf.in 2012-02-16 01:45:57 +0000
3414+++ musicPlayer/data/musicPlayer.conf.in 2012-03-21 20:37:19 +0000
3415@@ -22,8 +22,8 @@
3416 #{Set to 0 to use the default applet size}
3417 icon size = 0;0
3418
3419-#B Always display the icon, even when the dock is hidden?
3420-always visi = false
3421+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
3422+always_visi = 0
3423
3424 #C+ Background color to add in this case
3425 bg color = .8;.8;.8;.5
3426
3427=== modified file 'musicPlayer/src/applet-draw.c'
3428--- musicPlayer/src/applet-draw.c 2012-02-16 01:45:57 +0000
3429+++ musicPlayer/src/applet-draw.c 2012-03-21 20:37:19 +0000
3430@@ -212,7 +212,7 @@
3431 gchar *cUserIcon = myConfig.cUserImage[iStatus];
3432 if (cUserIcon != NULL) // l'utilisateur a defini une icone perso pour ce statut => on essaye de la charger.
3433 {
3434- gchar *cUserImagePath = cairo_dock_search_icon_s_path (cUserIcon);
3435+ gchar *cUserImagePath = cairo_dock_search_icon_s_path (cUserIcon, MAX (myIcon->iImageWidth, myIcon->iImageHeight));
3436 myData.pSurfaces[iStatus] = CD_APPLET_LOAD_SURFACE_FOR_MY_APPLET (cUserImagePath ? cUserImagePath : cUserIcon); // si on a trouve une icone, on la prend, sinon on considere le fichier comme une image.
3437 g_free (cUserImagePath);
3438 }
3439
3440=== modified file 'musicPlayer/src/applet-musicplayer.c'
3441--- musicPlayer/src/applet-musicplayer.c 2012-02-16 01:45:57 +0000
3442+++ musicPlayer/src/applet-musicplayer.c 2012-03-21 20:37:19 +0000
3443@@ -503,11 +503,11 @@
3444 cd_musicplayer_apply_status_surface (PLAYER_NONE); // until we detect any service, consider it's not running.
3445 if (myConfig.cDefaultTitle == NULL)
3446 {
3447- if (myIcon->cName != NULL)
3448+ /**if (myIcon->cName != NULL)
3449 {
3450 CD_APPLET_SET_NAME_FOR_MY_ICON (myIcon->cName);
3451 }
3452- else if (strcmp (myData.pCurrentHandler->name, "Mpris2") != 0)
3453+ else */if (strcmp (myData.pCurrentHandler->name, "Mpris2") != 0)
3454 {
3455 CD_APPLET_SET_NAME_FOR_MY_ICON (myData.pCurrentHandler->name);
3456 }
3457
3458=== modified file 'musicPlayer/src/applet-notifications.c'
3459--- musicPlayer/src/applet-notifications.c 2012-02-16 01:45:57 +0000
3460+++ musicPlayer/src/applet-notifications.c 2012-03-21 20:37:19 +0000
3461@@ -130,6 +130,8 @@
3462 myConfig.cMusicPlayer = g_strdup (cPlayerName);
3463 // set the handler with this value.
3464 cd_musicplayer_set_current_handler (myConfig.cMusicPlayer);
3465+ // launch it, if it's already running, it's likely to have no effect
3466+ cairo_dock_launch_command (myData.pCurrentHandler->launch);
3467 }
3468 static void _show_players_list_dialog (void)
3469 {
3470
3471=== modified file 'musicPlayer/src/applet-rhythmbox.c'
3472--- musicPlayer/src/applet-rhythmbox.c 2012-02-16 01:45:57 +0000
3473+++ musicPlayer/src/applet-rhythmbox.c 2012-03-21 20:37:19 +0000
3474@@ -345,7 +345,7 @@
3475 pHandler->appclass = "rhythmbox";
3476 pHandler->launch = "rhythmbox";
3477 pHandler->cMprisService = "org.gnome.Rhythmbox"; // they used MPRIS from version 2.90.1~20110908 with org.mpris.MediaPlayer2.rhythmbox, but we don't care as they quickly switched to MPRIS2 in version 2.90.1~20111126
3478- pHandler->cMpris2Service = "org.mpris.MediaPlayer2.rhythmbox3"; // 2.90.1~20111126
3479+ pHandler->cMpris2Service = "org.mpris.MediaPlayer2.rhythmbox"; // after 2.90.1~20111126 (on a previous development version, they used rhythmbox3...)
3480 pHandler->path = "/org/gnome/Rhythmbox/Player"; // <= 0.13
3481 pHandler->interface = "org.gnome.Rhythmbox.Player";
3482 pHandler->path2 = "/org/gnome/Rhythmbox/Shell";
3483
3484=== modified file 'netspeed/data/netspeed.conf.in'
3485--- netspeed/data/netspeed.conf.in 2012-02-16 01:45:57 +0000
3486+++ netspeed/data/netspeed.conf.in 2012-03-21 20:37:19 +0000
3487@@ -20,8 +20,8 @@
3488 #{Set to 0 to use the default applet size}
3489 icon size = 0;0
3490
3491-#B Always display the icon, even when the dock is hidden?
3492-always visi = false
3493+#Y+[No;0;0;With default background;0;0;With custom background;1;1] Always display the icon, even when the dock is hidden?
3494+always_visi = 0
3495
3496 #C+ Background color to add in this case
3497 bg color = .8;.8;.8;.5
3498
3499=== modified file 'po/ar.po'
3500--- po/ar.po 2012-02-16 01:45:57 +0000
3501+++ po/ar.po 2012-03-21 20:37:19 +0000
3502@@ -7,16 +7,15 @@
3503 msgstr ""
3504 "Project-Id-Version: cairo-dock-plug-ins\n"
3505 "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n"
3506-"POT-Creation-Date: 2012-02-12 03:52+0000\n"
3507 "PO-Revision-Date: 2011-09-16 00:48+0000\n"
3508 "Last-Translator: Fabounet <fabounet03@gmail.com>\n"
3509 "Language-Team: Arabic <ar@li.org>\n"
3510+"Language: ar\n"
3511 "MIME-Version: 1.0\n"
3512 "Content-Type: text/plain; charset=UTF-8\n"
3513 "Content-Transfer-Encoding: 8bit\n"
3514 "X-Launchpad-Export-Date: 2012-02-13 04:54+0000\n"
3515 "X-Generator: Launchpad (build 14781)\n"
3516-"Language: ar\n"
3517
3518 #: ../Animated-icons/src/applet-init.c:32
3519 msgid "Animated icons"
3520@@ -28,47 +27,77 @@
3521
3522 #: ../Animated-icons/src/applet-init.c:80 ../Animated-icons/data/messages:9
3523 #: ../Animated-icons/data/messages:27 ../Animated-icons/data/messages:47
3524-#: ../Animated-icons/data/messages:67 ../Animated-icons/data/messages:177
3525+#: ../Animated-icons/data/messages:157
3526 msgid "Bounce"
3527 msgstr "ارتداد"
3528
3529 #: ../Animated-icons/src/applet-init.c:81 ../Animated-icons/data/messages:11
3530 #: ../Animated-icons/data/messages:29 ../Animated-icons/data/messages:49
3531-#: ../Animated-icons/data/messages:69
3532 msgid "Rotate"
3533 msgstr "تدوير"
3534
3535 #: ../Animated-icons/src/applet-init.c:82 ../Animated-icons/data/messages:13
3536 #: ../Animated-icons/data/messages:31 ../Animated-icons/data/messages:51
3537-#: ../Animated-icons/data/messages:71 ../Animated-icons/data/messages:191
3538+#: ../Animated-icons/data/messages:171
3539 msgid "Blink"
3540 msgstr "وميض"
3541
3542 #: ../Animated-icons/src/applet-init.c:83 ../Animated-icons/data/messages:15
3543 #: ../Animated-icons/data/messages:33 ../Animated-icons/data/messages:53
3544-#: ../Animated-icons/data/messages:73 ../Animated-icons/data/messages:165
3545+#: ../Animated-icons/data/messages:145
3546 msgid "Pulse"
3547 msgstr "نبض"
3548
3549 #: ../Animated-icons/src/applet-init.c:84 ../Animated-icons/data/messages:17
3550 #: ../Animated-icons/data/messages:35 ../Animated-icons/data/messages:55
3551-#: ../Animated-icons/data/messages:75 ../Animated-icons/data/messages:137
3552+#: ../Animated-icons/data/messages:117
3553 msgid "Wobbly"
3554 msgstr "متهاد"
3555
3556 #: ../Animated-icons/src/applet-init.c:85 ../Animated-icons/data/messages:19
3557 #: ../Animated-icons/data/messages:37 ../Animated-icons/data/messages:57
3558-#: ../Animated-icons/data/messages:77 ../Animated-icons/data/messages:153
3559+#: ../Animated-icons/data/messages:133
3560 msgid "Wave"
3561 msgstr "تموج"
3562
3563 #: ../Animated-icons/src/applet-init.c:86 ../Animated-icons/data/messages:21
3564 #: ../Animated-icons/data/messages:39 ../Animated-icons/data/messages:59
3565-#: ../Animated-icons/data/messages:79 ../Animated-icons/data/messages:101
3566-#: ../Animated-icons/data/messages:109
3567+#: ../Animated-icons/data/messages:81 ../Animated-icons/data/messages:89
3568 msgid "Spot"
3569 msgstr "بقعة"
3570
3571+#: ../Application-Menu/src/applet-init.c:30
3572+#, fuzzy
3573+msgid "Application Menu"
3574+msgstr "قائمة البرامج"
3575+
3576+#: ../Application-Menu/src/applet-init.c:33
3577+#: ../Global-Menu/src/applet-init.c:33
3578+msgid ""
3579+"This applet allows you to control the current active window:\n"
3580+" close, minimize, maximize, and display the application menu.To display the "
3581+"menu, applications have to support this feature, which is the case on Ubuntu "
3582+"by default.\n"
3583+"You can bind a shortkey to this action."
3584+msgstr ""
3585+
3586+#: ../Application-Menu/src/applet-init.c:83
3587+#: ../Application-Menu/src/applet-init.c:148
3588+#: ../Global-Menu/src/applet-init.c:108 ../Global-Menu/src/applet-init.c:210
3589+msgid "Show/hide the current application menu"
3590+msgstr ""
3591+
3592+#: ../Application-Menu/src/applet-notifications.c:52
3593+#: ../Global-Menu/src/applet-notifications.c:52
3594+msgid "The application didn't send its menu to us."
3595+msgstr ""
3596+
3597+#: ../Application-Menu/src/indicator-sound.c:228
3598+#: ../Sound-Menu/src/indicator-sound.c:228
3599+#, c-format
3600+msgid "Volume (%'.0f%%)"
3601+msgstr ""
3602+
3603 #: ../Cairo-Penguin/src/applet-init.c:33
3604 msgid ""
3605 "Add a lively Penguin in your dock !\n"
3606@@ -96,8 +125,7 @@
3607 #: ../Cairo-Penguin/src/applet-notifications.c:31
3608 msgid ""
3609 "I don't have time to play with you, I have to dig and mine all these icons."
3610-msgstr ""
3611-"ليس لدي مايكفي من الوقت للعب معك, علي أن احفر وألغم كل هذه الأيقونات."
3612+msgstr "ليس لدي مايكفي من الوقت للعب معك, علي أن احفر وألغم كل هذه الأيقونات."
3613
3614 #: ../Cairo-Penguin/src/applet-notifications.c:32
3615 msgid "Your dock is so messy! Let me clean it."
3616@@ -252,7 +280,7 @@
3617 msgstr ""
3618
3619 #: ../Composite-Manager/src/applet-notifications.c:120
3620-#: ../Composite-Manager/data/messages:131
3621+#: ../Composite-Manager/data/messages:129
3622 msgid "Edit Window-Manager settings"
3623 msgstr ""
3624
3625@@ -267,10 +295,10 @@
3626 #: ../RSSreader/src/applet-notifications.c:129
3627 #: ../System-Monitor/src/applet-notifications.c:106
3628 #: ../Xgamma/src/applet-notifications.c:87
3629-#: ../alsaMixer/src/applet-notifications.c:71
3630+#: ../alsaMixer/src/applet-notifications.c:85
3631 #: ../dustbin/src/applet-notifications.c:136
3632 #: ../mail/src/cd-mail-applet-notifications.c:154
3633-#: ../musicPlayer/src/applet-notifications.c:276
3634+#: ../musicPlayer/src/applet-notifications.c:278
3635 #: ../netspeed/src/applet-notifications.c:94
3636 #: ../quick-browser/src/applet-notifications.c:41
3637 #: ../shortcuts/src/applet-notifications.c:249
3638@@ -278,8 +306,8 @@
3639 #: ../showDesktop/src/applet-notifications.c:153
3640 #: ../showDesktop/src/applet-notifications.c:165
3641 #: ../showDesktop/src/applet-notifications.c:177
3642-#: ../slider/src/applet-notifications.c:227
3643-#: ../slider/src/applet-notifications.c:268
3644+#: ../slider/src/applet-notifications.c:223
3645+#: ../slider/src/applet-notifications.c:265
3646 #: ../stack/src/applet-notifications.c:181
3647 #: ../switcher/src/applet-notifications.c:300
3648 #: ../switcher/src/applet-notifications.c:305
3649@@ -289,15 +317,15 @@
3650 msgstr "ضغط وسطي"
3651
3652 #: ../Composite-Manager/src/applet-notifications.c:127
3653-#: ../Composite-Manager/data/messages:133
3654+#: ../Composite-Manager/data/messages:131
3655 msgid "Reload Window-Manager"
3656 msgstr ""
3657
3658 #: ../Composite-Manager/src/applet-notifications.c:136
3659 #: ../showDesktop/src/applet-notifications.c:153
3660 #: ../showDesktop/src/applet-notifications.c:155
3661-#: ../Composite-Manager/data/messages:135 ../showDesktop/data/messages:105
3662-#: ../showDesktop/data/messages:119 ../switcher/data/messages:107
3663+#: ../Composite-Manager/data/messages:133 ../showDesktop/data/messages:103
3664+#: ../showDesktop/data/messages:117 ../switcher/data/messages:113
3665 msgid "Show desktop"
3666 msgstr ""
3667
3668@@ -305,22 +333,22 @@
3669 #: ../showDesktop/src/applet-notifications.c:165
3670 #: ../showDesktop/src/applet-notifications.c:167
3671 #: ../switcher/src/applet-notifications.c:314
3672-#: ../Composite-Manager/data/messages:137 ../showDesktop/data/messages:113
3673-#: ../showDesktop/data/messages:127 ../switcher/data/messages:109
3674+#: ../Composite-Manager/data/messages:135 ../showDesktop/data/messages:111
3675+#: ../showDesktop/data/messages:125 ../switcher/data/messages:115
3676 msgid "Expose all the desktops"
3677 msgstr ""
3678
3679 #: ../Composite-Manager/src/applet-notifications.c:154
3680 #: ../switcher/src/applet-notifications.c:323
3681-#: ../Composite-Manager/data/messages:139 ../switcher/data/messages:111
3682+#: ../Composite-Manager/data/messages:137 ../switcher/data/messages:117
3683 msgid "Expose all the windows"
3684 msgstr ""
3685
3686 #: ../Composite-Manager/src/applet-notifications.c:163
3687 #: ../showDesktop/src/applet-notifications.c:177
3688 #: ../showDesktop/src/applet-notifications.c:179
3689-#: ../Composite-Manager/data/messages:141 ../showDesktop/data/messages:111
3690-#: ../showDesktop/data/messages:125
3691+#: ../Composite-Manager/data/messages:139 ../showDesktop/data/messages:109
3692+#: ../showDesktop/data/messages:123
3693 msgid "Show the Widget Layer"
3694 msgstr ""
3695
3696@@ -344,8 +372,7 @@
3697
3698 #: ../Dbus/src/interface-applet-signals.c:466
3699 #, c-format
3700-msgid ""
3701-"The applet '%s' has been succefully updated and automatically reloaded"
3702+msgid "The applet '%s' has been succefully updated and automatically reloaded"
3703 msgstr "البريمج '%s' تم تحديثه وإعادة تشغيله تلقائياً بنجاح"
3704
3705 #: ../Dbus/src/interface-applet-signals.c:466
3706@@ -500,7 +527,7 @@
3707 msgid "Properties:"
3708 msgstr ""
3709
3710-#: ../Folders/src/applet-notifications.c:136 ../Folders/data/messages:119
3711+#: ../Folders/src/applet-notifications.c:136 ../Folders/data/messages:117
3712 msgid "Size"
3713 msgstr ""
3714
3715@@ -534,21 +561,30 @@
3716
3717 #: ../Folders/src/applet-notifications.c:184
3718 #: ../Folders/src/applet-notifications.c:185
3719-#: ../Folders/src/applet-notifications.c:186 ../Disks/data/messages:107
3720-#: ../System-Monitor/data/messages:111 ../alsaMixer/data/messages:155
3721-#: ../netspeed/data/messages:107 ../slider/data/messages:165
3722+#: ../Folders/src/applet-notifications.c:186 ../Disks/data/messages:105
3723+#: ../System-Monitor/data/messages:115 ../alsaMixer/data/messages:147
3724+#: ../netspeed/data/messages:115 ../slider/data/messages:169
3725 msgid "Yes"
3726 msgstr ""
3727
3728 #: ../Folders/src/applet-notifications.c:184
3729 #: ../Folders/src/applet-notifications.c:185
3730-#: ../Folders/src/applet-notifications.c:186 ../Disks/data/messages:103
3731-#: ../Disks/data/messages:139 ../Network-Monitor/data/messages:113
3732-#: ../RSSreader/data/messages:115 ../System-Monitor/data/messages:107
3733-#: ../System-Monitor/data/messages:159 ../alsaMixer/data/messages:121
3734-#: ../alsaMixer/data/messages:151 ../clock/data/messages:101
3735-#: ../netspeed/data/messages:103 ../netspeed/data/messages:151
3736-#: ../shortcuts/data/messages:121 ../slider/data/messages:163
3737+#: ../Folders/src/applet-notifications.c:186
3738+#: ../Application-Menu/data/messages:293 ../Disks/data/messages:101
3739+#: ../Disks/data/messages:137 ../Messaging-Menu/data/messages:15
3740+#: ../Network-Monitor/data/messages:17 ../Network-Monitor/data/messages:117
3741+#: ../RSSreader/data/messages:113 ../Sound-Menu/data/messages:183
3742+#: ../Status-Notifier/data/messages:19 ../System-Monitor/data/messages:15
3743+#: ../System-Monitor/data/messages:111 ../System-Monitor/data/messages:163
3744+#: ../Toons/data/messages:15 ../alsaMixer/data/messages:17
3745+#: ../alsaMixer/data/messages:113 ../alsaMixer/data/messages:143
3746+#: ../clock/data/messages:17 ../clock/data/messages:105
3747+#: ../keyboard-indicator/data/messages:15 ../mail/data/messages:15
3748+#: ../musicPlayer/data/messages:17 ../netspeed/data/messages:15
3749+#: ../netspeed/data/messages:111 ../netspeed/data/messages:159
3750+#: ../powermanager/data/messages:17 ../shortcuts/data/messages:119
3751+#: ../slider/data/messages:15 ../slider/data/messages:167
3752+#: ../weather/data/messages:17 ../wifi/data/messages:15
3753 msgid "No"
3754 msgstr ""
3755
3756@@ -630,47 +666,47 @@
3757
3758 #: ../Folders/src/applet-notifications.c:380
3759 #: ../Recent-Events/src/applet-dialog.c:263
3760-#: ../slider/src/applet-notifications.c:237
3761+#: ../slider/src/applet-notifications.c:233
3762 msgid "Open with"
3763 msgstr "فتح بـ"
3764
3765-#: ../Folders/src/applet-notifications.c:412
3766+#: ../Folders/src/applet-notifications.c:413
3767 msgid "Properties"
3768 msgstr "الخصائص"
3769
3770-#: ../Folders/src/applet-notifications.c:415
3771+#: ../Folders/src/applet-notifications.c:416
3772 msgid "Create a new file"
3773 msgstr "أنشئ ملفًا جديدًا"
3774
3775-#: ../Folders/src/applet-notifications.c:416
3776+#: ../Folders/src/applet-notifications.c:417
3777 msgid "Create a new folder"
3778 msgstr "تكوين مجلد جديد"
3779
3780-#: ../Folders/src/applet-notifications.c:421
3781+#: ../Folders/src/applet-notifications.c:422
3782 msgid "Sort by"
3783 msgstr ""
3784
3785-#: ../Folders/src/applet-notifications.c:422
3786+#: ../Folders/src/applet-notifications.c:423
3787 msgid "By name"
3788 msgstr ""
3789
3790-#: ../Folders/src/applet-notifications.c:423
3791+#: ../Folders/src/applet-notifications.c:424
3792 msgid "By date"
3793 msgstr ""
3794
3795-#: ../Folders/src/applet-notifications.c:424
3796+#: ../Folders/src/applet-notifications.c:425
3797 msgid "By size"
3798 msgstr ""
3799
3800-#: ../Folders/src/applet-notifications.c:425
3801+#: ../Folders/src/applet-notifications.c:426
3802 msgid "By type"
3803 msgstr ""
3804
3805-#: ../Folders/src/applet-notifications.c:465
3806+#: ../Folders/src/applet-notifications.c:468
3807 msgid "The folder has been imported."
3808 msgstr ""
3809
3810-#: ../Folders/src/applet-notifications.c:523
3811+#: ../Folders/src/applet-notifications.c:529
3812 msgid "Do you want to import the content of the folder too?"
3813 msgstr ""
3814
3815@@ -692,19 +728,19 @@
3816 msgid "Applications Menu"
3817 msgstr "قائمة البرامج"
3818
3819-#: ../GMenu/src/applet-init.c:65
3820+#: ../GMenu/src/applet-init.c:66
3821 msgid "Show/hide the Applications menu"
3822 msgstr ""
3823
3824-#: ../GMenu/src/applet-init.c:70
3825+#: ../GMenu/src/applet-init.c:71
3826 msgid "Show/hide the quick-launch dialog"
3827 msgstr ""
3828
3829-#: ../GMenu/src/applet-menu-callbacks.c:218 ../GMenu/data/messages:123
3830+#: ../GMenu/src/applet-menu-callbacks.c:218 ../GMenu/data/messages:121
3831 msgid "Logout"
3832 msgstr ""
3833
3834-#: ../GMenu/src/applet-menu-callbacks.c:221 ../GMenu/data/messages:125
3835+#: ../GMenu/src/applet-menu-callbacks.c:221 ../GMenu/data/messages:123
3836 msgid "Shutdown"
3837 msgstr ""
3838
3839@@ -736,23 +772,6 @@
3840 msgid "Global Menu"
3841 msgstr ""
3842
3843-#: ../Global-Menu/src/applet-init.c:33
3844-msgid ""
3845-"This applet allows you to control the current active window:\n"
3846-" close, minimize, maximize, and display the application menu.To display the "
3847-"menu, applications have to support this feature, which is the case on Ubuntu "
3848-"by default.\n"
3849-"You can bind a shortkey to this action."
3850-msgstr ""
3851-
3852-#: ../Global-Menu/src/applet-init.c:101 ../Global-Menu/src/applet-init.c:197
3853-msgid "Show/hide the current application menu"
3854-msgstr ""
3855-
3856-#: ../Global-Menu/src/applet-notifications.c:52
3857-msgid "The application didn't send its menu to us."
3858-msgstr ""
3859-
3860 #: ../Impulse/src/applet-impulse.c:170
3861 msgid ""
3862 "There is something wrong with PulseAudio.\n"
3863@@ -829,10 +848,10 @@
3864
3865 #: ../Network-Monitor/src/applet-draw.c:30
3866 #: ../powermanager/src/powermanager-draw.c:172 ../wifi/src/applet-draw.c:31
3867-#: ../Clipper/data/messages:101 ../GMenu/data/messages:121
3868-#: ../Network-Monitor/data/messages:217 ../alsaMixer/data/messages:129
3869-#: ../dnd2share/data/messages:113 ../dustbin/data/messages:103
3870-#: ../wifi/data/messages:135 ../wifi/data/messages:185
3871+#: ../Clipper/data/messages:99 ../GMenu/data/messages:119
3872+#: ../Network-Monitor/data/messages:221 ../alsaMixer/data/messages:121
3873+#: ../dnd2share/data/messages:111 ../dustbin/data/messages:101
3874+#: ../wifi/data/messages:139 ../wifi/data/messages:189
3875 msgid "None"
3876 msgstr "لا شيء"
3877
3878@@ -1064,7 +1083,7 @@
3879 msgid "Document"
3880 msgstr ""
3881
3882-#: ../Recent-Events/src/applet-dialog.c:368
3883+#: ../Recent-Events/src/applet-dialog.c:368 ../logout/data/messages:129
3884 msgid "Image"
3885 msgstr ""
3886
3887@@ -1100,19 +1119,19 @@
3888 msgid "Last access"
3889 msgstr ""
3890
3891-#: ../Recent-Events/src/applet-dialog.c:495
3892+#: ../Recent-Events/src/applet-dialog.c:481
3893 msgid "You need to install the Zeitgeist data engine."
3894 msgstr ""
3895
3896-#: ../Recent-Events/src/applet-dialog.c:501
3897+#: ../Recent-Events/src/applet-dialog.c:516
3898 msgid "Browse and search in recent events"
3899 msgstr ""
3900
3901-#: ../Recent-Events/src/applet-init.c:28
3902+#: ../Recent-Events/src/applet-init.c:29
3903 msgid "Recent-Events"
3904 msgstr ""
3905
3906-#: ../Recent-Events/src/applet-init.c:56
3907+#: ../Recent-Events/src/applet-init.c:58
3908 msgid "Show/hide the Recent Events"
3909 msgstr ""
3910
3911@@ -1121,16 +1140,16 @@
3912 msgid "%d event(s) deleted"
3913 msgstr ""
3914
3915-#: ../Recent-Events/src/applet-notifications.c:112
3916+#: ../Recent-Events/src/applet-notifications.c:113
3917 #: ../Scooby-Do/src/applet-backend-recent.c:212 ../Scooby-Do/data/messages:105
3918 msgid "Recent files"
3919 msgstr "آخر الملفات"
3920
3921-#: ../Recent-Events/src/applet-notifications.c:160
3922+#: ../Recent-Events/src/applet-notifications.c:161
3923 msgid "Delete today's events"
3924 msgstr ""
3925
3926-#: ../Recent-Events/src/applet-notifications.c:162
3927+#: ../Recent-Events/src/applet-notifications.c:163
3928 msgid "Delete all events"
3929 msgstr ""
3930
3931@@ -1206,7 +1225,7 @@
3932 msgstr "فتح في نافذة جديدة"
3933
3934 #: ../Scooby-Do/src/applet-backend-firefox.c:433
3935-#: ../dnd2share/src/applet-notifications.c:482
3936+#: ../dnd2share/src/applet-notifications.c:483
3937 msgid "Open file"
3938 msgstr "افتح ملفًا"
3939
3940@@ -1293,6 +1312,31 @@
3941 msgid "Enter your search"
3942 msgstr "أدخال مادة البحث"
3943
3944+#: ../Sound-Menu/src/applet-init.c:38
3945+#, fuzzy
3946+msgid "Sound Menu"
3947+msgstr "التحكم في الصوت"
3948+
3949+#: ../Sound-Menu/src/applet-init.c:41
3950+msgid ""
3951+"A menu to control the volume of each current audio sources.\n"
3952+"It requires the Sound service, which is available on Ubuntu by default."
3953+msgstr ""
3954+
3955+#: ../Sound-Menu/src/applet-init.c:91 ../alsaMixer/src/applet-init.c:118
3956+msgid "Show/hide the Sound menu"
3957+msgstr ""
3958+
3959+#: ../Sound-Menu/src/applet-notifications.c:35
3960+msgid ""
3961+"The Sound service did not reply.\n"
3962+"Please check that it is correctly installed."
3963+msgstr ""
3964+
3965+#: ../Sound-Menu/src/applet-sound.c:200 ../alsaMixer/src/applet-draw.c:64
3966+msgid "Volume"
3967+msgstr ""
3968+
3969 #: ../Status-Notifier/src/applet-init.c:33
3970 msgid ""
3971 "A <b>notification area</b> for your dock\n"
3972@@ -1472,80 +1516,78 @@
3973 msgstr ""
3974
3975 #: ../alsaMixer/src/applet-backend-alsamixer.c:46
3976+#: ../alsaMixer/src/applet-mixer.c:51
3977 #, c-format
3978 msgid "I couldn't open card '%s'"
3979 msgstr ""
3980
3981 #: ../alsaMixer/src/applet-backend-alsamixer.c:51
3982+#: ../alsaMixer/src/applet-mixer.c:56
3983 #, c-format
3984 msgid "Card '%s' opened but I couldn't get any info"
3985 msgstr ""
3986
3987 #: ../alsaMixer/src/applet-backend-alsamixer.c:59
3988+#: ../alsaMixer/src/applet-mixer.c:64
3989 msgid "I couldn't open the mixer"
3990 msgstr ""
3991
3992 #: ../alsaMixer/src/applet-backend-alsamixer.c:66
3993+#: ../alsaMixer/src/applet-mixer.c:71
3994 msgid "I couldn't attach the mixer to the card"
3995 msgstr ""
3996
3997 #: ../alsaMixer/src/applet-backend-alsamixer.c:73
3998+#: ../alsaMixer/src/applet-mixer.c:78
3999 msgid "I couldn't register options"
4000 msgstr ""
4001
4002 #: ../alsaMixer/src/applet-backend-alsamixer.c:80
4003+#: ../alsaMixer/src/applet-mixer.c:86
4004 msgid "I couldn't load the mixer"
4005 msgstr ""
4006
4007 #: ../alsaMixer/src/applet-backend-alsamixer.c:261
4008+#: ../alsaMixer/src/applet-mixer.c:286
4009 msgid "Set up volume:"
4010 msgstr ""
4011
4012-#: ../alsaMixer/src/applet-draw.c:63
4013-msgid "Volume"
4014-msgstr ""
4015-
4016 #: ../alsaMixer/src/applet-init.c:34
4017 msgid ""
4018 "This applet lets you control the sound volume from the dock.\n"
4019 "Scroll up/down on the icon to increase/decrease the volume.\n"
4020-"Click on icon to show/hide volume control (you can bind a keyboard shortcut "
4021-"for it)\n"
4022-"You can also hide the dialog by clicking on it.\n"
4023+"Click on icon to show/hide the volume control (you can bind a keyboard "
4024+"shortcut for it)\n"
4025 "Middle-click to set or unset to mute, double-click to raise the channels "
4026 "mixer.\n"
4027-"This applet works with the Alsa sound driver."
4028+"The applet can either use the Ubuntu Sound-menu or the Alsa driver."
4029 msgstr ""
4030
4031-#: ../alsaMixer/src/applet-init.c:43
4032+#: ../alsaMixer/src/applet-init.c:42
4033 msgid "Sound Control"
4034 msgstr "التحكم في الصوت"
4035
4036-#: ../alsaMixer/src/applet-init.c:119
4037-msgid "Show/hide the Sound menu"
4038-msgstr ""
4039-
4040-#: ../alsaMixer/src/applet-notifications.c:67
4041+#: ../alsaMixer/src/applet-notifications.c:80
4042 msgid "Adjust channels"
4043 msgstr ""
4044
4045-#: ../alsaMixer/src/applet-notifications.c:67
4046+#: ../alsaMixer/src/applet-notifications.c:80
4047 msgid "double-click"
4048 msgstr "ضغط-مزدوج"
4049
4050-#: ../alsaMixer/src/applet-notifications.c:71
4051+#: ../alsaMixer/src/applet-notifications.c:85
4052 msgid "Unmute"
4053 msgstr ""
4054
4055-#: ../alsaMixer/src/applet-notifications.c:71
4056+#: ../alsaMixer/src/applet-notifications.c:85
4057 msgid "Mute"
4058 msgstr "كتم"
4059
4060 #: ../clock/src/applet-calendar.c:193 ../clock/src/applet-calendar.c:274
4061 #: ../clock/src/applet-calendar.c:528 ../clock/src/applet-calendar.c:533
4062-#: ../clock/src/applet-task-editor.c:119 ../clock/src/applet-timer.c:88
4063-#: ../clock/src/applet-timer.c:176 ../clock/src/applet-timer.c:458
4064-#: ../clock/src/applet-timer.c:475 ../clock/src/applet-timer.c:495
4065+#: ../clock/src/applet-task-editor.c:119 ../clock/src/applet-timer.c:87
4066+#: ../clock/src/applet-timer.c:175 ../clock/src/applet-timer.c:457
4067+#: ../clock/src/applet-timer.c:474 ../clock/src/applet-timer.c:494
4068 msgid "No title"
4069 msgstr "لا عنوان"
4070
4071@@ -1557,7 +1599,7 @@
4072 msgid "Calendar and tasks"
4073 msgstr "أجندة و مهام"
4074
4075-#: ../clock/src/applet-config.c:36 ../clock/data/messages:169
4076+#: ../clock/src/applet-config.c:36 ../clock/data/messages:175
4077 msgid "Alarm"
4078 msgstr "منبه"
4079
4080@@ -1641,7 +1683,7 @@
4081 msgid "E.g.:"
4082 msgstr ""
4083
4084-#: ../clock/src/applet-config.c:495 ../weather/src/applet-config.c:207
4085+#: ../clock/src/applet-config.c:505 ../weather/src/applet-config.c:207
4086 msgid "Search for your location :"
4087 msgstr ""
4088
4089@@ -1655,8 +1697,8 @@
4090 "2 view are available : <b>numeric</b> and <b>analogic</b>.\n"
4091 " Analogic view is compatible with the Cairo-Clock's themes, and you can "
4092 "detach the applet to be a perfect clone of Cairo-Clock.\n"
4093-"It displays a <b>calendar</b> on left-click, which lets you <b>manage "
4094-"tasks</b>.\n"
4095+"It displays a <b>calendar</b> on left-click, which lets you <b>manage tasks</"
4096+"b>.\n"
4097 "It also supports alarms, and allows you to setup time and date.\n"
4098 "Left-click to show/hide the calendar, Middle-click to stop a notification,\n"
4099 "Double-click on a day to edit the tasks for this day."
4100@@ -1723,13 +1765,13 @@
4101 msgstr ""
4102
4103 #: ../clock/src/applet-task-editor.c:398 ../musicPlayer/src/applet-draw.c:153
4104-#: ../RSSreader/data/messages:137
4105+#: ../RSSreader/data/messages:135
4106 msgid "Title"
4107 msgstr ""
4108
4109 #: ../clock/src/applet-task-editor.c:405
4110-#: ../dnd2share/src/applet-notifications.c:387 ../Doncky/data/messages:99
4111-#: ../RSSreader/data/messages:153
4112+#: ../dnd2share/src/applet-notifications.c:387 ../Doncky/data/messages:97
4113+#: ../RSSreader/data/messages:151
4114 msgid "Text"
4115 msgstr ""
4116
4117@@ -1745,40 +1787,40 @@
4118 msgid "Tags"
4119 msgstr ""
4120
4121-#: ../clock/src/applet-timer.c:59
4122+#: ../clock/src/applet-timer.c:58
4123 msgid "1mn"
4124 msgstr ""
4125
4126-#: ../clock/src/applet-timer.c:64
4127+#: ../clock/src/applet-timer.c:63
4128 msgid "1h"
4129 msgstr ""
4130
4131-#: ../clock/src/applet-timer.c:87
4132+#: ../clock/src/applet-timer.c:86
4133 msgid "The following task was scheduled at"
4134 msgstr ""
4135
4136-#: ../clock/src/applet-timer.c:90 ../clock/src/applet-timer.c:460
4137-#: ../clock/src/applet-timer.c:497
4138+#: ../clock/src/applet-timer.c:89 ../clock/src/applet-timer.c:459
4139+#: ../clock/src/applet-timer.c:496
4140 msgid "Repeat this message every:"
4141 msgstr ""
4142
4143-#: ../clock/src/applet-timer.c:174
4144+#: ../clock/src/applet-timer.c:173
4145 msgid "The following task has felt due:"
4146 msgstr ""
4147
4148-#: ../clock/src/applet-timer.c:457
4149+#: ../clock/src/applet-timer.c:456
4150 msgid "It's time for the following task:"
4151 msgstr ""
4152
4153-#: ../clock/src/applet-timer.c:474
4154+#: ../clock/src/applet-timer.c:473
4155 msgid "This task will begin in 15 minutes:"
4156 msgstr ""
4157
4158-#: ../clock/src/applet-timer.c:494
4159+#: ../clock/src/applet-timer.c:493
4160 msgid "Today is the following anniversary:"
4161 msgstr ""
4162
4163-#: ../clock/src/applet-timer.c:494
4164+#: ../clock/src/applet-timer.c:493
4165 msgid "Tomorrow is the following anniversary:"
4166 msgstr ""
4167
4168@@ -1811,7 +1853,7 @@
4169 msgstr ""
4170
4171 #: ../desklet-rendering/src/rendering-desklet-decorations.c:105
4172-#: ../slider/data/messages:133
4173+#: ../slider/data/messages:137
4174 msgid "none"
4175 msgstr ""
4176
4177@@ -1851,8 +1893,7 @@
4178 msgstr ""
4179
4180 #: ../dnd2share/src/applet-dnd2share.c:331
4181-msgid ""
4182-"Please wait for the current upload to finish before starting a new one."
4183+msgid "Please wait for the current upload to finish before starting a new one."
4184 msgstr ""
4185
4186 #: ../dnd2share/src/applet-dnd2share.c:591
4187@@ -1941,19 +1982,19 @@
4188 msgid "History"
4189 msgstr ""
4190
4191-#: ../dnd2share/src/applet-notifications.c:484
4192+#: ../dnd2share/src/applet-notifications.c:485
4193 msgid "Get text"
4194 msgstr ""
4195
4196-#: ../dnd2share/src/applet-notifications.c:486
4197+#: ../dnd2share/src/applet-notifications.c:487
4198 msgid "Remove from history"
4199 msgstr ""
4200
4201-#: ../dnd2share/src/applet-notifications.c:489
4202+#: ../dnd2share/src/applet-notifications.c:490
4203 msgid "Clear History"
4204 msgstr ""
4205
4206-#: ../dnd2share/src/applet-notifications.c:494
4207+#: ../dnd2share/src/applet-notifications.c:495
4208 msgid "Use only a files hosting site"
4209 msgstr ""
4210
4211@@ -1966,18 +2007,18 @@
4212 msgstr ""
4213
4214 #: ../dock-rendering/src/rendering-init.c:36
4215-#: ../dock-rendering/data/messages:85
4216+#: ../dock-rendering/data/messages:87
4217 msgid "Parabolic"
4218 msgstr ""
4219
4220 #: ../dock-rendering/src/rendering-init.c:37
4221-#: ../dock-rendering/data/messages:109
4222+#: ../dock-rendering/data/messages:111
4223 msgid "Rainbow"
4224 msgstr ""
4225
4226 #: ../dock-rendering/src/rendering-init.c:39
4227-#: ../dock-rendering/data/messages:27 ../shortcuts/data/messages:113
4228-#: ../stack/data/messages:105
4229+#: ../dock-rendering/data/messages:29 ../shortcuts/data/messages:111
4230+#: ../stack/data/messages:103
4231 msgid "Slide"
4232 msgstr ""
4233
4234@@ -2084,37 +2125,37 @@
4235
4236 #: ../icon-effect/src/applet-init.c:101 ../icon-effect/data/messages:7
4237 #: ../icon-effect/data/messages:23 ../icon-effect/data/messages:39
4238-#: ../icon-effect/data/messages:55 ../icon-effect/data/messages:71
4239+#: ../icon-effect/data/messages:55
4240 msgid "Fire"
4241 msgstr ""
4242
4243 #: ../icon-effect/src/applet-init.c:104 ../icon-effect/data/messages:9
4244 #: ../icon-effect/data/messages:25 ../icon-effect/data/messages:41
4245-#: ../icon-effect/data/messages:57 ../icon-effect/data/messages:99
4246+#: ../icon-effect/data/messages:83
4247 msgid "Stars"
4248 msgstr ""
4249
4250 #: ../icon-effect/src/applet-init.c:107 ../icon-effect/data/messages:11
4251 #: ../icon-effect/data/messages:27 ../icon-effect/data/messages:43
4252-#: ../icon-effect/data/messages:59 ../icon-effect/data/messages:143
4253+#: ../icon-effect/data/messages:127
4254 msgid "Rain"
4255 msgstr ""
4256
4257 #: ../icon-effect/src/applet-init.c:110 ../icon-effect/data/messages:13
4258 #: ../icon-effect/data/messages:29 ../icon-effect/data/messages:45
4259-#: ../icon-effect/data/messages:61 ../icon-effect/data/messages:121
4260+#: ../icon-effect/data/messages:105
4261 msgid "Snow"
4262 msgstr ""
4263
4264 #: ../icon-effect/src/applet-init.c:113 ../icon-effect/data/messages:15
4265 #: ../icon-effect/data/messages:31 ../icon-effect/data/messages:47
4266-#: ../icon-effect/data/messages:63 ../icon-effect/data/messages:165
4267+#: ../icon-effect/data/messages:149
4268 msgid "Storm"
4269 msgstr ""
4270
4271 #: ../icon-effect/src/applet-init.c:116 ../icon-effect/data/messages:17
4272 #: ../icon-effect/data/messages:33 ../icon-effect/data/messages:49
4273-#: ../icon-effect/data/messages:65 ../icon-effect/data/messages:185
4274+#: ../icon-effect/data/messages:169
4275 msgid "Firework"
4276 msgstr ""
4277
4278@@ -2158,89 +2199,89 @@
4279 "You can bind a <b>shortcut</b> to it, and also to lock the screen."
4280 msgstr ""
4281
4282-#: ../logout/src/applet-init.c:38 ../logout/src/applet-logout.c:226
4283-#: ../logout/data/messages:99 ../logout/data/messages:107
4284+#: ../logout/src/applet-init.c:38 ../logout/src/applet-logout.c:228
4285+#: ../logout/data/messages:97
4286 msgid "Log out"
4287 msgstr ""
4288
4289-#: ../logout/src/applet-init.c:65
4290+#: ../logout/src/applet-init.c:67
4291 msgid "Lock the screen"
4292 msgstr ""
4293
4294-#: ../logout/src/applet-init.c:69
4295+#: ../logout/src/applet-init.c:71
4296 msgid "Show the log-out menu"
4297 msgstr ""
4298
4299-#: ../logout/src/applet-logout.c:198 ../logout/data/messages:101
4300-#: ../logout/data/messages:109
4301+#: ../logout/src/applet-logout.c:200 ../logout/data/messages:99
4302 msgid "Shut down"
4303 msgstr ""
4304
4305-#: ../logout/src/applet-logout.c:204
4306+#: ../logout/src/applet-logout.c:206
4307 msgid "Restart"
4308 msgstr ""
4309
4310-#: ../logout/src/applet-logout.c:210
4311-#: ../powermanager/src/powermanager-menu-functions.c:93
4312+#: ../logout/src/applet-logout.c:212
4313+#: ../powermanager/src/powermanager-menu-functions.c:97
4314+#: ../powermanager/src/powermanager-menu-functions.c:105
4315 msgid "Hibernate"
4316 msgstr ""
4317
4318-#: ../logout/src/applet-logout.c:212
4319+#: ../logout/src/applet-logout.c:214
4320 msgid "Your computer will not consume any energy."
4321 msgstr ""
4322
4323-#: ../logout/src/applet-logout.c:217
4324-#: ../powermanager/src/powermanager-menu-functions.c:95
4325+#: ../logout/src/applet-logout.c:219
4326+#: ../powermanager/src/powermanager-menu-functions.c:100
4327+#: ../powermanager/src/powermanager-menu-functions.c:107
4328 msgid "Suspend"
4329 msgstr ""
4330
4331-#: ../logout/src/applet-logout.c:219
4332+#: ../logout/src/applet-logout.c:221
4333 msgid "Your computer will still consume a small amount of energy."
4334 msgstr ""
4335
4336-#: ../logout/src/applet-logout.c:228
4337+#: ../logout/src/applet-logout.c:230
4338 msgid "Close your session and allow to open a new one."
4339 msgstr ""
4340
4341-#: ../logout/src/applet-logout.c:239
4342+#: ../logout/src/applet-logout.c:241
4343 msgid "Switch user"
4344 msgstr ""
4345
4346-#: ../logout/src/applet-logout.c:258
4347+#: ../logout/src/applet-logout.c:262
4348 msgid "Guest session"
4349 msgstr ""
4350
4351-#: ../logout/src/applet-logout.c:265 ../logout/data/messages:103
4352-#: ../logout/data/messages:111
4353+#: ../logout/src/applet-logout.c:269 ../logout/data/messages:101
4354 msgid "Lock screen"
4355 msgstr ""
4356
4357-#: ../logout/src/applet-logout.c:270
4358+#: ../logout/src/applet-logout.c:274
4359 msgid "Program an automatic shut-down"
4360 msgstr ""
4361
4362-#: ../logout/src/applet-logout.c:321
4363+#: ../logout/src/applet-logout.c:325
4364 msgid "Your computer will shut-down in 1 minute."
4365 msgstr ""
4366
4367-#: ../logout/src/applet-logout.c:345
4368+#: ../logout/src/applet-logout.c:349
4369 msgid "Choose in how many minutes your PC will stop:"
4370 msgstr ""
4371
4372-#: ../logout/src/applet-logout.c:512
4373+#: ../logout/src/applet-logout.c:523
4374 #, c-format
4375 msgid "It will automatically shut-down in %ds"
4376 msgstr ""
4377
4378-#: ../logout/src/applet-logout.c:513
4379+#: ../logout/src/applet-logout.c:524
4380 msgid "Shut down the computer?"
4381 msgstr ""
4382
4383-#: ../logout/src/applet-logout.c:573
4384+#: ../logout/src/applet-logout.c:584
4385 msgid "Restart the computer?"
4386 msgstr ""
4387
4388-#: ../logout/src/applet-logout.c:610
4389+#: ../logout/src/applet-logout.c:621
4390 msgid "Close the current session?"
4391 msgstr ""
4392
4393@@ -2293,14 +2334,14 @@
4394 msgid "Use a secure connection (SSL)"
4395 msgstr ""
4396
4397-#: ../mail/src/cd-mail-applet-accounts.c:39 ../RSSreader/data/messages:111
4398-#: ../netspeed/data/messages:143 ../powermanager/data/messages:157
4399-#: ../weather/data/messages:109
4400+#: ../mail/src/cd-mail-applet-accounts.c:39 ../RSSreader/data/messages:109
4401+#: ../netspeed/data/messages:151 ../powermanager/data/messages:161
4402+#: ../weather/data/messages:117
4403 msgid "Refresh time:"
4404 msgstr ""
4405
4406-#: ../mail/src/cd-mail-applet-accounts.c:39 ../RSSreader/data/messages:109
4407-#: ../weather/data/messages:107
4408+#: ../mail/src/cd-mail-applet-accounts.c:39 ../RSSreader/data/messages:107
4409+#: ../weather/data/messages:115
4410 msgid "In minutes."
4411 msgstr ""
4412
4413@@ -2509,67 +2550,67 @@
4414 "offer such service."
4415 msgstr ""
4416
4417-#: ../musicPlayer/src/applet-notifications.c:173
4418+#: ../musicPlayer/src/applet-notifications.c:175
4419 msgid "Choose a music player to control"
4420 msgstr ""
4421
4422-#: ../musicPlayer/src/applet-notifications.c:260
4423+#: ../musicPlayer/src/applet-notifications.c:262
4424 msgid "Find opened player"
4425 msgstr ""
4426
4427-#: ../musicPlayer/src/applet-notifications.c:264
4428+#: ../musicPlayer/src/applet-notifications.c:266
4429 msgid "Choose a player"
4430 msgstr ""
4431
4432-#: ../musicPlayer/src/applet-notifications.c:270
4433+#: ../musicPlayer/src/applet-notifications.c:272
4434 msgid "Previous"
4435 msgstr ""
4436
4437-#: ../musicPlayer/src/applet-notifications.c:270
4438+#: ../musicPlayer/src/applet-notifications.c:272
4439 msgid "scroll-up"
4440 msgstr ""
4441
4442-#: ../musicPlayer/src/applet-notifications.c:276
4443+#: ../musicPlayer/src/applet-notifications.c:278
4444 msgid "Play/Pause"
4445 msgstr ""
4446
4447-#: ../musicPlayer/src/applet-notifications.c:276
4448+#: ../musicPlayer/src/applet-notifications.c:278
4449 msgid "left-click"
4450 msgstr ""
4451
4452-#: ../musicPlayer/src/applet-notifications.c:282
4453+#: ../musicPlayer/src/applet-notifications.c:284
4454 msgid "Next"
4455 msgstr ""
4456
4457-#: ../musicPlayer/src/applet-notifications.c:282
4458+#: ../musicPlayer/src/applet-notifications.c:284
4459 msgid "scroll-down"
4460 msgstr ""
4461
4462-#: ../musicPlayer/src/applet-notifications.c:287
4463+#: ../musicPlayer/src/applet-notifications.c:289
4464 msgid "Stop"
4465 msgstr ""
4466
4467-#: ../musicPlayer/src/applet-notifications.c:291
4468+#: ../musicPlayer/src/applet-notifications.c:293
4469 msgid "Information"
4470 msgstr ""
4471
4472-#: ../musicPlayer/src/applet-notifications.c:294
4473+#: ../musicPlayer/src/applet-notifications.c:296
4474 msgid "Show the Window"
4475 msgstr ""
4476
4477-#: ../musicPlayer/src/applet-notifications.c:299
4478+#: ../musicPlayer/src/applet-notifications.c:301
4479 msgid "Show JumpBox"
4480 msgstr ""
4481
4482-#: ../musicPlayer/src/applet-notifications.c:301
4483+#: ../musicPlayer/src/applet-notifications.c:303
4484 msgid "Toggle Shuffle"
4485 msgstr ""
4486
4487-#: ../musicPlayer/src/applet-notifications.c:303
4488+#: ../musicPlayer/src/applet-notifications.c:305
4489 msgid "Toggle Repeat"
4490 msgstr ""
4491
4492-#: ../musicPlayer/src/applet-notifications.c:305
4493+#: ../musicPlayer/src/applet-notifications.c:307
4494 msgid "Rate this song"
4495 msgstr ""
4496
4497@@ -2690,11 +2731,11 @@
4498 "<b>Right-click</b> on the icon to hibernate or suspend the system."
4499 msgstr ""
4500
4501-#: ../powermanager/src/powermanager-menu-functions.c:70
4502+#: ../powermanager/src/powermanager-menu-functions.c:71
4503 msgid "Set up power management"
4504 msgstr ""
4505
4506-#: ../powermanager/src/powermanager-menu-functions.c:86
4507+#: ../powermanager/src/powermanager-menu-functions.c:88
4508 msgid "Power statistics"
4509 msgstr ""
4510
4511@@ -2824,8 +2865,8 @@
4512
4513 #: ../show-mouse/src/applet-init.c:31
4514 msgid ""
4515-"This plugin draws some animations around the cursor when it's inside a "
4516-"dock/desklet."
4517+"This plugin draws some animations around the cursor when it's inside a dock/"
4518+"desklet."
4519 msgstr ""
4520
4521 #: ../showDesktop/src/applet-init.c:28
4522@@ -2859,22 +2900,26 @@
4523 "Middle-click to open the images folder."
4524 msgstr ""
4525
4526-#: ../slider/src/applet-notifications.c:219
4527+#: ../slider/src/applet-notifications.c:215
4528 msgid "Play"
4529 msgstr ""
4530
4531-#: ../slider/src/applet-notifications.c:219
4532+#: ../slider/src/applet-notifications.c:215
4533 msgid "Pause"
4534 msgstr ""
4535
4536-#: ../slider/src/applet-notifications.c:227
4537-#: ../slider/src/applet-notifications.c:229
4538+#: ../slider/src/applet-notifications.c:223
4539+#: ../slider/src/applet-notifications.c:225
4540 msgid "Open current image"
4541 msgstr ""
4542
4543-#: ../slider/src/applet-notifications.c:268
4544+#: ../slider/src/applet-notifications.c:265
4545+#: ../slider/src/applet-notifications.c:267
4546+msgid "Browse images folder"
4547+msgstr ""
4548+
4549 #: ../slider/src/applet-notifications.c:270
4550-msgid "Browse images folder"
4551+msgid "Refresh images list"
4552 msgstr ""
4553
4554 #: ../stack/src/applet-init.c:31
4555@@ -2944,13 +2989,13 @@
4556 msgid "The URL has been added to the stack."
4557 msgstr ""
4558
4559-#: ../switcher/src/applet-draw.c:590 ../switcher/src/applet-draw.c:597
4560+#: ../switcher/src/applet-draw.c:595 ../switcher/src/applet-draw.c:602
4561 #: ../switcher/src/applet-load-icons.c:53
4562 #: ../switcher/src/applet-notifications.c:415
4563 msgid "Current"
4564 msgstr ""
4565
4566-#: ../switcher/src/applet-draw.c:597 ../switcher/src/applet-draw.c:599
4567+#: ../switcher/src/applet-draw.c:602 ../switcher/src/applet-draw.c:604
4568 #: ../switcher/src/applet-load-icons.c:59
4569 #: ../switcher/src/applet-notifications.c:216
4570 #: ../switcher/src/applet-notifications.c:228
4571@@ -3071,7 +3116,7 @@
4572 msgid "Close current Tab"
4573 msgstr ""
4574
4575-#: ../terminal/src/terminal-widget.c:56 ../terminal/data/messages:109
4576+#: ../terminal/src/terminal-widget.c:56 ../terminal/data/messages:107
4577 msgid "Terminal"
4578 msgstr ""
4579
4580@@ -3379,7 +3424,6 @@
4581 msgstr ""
4582
4583 #: ../Animated-icons/data/messages:41 ../Animated-icons/data/messages:61
4584-#: ../Animated-icons/data/messages:81
4585 msgid "Number of times the animation will play:"
4586 msgstr ""
4587
4588@@ -3391,230 +3435,229 @@
4589 msgid "Effects used on applications:"
4590 msgstr ""
4591
4592-#: ../Animated-icons/data/messages:63 ../icon-effect/data/messages:51
4593-msgid "when clicking on an applet"
4594-msgstr ""
4595-
4596-#: ../Animated-icons/data/messages:65 ../icon-effect/data/messages:53
4597-msgid "Effects used on applets:"
4598-msgstr ""
4599-
4600-#: ../Animated-icons/data/messages:83
4601+#: ../Animated-icons/data/messages:63
4602 msgid "Rotation"
4603 msgstr ""
4604
4605-#: ../Animated-icons/data/messages:85 ../Animated-icons/data/messages:103
4606-#: ../Animated-icons/data/messages:155 ../Animated-icons/data/messages:167
4607-#: ../Animated-icons/data/messages:179 ../Animated-icons/data/messages:193
4608-#: ../Remote-Control/data/messages:7 ../Scooby-Do/data/messages:15
4609-#: ../Scooby-Do/data/messages:19 ../Toons/data/messages:101
4610-#: ../icon-effect/data/messages:101 ../icon-effect/data/messages:123
4611-#: ../icon-effect/data/messages:145 ../icon-effect/data/messages:167
4612-#: ../icon-effect/data/messages:187 ../show-mouse/data/messages:19
4613+#: ../Animated-icons/data/messages:65 ../Animated-icons/data/messages:83
4614+#: ../Animated-icons/data/messages:135 ../Animated-icons/data/messages:147
4615+#: ../Animated-icons/data/messages:159 ../Animated-icons/data/messages:173
4616+#: ../Remote-Control/data/messages:9 ../Scooby-Do/data/messages:15
4617+#: ../Scooby-Do/data/messages:19 ../Toons/data/messages:105
4618+#: ../icon-effect/data/messages:85 ../icon-effect/data/messages:107
4619+#: ../icon-effect/data/messages:129 ../icon-effect/data/messages:151
4620+#: ../icon-effect/data/messages:171 ../show-mouse/data/messages:19
4621 msgid "In ms."
4622 msgstr ""
4623
4624-#: ../Animated-icons/data/messages:87 ../Animated-icons/data/messages:105
4625-#: ../Animated-icons/data/messages:157 ../icon-effect/data/messages:75
4626-#: ../icon-effect/data/messages:103 ../icon-effect/data/messages:125
4627-#: ../icon-effect/data/messages:147 ../icon-effect/data/messages:169
4628-#: ../icon-effect/data/messages:189 ../illusion/data/messages:33
4629+#: ../Animated-icons/data/messages:67 ../Animated-icons/data/messages:85
4630+#: ../Animated-icons/data/messages:137 ../icon-effect/data/messages:59
4631+#: ../icon-effect/data/messages:87 ../icon-effect/data/messages:109
4632+#: ../icon-effect/data/messages:131 ../icon-effect/data/messages:153
4633+#: ../icon-effect/data/messages:173 ../illusion/data/messages:33
4634 #: ../illusion/data/messages:55 ../illusion/data/messages:59
4635 #: ../illusion/data/messages:69 ../illusion/data/messages:75
4636-#: ../mail/data/messages:135
4637+#: ../mail/data/messages:143
4638 msgid "Duration of the animation:"
4639 msgstr ""
4640
4641-#: ../Animated-icons/data/messages:89 ../Animated-icons/data/messages:107
4642-#: ../Animated-icons/data/messages:159 ../Animated-icons/data/messages:171
4643-#: ../Animated-icons/data/messages:183 ../Animated-icons/data/messages:197
4644-#: ../icon-effect/data/messages:77 ../icon-effect/data/messages:105
4645-#: ../icon-effect/data/messages:127 ../icon-effect/data/messages:149
4646-#: ../icon-effect/data/messages:171 ../icon-effect/data/messages:191
4647+#: ../Animated-icons/data/messages:69 ../Animated-icons/data/messages:87
4648+#: ../Animated-icons/data/messages:139 ../Animated-icons/data/messages:151
4649+#: ../Animated-icons/data/messages:163 ../Animated-icons/data/messages:177
4650+#: ../icon-effect/data/messages:61 ../icon-effect/data/messages:89
4651+#: ../icon-effect/data/messages:111 ../icon-effect/data/messages:133
4652+#: ../icon-effect/data/messages:155 ../icon-effect/data/messages:175
4653 msgid "Repeat while icon is pointed to?"
4654 msgstr ""
4655
4656-#: ../Animated-icons/data/messages:91
4657+#: ../Animated-icons/data/messages:71
4658 msgid "Type of mesh:"
4659 msgstr ""
4660
4661-#: ../Animated-icons/data/messages:93 ../Clipper/data/messages:47
4662-#: ../Composite-Manager/data/messages:43 ../Disks/data/messages:29
4663-#: ../Doncky/data/messages:45 ../Folders/data/messages:59
4664-#: ../GMenu/data/messages:47 ../Global-Menu/data/messages:47
4665-#: ../Impulse/data/messages:45 ../MeMenu/data/messages:41
4666-#: ../Messaging-Menu/data/messages:43 ../Network-Monitor/data/messages:49
4667-#: ../RSSreader/data/messages:49 ../Recent-Events/data/messages:47
4668-#: ../Status-Notifier/data/messages:47 ../System-Monitor/data/messages:47
4669-#: ../Toons/data/messages:47 ../Xgamma/data/messages:49
4670-#: ../alsaMixer/data/messages:45 ../clock/data/messages:49
4671-#: ../dnd2share/data/messages:43 ../dustbin/data/messages:43
4672-#: ../keyboard-indicator/data/messages:43 ../logout/data/messages:47
4673-#: ../mail/data/messages:43 ../musicPlayer/data/messages:45
4674-#: ../netspeed/data/messages:43 ../powermanager/data/messages:49
4675-#: ../quick-browser/data/messages:49 ../shortcuts/data/messages:47
4676-#: ../showDesktop/data/messages:51 ../slider/data/messages:47
4677-#: ../stack/data/messages:49 ../switcher/data/messages:39
4678-#: ../systray/data/messages:39 ../template/data/messages:47
4679-#: ../terminal/data/messages:47 ../tomboy/data/messages:57
4680-#: ../weather/data/messages:45 ../weblets/data/messages:47
4681-#: ../wifi/data/messages:47
4682+#: ../Animated-icons/data/messages:73 ../Application-Menu/data/messages:39
4683+#: ../Application-Menu/data/messages:151 ../Application-Menu/data/messages:241
4684+#: ../Clipper/data/messages:45 ../Composite-Manager/data/messages:41
4685+#: ../Disks/data/messages:27 ../Doncky/data/messages:43
4686+#: ../Folders/data/messages:57 ../GMenu/data/messages:45
4687+#: ../Global-Menu/data/messages:39 ../Impulse/data/messages:43
4688+#: ../MeMenu/data/messages:39 ../Messaging-Menu/data/messages:51
4689+#: ../Network-Monitor/data/messages:53 ../RSSreader/data/messages:47
4690+#: ../Recent-Events/data/messages:45 ../Sound-Menu/data/messages:41
4691+#: ../Sound-Menu/data/messages:131 ../Status-Notifier/data/messages:55
4692+#: ../System-Monitor/data/messages:51 ../Toons/data/messages:51
4693+#: ../Xgamma/data/messages:47 ../alsaMixer/data/messages:53
4694+#: ../clock/data/messages:53 ../dnd2share/data/messages:41
4695+#: ../dustbin/data/messages:41 ../keyboard-indicator/data/messages:51
4696+#: ../logout/data/messages:45 ../mail/data/messages:51
4697+#: ../musicPlayer/data/messages:53 ../netspeed/data/messages:51
4698+#: ../powermanager/data/messages:53 ../quick-browser/data/messages:47
4699+#: ../shortcuts/data/messages:45 ../showDesktop/data/messages:49
4700+#: ../slider/data/messages:51 ../stack/data/messages:47
4701+#: ../switcher/data/messages:39 ../systray/data/messages:37
4702+#: ../template/data/messages:45 ../terminal/data/messages:45
4703+#: ../tomboy/data/messages:55 ../weather/data/messages:53
4704+#: ../weblets/data/messages:45 ../wifi/data/messages:51
4705 msgid "Normal"
4706 msgstr ""
4707
4708-#: ../Animated-icons/data/messages:95
4709+#: ../Animated-icons/data/messages:75
4710 msgid "Cube"
4711 msgstr ""
4712
4713-#: ../Animated-icons/data/messages:97
4714+#: ../Animated-icons/data/messages:77
4715 msgid "Capsule"
4716 msgstr ""
4717
4718-#: ../Animated-icons/data/messages:99
4719+#: ../Animated-icons/data/messages:79
4720 msgid "Colour of the sheen:"
4721 msgstr ""
4722
4723-#: ../Animated-icons/data/messages:111 ../Animated-icons/data/messages:115
4724-#: ../Clipper/data/messages:9 ../Composite-Manager/data/messages:93
4725-#: ../Composite-Manager/data/messages:97 ../Doncky/data/messages:9
4726-#: ../Doncky/data/messages:93 ../Folders/data/messages:21
4727-#: ../GMenu/data/messages:9 ../GMenu/data/messages:101
4728-#: ../Global-Menu/data/messages:9 ../Impulse/data/messages:7
4729-#: ../Impulse/data/messages:127 ../Impulse/data/messages:131
4730-#: ../Impulse/data/messages:135 ../RSSreader/data/messages:11
4731-#: ../RSSreader/data/messages:131 ../Recent-Events/data/messages:9
4732-#: ../System-Monitor/data/messages:183 ../System-Monitor/data/messages:191
4733-#: ../Xgamma/data/messages:11 ../alsaMixer/data/messages:139
4734-#: ../alsaMixer/data/messages:143 ../alsaMixer/data/messages:157
4735-#: ../dnd2share/data/messages:9 ../logout/data/messages:9
4736-#: ../quick-browser/data/messages:11 ../shortcuts/data/messages:9
4737-#: ../showDesktop/data/messages:9 ../stack/data/messages:11
4738-#: ../switcher/data/messages:9 ../switcher/data/messages:145
4739-#: ../systray/data/messages:9 ../template/data/messages:9
4740-#: ../terminal/data/messages:9 ../weblets/data/messages:9
4741+#: ../Animated-icons/data/messages:91 ../Animated-icons/data/messages:95
4742+#: ../Application-Menu/data/messages:307 ../Application-Menu/data/messages:311
4743+#: ../Clipper/data/messages:9 ../Composite-Manager/data/messages:91
4744+#: ../Composite-Manager/data/messages:95 ../Doncky/data/messages:9
4745+#: ../Doncky/data/messages:91 ../Folders/data/messages:21
4746+#: ../GMenu/data/messages:9 ../GMenu/data/messages:99
4747+#: ../Impulse/data/messages:7 ../Impulse/data/messages:125
4748+#: ../Impulse/data/messages:129 ../Impulse/data/messages:133
4749+#: ../RSSreader/data/messages:11 ../RSSreader/data/messages:129
4750+#: ../Recent-Events/data/messages:9 ../Sound-Menu/data/messages:197
4751+#: ../Sound-Menu/data/messages:201 ../System-Monitor/data/messages:187
4752+#: ../System-Monitor/data/messages:195 ../Xgamma/data/messages:11
4753+#: ../alsaMixer/data/messages:131 ../alsaMixer/data/messages:135
4754+#: ../alsaMixer/data/messages:149 ../dnd2share/data/messages:9
4755+#: ../logout/data/messages:9 ../quick-browser/data/messages:11
4756+#: ../shortcuts/data/messages:9 ../showDesktop/data/messages:9
4757+#: ../stack/data/messages:11 ../switcher/data/messages:9
4758+#: ../switcher/data/messages:151 ../systray/data/messages:9
4759+#: ../template/data/messages:9 ../terminal/data/messages:9
4760+#: ../weblets/data/messages:9
4761 msgid "Leave empty to use the default one."
4762 msgstr ""
4763
4764-#: ../Animated-icons/data/messages:113
4765+#: ../Animated-icons/data/messages:93
4766 msgid "Image for the spotlight:"
4767 msgstr ""
4768
4769-#: ../Animated-icons/data/messages:117
4770+#: ../Animated-icons/data/messages:97
4771 msgid "Image for the front spotlight:"
4772 msgstr ""
4773
4774-#: ../Animated-icons/data/messages:119
4775+#: ../Animated-icons/data/messages:99
4776 msgid "Spot colour:"
4777 msgstr ""
4778
4779-#: ../Animated-icons/data/messages:121
4780+#: ../Animated-icons/data/messages:101
4781 msgid "Halo colour:"
4782 msgstr ""
4783
4784-#: ../Animated-icons/data/messages:123
4785+#: ../Animated-icons/data/messages:103
4786 msgid "Rays"
4787 msgstr ""
4788
4789-#: ../Animated-icons/data/messages:125 ../icon-effect/data/messages:81
4790-#: ../icon-effect/data/messages:109 ../icon-effect/data/messages:131
4791-#: ../icon-effect/data/messages:153 ../icon-effect/data/messages:175
4792+#: ../Animated-icons/data/messages:105 ../icon-effect/data/messages:65
4793+#: ../icon-effect/data/messages:93 ../icon-effect/data/messages:115
4794+#: ../icon-effect/data/messages:137 ../icon-effect/data/messages:159
4795 #: ../illusion/data/messages:37 ../show-mouse/data/messages:27
4796 msgid "1st color of gradation :"
4797 msgstr ""
4798
4799-#: ../Animated-icons/data/messages:127 ../icon-effect/data/messages:83
4800-#: ../icon-effect/data/messages:111 ../icon-effect/data/messages:133
4801-#: ../icon-effect/data/messages:155 ../icon-effect/data/messages:177
4802+#: ../Animated-icons/data/messages:107 ../icon-effect/data/messages:67
4803+#: ../icon-effect/data/messages:95 ../icon-effect/data/messages:117
4804+#: ../icon-effect/data/messages:139 ../icon-effect/data/messages:161
4805 #: ../illusion/data/messages:39 ../show-mouse/data/messages:29
4806 msgid "2nd color of gradation :"
4807 msgstr ""
4808
4809-#: ../Animated-icons/data/messages:129 ../icon-effect/data/messages:85
4810-#: ../icon-effect/data/messages:113 ../icon-effect/data/messages:197
4811+#: ../Animated-icons/data/messages:109 ../icon-effect/data/messages:69
4812+#: ../icon-effect/data/messages:97 ../icon-effect/data/messages:181
4813 #: ../illusion/data/messages:41 ../show-mouse/data/messages:31
4814 msgid "Random colours?"
4815 msgstr ""
4816
4817-#: ../Animated-icons/data/messages:131
4818+#: ../Animated-icons/data/messages:111
4819 msgid "Number of rays:"
4820 msgstr ""
4821
4822-#: ../Animated-icons/data/messages:133
4823+#: ../Animated-icons/data/messages:113
4824 msgid "Ray size:"
4825 msgstr ""
4826
4827-#: ../Animated-icons/data/messages:135
4828+#: ../Animated-icons/data/messages:115
4829 msgid "Ray speed:"
4830 msgstr ""
4831
4832-#: ../Animated-icons/data/messages:139
4833+#: ../Animated-icons/data/messages:119
4834 msgid "Initial stretch:"
4835 msgstr ""
4836
4837-#: ../Animated-icons/data/messages:141
4838+#: ../Animated-icons/data/messages:121
4839 msgid "Horizontal stretch"
4840 msgstr ""
4841
4842-#: ../Animated-icons/data/messages:143
4843+#: ../Animated-icons/data/messages:123
4844 msgid "Vertical stretch"
4845 msgstr ""
4846
4847-#: ../Animated-icons/data/messages:145
4848+#: ../Animated-icons/data/messages:125
4849 msgid "Corner stretch"
4850 msgstr ""
4851
4852-#: ../Animated-icons/data/messages:147
4853+#: ../Animated-icons/data/messages:127
4854 msgid "Spring constant:"
4855 msgstr ""
4856
4857-#: ../Animated-icons/data/messages:149
4858+#: ../Animated-icons/data/messages:129
4859 msgid "Friction:"
4860 msgstr ""
4861
4862-#: ../Animated-icons/data/messages:151
4863+#: ../Animated-icons/data/messages:131
4864 msgid "Number of points on the grid in each direction:"
4865 msgstr ""
4866
4867-#: ../Animated-icons/data/messages:161
4868+#: ../Animated-icons/data/messages:141
4869 msgid "Wave width:"
4870 msgstr ""
4871
4872-#: ../Animated-icons/data/messages:163
4873+#: ../Animated-icons/data/messages:143
4874 msgid "Wave amplitude:"
4875 msgstr ""
4876
4877-#: ../Animated-icons/data/messages:169
4878+#: ../Animated-icons/data/messages:149
4879 msgid "Pulse duration:"
4880 msgstr ""
4881
4882-#: ../Animated-icons/data/messages:173
4883+#: ../Animated-icons/data/messages:153
4884 msgid "Pulse max zoom:"
4885 msgstr ""
4886
4887-#: ../Animated-icons/data/messages:175
4888+#: ../Animated-icons/data/messages:155
4889 msgid "Pulse follows icon shape?"
4890 msgstr ""
4891
4892-#: ../Animated-icons/data/messages:181
4893+#: ../Animated-icons/data/messages:161
4894 msgid "Bounce duration:"
4895 msgstr ""
4896
4897-#: ../Animated-icons/data/messages:185
4898+#: ../Animated-icons/data/messages:165
4899 msgid "When bouncing, resize the icon by:"
4900 msgstr ""
4901
4902-#: ../Animated-icons/data/messages:187
4903+#: ../Animated-icons/data/messages:167
4904 msgid "the lower the value, the more it will flatten."
4905 msgstr ""
4906
4907-#: ../Animated-icons/data/messages:189
4908+#: ../Animated-icons/data/messages:169
4909 msgid "How much the icon will flatten when hitting the ground:"
4910 msgstr ""
4911
4912-#: ../Animated-icons/data/messages:195
4913+#: ../Animated-icons/data/messages:175
4914 msgid "Blink duration:"
4915 msgstr ""
4916
4917+#: ../Application-Menu/data/messages:1 ../Application-Menu/data/messages:3
4918+#: ../Application-Menu/data/messages:111 ../Application-Menu/data/messages:113
4919+#: ../Application-Menu/data/messages:201 ../Application-Menu/data/messages:203
4920 #: ../Cairo-Penguin/data/messages:1 ../Cairo-Penguin/data/messages:3
4921 #: ../Clipper/data/messages:1 ../Clipper/data/messages:3
4922 #: ../Composite-Manager/data/messages:1 ../Composite-Manager/data/messages:3
4923@@ -3628,7 +3671,9 @@
4924 #: ../Messaging-Menu/data/messages:3 ../Network-Monitor/data/messages:1
4925 #: ../Network-Monitor/data/messages:3 ../RSSreader/data/messages:1
4926 #: ../RSSreader/data/messages:3 ../Recent-Events/data/messages:1
4927-#: ../Recent-Events/data/messages:3 ../Status-Notifier/data/messages:1
4928+#: ../Recent-Events/data/messages:3 ../Sound-Menu/data/messages:1
4929+#: ../Sound-Menu/data/messages:3 ../Sound-Menu/data/messages:91
4930+#: ../Sound-Menu/data/messages:93 ../Status-Notifier/data/messages:1
4931 #: ../Status-Notifier/data/messages:3 ../System-Monitor/data/messages:1
4932 #: ../System-Monitor/data/messages:3 ../Toons/data/messages:1
4933 #: ../Toons/data/messages:3 ../Xgamma/data/messages:1
4934@@ -3658,1226 +3703,1454 @@
4935 msgid "Icon"
4936 msgstr ""
4937
4938-#: ../Cairo-Penguin/data/messages:5 ../Clipper/data/messages:5
4939-#: ../Composite-Manager/data/messages:5 ../Doncky/data/messages:5
4940-#: ../Folders/data/messages:5 ../GMenu/data/messages:5
4941-#: ../Global-Menu/data/messages:5 ../Impulse/data/messages:5
4942-#: ../MeMenu/data/messages:5 ../Messaging-Menu/data/messages:5
4943-#: ../Network-Monitor/data/messages:5 ../RSSreader/data/messages:5
4944-#: ../Recent-Events/data/messages:5 ../Status-Notifier/data/messages:5
4945-#: ../System-Monitor/data/messages:5 ../Toons/data/messages:5
4946-#: ../Xgamma/data/messages:5 ../alsaMixer/data/messages:5
4947-#: ../clock/data/messages:5 ../dnd2share/data/messages:5
4948-#: ../dustbin/data/messages:5 ../keyboard-indicator/data/messages:5
4949-#: ../logout/data/messages:5 ../mail/data/messages:5
4950-#: ../musicPlayer/data/messages:5 ../netspeed/data/messages:5
4951-#: ../powermanager/data/messages:5 ../quick-browser/data/messages:5
4952-#: ../shortcuts/data/messages:5 ../showDesktop/data/messages:5
4953-#: ../slider/data/messages:5 ../stack/data/messages:5
4954-#: ../switcher/data/messages:5 ../systray/data/messages:5
4955-#: ../template/data/messages:5 ../terminal/data/messages:5
4956-#: ../tomboy/data/messages:5 ../weather/data/messages:5
4957-#: ../weblets/data/messages:5 ../wifi/data/messages:5
4958+#: ../Application-Menu/data/messages:5 ../Application-Menu/data/messages:115
4959+#: ../Application-Menu/data/messages:205 ../Cairo-Penguin/data/messages:5
4960+#: ../Clipper/data/messages:5 ../Composite-Manager/data/messages:5
4961+#: ../Doncky/data/messages:5 ../Folders/data/messages:5
4962+#: ../GMenu/data/messages:5 ../Global-Menu/data/messages:5
4963+#: ../Impulse/data/messages:5 ../MeMenu/data/messages:5
4964+#: ../Messaging-Menu/data/messages:5 ../Network-Monitor/data/messages:5
4965+#: ../RSSreader/data/messages:5 ../Recent-Events/data/messages:5
4966+#: ../Sound-Menu/data/messages:5 ../Sound-Menu/data/messages:95
4967+#: ../Status-Notifier/data/messages:5 ../System-Monitor/data/messages:5
4968+#: ../Toons/data/messages:5 ../Xgamma/data/messages:5
4969+#: ../alsaMixer/data/messages:5 ../clock/data/messages:5
4970+#: ../dnd2share/data/messages:5 ../dustbin/data/messages:5
4971+#: ../keyboard-indicator/data/messages:5 ../logout/data/messages:5
4972+#: ../mail/data/messages:5 ../musicPlayer/data/messages:5
4973+#: ../netspeed/data/messages:5 ../powermanager/data/messages:5
4974+#: ../quick-browser/data/messages:5 ../shortcuts/data/messages:5
4975+#: ../showDesktop/data/messages:5 ../slider/data/messages:5
4976+#: ../stack/data/messages:5 ../switcher/data/messages:5
4977+#: ../systray/data/messages:5 ../template/data/messages:5
4978+#: ../terminal/data/messages:5 ../tomboy/data/messages:5
4979+#: ../weather/data/messages:5 ../weblets/data/messages:5
4980+#: ../wifi/data/messages:5
4981 msgid "Name of the dock it belongs to:"
4982 msgstr ""
4983
4984-#: ../Cairo-Penguin/data/messages:7 ../Clipper/data/messages:7
4985-#: ../Composite-Manager/data/messages:7 ../Disks/data/messages:7
4986-#: ../Doncky/data/messages:7 ../Folders/data/messages:9
4987-#: ../GMenu/data/messages:7 ../Global-Menu/data/messages:7
4988-#: ../Messaging-Menu/data/messages:7 ../Network-Monitor/data/messages:9
4989-#: ../RSSreader/data/messages:9 ../Recent-Events/data/messages:7
4990-#: ../System-Monitor/data/messages:7 ../Toons/data/messages:7
4991-#: ../Xgamma/data/messages:9 ../alsaMixer/data/messages:9
4992-#: ../clock/data/messages:9 ../dnd2share/data/messages:7
4993-#: ../dustbin/data/messages:7 ../keyboard-indicator/data/messages:7
4994-#: ../logout/data/messages:7 ../mail/data/messages:7
4995-#: ../musicPlayer/data/messages:9 ../netspeed/data/messages:7
4996-#: ../quick-browser/data/messages:9 ../shortcuts/data/messages:7
4997-#: ../showDesktop/data/messages:7 ../slider/data/messages:7
4998-#: ../stack/data/messages:9 ../switcher/data/messages:7
4999-#: ../template/data/messages:7 ../weather/data/messages:9
5000-#: ../weblets/data/messages:7 ../wifi/data/messages:7
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches