Merge lp:~cairo-dock-team/ubuntu/quantal/cairo-dock/3.0.2 into lp:ubuntu/quantal/cairo-dock
- Quantal (12.10)
- 3.0.2
- Merge into quantal
Status: | Merged | ||||||||
---|---|---|---|---|---|---|---|---|---|
Merged at revision: | 27 | ||||||||
Proposed branch: | lp:~cairo-dock-team/ubuntu/quantal/cairo-dock/3.0.2 | ||||||||
Merge into: | lp:ubuntu/quantal/cairo-dock | ||||||||
Diff against target: |
8946 lines (+1170/-3975) 82 files modified
.pc/01-bzr_dock-s_menu.patch/src/gldit/cairo-dock-callbacks.c (+0/-1760) .pc/01-bzr_dock-s_menu.patch/src/gldit/cairo-dock-dock-factory.c (+0/-1255) .pc/02-bzr_fixed_compilation_error.patch/src/gldit/cairo-dock-keybinder.h (+0/-152) .pc/applied-patches (+0/-2) CMakeLists.txt (+6/-1) debian/cairo-dock-data.links (+2/-0) debian/cairo-dock-data.lintian-overrides (+0/-2) debian/changelog (+43/-0) debian/patches/01-bzr_dock-s_menu.patch (+0/-48) debian/patches/02-bzr_fixed_compilation_error.patch (+0/-16) debian/patches/series (+0/-2) po/ar.po (+3/-3) po/be.po (+6/-4) po/bn.po (+3/-3) po/ca.po (+3/-3) po/cs.po (+2/-2) po/cy.po (+3/-3) po/de.po (+3/-3) po/el.po (+3/-3) po/en_GB.po (+3/-3) po/eo.po (+3/-3) po/es.po (+132/-81) po/et.po (+3/-3) po/eu.po (+2/-2) po/fi.po (+3/-3) po/fo.po (+2/-2) po/fr.po (+7/-6) po/gl.po (+3/-3) po/hu.po (+15/-13) po/id.po (+3/-3) po/it.po (+178/-128) po/ja.po (+3/-3) po/ko.po (+3/-3) po/nb.po (+3/-3) po/nl.po (+16/-16) po/oc.po (+2/-2) po/pl.po (+17/-14) po/pt.po (+3/-3) po/pt_BR.po (+20/-5) po/ro.po (+3/-3) po/ru.po (+6/-3) po/sk.po (+169/-96) po/sl.po (+3/-3) po/sr.po (+3/-3) po/sv.po (+2/-2) po/tr.po (+3/-3) po/uk.po (+19/-16) po/vi.po (+2/-2) po/zh_CN.po (+125/-94) po/zh_TW.po (+3/-3) src/cairo-dock-gui-commons.c (+3/-1) src/cairo-dock-gui-main.c (+90/-24) src/cairo-dock-menu.c (+2/-5) src/gldit/cairo-dock-X-utilities.c (+6/-3) src/gldit/cairo-dock-applet-facility.h (+1/-1) src/gldit/cairo-dock-callbacks.c (+16/-16) src/gldit/cairo-dock-class-manager.c (+16/-3) src/gldit/cairo-dock-config.c (+8/-31) src/gldit/cairo-dock-container.c (+3/-9) src/gldit/cairo-dock-container.h (+9/-0) src/gldit/cairo-dock-dialog-factory.c (+2/-1) src/gldit/cairo-dock-dialog-manager.c (+28/-6) src/gldit/cairo-dock-dock-facility.c (+1/-1) src/gldit/cairo-dock-dock-factory.c (+4/-4) src/gldit/cairo-dock-dock-factory.h (+2/-2) src/gldit/cairo-dock-draw-opengl.c (+26/-20) src/gldit/cairo-dock-draw.c (+25/-18) src/gldit/cairo-dock-gui-factory.c (+20/-18) src/gldit/cairo-dock-gui-manager.h (+3/-1) src/gldit/cairo-dock-icon-facility.c (+4/-4) src/gldit/cairo-dock-icon-facility.h (+2/-2) src/gldit/cairo-dock-icon-factory.c (+1/-1) src/gldit/cairo-dock-icon-factory.h (+3/-2) src/gldit/cairo-dock-icon-manager.c (+19/-0) src/gldit/cairo-dock-module-factory.c (+2/-6) src/gldit/cairo-dock-overlay.h (+10/-3) src/gldit/cairo-dock-struct.h (+1/-1) src/gldit/eggaccelerators.c (+20/-0) src/icon-factory/cairo-dock-applet-factory.c (+1/-0) src/icon-factory/cairo-dock-application-factory.c (+6/-0) src/icon-factory/cairo-dock-desktop-file-factory.h (+0/-2) src/implementations/cairo-dock-compiz-integration.h (+0/-1) |
||||||||
To merge this branch: | bzr merge lp:~cairo-dock-team/ubuntu/quantal/cairo-dock/3.0.2 | ||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andrew Starr-Bochicchio (community) | Approve | ||
Luke Yelavich (community) | Needs Fixing | ||
Review via email: mp+111020@code.launchpad.net |
Commit message
Description of the change
Hello,
The Cairo-Dock team proposes a new "bug-fix" version of their Cairo-Dock packages.
This is the Upstream ChangeLog:
* 3.0.0 -> 3.0.1:
- Dialog: fixed a bug where the dock could auto-hide when a modal dialog
was raised
- Dialog: fixed a crash with gcc-4.7: the local variable can be corrupted
due to optimisations
- Fixed a bug where the dock didn't accept clicks when the mouse touches
the screen edge (with auto-hide)
- Added a compilation option to not force the display of icons in menus
(design request but disable by default)
- Fixed a bug where the hidden dock background color was not updated
properly
- Class-Manager: fixed a bug with Windows applications whose name is in
upper case (.EXE)
- GUI: use cairo_dock_
- French translations: fixed 2 small errors
* 3.0.1 -> 3.0.2:
- Main GUI: Fixed a crash when hovering group buttons too quickly
- Main GUI: The dialog and preview didn't appear when hovering the button
- Accelerators: On recent distro, 'Control' key is now called 'Primary'
- Icon Mgr: Added a mutex because of occasional crashes with
gtk_
- Icon Mgr: Don't call a 'change-icon' callback when clicking or scrolling
on an icon, and trigger an unneeded animation on the icon
- Dock Mgr: Avoid emitting an 'enter' event when not needed
- Class Mgr: Fixed 2 typos (special case for kdesu and not kdes)
- Class Mgr: Remove launching options (%U) in quick-list Exec command
(LP: #1002691)
- Dialogues: Prevent closing the dialog unexpectedly when clicking on it,
if the click is actually inside the interactive widget
- Background: When set to 'always visible', applets' background couldn't
be turned off
- Added a workaround for the Unity-panel which has a wrong window type
- po: Updated translations
This branch should be ready to be pushed on lp:ubuntu/cairo-dock (except the UNRELEASED version in debian/changelog)
This version compiles fine on Quantal (and older) and has been tested: https:/
**@ ubuntu-devs**
Do you think it's possible to upload this version in Precise-Update? (simply because it's a bug-fix version and Precise is a LTS version)
Thank you for your help! ;)
PS: Don't forget our plug-ins ( LP: #1014804 )
Matthieu Baerts (matttbe) wrote : | # |
> Did you branch against the latest changes in the lp:ubuntu/cairo-dock package
Yes of course (as you can see here above, we only have the rev 27 as unmerged rev and the rev 26 has the same rev ID).
But I confirm this bug... This is strange because I only used bzr merge-upstream.
Note that on rev 26, there is a patch which was applied but the diff seems correct except that if you have a look to the conflict, it seems the previous patched was unapplied before merging...
Matthieu Baerts (matttbe) wrote : | # |
If I remove all patches and then use bzr merge-upstream (lp:~cairo-dock-team/ubuntu/quantal/cairo-dock/3.0.2-1), I still have the same problem :-/
Note that you can use the .OTHER files if you want to manually fix the conflicts but it seems there is also a conflict in src/gldit/
I resolve conflicts in lp:~cairo-dock-team/ubuntu/quantal/cairo-dock/3.0.2-without-conflict
I guess you can directly use 'bzr pull lp:~cairo-dock-team/ubuntu/quantal/cairo-dock/3.0.2-without-conflict'
Matthieu Baerts (matttbe) wrote : | # |
@Luke: it seems you've to use 'bzr pull' because I've done the merge then you shouldn't have to do it again (according to jelmer on irc)
Andrew Starr-Bochicchio (andrewsomething) wrote : | # |
Uploaded. Thanks for your work and your patience with the bzr issues!
I'll try to get to the plugins package latter today (or tomorrow if I don't have time).
Matthieu Baerts (matttbe) wrote : | # |
@Andrew and Luke: thank you for your help!
Preview Diff
1 | === removed directory '.pc/01-bzr_dock-s_menu.patch' |
2 | === removed directory '.pc/01-bzr_dock-s_menu.patch/src' |
3 | === removed directory '.pc/01-bzr_dock-s_menu.patch/src/gldit' |
4 | === removed file '.pc/01-bzr_dock-s_menu.patch/src/gldit/cairo-dock-callbacks.c' |
5 | --- .pc/01-bzr_dock-s_menu.patch/src/gldit/cairo-dock-callbacks.c 2012-04-25 01:29:46 +0000 |
6 | +++ .pc/01-bzr_dock-s_menu.patch/src/gldit/cairo-dock-callbacks.c 1970-01-01 00:00:00 +0000 |
7 | @@ -1,1760 +0,0 @@ |
8 | -/** |
9 | -* This file is a part of the Cairo-Dock project |
10 | -* |
11 | -* Copyright : (C) see the 'copyright' file. |
12 | -* E-mail : see the 'copyright' file. |
13 | -* |
14 | -* This program is free software; you can redistribute it and/or |
15 | -* modify it under the terms of the GNU General Public License |
16 | -* as published by the Free Software Foundation; either version 3 |
17 | -* of the License, or (at your option) any later version. |
18 | -* |
19 | -* This program is distributed in the hope that it will be useful, |
20 | -* but WITHOUT ANY WARRANTY; without even the implied warranty of |
21 | -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
22 | -* GNU General Public License for more details. |
23 | -* You should have received a copy of the GNU General Public License |
24 | -* along with this program. If not, see <http://www.gnu.org/licenses/>. |
25 | -*/ |
26 | - |
27 | -#include <math.h> |
28 | -#include <sys/time.h> |
29 | -#include <string.h> |
30 | -#include <stdlib.h> |
31 | -#include <unistd.h> |
32 | -#include <cairo.h> |
33 | -#include <gdk/gdkkeysyms.h> |
34 | -#include <gtk/gtk.h> |
35 | - |
36 | -#include <X11/Xlib.h> |
37 | -#include <X11/Xatom.h> |
38 | -#include <X11/Xutil.h> |
39 | -#include <gdk/gdkx.h> |
40 | - |
41 | -#include <GL/gl.h> |
42 | -#include <GL/glu.h> |
43 | - |
44 | -#include "cairo-dock-draw.h" |
45 | -#include "cairo-dock-animations.h" |
46 | -#include "cairo-dock-image-buffer.h" |
47 | -#include "cairo-dock-module-factory.h" |
48 | -#include "cairo-dock-icon-factory.h" |
49 | -#include "cairo-dock-icon-facility.h" |
50 | -#include "cairo-dock-applications-manager.h" |
51 | -#include "cairo-dock-application-facility.h" |
52 | -#include "cairo-dock-desktop-file-factory.h" |
53 | -#include "cairo-dock-launcher-manager.h" |
54 | -#include "cairo-dock-config.h" |
55 | -#include "cairo-dock-container.h" |
56 | -#include "cairo-dock-dock-facility.h" |
57 | -#include "cairo-dock-notifications.h" |
58 | -#include "cairo-dock-dialog-manager.h" |
59 | -#include "cairo-dock-log.h" |
60 | -#include "cairo-dock-dock-manager.h" |
61 | -#include "cairo-dock-keybinder.h" |
62 | -#include "cairo-dock-draw-opengl.h" |
63 | -#include "cairo-dock-opengl.h" |
64 | -#include "cairo-dock-flying-container.h" |
65 | -#include "cairo-dock-animations.h" |
66 | -#include "cairo-dock-backends-manager.h" |
67 | -#include "cairo-dock-class-manager.h" |
68 | -#include "cairo-dock-X-manager.h" |
69 | -#include "cairo-dock-X-utilities.h" |
70 | -#include "cairo-dock-X-manager.h" |
71 | -#include "cairo-dock-data-renderer.h" // cairo_dock_refresh_data_renderer |
72 | -#include "cairo-dock-callbacks.h" |
73 | - |
74 | -extern CairoDockDesktopGeometry g_desktopGeometry; |
75 | -extern CairoDockHidingEffect *g_pHidingBackend; |
76 | -extern CairoDockHidingEffect *g_pKeepingBelowBackend; |
77 | -extern CairoDockGLConfig g_openglConfig; |
78 | - |
79 | -static Icon *s_pIconClicked = NULL; // pour savoir quand on deplace une icone a la souris. Dangereux si l'icone se fait effacer en cours ... |
80 | -static int s_iClickX, s_iClickY; // coordonnees du clic dans le dock, pour pouvoir initialiser le deplacement apres un seuil. |
81 | -static int s_iSidShowSubDockDemand = 0; |
82 | -static int s_iSidActionOnDragHover = 0; |
83 | -static CairoDock *s_pDockShowingSubDock = NULL; // on n'accede pas a son contenu, seulement l'adresse. |
84 | -static CairoDock *s_pSubDockShowing = NULL; // on n'accede pas a son contenu, seulement l'adresse. |
85 | -static CairoFlyingContainer *s_pFlyingContainer = NULL; |
86 | -static int s_iFirstClickX=0, s_iFirstClickY=0; // for double-click. |
87 | - |
88 | -extern CairoDock *g_pMainDock; // pour le raise-on-shortcut |
89 | - |
90 | -extern gboolean g_bUseOpenGL; |
91 | - |
92 | -static gboolean s_bHideAfterShortcut = FALSE; |
93 | -static gboolean s_bFrozenDock = FALSE; |
94 | -static gboolean s_bIconDragged = FALSE; |
95 | - |
96 | -static gboolean _check_mouse_outside (CairoDock *pDock); |
97 | - |
98 | -static gboolean _mouse_is_really_outside (CairoDock *pDock) |
99 | -{ |
100 | - /**return (pDock->container.iMouseX <= 0 |
101 | - || pDock->container.iMouseX >= pDock->container.iWidth |
102 | - || (pDock->container.bDirectionUp ? |
103 | - (pDock->container.iMouseY > pDock->container.iHeight |
104 | - || pDock->container.iMouseY <= (pDock->fMagnitudeMax != 0 ? 0 : pDock->container.iHeight - pDock->iMinDockHeight)) |
105 | - : (pDock->container.iMouseY < 0 |
106 | - || |
107 | - pDock->container.iMouseY >= (pDock->fMagnitudeMax != 0 ? pDock->container.iHeight : pDock->iMinDockHeight))));*/ |
108 | - double x1, x2, y1, y2; |
109 | - if (pDock->iInputState == CAIRO_DOCK_INPUT_ACTIVE) |
110 | - { |
111 | - x1 = 0; |
112 | - x2 = pDock->container.iWidth; |
113 | - if (pDock->container.bDirectionUp) |
114 | - { |
115 | - ///y1 = (pDock->fMagnitudeMax != 0 ? 0 : pDock->container.iHeight - pDock->iMinDockHeight); |
116 | - y1 = pDock->container.iHeight - pDock->iActiveHeight; |
117 | - y2 = pDock->container.iHeight; |
118 | - } |
119 | - else |
120 | - { |
121 | - y1 = 0; |
122 | - ///y2 = (pDock->fMagnitudeMax != 0 ? pDock->container.iHeight : pDock->iMinDockHeight); |
123 | - y2 = pDock->iActiveHeight; |
124 | - } |
125 | - } |
126 | - else if (pDock->iInputState == CAIRO_DOCK_INPUT_AT_REST) |
127 | - { |
128 | - x1 = (pDock->container.iWidth - pDock->iMinDockWidth) / 2; |
129 | - x2 = (pDock->container.iWidth + pDock->iMinDockWidth) / 2; |
130 | - if (pDock->container.bDirectionUp) |
131 | - { |
132 | - y1 = pDock->container.iHeight - pDock->iMinDockHeight; |
133 | - y2 = pDock->container.iHeight; |
134 | - } |
135 | - else |
136 | - { |
137 | - y1 = 0; |
138 | - y2 = pDock->iMinDockHeight; |
139 | - } |
140 | - } |
141 | - else // hidden |
142 | - return TRUE; |
143 | - if (pDock->container.iMouseX <= x1 |
144 | - || pDock->container.iMouseX >= x2) |
145 | - return TRUE; |
146 | - if (pDock->container.iMouseY <= y1 |
147 | - || pDock->container.iMouseY >= y2) |
148 | - return TRUE; |
149 | - |
150 | - return FALSE; |
151 | -} |
152 | -#define CD_CLICK_ZONE 5 |
153 | - |
154 | -void cairo_dock_freeze_docks (gboolean bFreeze) |
155 | -{ |
156 | - s_bFrozenDock = bFreeze; |
157 | -} |
158 | - |
159 | -gboolean cairo_dock_render_dock_notification (gpointer pUserData, CairoDock *pDock, cairo_t *pCairoContext) |
160 | -{ |
161 | - if (! pCairoContext) // on n'a pas mis le rendu cairo ici a cause du rendu optimise. |
162 | - { |
163 | - glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | (pDock->pRenderer->bUseStencil && g_openglConfig.bStencilBufferAvailable ? GL_STENCIL_BUFFER_BIT : 0)); |
164 | - gldi_glx_apply_desktop_background (CAIRO_CONTAINER (pDock)); |
165 | - |
166 | - if (pDock->fHideOffset != 0 && g_pHidingBackend != NULL && g_pHidingBackend->pre_render_opengl) |
167 | - g_pHidingBackend->pre_render_opengl (pDock, pDock->fHideOffset); |
168 | - |
169 | - if (pDock->iFadeCounter != 0 && g_pKeepingBelowBackend != NULL && g_pKeepingBelowBackend->pre_render_opengl) |
170 | - g_pKeepingBelowBackend->pre_render_opengl (pDock, (double) pDock->iFadeCounter / myBackendsParam.iHideNbSteps); |
171 | - |
172 | - pDock->pRenderer->render_opengl (pDock); |
173 | - |
174 | - if (pDock->fHideOffset != 0 && g_pHidingBackend != NULL && g_pHidingBackend->post_render_opengl) |
175 | - g_pHidingBackend->post_render_opengl (pDock, pDock->fHideOffset); |
176 | - |
177 | - if (pDock->iFadeCounter != 0 && g_pKeepingBelowBackend != NULL && g_pKeepingBelowBackend->post_render_opengl) |
178 | - g_pKeepingBelowBackend->post_render_opengl (pDock, (double) pDock->iFadeCounter / myBackendsParam.iHideNbSteps); |
179 | - } |
180 | - return CAIRO_DOCK_LET_PASS_NOTIFICATION; |
181 | -} |
182 | - |
183 | -gboolean cairo_dock_on_expose (GtkWidget *pWidget, |
184 | -#if (GTK_MAJOR_VERSION < 3) |
185 | - GdkEventExpose *pExpose, |
186 | -#else |
187 | - cairo_t *ctx, |
188 | -#endif |
189 | - CairoDock *pDock) |
190 | -{ |
191 | - GdkRectangle area; |
192 | - #if (GTK_MAJOR_VERSION < 3) |
193 | - memcpy (&area, &pExpose->area, sizeof (GdkRectangle)); |
194 | - #else |
195 | - double x1, x2, y1, y2; |
196 | - cairo_clip_extents (ctx, &x1, &y1, &x2, &y2); |
197 | - area.x = x1; |
198 | - area.y = y1; |
199 | - area.width = x2 - x1; |
200 | - area.height = y2 - y1; /// or the opposite ?... |
201 | - #endif |
202 | - //g_print ("%s ((%d;%d) %dx%d)\n", __func__, area.x, area.y, area.width, area.height); |
203 | - |
204 | - //\________________ OpenGL rendering |
205 | - if (g_bUseOpenGL && pDock->pRenderer->render_opengl != NULL) |
206 | - { |
207 | - if (! gldi_glx_begin_draw_container_full (CAIRO_CONTAINER (pDock), FALSE)) // FALSE to keep the color buffer (motion-blur). |
208 | - return FALSE; |
209 | - |
210 | - if (area.x + area.y != 0) |
211 | - { |
212 | - glEnable (GL_SCISSOR_TEST); // ou comment diviser par 4 l'occupation CPU ! |
213 | - glScissor ((int) area.x, |
214 | - (int) (pDock->container.bIsHorizontal ? pDock->container.iHeight : pDock->container.iWidth) - |
215 | - area.y - area.height, // lower left corner of the scissor box. |
216 | - (int) area.width, |
217 | - (int) area.height); |
218 | - } |
219 | - |
220 | - if (cairo_dock_is_loading ()) |
221 | - { |
222 | - // on laisse transparent |
223 | - } |
224 | - else if (cairo_dock_is_hidden (pDock) && (g_pHidingBackend == NULL || !g_pHidingBackend->bCanDisplayHiddenDock)) |
225 | - { |
226 | - cairo_dock_render_hidden_dock_opengl (pDock); |
227 | - } |
228 | - else |
229 | - { |
230 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_RENDER, pDock, NULL); |
231 | - } |
232 | - glDisable (GL_SCISSOR_TEST); |
233 | - |
234 | - gldi_glx_end_draw_container (CAIRO_CONTAINER (pDock)); |
235 | - |
236 | - return FALSE ; |
237 | - } |
238 | - |
239 | - //\________________ Cairo optimized rendering |
240 | - if (area.x + area.y != 0) // x et/ou y sont > 0. |
241 | - { |
242 | - if (! cairo_dock_is_hidden (pDock) || (g_pHidingBackend != NULL && g_pHidingBackend->bCanDisplayHiddenDock)) // if the dock is invisible, we don't use the optimized rendering (for always-visible icons for instance) |
243 | - { |
244 | - cairo_t *pCairoContext = cairo_dock_create_drawing_context_on_area (CAIRO_CONTAINER (pDock), &area, NULL); |
245 | - |
246 | - if (pDock->fHideOffset != 0 && g_pHidingBackend != NULL && g_pHidingBackend->pre_render) |
247 | - g_pHidingBackend->pre_render (pDock, pDock->fHideOffset, pCairoContext); |
248 | - |
249 | - if (pDock->iFadeCounter != 0 && g_pKeepingBelowBackend != NULL && g_pKeepingBelowBackend->pre_render) |
250 | - g_pKeepingBelowBackend->pre_render (pDock, (double) pDock->iFadeCounter / myBackendsParam.iHideNbSteps, pCairoContext); |
251 | - |
252 | - if (pDock->pRenderer->render_optimized != NULL) |
253 | - pDock->pRenderer->render_optimized (pCairoContext, pDock, &area); |
254 | - else |
255 | - pDock->pRenderer->render (pCairoContext, pDock); |
256 | - |
257 | - if (pDock->fHideOffset != 0 && g_pHidingBackend != NULL && g_pHidingBackend->post_render) |
258 | - g_pHidingBackend->post_render (pDock, pDock->fHideOffset, pCairoContext); |
259 | - |
260 | - if (pDock->iFadeCounter != 0 && g_pKeepingBelowBackend != NULL && g_pKeepingBelowBackend->post_render) |
261 | - g_pKeepingBelowBackend->post_render (pDock, (double) pDock->iFadeCounter / myBackendsParam.iHideNbSteps, pCairoContext); |
262 | - |
263 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_RENDER, pDock, pCairoContext); |
264 | - |
265 | - cairo_destroy (pCairoContext); |
266 | - return FALSE; |
267 | - } |
268 | - |
269 | - } |
270 | - |
271 | - //\________________ Cairo rendering |
272 | - cairo_t *pCairoContext = cairo_dock_create_drawing_context_on_container (CAIRO_CONTAINER (pDock)); |
273 | - |
274 | - if (cairo_dock_is_loading ()) // transparent pendant le chargement. |
275 | - { |
276 | - |
277 | - } |
278 | - else if (cairo_dock_is_hidden (pDock) && (g_pHidingBackend == NULL || !g_pHidingBackend->bCanDisplayHiddenDock)) |
279 | - { |
280 | - cairo_dock_render_hidden_dock (pCairoContext, pDock); |
281 | - } |
282 | - else |
283 | - { |
284 | - if (pDock->fHideOffset != 0 && g_pHidingBackend != NULL && g_pHidingBackend->pre_render) |
285 | - g_pHidingBackend->pre_render (pDock, pDock->fHideOffset, pCairoContext); |
286 | - |
287 | - if (pDock->iFadeCounter != 0 && g_pKeepingBelowBackend != NULL && g_pKeepingBelowBackend->pre_render) |
288 | - g_pKeepingBelowBackend->pre_render (pDock, (double) pDock->iFadeCounter / myBackendsParam.iHideNbSteps, pCairoContext); |
289 | - |
290 | - pDock->pRenderer->render (pCairoContext, pDock); |
291 | - |
292 | - if (pDock->fHideOffset != 0 && g_pHidingBackend != NULL && g_pHidingBackend->post_render) |
293 | - g_pHidingBackend->post_render (pDock, pDock->fHideOffset, pCairoContext); |
294 | - |
295 | - if (pDock->iFadeCounter != 0 && g_pKeepingBelowBackend != NULL && g_pKeepingBelowBackend->post_render) |
296 | - g_pKeepingBelowBackend->post_render (pDock, (double) pDock->iFadeCounter / myBackendsParam.iHideNbSteps, pCairoContext); |
297 | - |
298 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_RENDER, pDock, pCairoContext); |
299 | - } |
300 | - |
301 | - cairo_destroy (pCairoContext); |
302 | - return FALSE; |
303 | -} |
304 | - |
305 | - |
306 | -static gboolean _emit_leave_signal_delayed (CairoDock *pDock) |
307 | -{ |
308 | - cairo_dock_emit_leave_signal (CAIRO_CONTAINER (pDock)); |
309 | - pDock->iSidLeaveDemand = 0; |
310 | - return FALSE; |
311 | -} |
312 | -static gboolean _cairo_dock_show_sub_dock_delayed (CairoDock *pDock) |
313 | -{ |
314 | - s_iSidShowSubDockDemand = 0; |
315 | - s_pDockShowingSubDock = NULL; |
316 | - s_pSubDockShowing = NULL; |
317 | - Icon *icon = cairo_dock_get_pointed_icon (pDock->icons); |
318 | - //g_print ("%s (%x, %x)", __func__, icon, icon ? icon->pSubDock:0); |
319 | - if (icon != NULL && icon->pSubDock != NULL) |
320 | - cairo_dock_show_subdock (icon, pDock); |
321 | - |
322 | - return FALSE; |
323 | -} |
324 | -static void _search_icon (Icon *icon, CairoContainer *pContainer, gpointer *data) |
325 | -{ |
326 | - if (icon == data[0]) |
327 | - data[1] = icon; |
328 | -} |
329 | -static gboolean _cairo_dock_action_on_drag_hover (Icon *pIcon) |
330 | -{ |
331 | - gpointer data[2] = {pIcon, NULL}; |
332 | - cairo_dock_foreach_icons_in_docks ((CairoDockForeachIconFunc)_search_icon, data); // on verifie que l'icone ne s'est pas faite effacee entre-temps. |
333 | - pIcon = data[1]; |
334 | - if (pIcon && pIcon->iface.action_on_drag_hover) |
335 | - pIcon->iface.action_on_drag_hover (pIcon); |
336 | - s_iSidActionOnDragHover = 0; |
337 | - return FALSE; |
338 | -} |
339 | -void cairo_dock_on_change_icon (Icon *pLastPointedIcon, Icon *pPointedIcon, CairoDock *pDock) |
340 | -{ |
341 | - //g_print ("%s (%s -> %s)\n", __func__, pLastPointedIcon?pLastPointedIcon->cName:"none", pPointedIcon?pPointedIcon->cName:"none"); |
342 | - //cd_debug ("on change d'icone dans %x (-> %s)", pDock, (pPointedIcon != NULL ? pPointedIcon->cName : "rien")); |
343 | - if (s_iSidShowSubDockDemand != 0 && pDock == s_pDockShowingSubDock) |
344 | - { |
345 | - //cd_debug ("on annule la demande de montrage de sous-dock"); |
346 | - g_source_remove (s_iSidShowSubDockDemand); |
347 | - s_iSidShowSubDockDemand = 0; |
348 | - s_pDockShowingSubDock = NULL; |
349 | - s_pSubDockShowing = NULL; |
350 | - } |
351 | - |
352 | - // take action when dragging something onto an icon |
353 | - if (s_iSidActionOnDragHover != 0) |
354 | - { |
355 | - //cd_debug ("on annule la demande de montrage d'appli"); |
356 | - g_source_remove (s_iSidActionOnDragHover); |
357 | - s_iSidActionOnDragHover = 0; |
358 | - } |
359 | - |
360 | - if (pDock->bIsDragging && pPointedIcon && pPointedIcon->iface.action_on_drag_hover) |
361 | - { |
362 | - s_iSidActionOnDragHover = g_timeout_add (600, (GSourceFunc) _cairo_dock_action_on_drag_hover, pPointedIcon); |
363 | - } |
364 | - |
365 | - // replace dialogs |
366 | - cairo_dock_refresh_all_dialogs (FALSE); |
367 | - |
368 | - // hide the sub-dock of the previous pointed icon |
369 | - if (pLastPointedIcon != NULL && pLastPointedIcon->pSubDock != NULL) // on a quitte une icone ayant un sous-dock. |
370 | - { |
371 | - CairoDock *pSubDock = pLastPointedIcon->pSubDock; |
372 | - if (gldi_container_is_visible (CAIRO_CONTAINER (pSubDock))) // le sous-dock est visible, on retarde son cachage. |
373 | - { |
374 | - //g_print ("on cache %s en changeant d'icone\n", pLastPointedIcon->cName); |
375 | - if (pSubDock->iSidLeaveDemand == 0) |
376 | - { |
377 | - //g_print (" on retarde le cachage du dock de %dms\n", MAX (myDocksParam.iLeaveSubDockDelay, 330)); |
378 | - pSubDock->iSidLeaveDemand = g_timeout_add (MAX (myDocksParam.iLeaveSubDockDelay, 300), (GSourceFunc) _emit_leave_signal_delayed, (gpointer) pSubDock); // on force le retard meme si iLeaveSubDockDelay est a 0, car lorsqu'on entre dans un sous-dock, il arrive frequemment qu'on glisse hors de l'icone qui pointe dessus, et c'est tres desagreable d'avoir le dock qui se ferme avant d'avoir pu entre dedans. |
379 | - } |
380 | - } |
381 | - } |
382 | - |
383 | - // show the sub-dock of the current pointed icon |
384 | - if (pPointedIcon != NULL && pPointedIcon->pSubDock != NULL && (! myDocksParam.bShowSubDockOnClick || CAIRO_DOCK_IS_APPLI (pPointedIcon) || pDock->bIsDragging)) // on entre sur une icone ayant un sous-dock. |
385 | - { |
386 | - // if we were leaving the sub-dock, cancel that. |
387 | - if (pPointedIcon->pSubDock->iSidLeaveDemand != 0) |
388 | - { |
389 | - g_source_remove (pPointedIcon->pSubDock->iSidLeaveDemand); |
390 | - pPointedIcon->pSubDock->iSidLeaveDemand = 0; |
391 | - } |
392 | - // and show the sub-dock, possibly with a delay. |
393 | - if (myDocksParam.iShowSubDockDelay > 0) |
394 | - { |
395 | - if (s_iSidShowSubDockDemand != 0) |
396 | - g_source_remove (s_iSidShowSubDockDemand); |
397 | - s_iSidShowSubDockDemand = g_timeout_add (myDocksParam.iShowSubDockDelay, (GSourceFunc) _cairo_dock_show_sub_dock_delayed, pDock); // we can't be showing more than 1 sub-dock, so this timeout can be global to all docks. |
398 | - s_pDockShowingSubDock = pDock; |
399 | - s_pSubDockShowing = pPointedIcon->pSubDock; |
400 | - } |
401 | - else |
402 | - cairo_dock_show_subdock (pPointedIcon, pDock); |
403 | - } |
404 | - |
405 | - // notify everybody |
406 | - if (pPointedIcon != NULL && ! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (pPointedIcon)) |
407 | - { |
408 | - gboolean bStartAnimation = FALSE; |
409 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_ENTER_ICON, pPointedIcon, pDock, &bStartAnimation); |
410 | - |
411 | - if (bStartAnimation) |
412 | - { |
413 | - pPointedIcon->iAnimationState = CAIRO_DOCK_STATE_MOUSE_HOVERED; |
414 | - cairo_dock_launch_animation (CAIRO_CONTAINER (pDock)); |
415 | - } |
416 | - } |
417 | -} |
418 | - |
419 | - |
420 | -void cairo_dock_stop_icon_glide (CairoDock *pDock) |
421 | -{ |
422 | - Icon *icon; |
423 | - GList *ic; |
424 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
425 | - { |
426 | - icon = ic->data; |
427 | - icon->fGlideOffset = 0; |
428 | - icon->iGlideDirection = 0; |
429 | - } |
430 | -} |
431 | -static void _cairo_dock_make_icon_glide (Icon *pPointedIcon, Icon *pMovingicon, CairoDock *pDock) |
432 | -{ |
433 | - Icon *icon; |
434 | - GList *ic; |
435 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
436 | - { |
437 | - icon = ic->data; |
438 | - if (icon == pMovingicon) |
439 | - continue; |
440 | - //if (pDock->container.iMouseX > s_pMovingicon->fDrawXAtRest + s_pMovingicon->fWidth * s_pMovingicon->fScale /2) // on a deplace l'icone a droite. // fDrawXAtRest |
441 | - if (pMovingicon->fXAtRest < pPointedIcon->fXAtRest) // on a deplace l'icone a droite. |
442 | - { |
443 | - //g_print ("%s : %.2f / %.2f ; %.2f / %d (%.2f)\n", icon->cName, icon->fXAtRest, pMovingicon->fXAtRest, icon->fDrawX, pDock->container.iMouseX, icon->fGlideOffset); |
444 | - if (icon->fXAtRest > pMovingicon->fXAtRest && icon->fDrawX < pDock->container.iMouseX + 5 && icon->fGlideOffset == 0) // icone entre l'icone deplacee et le curseur. |
445 | - { |
446 | - //g_print (" %s glisse vers la gauche\n", icon->cName); |
447 | - icon->iGlideDirection = -1; |
448 | - } |
449 | - else if (icon->fXAtRest > pMovingicon->fXAtRest && icon->fDrawX > pDock->container.iMouseX && icon->fGlideOffset != 0) |
450 | - { |
451 | - //g_print (" %s glisse vers la droite\n", icon->cName); |
452 | - icon->iGlideDirection = 1; |
453 | - } |
454 | - else if (icon->fXAtRest < pMovingicon->fXAtRest && icon->fGlideOffset > 0) |
455 | - { |
456 | - //g_print (" %s glisse en sens inverse vers la gauche\n", icon->cName); |
457 | - icon->iGlideDirection = -1; |
458 | - } |
459 | - } |
460 | - else |
461 | - { |
462 | - double fMaxScale = (icon->fHeight != 0 ? (pDock->container.bIsHorizontal ? icon->iImageHeight : icon->iImageWidth) / icon->fHeight : 1.); |
463 | - //g_print ("deplacement de %s vers la gauche (%.2f / %d)\n", icon->cName, icon->fDrawX + icon->fWidth * fMaxScale + myIconsParam.iIconGap, pDock->container.iMouseX); |
464 | - if (icon->fXAtRest < pMovingicon->fXAtRest && icon->fDrawX + icon->fWidth * fMaxScale + myIconsParam.iIconGap >= pDock->container.iMouseX && icon->fGlideOffset == 0) // icone entre l'icone deplacee et le curseur. |
465 | - { |
466 | - //g_print (" %s glisse vers la droite\n", icon->cName); |
467 | - icon->iGlideDirection = 1; |
468 | - } |
469 | - else if (icon->fXAtRest < pMovingicon->fXAtRest && icon->fDrawX + icon->fWidth * fMaxScale + myIconsParam.iIconGap <= pDock->container.iMouseX && icon->fGlideOffset != 0) |
470 | - { |
471 | - //g_print (" %s glisse vers la gauche\n", icon->cName); |
472 | - icon->iGlideDirection = -1; |
473 | - } |
474 | - else if (icon->fXAtRest > pMovingicon->fXAtRest && icon->fGlideOffset < 0) |
475 | - { |
476 | - //g_print (" %s glisse en sens inverse vers la droite\n", icon->cName); |
477 | - icon->iGlideDirection = 1; |
478 | - } |
479 | - } |
480 | - } |
481 | -} |
482 | -gboolean cairo_dock_on_motion_notify (GtkWidget* pWidget, |
483 | - GdkEventMotion* pMotion, |
484 | - CairoDock *pDock) |
485 | -{ |
486 | - static double fLastTime = 0; |
487 | - if (s_bFrozenDock && pMotion != NULL && pMotion->time != 0) |
488 | - return FALSE; |
489 | - if (pDock->bMenuVisible) |
490 | - return FALSE; |
491 | - Icon *pPointedIcon=NULL, *pLastPointedIcon = cairo_dock_get_pointed_icon (pDock->icons); |
492 | - int iLastMouseX = pDock->container.iMouseX; |
493 | - //g_print ("%s (%.2f;%.2f, %d)\n", __func__, pMotion->x, pMotion->y, pDock->iInputState); |
494 | - |
495 | - if (pMotion != NULL) |
496 | - { |
497 | - //g_print ("%s (%d,%d) (%d, %.2fms, bAtBottom:%d; bIsShrinkingDown:%d)\n", __func__, (int) pMotion->x, (int) pMotion->y, pMotion->is_hint, pMotion->time - fLastTime, pDock->bAtBottom, pDock->bIsShrinkingDown); |
498 | - //\_______________ On deplace le dock si ALT est enfoncee. |
499 | - if ((pMotion->state & GDK_MOD1_MASK) && (pMotion->state & GDK_BUTTON1_MASK)) |
500 | - { |
501 | - if (pDock->container.bIsHorizontal) |
502 | - { |
503 | - pDock->container.iWindowPositionX = pMotion->x_root - pDock->container.iMouseX; |
504 | - pDock->container.iWindowPositionY = pMotion->y_root - pDock->container.iMouseY; |
505 | - gtk_window_move (GTK_WINDOW (pWidget), |
506 | - pDock->container.iWindowPositionX, |
507 | - pDock->container.iWindowPositionY); |
508 | - } |
509 | - else |
510 | - { |
511 | - pDock->container.iWindowPositionX = pMotion->y_root - pDock->container.iMouseX; |
512 | - pDock->container.iWindowPositionY = pMotion->x_root - pDock->container.iMouseY; |
513 | - gtk_window_move (GTK_WINDOW (pWidget), |
514 | - pDock->container.iWindowPositionY, |
515 | - pDock->container.iWindowPositionX); |
516 | - } |
517 | - gdk_device_get_state (pMotion->device, pMotion->window, NULL, NULL); |
518 | - return FALSE; |
519 | - } |
520 | - |
521 | - //\_______________ On recupere la position de la souris. |
522 | - if (pDock->container.bIsHorizontal) |
523 | - { |
524 | - pDock->container.iMouseX = (int) pMotion->x; |
525 | - pDock->container.iMouseY = (int) pMotion->y; |
526 | - } |
527 | - else |
528 | - { |
529 | - pDock->container.iMouseX = (int) pMotion->y; |
530 | - pDock->container.iMouseY = (int) pMotion->x; |
531 | - } |
532 | - |
533 | - //\_______________ On tire l'icone volante. |
534 | - if (s_pFlyingContainer != NULL && ! pDock->container.bInside) |
535 | - { |
536 | - cairo_dock_drag_flying_container (s_pFlyingContainer, pDock); |
537 | - } |
538 | - |
539 | - //\_______________ On elague le flux des MotionNotify, sinon X en envoie autant que le permet le CPU ! |
540 | - if (pMotion->time != 0 && pMotion->time - fLastTime < myBackendsParam.fRefreshInterval && s_pIconClicked == NULL) |
541 | - { |
542 | - gdk_device_get_state (pMotion->device, pMotion->window, NULL, NULL); |
543 | - return FALSE; |
544 | - } |
545 | - |
546 | - //\_______________ On recalcule toutes les icones et on redessine. |
547 | - pPointedIcon = cairo_dock_calculate_dock_icons (pDock); |
548 | - //g_print ("pPointedIcon: %s\n", pPointedIcon?pPointedIcon->cName:"none"); |
549 | - gtk_widget_queue_draw (pWidget); |
550 | - fLastTime = pMotion->time; |
551 | - |
552 | - //\_______________ On tire l'icone cliquee. |
553 | - if (s_pIconClicked != NULL && s_pIconClicked->iAnimationState != CAIRO_DOCK_STATE_REMOVE_INSERT && ! myDocksParam.bLockIcons && ! myDocksParam.bLockAll && (fabs (pMotion->x - s_iClickX) > CD_CLICK_ZONE || fabs (pMotion->y - s_iClickY) > CD_CLICK_ZONE) && ! pDock->bPreventDraggingIcons) |
554 | - { |
555 | - s_bIconDragged = TRUE; |
556 | - s_pIconClicked->iAnimationState = CAIRO_DOCK_STATE_FOLLOW_MOUSE; |
557 | - //pDock->fAvoidingMouseMargin = .5; |
558 | - pDock->iAvoidingMouseIconType = s_pIconClicked->iGroup; // on pourrait le faire lors du clic aussi. |
559 | - s_pIconClicked->fScale = cairo_dock_get_icon_max_scale (s_pIconClicked); |
560 | - s_pIconClicked->fDrawX = pDock->container.iMouseX - s_pIconClicked->fWidth * s_pIconClicked->fScale / 2; |
561 | - s_pIconClicked->fDrawY = pDock->container.iMouseY - s_pIconClicked->fHeight * s_pIconClicked->fScale / 2 ; |
562 | - s_pIconClicked->fAlpha = 0.75; |
563 | - } |
564 | - |
565 | - //gdk_event_request_motions (pMotion); // ce sera pour GDK 2.12. |
566 | - gdk_device_get_state (pMotion->device, pMotion->window, NULL, NULL); // pour recevoir d'autres MotionNotify. |
567 | - } |
568 | - else // cas d'un drag and drop. |
569 | - { |
570 | - //g_print ("motion on drag\n"); |
571 | - //\_______________ On recupere la position de la souris. |
572 | - gldi_container_update_mouse_position (CAIRO_CONTAINER (pDock)); |
573 | - |
574 | - //\_______________ On recalcule toutes les icones et on redessine. |
575 | - pPointedIcon = cairo_dock_calculate_dock_icons (pDock); |
576 | - gtk_widget_queue_draw (pWidget); |
577 | - |
578 | - pDock->fAvoidingMouseMargin = .25; // on peut dropper entre 2 icones ... |
579 | - pDock->iAvoidingMouseIconType = CAIRO_DOCK_LAUNCHER; // ... seulement entre 2 icones du groupe "lanceurs". |
580 | - } |
581 | - |
582 | - //\_______________ On gere le changement d'icone. |
583 | - gboolean bStartAnimation = FALSE; |
584 | - if (pPointedIcon != pLastPointedIcon) |
585 | - { |
586 | - cairo_dock_on_change_icon (pLastPointedIcon, pPointedIcon, pDock); |
587 | - |
588 | - if (pPointedIcon != NULL && s_pIconClicked != NULL && s_pIconClicked->iGroup == pPointedIcon->iGroup && ! myDocksParam.bLockIcons && ! myDocksParam.bLockAll && ! pDock->bPreventDraggingIcons) |
589 | - { |
590 | - _cairo_dock_make_icon_glide (pPointedIcon, s_pIconClicked, pDock); |
591 | - bStartAnimation = TRUE; |
592 | - } |
593 | - } |
594 | - |
595 | - //\_______________ On notifie tout le monde. |
596 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_MOUSE_MOVED, pDock, &bStartAnimation); |
597 | - if (bStartAnimation) |
598 | - cairo_dock_launch_animation (CAIRO_CONTAINER (pDock)); |
599 | - |
600 | - return FALSE; |
601 | -} |
602 | - |
603 | -gboolean cairo_dock_on_leave_dock_notification2 (gpointer data, CairoDock *pDock, gboolean *bStartAnimation) |
604 | -{ |
605 | - //\_______________ On gere le drag d'une icone hors du dock. |
606 | - if (s_pIconClicked != NULL |
607 | - && (CAIRO_DOCK_ICON_TYPE_IS_LAUNCHER (s_pIconClicked) |
608 | - || CAIRO_DOCK_ICON_TYPE_IS_CONTAINER (s_pIconClicked) |
609 | - || (CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (s_pIconClicked) && s_pIconClicked->cDesktopFileName) |
610 | - || CAIRO_DOCK_IS_DETACHABLE_APPLET (s_pIconClicked)) |
611 | - && s_pFlyingContainer == NULL |
612 | - && ! myDocksParam.bLockIcons |
613 | - && ! myDocksParam.bLockAll |
614 | - && ! pDock->bPreventDraggingIcons) |
615 | - { |
616 | - cd_debug ("on a sorti %s du dock (%d;%d) / %dx%d", s_pIconClicked->cName, pDock->container.iMouseX, pDock->container.iMouseY, pDock->container.iWidth, pDock->container.iHeight); |
617 | - |
618 | - //if (! cairo_dock_hide_child_docks (pDock)) // on quitte si on entre dans un sous-dock, pour rester en position "haute". |
619 | - // return ; |
620 | - |
621 | - CairoDock *pOriginDock = cairo_dock_search_dock_from_name (s_pIconClicked->cParentDockName); |
622 | - g_return_val_if_fail (pOriginDock != NULL, TRUE); |
623 | - if (pOriginDock == pDock && _mouse_is_really_outside (pDock)) // ce test est la pour parer aux WM deficients mentaux comme KWin qui nous font sortir/rentrer lors d'un clic. |
624 | - { |
625 | - cd_debug (" on detache l'icone"); |
626 | - pOriginDock->bIconIsFlyingAway = TRUE; |
627 | - gchar *cParentDockName = s_pIconClicked->cParentDockName; |
628 | - s_pIconClicked->cParentDockName = NULL; |
629 | - cairo_dock_detach_icon_from_dock (s_pIconClicked, pOriginDock); |
630 | - s_pIconClicked->cParentDockName = cParentDockName; // we keep the parent dock name, to be able to re-insert it. we'll have to remove it when the icon is dropped. |
631 | - cairo_dock_update_dock_size (pOriginDock); |
632 | - cairo_dock_stop_icon_glide (pOriginDock); |
633 | - |
634 | - s_pFlyingContainer = cairo_dock_create_flying_container (s_pIconClicked, pOriginDock); |
635 | - //g_print ("- s_pIconClicked <- NULL\n"); |
636 | - s_pIconClicked = NULL; |
637 | - if (pDock->iRefCount > 0 || pDock->bAutoHide) // pour garder le dock visible. |
638 | - { |
639 | - return CAIRO_DOCK_INTERCEPT_NOTIFICATION; |
640 | - } |
641 | - } |
642 | - } |
643 | - else if (s_pFlyingContainer != NULL && s_pFlyingContainer->pIcon != NULL && pDock->iRefCount > 0) // on evite les bouclages. |
644 | - { |
645 | - CairoDock *pOriginDock = cairo_dock_search_dock_from_name (s_pFlyingContainer->pIcon->cParentDockName); |
646 | - if (pOriginDock == pDock) |
647 | - return CAIRO_DOCK_INTERCEPT_NOTIFICATION; |
648 | - } |
649 | - return CAIRO_DOCK_LET_PASS_NOTIFICATION; |
650 | -} |
651 | -gboolean cairo_dock_on_leave_dock_notification (gpointer data, CairoDock *pDock, gboolean *bStartAnimation) |
652 | -{ |
653 | - //\_______________ Arrive ici, on est sorti du dock. |
654 | - pDock->container.bInside = FALSE; |
655 | - pDock->iAvoidingMouseIconType = -1; |
656 | - pDock->fAvoidingMouseMargin = 0; |
657 | - |
658 | - //\_______________ On cache ses sous-docks. |
659 | - if (! cairo_dock_hide_child_docks (pDock)) // on quitte si l'un des sous-docks reste visible (on est entre dedans), pour rester en position "haute". |
660 | - return TRUE; |
661 | - |
662 | - if (s_iSidShowSubDockDemand != 0 && (pDock->iRefCount == 0 || s_pSubDockShowing == pDock)) // si ce dock ou l'un des sous-docks etait programme pour se montrer, on annule. |
663 | - { |
664 | - g_source_remove (s_iSidShowSubDockDemand); |
665 | - s_iSidShowSubDockDemand = 0; |
666 | - s_pDockShowingSubDock = NULL; |
667 | - s_pSubDockShowing = NULL; |
668 | - } |
669 | - |
670 | - //g_print ("%s (%d, %d)\n", __func__, pDock->iRefCount, pDock->bMenuVisible); |
671 | - |
672 | - //\_______________ On quitte si le menu est leve, pour rester en position haute. |
673 | - if (pDock->bMenuVisible) |
674 | - return CAIRO_DOCK_INTERCEPT_NOTIFICATION; |
675 | - |
676 | - //\_______________ On gere le drag d'une icone hors du dock. |
677 | - if (s_pIconClicked != NULL |
678 | - && (CAIRO_DOCK_ICON_TYPE_IS_LAUNCHER (s_pIconClicked) |
679 | - || CAIRO_DOCK_ICON_TYPE_IS_CONTAINER (s_pIconClicked) |
680 | - || (CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (s_pIconClicked) && s_pIconClicked->cDesktopFileName && pDock->iMaxDockHeight > 30) // if the dock is narrow (like a panel), prevent from dragging separators outside of the dock. TODO: maybe we need a parameter in the view... |
681 | - || CAIRO_DOCK_IS_DETACHABLE_APPLET (s_pIconClicked)) |
682 | - && s_pFlyingContainer == NULL |
683 | - && ! myDocksParam.bLockIcons |
684 | - && ! myDocksParam.bLockAll |
685 | - && ! pDock->bPreventDraggingIcons) |
686 | - { |
687 | - cd_debug ("on a sorti %s du dock (%d;%d) / %dx%d", s_pIconClicked->cName, pDock->container.iMouseX, pDock->container.iMouseY, pDock->container.iWidth, pDock->container.iHeight); |
688 | - |
689 | - //if (! cairo_dock_hide_child_docks (pDock)) // on quitte si on entre dans un sous-dock, pour rester en position "haute". |
690 | - // return ; |
691 | - |
692 | - CairoDock *pOriginDock = cairo_dock_search_dock_from_name (s_pIconClicked->cParentDockName); |
693 | - g_return_val_if_fail (pOriginDock != NULL, TRUE); |
694 | - if (pOriginDock == pDock && _mouse_is_really_outside (pDock)) // ce test est la pour parer aux WM deficients mentaux comme KWin qui nous font sortir/rentrer lors d'un clic. |
695 | - { |
696 | - cd_debug (" on detache l'icone"); |
697 | - pOriginDock->bIconIsFlyingAway = TRUE; |
698 | - gchar *cParentDockName = s_pIconClicked->cParentDockName; |
699 | - s_pIconClicked->cParentDockName = NULL; |
700 | - cairo_dock_detach_icon_from_dock (s_pIconClicked, pOriginDock); |
701 | - s_pIconClicked->cParentDockName = cParentDockName; // we keep the parent dock name, to be able to re-insert it. we'll have to remove it when the icon is dropped. |
702 | - cairo_dock_update_dock_size (pOriginDock); |
703 | - cairo_dock_stop_icon_glide (pOriginDock); |
704 | - |
705 | - s_pFlyingContainer = cairo_dock_create_flying_container (s_pIconClicked, pOriginDock); |
706 | - //g_print ("- s_pIconClicked <- NULL\n"); |
707 | - s_pIconClicked = NULL; |
708 | - if (pDock->iRefCount > 0 || pDock->bAutoHide) // pour garder le dock visible. |
709 | - { |
710 | - return CAIRO_DOCK_INTERCEPT_NOTIFICATION; |
711 | - } |
712 | - } |
713 | - } |
714 | - else if (s_pFlyingContainer != NULL && s_pFlyingContainer->pIcon != NULL && pDock->iRefCount > 0) // on evite les bouclages. |
715 | - { |
716 | - CairoDock *pOriginDock = cairo_dock_search_dock_from_name (s_pFlyingContainer->pIcon->cParentDockName); |
717 | - if (pOriginDock == pDock) |
718 | - return CAIRO_DOCK_INTERCEPT_NOTIFICATION; |
719 | - } |
720 | - |
721 | - //\_______________ On lance l'animation du dock. |
722 | - if (pDock->iRefCount == 0) |
723 | - { |
724 | - //g_print ("%s (auto-hide:%d)\n", __func__, pDock->bAutoHide); |
725 | - if (pDock->bAutoHide) |
726 | - { |
727 | - ///pDock->fFoldingFactor = (myBackendsParam.bAnimateOnAutoHide ? 0.001 : 0.); |
728 | - cairo_dock_start_hiding (pDock); |
729 | - } |
730 | - } |
731 | - else if (pDock->icons != NULL) |
732 | - { |
733 | - pDock->fFoldingFactor = (myDocksParam.bAnimateSubDock ? 0.001 : 0.); |
734 | - Icon *pIcon = cairo_dock_search_icon_pointing_on_dock (pDock, NULL); |
735 | - //g_print ("'%s' se replie\n", pIcon?pIcon->cName:"none"); |
736 | - cairo_dock_notify_on_object (pIcon, NOTIFICATION_UNFOLD_SUBDOCK, pIcon); |
737 | - } |
738 | - //g_print ("start shrinking\n"); |
739 | - cairo_dock_start_shrinking (pDock); // on commence a faire diminuer la taille des icones. |
740 | - return CAIRO_DOCK_LET_PASS_NOTIFICATION; |
741 | -} |
742 | - |
743 | - |
744 | -gboolean cairo_dock_on_leave_notify (GtkWidget* pWidget, GdkEventCrossing* pEvent, CairoDock *pDock) |
745 | -{ |
746 | - //g_print ("%s (bInside:%d; iState:%d; iRefCount:%d)\n", __func__, pDock->container.bInside, pDock->iInputState, pDock->iRefCount); |
747 | - //\_______________ On tire le dock => on ignore le signal. |
748 | - if (pEvent != NULL && (pEvent->state & GDK_MOD1_MASK) && (pEvent->state & GDK_BUTTON1_MASK)) |
749 | - { |
750 | - return FALSE; |
751 | - } |
752 | - |
753 | - //\_______________ On ignore les signaux errones venant d'un WM buggue (Kwin) ou meme de X (changement de bureau). |
754 | - //if (pEvent) |
755 | - // //g_print ("leave event: %d;%d; %d;%d; %d; %d\n", (int)pEvent->x, (int)pEvent->y, (int)pEvent->x_root, (int)pEvent->y_root, pEvent->mode, pEvent->detail); |
756 | - if (pEvent && (pEvent->x != 0 || pEvent->y != 0 || pEvent->x_root != 0 || pEvent->y_root != 0)) // strange leave events occur (detail = GDK_NOTIFY_NONLINEAR, nil coordinates); let's ignore them! |
757 | - { |
758 | - if (pDock->container.bIsHorizontal) |
759 | - { |
760 | - pDock->container.iMouseX = pEvent->x; |
761 | - pDock->container.iMouseY = pEvent->y; |
762 | - } |
763 | - else |
764 | - { |
765 | - pDock->container.iMouseX = pEvent->y; |
766 | - pDock->container.iMouseY = pEvent->x; |
767 | - } |
768 | - } |
769 | - else |
770 | - { |
771 | - //g_print ("forced leave event: %d;%d\n", pDock->container.iMouseX, pDock->container.iMouseY); |
772 | - } |
773 | - if (pEvent && !_mouse_is_really_outside(pDock)) // check that the mouse is really outside (only if the request comes from the Window Manager; this is to work around buggy WM like KWin). |
774 | - { |
775 | - //g_print ("not really outside (%d;%d ; %d/%d)\n", pDock->container.iMouseX, pDock->container.iMouseY, pDock->iMaxDockHeight, pDock->iMinDockHeight); |
776 | - if (pDock->iSidTestMouseOutside == 0 && pEvent) // si l'action induit un changement de bureau, ou une appli qui bloque le focus (gksu), X envoit un signal de sortie alors qu'on est encore dans le dock, et donc n'en n'envoit plus lorsqu'on en sort reellement. On teste donc pendant qques secondes apres l'evenement. |
777 | - { |
778 | - //g_print ("start checking mouse\n"); |
779 | - pDock->iSidTestMouseOutside = g_timeout_add (500, (GSourceFunc)_check_mouse_outside, pDock); |
780 | - } |
781 | - //g_print ("mouse: %d;%d\n", pDock->container.iMouseX, pDock->container.iMouseY); |
782 | - return FALSE; |
783 | - } |
784 | - |
785 | - //\_______________ On retarde la sortie. |
786 | - if (pEvent != NULL) // sortie naturelle. |
787 | - { |
788 | - if (pDock->iSidLeaveDemand == 0) // pas encore de demande de sortie. |
789 | - { |
790 | - if (pDock->iRefCount == 0) // cas du main dock : on retarde si on pointe sur un sous-dock (pour laisser le temps au signal d'entree dans le sous-dock d'etre traite) ou si l'on a l'auto-hide. |
791 | - { |
792 | - //g_print (" leave event : %.1f;%.1f (%dx%d)\n", pEvent->x, pEvent->y, pDock->container.iWidth, pDock->container.iHeight); |
793 | - Icon *pPointedIcon = cairo_dock_get_pointed_icon (pDock->icons); |
794 | - if (pPointedIcon != NULL && pPointedIcon->pSubDock != NULL && gldi_container_is_visible (CAIRO_CONTAINER (pPointedIcon->pSubDock))) |
795 | - { |
796 | - //g_print (" on retarde la sortie du dock de %dms\n", MAX (myDocksParam.iLeaveSubDockDelay, 330)); |
797 | - pDock->iSidLeaveDemand = g_timeout_add (MAX (myDocksParam.iLeaveSubDockDelay, 250), (GSourceFunc) _emit_leave_signal_delayed, (gpointer) pDock); |
798 | - return TRUE; |
799 | - } |
800 | - else if (pDock->bAutoHide) |
801 | - { |
802 | - const int delay = 0; // 250 |
803 | - if (delay != 0) /// maybe try to se if we leaved the dock frankly, or just by a few pixels... |
804 | - { |
805 | - //g_print (" delay the leave event by %dms\n", delay); |
806 | - pDock->iSidLeaveDemand = g_timeout_add (250, (GSourceFunc) _emit_leave_signal_delayed, (gpointer) pDock); |
807 | - return TRUE; |
808 | - } |
809 | - } |
810 | - } |
811 | - else/** if (myDocksParam.iLeaveSubDockDelay != 0)*/ // cas d'un sous-dock : on retarde le cachage. |
812 | - { |
813 | - //g_print (" on retarde la sortie du sous-dock de %dms\n", myDocksParam.iLeaveSubDockDelay); |
814 | - pDock->iSidLeaveDemand = g_timeout_add (MAX (myDocksParam.iLeaveSubDockDelay, 50), (GSourceFunc) _emit_leave_signal_delayed, (gpointer) pDock); |
815 | - return TRUE; |
816 | - } |
817 | - } |
818 | - else // deja une sortie en attente. |
819 | - { |
820 | - //g_print ("une sortie est deja programmee\n"); |
821 | - return TRUE; |
822 | - } |
823 | - } // sinon c'est nous qui avons explicitement demande cette sortie, donc on continue. |
824 | - |
825 | - if (pDock->iSidTestMouseOutside != 0) |
826 | - { |
827 | - //g_print ("stop checking mouse (leave)\n"); |
828 | - g_source_remove (pDock->iSidTestMouseOutside); |
829 | - pDock->iSidTestMouseOutside = 0; |
830 | - } |
831 | - |
832 | - gboolean bStartAnimation = FALSE; |
833 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_LEAVE_DOCK, pDock, &bStartAnimation); |
834 | - if (bStartAnimation) |
835 | - cairo_dock_launch_animation (CAIRO_CONTAINER (pDock)); |
836 | - |
837 | - return TRUE; |
838 | -} |
839 | - |
840 | -gboolean cairo_dock_on_enter_notification (gpointer pData, CairoDock *pDock, gboolean *bStartAnimation) |
841 | -{ |
842 | - // si on rentre avec une icone volante, on la met dedans. |
843 | - if (s_pFlyingContainer != NULL) |
844 | - { |
845 | - Icon *pFlyingIcon = s_pFlyingContainer->pIcon; |
846 | - if (pDock != pFlyingIcon->pSubDock) // on evite les boucles. |
847 | - { |
848 | - struct timeval tv; |
849 | - int r = gettimeofday (&tv, NULL); |
850 | - double t = tv.tv_sec + tv.tv_usec * 1e-6; |
851 | - if (t - s_pFlyingContainer->fCreationTime > 1) // on empeche le cas ou enlever l'icone fait augmenter le ratio du dock, et donc sa hauteur, et nous fait rentrer dedans des qu'on sort l'icone. |
852 | - { |
853 | - cd_debug ("on remet l'icone volante dans un dock (dock d'origine : %s)\n", pFlyingIcon->cParentDockName); |
854 | - cairo_dock_free_flying_container (s_pFlyingContainer); |
855 | - cairo_dock_stop_icon_animation (pFlyingIcon); |
856 | - cairo_dock_insert_icon_in_dock (pFlyingIcon, pDock, CAIRO_DOCK_ANIMATE_ICON); |
857 | - s_pFlyingContainer = NULL; |
858 | - pDock->bIconIsFlyingAway = FALSE; |
859 | - } |
860 | - } |
861 | - } |
862 | - |
863 | - return CAIRO_DOCK_LET_PASS_NOTIFICATION; |
864 | -} |
865 | -gboolean cairo_dock_on_enter_notify (GtkWidget* pWidget, GdkEventCrossing* pEvent, CairoDock *pDock) |
866 | -{ |
867 | - //g_print ("%s (bIsMainDock : %d; bInside:%d; state:%d; iMagnitudeIndex:%d; input shape:%x; event:%p)\n", __func__, pDock->bIsMainDock, pDock->container.bInside, pDock->iInputState, pDock->iMagnitudeIndex, pDock->pShapeBitmap, pEvent); |
868 | - if (! cairo_dock_entrance_is_allowed (pDock)) |
869 | - { |
870 | - cd_message ("* entree non autorisee"); |
871 | - return FALSE; |
872 | - } |
873 | - |
874 | - // stop les timers. |
875 | - if (pDock->iSidLeaveDemand != 0) |
876 | - { |
877 | - g_source_remove (pDock->iSidLeaveDemand); |
878 | - pDock->iSidLeaveDemand = 0; |
879 | - } |
880 | - if (s_iSidShowSubDockDemand != 0) // gere un cas tordu mais bien reel. |
881 | - { |
882 | - g_source_remove (s_iSidShowSubDockDemand); |
883 | - s_iSidShowSubDockDemand = 0; |
884 | - } |
885 | - if (pDock->iSidHideBack != 0) |
886 | - { |
887 | - //g_print ("remove hide back timeout\n"); |
888 | - g_source_remove (pDock->iSidHideBack); |
889 | - pDock->iSidHideBack = 0; |
890 | - } |
891 | - if (pDock->iSidTestMouseOutside != 0) |
892 | - { |
893 | - //g_print ("stop checking mouse (enter)\n"); |
894 | - g_source_remove (pDock->iSidTestMouseOutside); |
895 | - pDock->iSidTestMouseOutside = 0; |
896 | - } |
897 | - |
898 | - // input shape desactivee, le dock devient actif. |
899 | - if ((pDock->pShapeBitmap || pDock->pHiddenShapeBitmap) && pDock->iInputState != CAIRO_DOCK_INPUT_ACTIVE) |
900 | - { |
901 | - //g_print ("+++ input shape active on enter\n"); |
902 | - cairo_dock_set_input_shape_active (pDock); |
903 | - } |
904 | - pDock->iInputState = CAIRO_DOCK_INPUT_ACTIVE; |
905 | - |
906 | - // si on etait deja dedans, ou qu'on etait cense l'etre, on relance juste le grossissement. |
907 | - /**if (pDock->container.bInside || pDock->bIsHiding) |
908 | - { |
909 | - pDock->container.bInside = TRUE; |
910 | - cairo_dock_start_growing (pDock); |
911 | - if (pDock->bIsHiding || cairo_dock_is_hidden (pDock)) // on (re)monte. |
912 | - { |
913 | - cd_debug (" on etait deja dedans\n"); |
914 | - cairo_dock_start_showing (pDock); |
915 | - } |
916 | - return FALSE; |
917 | - }*/ |
918 | - |
919 | - pDock->container.bInside = TRUE; |
920 | - |
921 | - // animation d'entree. |
922 | - gboolean bStartAnimation = FALSE; |
923 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_ENTER_DOCK, pDock, &bStartAnimation); |
924 | - if (bStartAnimation) |
925 | - cairo_dock_launch_animation (CAIRO_CONTAINER (pDock)); |
926 | - |
927 | - pDock->fDecorationsOffsetX = 0; |
928 | - cairo_dock_stop_quick_hide (); |
929 | - |
930 | - if (s_pIconClicked != NULL) // on pourrait le faire a chaque motion aussi. |
931 | - { |
932 | - pDock->iAvoidingMouseIconType = s_pIconClicked->iGroup; |
933 | - pDock->fAvoidingMouseMargin = .5; /// inutile il me semble ... |
934 | - } |
935 | - |
936 | - // si on rentre avec une icone volante, on la met dedans. |
937 | - if (s_pFlyingContainer != NULL) |
938 | - { |
939 | - Icon *pFlyingIcon = s_pFlyingContainer->pIcon; |
940 | - if (pDock != pFlyingIcon->pSubDock) // on evite les boucles. |
941 | - { |
942 | - struct timeval tv; |
943 | - int r = gettimeofday (&tv, NULL); |
944 | - double t = tv.tv_sec + tv.tv_usec * 1e-6; |
945 | - if (t - s_pFlyingContainer->fCreationTime > 1) // on empeche le cas ou enlever l'icone fait augmenter le ratio du dock, et donc sa hauteur, et nous fait rentrer dedans des qu'on sort l'icone. |
946 | - { |
947 | - //g_print ("on remet l'icone volante dans un dock (dock d'origine : %s)\n", pFlyingIcon->cParentDockName); |
948 | - cairo_dock_free_flying_container (s_pFlyingContainer); |
949 | - cairo_dock_stop_icon_animation (pFlyingIcon); |
950 | - // reinsert the icon where it was dropped, not at its original position. |
951 | - Icon *icon = cairo_dock_get_pointed_icon (pDock->icons); // get the pointed icon before we insert the icon, since the inserted icon will be the pointed one! |
952 | - //g_print (" pointed icon: %s\n", icon?icon->cName:"none"); |
953 | - cairo_dock_insert_icon_in_dock (pFlyingIcon, pDock, CAIRO_DOCK_ANIMATE_ICON); |
954 | - if (icon != NULL && cairo_dock_get_icon_order (icon) == cairo_dock_get_icon_order (pFlyingIcon)) |
955 | - { |
956 | - cairo_dock_move_icon_after_icon (pDock, pFlyingIcon, icon); |
957 | - } |
958 | - s_pFlyingContainer = NULL; |
959 | - pDock->bIconIsFlyingAway = FALSE; |
960 | - } |
961 | - } |
962 | - } |
963 | - |
964 | - // si on etait derriere, on repasse au premier plan. |
965 | - if (pDock->iVisibility == CAIRO_DOCK_VISI_KEEP_BELOW && pDock->bIsBelow && pDock->iRefCount == 0) |
966 | - { |
967 | - cairo_dock_pop_up (pDock); |
968 | - } |
969 | - |
970 | - // si on etait cache (entierement ou partiellement), on montre. |
971 | - if ((pDock->bIsHiding || cairo_dock_is_hidden (pDock)) && pDock->iRefCount == 0) |
972 | - { |
973 | - //g_print (" on commence a monter\n"); |
974 | - cairo_dock_start_showing (pDock); // on a mis a jour la zone d'input avant, sinon la fonction le ferait, ce qui serait inutile. |
975 | - } |
976 | - |
977 | - // since we've just entered the dock, the pointed icon has changed from none to the current one. |
978 | - if (pEvent != NULL) |
979 | - { |
980 | - // update the mouse coordinates |
981 | - if (pDock->container.bIsHorizontal) |
982 | - { |
983 | - pDock->container.iMouseX = (int) pEvent->x; |
984 | - pDock->container.iMouseY = (int) pEvent->y; |
985 | - } |
986 | - else |
987 | - { |
988 | - pDock->container.iMouseX = (int) pEvent->y; |
989 | - pDock->container.iMouseY = (int) pEvent->x; |
990 | - } |
991 | - // then compute the icons (especially the pointed one). |
992 | - Icon *icon = cairo_dock_calculate_dock_icons (pDock); // returns the pointed icon |
993 | - // trigger the change to trigger the animation and sub-dock popup |
994 | - if (icon != NULL) |
995 | - { |
996 | - cairo_dock_on_change_icon (NULL, icon, pDock); // we were out of the dock, so there is no previous pointed icon. |
997 | - } |
998 | - } |
999 | - // on lance le grossissement. |
1000 | - cairo_dock_start_growing (pDock); |
1001 | - |
1002 | - return TRUE; |
1003 | -} |
1004 | - |
1005 | - |
1006 | -gboolean cairo_dock_on_key_release (GtkWidget *pWidget, |
1007 | - GdkEventKey *pKey, |
1008 | - CairoDock *pDock) |
1009 | -{ |
1010 | - cd_debug ("on a appuye sur une touche (%d/%d)", pKey->keyval, pKey->hardware_keycode); |
1011 | - if (pKey->type == GDK_KEY_PRESS) |
1012 | - { |
1013 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_KEY_PRESSED, pDock, pKey->keyval, pKey->state, pKey->string, pKey->hardware_keycode); |
1014 | - } |
1015 | - else if (pKey->type == GDK_KEY_RELEASE) |
1016 | - { |
1017 | - //g_print ("release : pKey->keyval = %d\n", pKey->keyval); |
1018 | - if ((pKey->state & GDK_MOD1_MASK) && pKey->keyval == 0) // On relache la touche ALT, typiquement apres avoir fait un ALT + clique gauche + deplacement. |
1019 | - { |
1020 | - if (pDock->iRefCount == 0 && pDock->iVisibility != CAIRO_DOCK_VISI_SHORTKEY) |
1021 | - cairo_dock_write_root_dock_gaps (pDock); |
1022 | - } |
1023 | - } |
1024 | - return TRUE; |
1025 | -} |
1026 | - |
1027 | - |
1028 | -static gboolean _double_click_delay_over (Icon *icon) |
1029 | -{ |
1030 | - CairoDock *pDock = cairo_dock_search_dock_from_name (icon->cParentDockName); |
1031 | - if (pDock) |
1032 | - { |
1033 | - pDock->container.iMouseX = s_iFirstClickX; |
1034 | - pDock->container.iMouseY = s_iFirstClickY; |
1035 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_CLICK_ICON, icon, pDock, GDK_BUTTON1_MASK); |
1036 | - if (pDock->bIsMainDock && pDock->iVisibility == CAIRO_DOCK_VISI_SHORTKEY) |
1037 | - s_bHideAfterShortcut = TRUE; |
1038 | - |
1039 | - cairo_dock_start_icon_animation (icon, pDock); |
1040 | - } |
1041 | - icon->bIsDemandingAttention = FALSE; // on considere que si l'utilisateur clique sur l'icone, c'est qu'il a pris acte de la notification. |
1042 | - icon->iSidDoubleClickDelay = 0; |
1043 | - return FALSE; |
1044 | -} |
1045 | -static gboolean _check_mouse_outside (CairoDock *pDock) // ce test est principalement fait pour detecter les cas ou X nous envoit un signal leave errone alors qu'on est dedans (=> sortie refusee, bInside reste a TRUE), puis du coup ne nous en envoit pas de leave lorsqu'on quitte reellement le dock. |
1046 | -{ |
1047 | - //g_print ("%s (%d, %d, %d)\n", __func__, pDock->bIsShrinkingDown, pDock->iMagnitudeIndex, pDock->container.bInside); |
1048 | - if (pDock->bIsShrinkingDown || pDock->iMagnitudeIndex == 0 || ! pDock->container.bInside) // cas triviaux : si le dock est deja retrecit, ou qu'on est deja plus dedans, on peut quitter. |
1049 | - { |
1050 | - pDock->iSidTestMouseOutside = 0; |
1051 | - return FALSE; |
1052 | - } |
1053 | - |
1054 | - gldi_container_update_mouse_position (CAIRO_CONTAINER (pDock)); |
1055 | - //g_print (" -> (%d, %d)\n", pDock->container.iMouseX, pDock->container.iMouseY); |
1056 | - |
1057 | - cairo_dock_calculate_dock_icons (pDock); // pour faire retrecir le dock si on n'est pas dedans, merci X de nous faire sortir du dock alors que la souris est toujours dedans :-/ |
1058 | - return TRUE; |
1059 | -} |
1060 | -gboolean cairo_dock_on_button_press (GtkWidget* pWidget, GdkEventButton* pButton, CairoDock *pDock) |
1061 | -{ |
1062 | - //g_print ("+ %s (%d/%d, %x)\n", __func__, pButton->type, pButton->button, pWidget); |
1063 | - if (pDock->container.bIsHorizontal) // utile ? |
1064 | - { |
1065 | - pDock->container.iMouseX = (int) pButton->x; |
1066 | - pDock->container.iMouseY = (int) pButton->y; |
1067 | - } |
1068 | - else |
1069 | - { |
1070 | - pDock->container.iMouseX = (int) pButton->y; |
1071 | - pDock->container.iMouseY = (int) pButton->x; |
1072 | - } |
1073 | - |
1074 | - Icon *icon = cairo_dock_get_pointed_icon (pDock->icons); |
1075 | - if (pButton->button == 1) // clic gauche. |
1076 | - { |
1077 | - //g_print ("+ left click\n"); |
1078 | - switch (pButton->type) |
1079 | - { |
1080 | - case GDK_BUTTON_RELEASE : |
1081 | - //g_print ("+ GDK_BUTTON_RELEASE (%d/%d sur %s/%s)\n", pButton->state, GDK_CONTROL_MASK | GDK_MOD1_MASK, icon ? icon->cName : "personne", icon ? icon->cCommand : ""); // 272 = 100010000 |
1082 | - if (pDock->container.bIgnoreNextReleaseEvent) |
1083 | - { |
1084 | - pDock->container.bIgnoreNextReleaseEvent = FALSE; |
1085 | - s_pIconClicked = NULL; |
1086 | - s_bIconDragged = FALSE; |
1087 | - return TRUE; |
1088 | - } |
1089 | - |
1090 | - if ( ! (pButton->state & GDK_MOD1_MASK)) |
1091 | - { |
1092 | - if (s_pIconClicked != NULL) |
1093 | - { |
1094 | - cd_debug ("activate %s (%s)", s_pIconClicked->cName, icon ? icon->cName : "none"); |
1095 | - s_pIconClicked->iAnimationState = CAIRO_DOCK_STATE_REST; // stoppe les animations de suivi du curseur. |
1096 | - pDock->iAvoidingMouseIconType = -1; |
1097 | - cairo_dock_stop_icon_glide (pDock); |
1098 | - } |
1099 | - if (icon != NULL && ! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon) && icon == s_pIconClicked) // released the button on the clicked icon => trigger the CLICK signal. |
1100 | - { |
1101 | - s_pIconClicked = NULL; // il faut le faire ici au cas ou le clic induirait un dialogue bloquant qui nous ferait sortir du dock par exemple. |
1102 | - //g_print ("+ click on '%s' (%s)\n", icon->cName, icon->cCommand); |
1103 | - if (! s_bIconDragged) // on ignore le drag'n'drop sur elle-meme. |
1104 | - { |
1105 | - if (icon->iNbDoubleClickListeners > 0) |
1106 | - { |
1107 | - if (icon->iSidDoubleClickDelay == 0) // 1er release. |
1108 | - { |
1109 | - icon->iSidDoubleClickDelay = g_timeout_add (CD_DOUBLE_CLICK_DELAY, (GSourceFunc)_double_click_delay_over, icon); |
1110 | - s_iFirstClickX = pDock->container.iMouseX; // the mouse can move between the first and the second clicks; since the event is triggered when the second click occurs, the coordinates may be wrong -> we have to remember the position of the first click. |
1111 | - s_iFirstClickY = pDock->container.iMouseY; |
1112 | - } |
1113 | - } |
1114 | - else |
1115 | - { |
1116 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_CLICK_ICON, icon, pDock, pButton->state); |
1117 | - if (pDock->bIsMainDock && pDock->iVisibility == CAIRO_DOCK_VISI_SHORTKEY) |
1118 | - s_bHideAfterShortcut = TRUE; |
1119 | - |
1120 | - cairo_dock_start_icon_animation (icon, pDock); |
1121 | - icon->bIsDemandingAttention = FALSE; // on considere que si l'utilisateur clique sur l'icone, c'est qu'il a pris acte de la notification. |
1122 | - } |
1123 | - } |
1124 | - } |
1125 | - else if (s_pIconClicked != NULL && icon != NULL && icon != s_pIconClicked && ! myDocksParam.bLockIcons && ! myDocksParam.bLockAll && ! pDock->bPreventDraggingIcons) // released the icon on another one. |
1126 | - { |
1127 | - //g_print ("deplacement de %s\n", s_pIconClicked->cName); |
1128 | - CairoDock *pOriginDock = CAIRO_DOCK (cairo_dock_search_container_from_icon (s_pIconClicked)); |
1129 | - if (pOriginDock != NULL && pDock != pOriginDock) |
1130 | - { |
1131 | - cairo_dock_detach_icon_from_dock (s_pIconClicked, pOriginDock); |
1132 | - ///cairo_dock_update_dock_size (pOriginDock); |
1133 | - |
1134 | - cairo_dock_update_icon_s_container_name (s_pIconClicked, icon->cParentDockName); |
1135 | - |
1136 | - cairo_dock_insert_icon_in_dock (s_pIconClicked, pDock, CAIRO_DOCK_ANIMATE_ICON); |
1137 | - } |
1138 | - |
1139 | - Icon *prev_icon, *next_icon; |
1140 | - if (icon->fXAtRest > s_pIconClicked->fXAtRest) |
1141 | - { |
1142 | - prev_icon = icon; |
1143 | - next_icon = cairo_dock_get_next_icon (pDock->icons, icon); |
1144 | - } |
1145 | - else |
1146 | - { |
1147 | - prev_icon = cairo_dock_get_previous_icon (pDock->icons, icon); |
1148 | - next_icon = icon; |
1149 | - } |
1150 | - if (icon->iGroup != s_pIconClicked->iGroup |
1151 | - && (prev_icon == NULL || prev_icon->iGroup != s_pIconClicked->iGroup) |
1152 | - && (next_icon == NULL || next_icon->iGroup != s_pIconClicked->iGroup)) |
1153 | - { |
1154 | - s_pIconClicked = NULL; |
1155 | - return FALSE; |
1156 | - } |
1157 | - //g_print ("deplacement de %s\n", s_pIconClicked->cName); |
1158 | - ///if (prev_icon != NULL && prev_icon->iGroup != s_pIconClicked->iGroup) // the previous icon is in a different group -> we'll be at the beginning of our group. |
1159 | - /// prev_icon = NULL; // => move to the beginning of the group/dock |
1160 | - cairo_dock_move_icon_after_icon (pDock, s_pIconClicked, prev_icon); |
1161 | - |
1162 | - pDock->pRenderer->calculate_icons (pDock); |
1163 | - |
1164 | - if (! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (s_pIconClicked)) |
1165 | - { |
1166 | - cairo_dock_request_icon_animation (s_pIconClicked, CAIRO_CONTAINER (pDock), "bounce", 2); |
1167 | - } |
1168 | - gtk_widget_queue_draw (pDock->container.pWidget); |
1169 | - } |
1170 | - |
1171 | - if (s_pFlyingContainer != NULL) |
1172 | - { |
1173 | - cd_debug ("on relache l'icone volante"); |
1174 | - if (pDock->container.bInside) |
1175 | - { |
1176 | - //g_print (" on la remet dans son dock d'origine\n"); |
1177 | - Icon *pFlyingIcon = s_pFlyingContainer->pIcon; |
1178 | - cairo_dock_free_flying_container (s_pFlyingContainer); |
1179 | - cairo_dock_stop_marking_icon_as_following_mouse (pFlyingIcon); |
1180 | - cairo_dock_stop_icon_animation (pFlyingIcon); |
1181 | - // reinsert the icon where it was dropped, not at its original position. |
1182 | - Icon *icon = cairo_dock_get_pointed_icon (pDock->icons); // get the pointed icon before we insert the icon, since the inserted icon will be the pointed one! |
1183 | - cairo_dock_insert_icon_in_dock (pFlyingIcon, pDock, CAIRO_DOCK_ANIMATE_ICON); |
1184 | - if (icon != NULL && cairo_dock_get_icon_order (icon) == cairo_dock_get_icon_order (pFlyingIcon)) |
1185 | - { |
1186 | - cairo_dock_move_icon_after_icon (pDock, pFlyingIcon, icon); |
1187 | - } |
1188 | - } |
1189 | - else |
1190 | - { |
1191 | - Icon *pFlyingIcon = s_pFlyingContainer->pIcon; |
1192 | - g_free (pFlyingIcon->cParentDockName); // we have to remove it ourselves here, since we kept this data. |
1193 | - pFlyingIcon->cParentDockName = NULL; |
1194 | - cairo_dock_terminate_flying_container (s_pFlyingContainer); // supprime ou detache l'icone, l'animation se terminera toute seule. |
1195 | - } |
1196 | - s_pFlyingContainer = NULL; |
1197 | - pDock->bIconIsFlyingAway = FALSE; |
1198 | - cairo_dock_stop_icon_glide (pDock); |
1199 | - } |
1200 | - /// a implementer ... |
1201 | - ///cairo_dock_notify_on_object (CAIRO_CONTAINER (pDock), CAIRO_DOCK_RELEASE_ICON, icon, pDock); |
1202 | - } |
1203 | - else |
1204 | - { |
1205 | - if (pDock->iRefCount == 0 && pDock->iVisibility != CAIRO_DOCK_VISI_SHORTKEY) |
1206 | - cairo_dock_write_root_dock_gaps (pDock); |
1207 | - } |
1208 | - //g_print ("- apres clic : s_pIconClicked <- NULL\n"); |
1209 | - s_pIconClicked = NULL; |
1210 | - s_bIconDragged = FALSE; |
1211 | - break ; |
1212 | - |
1213 | - case GDK_BUTTON_PRESS : |
1214 | - if ( ! (pButton->state & GDK_MOD1_MASK)) |
1215 | - { |
1216 | - //g_print ("+ clic sur %s (%.2f)!\n", icon ? icon->cName : "rien", icon ? icon->fInsertRemoveFactor : 0.); |
1217 | - s_iClickX = pButton->x; |
1218 | - s_iClickY = pButton->y; |
1219 | - if (icon && ! cairo_dock_icon_is_being_removed (icon) && ! CAIRO_DOCK_IS_AUTOMATIC_SEPARATOR (icon)) |
1220 | - { |
1221 | - s_pIconClicked = icon; // on ne definit pas l'animation FOLLOW_MOUSE ici , on le fera apres le 1er mouvement, pour eviter que l'icone soit dessinee comme tel quand on clique dessus alors que le dock est en train de jouer une animation (ca provoque un flash desagreable). |
1222 | - cd_debug ("clicked on %s", icon->cName); |
1223 | - } |
1224 | - else |
1225 | - s_pIconClicked = NULL; |
1226 | - } |
1227 | - break ; |
1228 | - |
1229 | - case GDK_2BUTTON_PRESS : |
1230 | - if (icon && ! cairo_dock_icon_is_being_removed (icon)) |
1231 | - { |
1232 | - if (icon->iSidDoubleClickDelay != 0) |
1233 | - { |
1234 | - g_source_remove (icon->iSidDoubleClickDelay); |
1235 | - icon->iSidDoubleClickDelay = 0; |
1236 | - } |
1237 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_DOUBLE_CLICK_ICON, icon, pDock); |
1238 | - if (icon->iNbDoubleClickListeners > 0) |
1239 | - pDock->container.bIgnoreNextReleaseEvent = TRUE; |
1240 | - } |
1241 | - break ; |
1242 | - |
1243 | - default : |
1244 | - break ; |
1245 | - } |
1246 | - } |
1247 | - else if (pButton->button == 3 && pButton->type == GDK_BUTTON_PRESS) // clique droit. |
1248 | - { |
1249 | - GtkWidget *menu = cairo_dock_build_menu (icon, CAIRO_CONTAINER (pDock)); // genere un CAIRO_DOCK_BUILD_CONTAINER_MENU et CAIRO_DOCK_BUILD_ICON_MENU. |
1250 | - |
1251 | - cairo_dock_popup_menu_on_icon (menu, icon, CAIRO_CONTAINER (pDock)); |
1252 | - } |
1253 | - else if (pButton->button == 2 && pButton->type == GDK_BUTTON_PRESS) // clique milieu. |
1254 | - { |
1255 | - if (icon && ! cairo_dock_icon_is_being_removed (icon)) |
1256 | - { |
1257 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_MIDDLE_CLICK_ICON, icon, pDock); |
1258 | - } |
1259 | - } |
1260 | - |
1261 | - return FALSE; |
1262 | -} |
1263 | - |
1264 | - |
1265 | -gboolean cairo_dock_on_scroll (GtkWidget* pWidget, GdkEventScroll* pScroll, CairoDock *pDock) |
1266 | -{ |
1267 | - if (pScroll->direction != GDK_SCROLL_UP && pScroll->direction != GDK_SCROLL_DOWN) // on degage les scrolls horizontaux. |
1268 | - { |
1269 | - return FALSE; |
1270 | - } |
1271 | - Icon *icon = cairo_dock_get_pointed_icon (pDock->icons); // can be NULL |
1272 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_SCROLL_ICON, icon, pDock, pScroll->direction); |
1273 | - |
1274 | - return FALSE; |
1275 | -} |
1276 | - |
1277 | - |
1278 | -gboolean cairo_dock_on_configure (GtkWidget* pWidget, GdkEventConfigure* pEvent, CairoDock *pDock) |
1279 | -{ |
1280 | - //g_print ("%s (%p, main dock : %d) : (%d;%d) (%dx%d)\n", __func__, pDock, pDock->bIsMainDock, pEvent->x, pEvent->y, pEvent->width, pEvent->height); |
1281 | - // set the new actual size of the container |
1282 | - gint iNewWidth, iNewHeight, iNewX, iNewY; |
1283 | - if (pDock->container.bIsHorizontal) |
1284 | - { |
1285 | - iNewWidth = pEvent->width; |
1286 | - iNewHeight = pEvent->height; |
1287 | - |
1288 | - iNewX = pEvent->x; |
1289 | - iNewY = pEvent->y; |
1290 | - } |
1291 | - else |
1292 | - { |
1293 | - iNewWidth = pEvent->height; |
1294 | - iNewHeight = pEvent->width; |
1295 | - |
1296 | - iNewX = pEvent->y; |
1297 | - iNewY = pEvent->x; |
1298 | - } |
1299 | - |
1300 | - gboolean bSizeUpdated = (iNewWidth != pDock->container.iWidth || iNewHeight != pDock->container.iHeight); |
1301 | - gboolean bIsNowSized = (pDock->container.iWidth == 1 && pDock->container.iHeight == 1 && bSizeUpdated); |
1302 | - gboolean bPositionUpdated = (pDock->container.iWindowPositionX != iNewX || pDock->container.iWindowPositionY != iNewY); |
1303 | - pDock->container.iWidth = iNewWidth; |
1304 | - pDock->container.iHeight = iNewHeight; |
1305 | - pDock->container.iWindowPositionX = iNewX; |
1306 | - pDock->container.iWindowPositionY = iNewY; |
1307 | - |
1308 | - if (pDock->container.iWidth == 1 && pDock->container.iHeight == 1) // the X window has not yet reached its size. |
1309 | - { |
1310 | - return FALSE; |
1311 | - } |
1312 | - |
1313 | - // if the size has changed, also update everything that depends on it. |
1314 | - if (bSizeUpdated) // changement de taille |
1315 | - { |
1316 | - // update mouse relative position inside the window |
1317 | - gldi_container_update_mouse_position (CAIRO_CONTAINER (pDock)); |
1318 | - if (pDock->container.iMouseX < 0 || pDock->container.iMouseX > pDock->container.iWidth) // utile ? |
1319 | - pDock->container.iMouseX = 0; |
1320 | - |
1321 | - // update the input shape (it has been calculated in the function that made the resize) |
1322 | - cairo_dock_update_input_shape (pDock); |
1323 | - if (pDock->pHiddenShapeBitmap != NULL && pDock->iInputState == CAIRO_DOCK_INPUT_HIDDEN) |
1324 | - { |
1325 | - //g_print ("+++ input shape hidden on configure\n"); |
1326 | - cairo_dock_set_input_shape_hidden (pDock); |
1327 | - } |
1328 | - else if (pDock->pShapeBitmap != NULL && pDock->iInputState == CAIRO_DOCK_INPUT_AT_REST) |
1329 | - { |
1330 | - //g_print ("+++ input shape at rest on configure\n"); |
1331 | - cairo_dock_set_input_shape_at_rest (pDock); |
1332 | - } |
1333 | - else if (pDock->iInputState == CAIRO_DOCK_INPUT_ACTIVE) |
1334 | - { |
1335 | - //g_print ("+++ input shape active on configure\n"); |
1336 | - cairo_dock_set_input_shape_active (pDock); |
1337 | - } |
1338 | - |
1339 | - // update the GL context |
1340 | - if (g_bUseOpenGL) |
1341 | - { |
1342 | - if (! gldi_glx_make_current (CAIRO_CONTAINER (pDock))) |
1343 | - return FALSE; |
1344 | - |
1345 | - cairo_dock_set_ortho_view (CAIRO_CONTAINER (pDock)); |
1346 | - |
1347 | - glClearAccum (0., 0., 0., 0.); |
1348 | - glClear (GL_ACCUM_BUFFER_BIT); |
1349 | - |
1350 | - if (pDock->iRedirectedTexture != 0) |
1351 | - { |
1352 | - _cairo_dock_delete_texture (pDock->iRedirectedTexture); |
1353 | - pDock->iRedirectedTexture = cairo_dock_create_texture_from_raw_data (NULL, pEvent->width, pEvent->height); |
1354 | - } |
1355 | - } |
1356 | - |
1357 | - cairo_dock_calculate_dock_icons (pDock); |
1358 | - //g_print ("configure size\n"); |
1359 | - cairo_dock_trigger_set_WM_icons_geometry (pDock); // changement de position ou de taille du dock => on replace les icones. |
1360 | - |
1361 | - cairo_dock_replace_all_dialogs (); |
1362 | - |
1363 | - if (bIsNowSized && g_bUseOpenGL) // in OpenGL, |
1364 | - { |
1365 | - Icon *icon; |
1366 | - GList *ic; |
1367 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
1368 | - { |
1369 | - icon = ic->data; |
1370 | - if (icon->bDamaged) |
1371 | - { |
1372 | - //g_print ("#### icon %s is damaged\n", icon->cName); |
1373 | - icon->bDamaged = FALSE; |
1374 | - if (cairo_dock_get_icon_data_renderer (icon) != NULL) |
1375 | - { |
1376 | - cairo_dock_refresh_data_renderer (icon, CAIRO_CONTAINER (pDock), NULL); // no cairo context in OpenGL |
1377 | - } |
1378 | - else if (icon->iSubdockViewType != 0) |
1379 | - { |
1380 | - cairo_dock_draw_subdock_content_on_icon (icon, pDock); |
1381 | - } |
1382 | - else if (CAIRO_DOCK_IS_APPLET (icon)) |
1383 | - { |
1384 | - cairo_dock_reload_module_instance (icon->pModuleInstance, FALSE); // easy but safe way to redraw the icon properly. |
1385 | - } |
1386 | - else // if we don't know how thie icon should be drawn, just reload it. |
1387 | - { |
1388 | - cairo_dock_load_icon_image (icon, CAIRO_CONTAINER (pDock)); |
1389 | - } |
1390 | - } |
1391 | - } |
1392 | - } |
1393 | - } |
1394 | - else if (bPositionUpdated) // changement de position. |
1395 | - { |
1396 | - //g_print ("configure x,y\n"); |
1397 | - cairo_dock_trigger_set_WM_icons_geometry (pDock); // changement de position de la fenetre du dock => on replace les icones. |
1398 | - |
1399 | - cairo_dock_replace_all_dialogs (); |
1400 | - } |
1401 | - |
1402 | - if (pDock->iRefCount == 0 && (bSizeUpdated || bPositionUpdated)) |
1403 | - { |
1404 | - if (pDock->iVisibility == CAIRO_DOCK_VISI_AUTO_HIDE_ON_OVERLAP) |
1405 | - { |
1406 | - Icon *pActiveAppli = cairo_dock_get_current_active_icon (); |
1407 | - if (_cairo_dock_appli_is_on_our_way (pActiveAppli, pDock)) // la fenetre active nous gene. |
1408 | - { |
1409 | - if (!cairo_dock_is_temporary_hidden (pDock)) |
1410 | - cairo_dock_activate_temporary_auto_hide (pDock); |
1411 | - } |
1412 | - else |
1413 | - { |
1414 | - if (cairo_dock_is_temporary_hidden (pDock)) |
1415 | - cairo_dock_deactivate_temporary_auto_hide (pDock); |
1416 | - } |
1417 | - } |
1418 | - else if (pDock->iVisibility == CAIRO_DOCK_VISI_AUTO_HIDE_ON_OVERLAP_ANY) |
1419 | - { |
1420 | - if (cairo_dock_search_window_overlapping_dock (pDock) != NULL) |
1421 | - { |
1422 | - if (!cairo_dock_is_temporary_hidden (pDock)) |
1423 | - cairo_dock_activate_temporary_auto_hide (pDock); |
1424 | - } |
1425 | - else |
1426 | - { |
1427 | - if (cairo_dock_is_temporary_hidden (pDock)) |
1428 | - cairo_dock_deactivate_temporary_auto_hide (pDock); |
1429 | - } |
1430 | - } |
1431 | - } |
1432 | - |
1433 | - gtk_widget_queue_draw (pWidget); |
1434 | - |
1435 | - return FALSE; |
1436 | -} |
1437 | - |
1438 | - |
1439 | - |
1440 | -static gboolean s_bWaitForData = FALSE; |
1441 | -static gboolean s_bCouldDrop = FALSE; |
1442 | - |
1443 | -void cairo_dock_on_drag_data_received (GtkWidget *pWidget, GdkDragContext *dc, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time, CairoDock *pDock) |
1444 | -{ |
1445 | - cd_debug ("%s (%dx%d, %d, %d)", __func__, x, y, time, pDock->container.bInside); |
1446 | - if (cairo_dock_is_hidden (pDock)) // X ne semble pas tenir compte de la zone d'input pour dropper les trucs... |
1447 | - return ; |
1448 | - //\_________________ On recupere l'URI. |
1449 | - gchar *cReceivedData = (gchar *)gtk_selection_data_get_data (selection_data); |
1450 | - g_return_if_fail (cReceivedData != NULL); |
1451 | - int length = strlen (cReceivedData); |
1452 | - if (cReceivedData[length-1] == '\n') |
1453 | - cReceivedData[--length] = '\0'; // on vire le retour chariot final. |
1454 | - if (cReceivedData[length-1] == '\r') |
1455 | - cReceivedData[--length] = '\0'; |
1456 | - |
1457 | - if (s_bWaitForData) |
1458 | - { |
1459 | - s_bWaitForData = FALSE; |
1460 | - gdk_drag_status (dc, GDK_ACTION_COPY, time); |
1461 | - cd_debug ("drag info : <%s>\n", cReceivedData); |
1462 | - pDock->iAvoidingMouseIconType = CAIRO_DOCK_LAUNCHER; |
1463 | - if (g_str_has_suffix (cReceivedData, ".desktop")/** || g_str_has_suffix (cReceivedData, ".sh")*/) |
1464 | - pDock->fAvoidingMouseMargin = .5; // on ne sera jamais dessus. |
1465 | - else |
1466 | - pDock->fAvoidingMouseMargin = .25; |
1467 | - return ; |
1468 | - } |
1469 | - |
1470 | - //\_________________ On arrete l'animation. |
1471 | - //cairo_dock_stop_marking_icons (pDock); |
1472 | - pDock->iAvoidingMouseIconType = -1; |
1473 | - pDock->fAvoidingMouseMargin = 0; |
1474 | - |
1475 | - //\_________________ On arrete le timer. |
1476 | - if (s_iSidActionOnDragHover != 0) |
1477 | - { |
1478 | - //cd_debug ("on annule la demande de montrage d'appli"); |
1479 | - g_source_remove (s_iSidActionOnDragHover); |
1480 | - s_iSidActionOnDragHover = 0; |
1481 | - } |
1482 | - |
1483 | - //\_________________ On calcule la position a laquelle on l'a lache. |
1484 | - cd_debug (">>> cReceivedData : '%s' (%d/%d)", cReceivedData, s_bCouldDrop, pDock->bCanDrop); |
1485 | - /* icon => drop on icon |
1486 | - no icon => if order undefined: drop on dock; else: drop between 2 icons.*/ |
1487 | - Icon *pPointedIcon = NULL; |
1488 | - double fOrder; |
1489 | - if (s_bCouldDrop) // can drop on the dock |
1490 | - { |
1491 | - cd_debug ("drop between icons"); |
1492 | - if (myDocksParam.bLockIcons || myDocksParam.bLockAll) // locked, can't add anything. |
1493 | - { |
1494 | - gtk_drag_finish (dc, FALSE, FALSE, time); |
1495 | - return ; |
1496 | - } |
1497 | - |
1498 | - pPointedIcon = NULL; |
1499 | - fOrder = 0; |
1500 | - |
1501 | - // try to guess where we dropped. |
1502 | - int iDropX = (pDock->container.bIsHorizontal ? x : y); |
1503 | - Icon *pNeighboorIcon; |
1504 | - Icon *icon; |
1505 | - GList *ic; |
1506 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
1507 | - { |
1508 | - icon = ic->data; |
1509 | - if (icon->bPointed) |
1510 | - { |
1511 | - if (iDropX < icon->fDrawX + icon->fWidth * icon->fScale/2) // on the left side of the icon |
1512 | - { |
1513 | - pNeighboorIcon = (ic->prev != NULL ? ic->prev->data : NULL); |
1514 | - fOrder = (pNeighboorIcon != NULL ? (icon->fOrder + pNeighboorIcon->fOrder) / 2 : icon->fOrder - 1); |
1515 | - } |
1516 | - else // on the right side of the icon |
1517 | - { |
1518 | - pNeighboorIcon = (ic->next != NULL ? ic->next->data : NULL); |
1519 | - fOrder = (pNeighboorIcon != NULL ? (icon->fOrder + pNeighboorIcon->fOrder) / 2 : icon->fOrder + 1); |
1520 | - } |
1521 | - break; |
1522 | - } |
1523 | - } |
1524 | - } |
1525 | - else // drop on an icon or nowhere. |
1526 | - { |
1527 | - pPointedIcon = cairo_dock_get_pointed_icon (pDock->icons); |
1528 | - fOrder = CAIRO_DOCK_LAST_ORDER; |
1529 | - if (pPointedIcon == NULL && ! g_str_has_suffix (cReceivedData, ".desktop")) // no icon => abort, but .desktop are always added |
1530 | - { |
1531 | - cd_debug ("drop nowhere"); |
1532 | - gtk_drag_finish (dc, FALSE, FALSE, time); |
1533 | - return; |
1534 | - } |
1535 | - } |
1536 | - cd_debug ("drop on %s (%.2f)", pPointedIcon?pPointedIcon->cName:"dock", fOrder); |
1537 | - /**int iDropX = (pDock->container.bIsHorizontal ? x : y); |
1538 | - Icon *pNeighboorIcon = NULL; |
1539 | - Icon *icon; |
1540 | - GList *ic; |
1541 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
1542 | - { |
1543 | - icon = ic->data; |
1544 | - if (icon->bPointed) |
1545 | - { |
1546 | - //g_print ("On pointe sur %s\n", icon->cName); |
1547 | - pPointedIcon = icon; |
1548 | - double fMargin; /// deviendra obsolete si le drag-received fonctionne. |
1549 | - if (g_str_has_suffix (cReceivedData, ".desktop")) // si c'est un .desktop, on l'ajoute. |
1550 | - { |
1551 | - if (myDocksParam.bLockIcons || myDocksParam.bLockAll) |
1552 | - { |
1553 | - gtk_drag_finish (dc, FALSE, FALSE, time); |
1554 | - return ; |
1555 | - } |
1556 | - fMargin = 0.5; // on ne sera jamais dessus. |
1557 | - ///fMargin = 0.25; |
1558 | - } |
1559 | - else // sinon on le lance si on est sur l'icone, et on l'ajoute autrement. |
1560 | - fMargin = 0.25; |
1561 | - cd_debug ("%d > %.2f", iDropX, icon->fX + icon->fWidth * icon->fScale * (1 - fMargin)); |
1562 | - cd_debug ("%d < %.2f", iDropX, icon->fX + icon->fWidth * icon->fScale * fMargin); |
1563 | - if (iDropX > icon->fX + icon->fWidth * icon->fScale * (1 - fMargin)) // on est apres. |
1564 | - { |
1565 | - if (myDocksParam.bLockIcons || myDocksParam.bLockAll) |
1566 | - { |
1567 | - gtk_drag_finish (dc, FALSE, FALSE, time); |
1568 | - return ; |
1569 | - } |
1570 | - pNeighboorIcon = (ic->next != NULL ? ic->next->data : NULL); |
1571 | - fOrder = (pNeighboorIcon != NULL ? (icon->fOrder + pNeighboorIcon->fOrder) / 2 : icon->fOrder + 1); |
1572 | - } |
1573 | - else if (iDropX < icon->fX + icon->fWidth * icon->fScale * fMargin) // on est avant. |
1574 | - { |
1575 | - if (myDocksParam.bLockIcons || myDocksParam.bLockAll) |
1576 | - { |
1577 | - gtk_drag_finish (dc, FALSE, FALSE, time); |
1578 | - return ; |
1579 | - } |
1580 | - pNeighboorIcon = (ic->prev != NULL ? ic->prev->data : NULL); |
1581 | - fOrder = (pNeighboorIcon != NULL ? (icon->fOrder + pNeighboorIcon->fOrder) / 2 : icon->fOrder - 1); |
1582 | - } |
1583 | - else // on est dessus. |
1584 | - { |
1585 | - fOrder = CAIRO_DOCK_LAST_ORDER; |
1586 | - } |
1587 | - } |
1588 | - }*/ |
1589 | - |
1590 | - cairo_dock_notify_drop_data (cReceivedData, pPointedIcon, fOrder, CAIRO_CONTAINER (pDock)); |
1591 | - |
1592 | - gtk_drag_finish (dc, TRUE, FALSE, time); |
1593 | -} |
1594 | - |
1595 | -gboolean cairo_dock_on_drag_drop (GtkWidget *pWidget, GdkDragContext *dc, gint x, gint y, guint time, CairoDock *pDock) |
1596 | -{ |
1597 | - cd_message ("%s (%dx%d, %d)", __func__, x, y, time); |
1598 | - GdkAtom target = gtk_drag_dest_find_target (pWidget, dc, NULL); |
1599 | - gtk_drag_get_data (pWidget, dc, target, time); |
1600 | - return TRUE; // in a drop zone. |
1601 | -} |
1602 | - |
1603 | - |
1604 | -gboolean cairo_dock_on_drag_motion (GtkWidget *pWidget, GdkDragContext *dc, gint x, gint y, guint time, CairoDock *pDock) |
1605 | -{ |
1606 | - cd_debug ("%s (%d;%d, %d)", __func__, x, y, time); |
1607 | - |
1608 | - //\_________________ On simule les evenements souris habituels. |
1609 | - if (! pDock->bIsDragging) |
1610 | - { |
1611 | - cd_debug ("start dragging"); |
1612 | - pDock->bIsDragging = TRUE; |
1613 | - |
1614 | - /*GdkAtom gdkAtom = gdk_drag_get_selection (dc); |
1615 | - Atom xAtom = gdk_x11_atom_to_xatom (gdkAtom); |
1616 | - Window Xid = GDK_WINDOW_XID (dc->source_window); |
1617 | - cd_debug (" <%s>\n", cairo_dock_get_property_name_on_xwindow (Xid, xAtom));*/ |
1618 | - |
1619 | - gboolean bStartAnimation = FALSE; |
1620 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_START_DRAG_DATA, pDock, &bStartAnimation); |
1621 | - if (bStartAnimation) |
1622 | - cairo_dock_launch_animation (CAIRO_CONTAINER (pDock)); |
1623 | - |
1624 | - /*pDock->iAvoidingMouseIconType = -1; |
1625 | - |
1626 | - GdkAtom target = gtk_drag_dest_find_target (pWidget, dc, NULL); |
1627 | - if (target == GDK_NONE) |
1628 | - gdk_drag_status (dc, 0, time); |
1629 | - else |
1630 | - { |
1631 | - gtk_drag_get_data (pWidget, dc, target, time); |
1632 | - s_bWaitForData = TRUE; |
1633 | - cd_debug ("get-data envoye\n"); |
1634 | - }*/ |
1635 | - |
1636 | - cairo_dock_on_enter_notify (pWidget, NULL, pDock); // ne sera effectif que la 1ere fois a chaque entree dans un dock. |
1637 | - } |
1638 | - else |
1639 | - { |
1640 | - //g_print ("move dragging\n"); |
1641 | - cairo_dock_on_motion_notify (pWidget, NULL, pDock); |
1642 | - } |
1643 | - |
1644 | - int X, Y; |
1645 | - if (pDock->container.bIsHorizontal) |
1646 | - { |
1647 | - X = x - pDock->container.iWidth/2; |
1648 | - Y = y; |
1649 | - } |
1650 | - else |
1651 | - { |
1652 | - Y = x; |
1653 | - X = y - pDock->container.iWidth/2; |
1654 | - } |
1655 | - int w, h; |
1656 | - Icon *icon = cairo_dock_get_pointed_icon (pDock->icons); |
1657 | - if (pDock->iInputState == CAIRO_DOCK_INPUT_AT_REST) |
1658 | - { |
1659 | - w = pDock->iMinDockWidth; |
1660 | - h = pDock->iMinDockHeight; |
1661 | - |
1662 | - if (X <= -w/2 || X >= w/2) |
1663 | - return FALSE; // on n'accepte pas le drop. |
1664 | - if (pDock->container.bDirectionUp) |
1665 | - { |
1666 | - if (Y < pDock->container.iHeight - h || Y >= pDock->container.iHeight) |
1667 | - return FALSE; // on n'accepte pas le drop. |
1668 | - } |
1669 | - else |
1670 | - { |
1671 | - if (Y < 0 || Y > h) |
1672 | - return FALSE; // on n'accepte pas le drop. |
1673 | - } |
1674 | - } |
1675 | - else if (pDock->iInputState == CAIRO_DOCK_INPUT_HIDDEN) |
1676 | - { |
1677 | - return FALSE; // on n'accepte pas le drop. |
1678 | - } |
1679 | - |
1680 | - //g_print ("take the drop\n"); |
1681 | - gdk_drag_status (dc, GDK_ACTION_COPY, time); |
1682 | - return TRUE; // on accepte le drop. |
1683 | -} |
1684 | - |
1685 | -void cairo_dock_on_drag_leave (GtkWidget *pWidget, GdkDragContext *dc, guint time, CairoDock *pDock) |
1686 | -{ |
1687 | - //g_print ("stop dragging 1\n"); |
1688 | - Icon *icon = cairo_dock_get_pointed_icon (pDock->icons); |
1689 | - if ((icon && icon->pSubDock) || pDock->iRefCount > 0) // on retarde l'evenement, car il arrive avant le leave-event, et donc le sous-dock se cache avant qu'on puisse y entrer. |
1690 | - { |
1691 | - cd_debug (">>> on attend..."); |
1692 | - while (gtk_events_pending ()) // on laisse le temps au signal d'entree dans le sous-dock d'etre traite, de facon a avoir un start-dragging avant de quitter cette fonction. |
1693 | - gtk_main_iteration (); |
1694 | - cd_debug (">>> pDock->container.bInside : %d", pDock->container.bInside); |
1695 | - } |
1696 | - //g_print ("stop dragging 2\n"); |
1697 | - s_bWaitForData = FALSE; |
1698 | - pDock->bIsDragging = FALSE; |
1699 | - s_bCouldDrop = pDock->bCanDrop; |
1700 | - pDock->bCanDrop = FALSE; |
1701 | - //cairo_dock_stop_marking_icons (pDock); |
1702 | - pDock->iAvoidingMouseIconType = -1; |
1703 | - |
1704 | - // emit a leave-event signal, since we don't get one if we leave the window too quickly (!) |
1705 | - if (pDock->iSidLeaveDemand == 0) |
1706 | - { |
1707 | - pDock->iSidLeaveDemand = g_timeout_add (MAX (myDocksParam.iLeaveSubDockDelay, 330), (GSourceFunc) _emit_leave_signal_delayed, (gpointer) pDock); // emit with a delay, so that we can leave and enter the dock for a few ms without making it hide. |
1708 | - } |
1709 | - // emulate a motion event so that the mouse position is up-to-date (which is not the case if we leave the window too quickly). |
1710 | - cairo_dock_on_motion_notify (pWidget, NULL, pDock); |
1711 | -} |
1712 | - |
1713 | - |
1714 | -static void _cairo_dock_show_dock_at_mouse (CairoDock *pDock) |
1715 | -{ |
1716 | - g_return_if_fail (pDock != NULL); |
1717 | - gldi_container_update_mouse_position (CAIRO_CONTAINER (pDock)); |
1718 | - |
1719 | - ///pDock->iGapX = pDock->container.iWindowPositionX + iMouseX - g_desktopGeometry.iScreenWidth[pDock->container.bIsHorizontal] * pDock->fAlign; |
1720 | - ///pDock->iGapY = (pDock->container.bDirectionUp ? g_desktopGeometry.iScreenHeight[pDock->container.bIsHorizontal] - (pDock->container.iWindowPositionY + iMouseY) : pDock->container.iWindowPositionY + iMouseY); |
1721 | - pDock->iGapX = pDock->container.iWindowPositionX + pDock->container.iMouseX - (g_desktopGeometry.iScreenWidth[pDock->container.bIsHorizontal] - pDock->container.iWidth) * pDock->fAlign - pDock->container.iWidth/2 - pDock->iScreenOffsetX; |
1722 | - pDock->iGapY = (pDock->container.bDirectionUp ? g_desktopGeometry.iScreenHeight[pDock->container.bIsHorizontal] - (pDock->container.iWindowPositionY + pDock->container.iMouseY) : pDock->container.iWindowPositionY + pDock->container.iMouseY) - pDock->iScreenOffsetY; |
1723 | - cd_debug (" => %d;%d", g_pMainDock->iGapX, g_pMainDock->iGapY); |
1724 | - |
1725 | - int iNewPositionX, iNewPositionY; |
1726 | - cairo_dock_get_window_position_at_balance (pDock, |
1727 | - pDock->container.iWidth, pDock->container.iHeight, |
1728 | - &iNewPositionX, &iNewPositionY); |
1729 | - cd_debug (" ==> %d;%d", iNewPositionX, iNewPositionY); |
1730 | - if (iNewPositionX < 0) |
1731 | - iNewPositionX = 0; |
1732 | - else if (iNewPositionX + pDock->container.iWidth > g_desktopGeometry.iScreenWidth[pDock->container.bIsHorizontal]) |
1733 | - iNewPositionX = g_desktopGeometry.iScreenWidth[pDock->container.bIsHorizontal] - pDock->container.iWidth; |
1734 | - |
1735 | - if (iNewPositionY < 0) |
1736 | - iNewPositionY = 0; |
1737 | - else if (iNewPositionY + pDock->container.iHeight > g_desktopGeometry.iScreenHeight[pDock->container.bIsHorizontal]) |
1738 | - iNewPositionY = g_desktopGeometry.iScreenHeight[pDock->container.bIsHorizontal] - pDock->container.iHeight; |
1739 | - |
1740 | - gtk_window_move (GTK_WINDOW (pDock->container.pWidget), |
1741 | - (pDock->container.bIsHorizontal ? iNewPositionX : iNewPositionY), |
1742 | - (pDock->container.bIsHorizontal ? iNewPositionY : iNewPositionX)); |
1743 | - gtk_widget_show (pDock->container.pWidget); |
1744 | -} |
1745 | -void cairo_dock_raise_from_shortcut (const char *cKeyShortcut, gpointer data) |
1746 | -{ |
1747 | - if (gldi_container_is_visible (CAIRO_CONTAINER (g_pMainDock))) |
1748 | - { |
1749 | - gtk_widget_hide (g_pMainDock->container.pWidget); |
1750 | - } |
1751 | - else |
1752 | - { |
1753 | - _cairo_dock_show_dock_at_mouse (g_pMainDock); |
1754 | - } |
1755 | - if (g_pMainDock->iVisibility != CAIRO_DOCK_VISI_SHORTKEY) // could happen if we set the shortkey outside of the Visibility module. |
1756 | - g_pMainDock->iVisibility == CAIRO_DOCK_VISI_SHORTKEY; |
1757 | - s_bHideAfterShortcut = FALSE; |
1758 | -} |
1759 | - |
1760 | -void cairo_dock_hide_after_shortcut (void) |
1761 | -{ |
1762 | - if (s_bHideAfterShortcut && gldi_container_is_visible (CAIRO_CONTAINER (g_pMainDock))) |
1763 | - { |
1764 | - gtk_widget_hide (g_pMainDock->container.pWidget); |
1765 | - s_bHideAfterShortcut = FALSE; |
1766 | - } |
1767 | -} |
1768 | |
1769 | === removed file '.pc/01-bzr_dock-s_menu.patch/src/gldit/cairo-dock-dock-factory.c' |
1770 | --- .pc/01-bzr_dock-s_menu.patch/src/gldit/cairo-dock-dock-factory.c 2012-04-25 01:29:46 +0000 |
1771 | +++ .pc/01-bzr_dock-s_menu.patch/src/gldit/cairo-dock-dock-factory.c 1970-01-01 00:00:00 +0000 |
1772 | @@ -1,1255 +0,0 @@ |
1773 | -/** |
1774 | -* This file is a part of the Cairo-Dock project |
1775 | -* |
1776 | -* Copyright : (C) see the 'copyright' file. |
1777 | -* E-mail : see the 'copyright' file. |
1778 | -* |
1779 | -* This program is free software; you can redistribute it and/or |
1780 | -* modify it under the terms of the GNU General Public License |
1781 | -* as published by the Free Software Foundation; either version 3 |
1782 | -* of the License, or (at your option) any later version. |
1783 | -* |
1784 | -* This program is distributed in the hope that it will be useful, |
1785 | -* but WITHOUT ANY WARRANTY; without even the implied warranty of |
1786 | -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1787 | -* GNU General Public License for more details. |
1788 | -* You should have received a copy of the GNU General Public License |
1789 | -* along with this program. If not, see <http://www.gnu.org/licenses/>. |
1790 | -*/ |
1791 | - |
1792 | -#include <math.h> |
1793 | -#include <string.h> |
1794 | -#include <stdio.h> |
1795 | -#include <stdlib.h> |
1796 | - |
1797 | -#include <glib/gstdio.h> |
1798 | -#include <gtk/gtk.h> |
1799 | -#include <gdk/gdkx.h> |
1800 | - |
1801 | -#include <cairo.h> |
1802 | - |
1803 | -#include <X11/extensions/Xrender.h> |
1804 | -#include <X11/extensions/shape.h> |
1805 | -#include <GL/gl.h> |
1806 | -#include <GL/glu.h> |
1807 | -#include <GL/glx.h> |
1808 | - |
1809 | -#include "cairo-dock-draw.h" |
1810 | -#include "cairo-dock-applications-manager.h" |
1811 | -#include "cairo-dock-image-buffer.h" |
1812 | -#include "cairo-dock-module-factory.h" |
1813 | -#include "cairo-dock-callbacks.h" |
1814 | -#include "cairo-dock-icon-factory.h" |
1815 | -#include "cairo-dock-icon-facility.h" |
1816 | -#include "cairo-dock-separator-manager.h" |
1817 | -#include "cairo-dock-launcher-manager.h" |
1818 | -#include "cairo-dock-backends-manager.h" // myBackendsParam.fSubDockSizeRatio |
1819 | -#include "cairo-dock-X-utilities.h" |
1820 | -#include "cairo-dock-log.h" |
1821 | -#include "cairo-dock-application-facility.h" // cairo_dock_detach_appli |
1822 | -#include "cairo-dock-dialog-manager.h" // cairo_dock_replace_all_dialogs |
1823 | -#include "cairo-dock-keyfile-utilities.h" |
1824 | -#include "cairo-dock-dock-manager.h" |
1825 | -#include "cairo-dock-notifications.h" |
1826 | -#include "cairo-dock-class-manager.h" |
1827 | -#include "cairo-dock-animations.h" |
1828 | -#include "cairo-dock-container.h" |
1829 | -#include "cairo-dock-desktop-file-factory.h" |
1830 | -#include "cairo-dock-themes-manager.h" |
1831 | -#include "cairo-dock-gui-manager.h" |
1832 | -#include "cairo-dock-dock-facility.h" |
1833 | -#include "cairo-dock-desktop-file-factory.h" |
1834 | -#include "cairo-dock-draw-opengl.h" |
1835 | -#include "cairo-dock-opengl.h" |
1836 | -#include "cairo-dock-dock-factory.h" |
1837 | - |
1838 | -extern gchar *g_cCurrentLaunchersPath; |
1839 | - |
1840 | -extern CairoDockGLConfig g_openglConfig; |
1841 | -extern CairoDockHidingEffect *g_pHidingBackend; |
1842 | -extern gboolean g_bUseOpenGL; |
1843 | - |
1844 | - |
1845 | -static gboolean _cairo_dock_grow_up (CairoDock *pDock) |
1846 | -{ |
1847 | - //g_print ("%s (%d ; %2f ; bInside:%d)\n", __func__, pDock->iMagnitudeIndex, pDock->fFoldingFactor, pDock->container.bInside); |
1848 | - |
1849 | - pDock->iMagnitudeIndex += myBackendsParam.iGrowUpInterval; |
1850 | - if (pDock->iMagnitudeIndex > CAIRO_DOCK_NB_MAX_ITERATIONS) |
1851 | - pDock->iMagnitudeIndex = CAIRO_DOCK_NB_MAX_ITERATIONS; |
1852 | - |
1853 | - if (pDock->fFoldingFactor != 0) |
1854 | - { |
1855 | - int iAnimationDeltaT = cairo_dock_get_animation_delta_t (pDock); |
1856 | - pDock->fFoldingFactor -= (double) iAnimationDeltaT / myBackendsParam.iUnfoldingDuration; |
1857 | - if (pDock->fFoldingFactor < 0) |
1858 | - pDock->fFoldingFactor = 0; |
1859 | - } |
1860 | - |
1861 | - gldi_container_update_mouse_position (CAIRO_CONTAINER (pDock)); |
1862 | - |
1863 | - Icon *pLastPointedIcon = cairo_dock_get_pointed_icon (pDock->icons); |
1864 | - Icon *pPointedIcon = cairo_dock_calculate_dock_icons (pDock); |
1865 | - if (! pDock->bIsGrowingUp) |
1866 | - return FALSE; |
1867 | - |
1868 | - if (pLastPointedIcon != pPointedIcon && pDock->container.bInside) |
1869 | - cairo_dock_on_change_icon (pLastPointedIcon, pPointedIcon, pDock); |
1870 | - |
1871 | - if (pDock->iMagnitudeIndex == CAIRO_DOCK_NB_MAX_ITERATIONS && pDock->fFoldingFactor == 0) // fin de grossissement et de depliage. |
1872 | - { |
1873 | - /// TODO: check doing this in update_dock_size directly... |
1874 | - /**if (pDock->bWMIconsNeedUpdate) |
1875 | - { |
1876 | - cairo_dock_trigger_set_WM_icons_geometry (pDock); |
1877 | - pDock->bWMIconsNeedUpdate = FALSE; |
1878 | - }*/ |
1879 | - |
1880 | - cairo_dock_replace_all_dialogs (); |
1881 | - return FALSE; |
1882 | - } |
1883 | - else |
1884 | - return TRUE; |
1885 | -} |
1886 | - |
1887 | -static gboolean _cairo_dock_shrink_down (CairoDock *pDock) |
1888 | -{ |
1889 | - //g_print ("%s (%d, %f, %f)\n", __func__, pDock->iMagnitudeIndex, pDock->fFoldingFactor, pDock->fDecorationsOffsetX); |
1890 | - //\_________________ On fait decroitre la magnitude du dock. |
1891 | - int iPrevMagnitudeIndex = pDock->iMagnitudeIndex; |
1892 | - pDock->iMagnitudeIndex -= myBackendsParam.iShrinkDownInterval; |
1893 | - if (pDock->iMagnitudeIndex < 0) |
1894 | - pDock->iMagnitudeIndex = 0; |
1895 | - |
1896 | - //\_________________ On replie le dock. |
1897 | - if (pDock->fFoldingFactor != 0 && pDock->fFoldingFactor != 1) |
1898 | - { |
1899 | - int iAnimationDeltaT = cairo_dock_get_animation_delta_t (pDock); |
1900 | - pDock->fFoldingFactor += (double) iAnimationDeltaT / myBackendsParam.iUnfoldingDuration; |
1901 | - if (pDock->fFoldingFactor > 1) |
1902 | - pDock->fFoldingFactor = 1; |
1903 | - } |
1904 | - |
1905 | - //\_________________ On remet les decorations a l'equilibre. |
1906 | - pDock->fDecorationsOffsetX *= .8; |
1907 | - if (fabs (pDock->fDecorationsOffsetX) < 3) |
1908 | - pDock->fDecorationsOffsetX = 0.; |
1909 | - |
1910 | - //\_________________ On recupere la position de la souris manuellement (car a priori on est hors du dock). |
1911 | - gldi_container_update_mouse_position (CAIRO_CONTAINER (pDock)); // ce n'est pas le motion_notify qui va nous donner des coordonnees en dehors du dock, et donc le fait d'etre dedans va nous faire interrompre le shrink_down et re-grossir, du coup il faut le faire ici. L'inconvenient, c'est que quand on sort par les cotes, il n'y a soudain plus d'icone pointee, et donc le dock devient tout plat subitement au lieu de le faire doucement. Heureusement j'ai trouve une astuce. ^_^ |
1912 | - |
1913 | - //\_________________ On recalcule les icones. |
1914 | - ///if (iPrevMagnitudeIndex != 0) |
1915 | - { |
1916 | - cairo_dock_calculate_dock_icons (pDock); |
1917 | - if (! pDock->bIsShrinkingDown) |
1918 | - return FALSE; |
1919 | - |
1920 | - ///cairo_dock_replace_all_dialogs (); |
1921 | - } |
1922 | - |
1923 | - if (pDock->iMagnitudeIndex == 0 && (pDock->fFoldingFactor == 0 || pDock->fFoldingFactor == 1)) // on est arrive en bas. |
1924 | - { |
1925 | - //g_print ("equilibre atteint (%d)\n", pDock->container.bInside); |
1926 | - if (! pDock->container.bInside) // on peut etre hors des icones sans etre hors de la fenetre. |
1927 | - { |
1928 | - //g_print ("rideau !\n"); |
1929 | - |
1930 | - //\__________________ On repasse derriere si on etait devant. |
1931 | - if (pDock->iVisibility == CAIRO_DOCK_VISI_KEEP_BELOW && ! pDock->bIsBelow) |
1932 | - cairo_dock_pop_down (pDock); |
1933 | - |
1934 | - //\__________________ On se redimensionne en taille normale. |
1935 | - if (! pDock->bAutoHide && pDock->iRefCount == 0 && ! pDock->bMenuVisible) // fin de shrink sans auto-hide => taille normale. |
1936 | - { |
1937 | - //g_print ("taille normale (%x; %d)\n", pDock->pShapeBitmap , pDock->iInputState); |
1938 | - if (pDock->pShapeBitmap && pDock->iInputState != CAIRO_DOCK_INPUT_AT_REST) |
1939 | - { |
1940 | - //g_print ("+++ input shape at rest on end shrinking\n"); |
1941 | - cairo_dock_set_input_shape_at_rest (pDock); |
1942 | - pDock->iInputState = CAIRO_DOCK_INPUT_AT_REST; |
1943 | - ///cairo_dock_replace_all_dialogs (); |
1944 | - } |
1945 | - } |
1946 | - |
1947 | - //\__________________ On se cache si sous-dock. |
1948 | - if (pDock->iRefCount > 0) |
1949 | - { |
1950 | - //g_print ("on cache ce sous-dock en sortant par lui\n"); |
1951 | - gtk_widget_hide (pDock->container.pWidget); |
1952 | - cairo_dock_hide_parent_dock (pDock); |
1953 | - } |
1954 | - cairo_dock_hide_after_shortcut (); |
1955 | - } |
1956 | - else |
1957 | - { |
1958 | - cairo_dock_calculate_dock_icons (pDock); // relance le grossissement si on est dedans. |
1959 | - } |
1960 | - if (!pDock->bIsGrowingUp) |
1961 | - cairo_dock_replace_all_dialogs (); |
1962 | - return (!pDock->bIsGrowingUp && (pDock->fDecorationsOffsetX != 0 || (pDock->fFoldingFactor != 0 && pDock->fFoldingFactor != 1))); |
1963 | - } |
1964 | - else |
1965 | - { |
1966 | - return (!pDock->bIsGrowingUp); |
1967 | - } |
1968 | -} |
1969 | - |
1970 | -static gboolean _cairo_dock_hide (CairoDock *pDock) |
1971 | -{ |
1972 | - //g_print ("%s (%d, %.2f, %.2f)\n", __func__, pDock->iMagnitudeIndex, pDock->fHideOffset, pDock->fPostHideOffset); |
1973 | - |
1974 | - if (pDock->fHideOffset < 1) // the hiding animation is running. |
1975 | - { |
1976 | - pDock->fHideOffset += 1./myBackendsParam.iHideNbSteps; |
1977 | - if (pDock->fHideOffset > .99) // fin d'anim. |
1978 | - { |
1979 | - pDock->fHideOffset = 1; |
1980 | - |
1981 | - //g_print ("on arrete le cachage\n"); |
1982 | - gboolean bVisibleIconsPresent = FALSE; |
1983 | - Icon *pIcon; |
1984 | - GList *ic; |
1985 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
1986 | - { |
1987 | - pIcon = ic->data; |
1988 | - if (pIcon->fInsertRemoveFactor != 0) // on accelere l'animation d'apparition/disparition. |
1989 | - { |
1990 | - if (pIcon->fInsertRemoveFactor > 0) |
1991 | - pIcon->fInsertRemoveFactor = 0.05; |
1992 | - else |
1993 | - pIcon->fInsertRemoveFactor = - 0.05; |
1994 | - } |
1995 | - |
1996 | - if (! pIcon->bIsDemandingAttention && ! pIcon->bAlwaysVisible) |
1997 | - cairo_dock_stop_icon_animation (pIcon); // s'il y'a une autre animation en cours, on l'arrete. |
1998 | - else |
1999 | - bVisibleIconsPresent = TRUE; |
2000 | - } |
2001 | - |
2002 | - pDock->pRenderer->calculate_icons (pDock); |
2003 | - ///pDock->fFoldingFactor = (myBackendsParam.bAnimateOnAutoHide ? .99 : 0.); // on arme le depliage. |
2004 | - cairo_dock_allow_entrance (pDock); |
2005 | - |
2006 | - cairo_dock_replace_all_dialogs (); |
2007 | - |
2008 | - if (bVisibleIconsPresent) // il y'a des icones a montrer progressivement, on reste dans la boucle. |
2009 | - { |
2010 | - pDock->fPostHideOffset = 0.05; |
2011 | - return TRUE; |
2012 | - } |
2013 | - else |
2014 | - { |
2015 | - pDock->fPostHideOffset = 1; // pour que les icones demandant l'attention plus tard soient visibles. |
2016 | - return FALSE; |
2017 | - } |
2018 | - } |
2019 | - } |
2020 | - else if (pDock->fPostHideOffset > 0 && pDock->fPostHideOffset < 1) // the post-hiding animation is running. |
2021 | - { |
2022 | - pDock->fPostHideOffset += 1./myBackendsParam.iHideNbSteps; |
2023 | - if (pDock->fPostHideOffset > .99) |
2024 | - { |
2025 | - pDock->fPostHideOffset = 1.; |
2026 | - return FALSE; |
2027 | - } |
2028 | - } |
2029 | - else // else no hiding animation is running. |
2030 | - return FALSE; |
2031 | - return TRUE; |
2032 | -} |
2033 | - |
2034 | -static gboolean _cairo_dock_show (CairoDock *pDock) |
2035 | -{ |
2036 | - pDock->fHideOffset -= 1./myBackendsParam.iUnhideNbSteps; |
2037 | - if (pDock->fHideOffset < 0.01) |
2038 | - { |
2039 | - pDock->fHideOffset = 0; |
2040 | - cairo_dock_allow_entrance (pDock); |
2041 | - cairo_dock_replace_all_dialogs (); // we need it here so that a modal dialog is replaced when the dock unhides (else it would stay behind). |
2042 | - return FALSE; |
2043 | - } |
2044 | - return TRUE; |
2045 | -} |
2046 | - |
2047 | -static gboolean _cairo_dock_handle_inserting_removing_icons (CairoDock *pDock) |
2048 | -{ |
2049 | - gboolean bRecalculateIcons = FALSE; |
2050 | - GList* ic = pDock->icons, *next_ic; |
2051 | - Icon *pIcon; |
2052 | - while (ic != NULL) |
2053 | - { |
2054 | - pIcon = ic->data; |
2055 | - next_ic = ic->next; |
2056 | - if (pIcon->fInsertRemoveFactor == (gdouble)0.05) |
2057 | - { |
2058 | - gboolean bIsAppli = CAIRO_DOCK_IS_NORMAL_APPLI (pIcon); |
2059 | - if (bIsAppli && pIcon->iLastCheckTime != -1) // c'est une icone d'appli non vieille qui disparait, elle s'est probablement cachee => on la detache juste. |
2060 | - { |
2061 | - cd_message ("cette (%s) appli est toujours valide, on la detache juste", pIcon->cName); |
2062 | - pIcon->fInsertRemoveFactor = 0.; // on le fait avant le reload, sinon l'icone n'est pas rechargee. |
2063 | - if (!pIcon->bIsHidden && myTaskbarParam.bHideVisibleApplis) // on lui remet l'image normale qui servira d'embleme lorsque l'icone sera inseree a nouveau dans le dock. |
2064 | - cairo_dock_reload_icon_image (pIcon, CAIRO_CONTAINER (pDock)); |
2065 | - pDock = cairo_dock_detach_appli (pIcon); |
2066 | - if (pDock == NULL) // the dock has been destroyed (empty class sub-dock). |
2067 | - { |
2068 | - cairo_dock_free_icon (pIcon); |
2069 | - return FALSE; |
2070 | - } |
2071 | - } |
2072 | - else |
2073 | - { |
2074 | - cd_message (" - %s va etre supprimee", pIcon->cName); |
2075 | - cairo_dock_remove_icon_from_dock (pDock, pIcon); // enleve le separateur automatique avec; supprime le .desktop et le sous-dock des lanceurs; stoppe les applets; marque le theme. |
2076 | - |
2077 | - if (pIcon->cClass != NULL && pDock == cairo_dock_get_class_subdock (pIcon->cClass)) // appli icon in its class sub-dock => destroy the class sub-dock if it becomes empty (we don't want an empty sub-dock). |
2078 | - { |
2079 | - gboolean bEmptyClassSubDock = cairo_dock_check_class_subdock_is_empty (pDock, pIcon->cClass); |
2080 | - if (bEmptyClassSubDock) |
2081 | - { |
2082 | - cairo_dock_free_icon (pIcon); |
2083 | - return FALSE; |
2084 | - } |
2085 | - } |
2086 | - |
2087 | - cairo_dock_free_icon (pIcon); |
2088 | - } |
2089 | - } |
2090 | - else if (pIcon->fInsertRemoveFactor == (gdouble)-0.05) |
2091 | - { |
2092 | - pIcon->fInsertRemoveFactor = 0; // cela n'arrete pas l'animation, qui peut se poursuivre meme apres que l'icone ait atteint sa taille maximale. |
2093 | - bRecalculateIcons = TRUE; |
2094 | - } |
2095 | - else if (pIcon->fInsertRemoveFactor != 0) |
2096 | - { |
2097 | - bRecalculateIcons = TRUE; |
2098 | - } |
2099 | - ic = next_ic; |
2100 | - } |
2101 | - |
2102 | - if (bRecalculateIcons) |
2103 | - cairo_dock_calculate_dock_icons (pDock); |
2104 | - return TRUE; |
2105 | -} |
2106 | - |
2107 | -static gboolean _cairo_dock_dock_animation_loop (CairoContainer *pContainer) |
2108 | -{ |
2109 | - CairoDock *pDock = CAIRO_DOCK (pContainer); |
2110 | - gboolean bContinue = FALSE; |
2111 | - gboolean bUpdateSlowAnimation = FALSE; |
2112 | - pContainer->iAnimationStep ++; |
2113 | - if (pContainer->iAnimationStep * pContainer->iAnimationDeltaT >= CAIRO_DOCK_MIN_SLOW_DELTA_T) |
2114 | - { |
2115 | - bUpdateSlowAnimation = TRUE; |
2116 | - pContainer->iAnimationStep = 0; |
2117 | - pContainer->bKeepSlowAnimation = FALSE; |
2118 | - } |
2119 | - |
2120 | - if (pDock->bIsShrinkingDown) |
2121 | - { |
2122 | - pDock->bIsShrinkingDown = _cairo_dock_shrink_down (pDock); |
2123 | - cairo_dock_redraw_container (CAIRO_CONTAINER (pDock)); |
2124 | - bContinue |= pDock->bIsShrinkingDown; |
2125 | - } |
2126 | - if (pDock->bIsGrowingUp) |
2127 | - { |
2128 | - pDock->bIsGrowingUp = _cairo_dock_grow_up (pDock); |
2129 | - cairo_dock_redraw_container (CAIRO_CONTAINER (pDock)); |
2130 | - bContinue |= pDock->bIsGrowingUp; |
2131 | - } |
2132 | - if (pDock->bIsHiding) |
2133 | - { |
2134 | - //g_print ("le dock se cache\n"); |
2135 | - pDock->bIsHiding = _cairo_dock_hide (pDock); |
2136 | - gtk_widget_queue_draw (pContainer->pWidget); // on n'utilise pas cairo_dock_redraw_container, sinon a la derniere iteration, le dock etant cache, la fonction ne le redessine pas. |
2137 | - bContinue |= pDock->bIsHiding; |
2138 | - } |
2139 | - if (pDock->bIsShowing) |
2140 | - { |
2141 | - pDock->bIsShowing = _cairo_dock_show (pDock); |
2142 | - cairo_dock_redraw_container (CAIRO_CONTAINER (pDock)); |
2143 | - bContinue |= pDock->bIsShowing; |
2144 | - } |
2145 | - //g_print (" => %d, %d\n", pDock->bIsShrinkingDown, pDock->bIsGrowingUp); |
2146 | - |
2147 | - double fDockMagnitude = cairo_dock_calculate_magnitude (pDock->iMagnitudeIndex); |
2148 | - gboolean bIconIsAnimating; |
2149 | - gboolean bNoMoreDemandingAttention = FALSE; |
2150 | - Icon *icon; |
2151 | - GList *ic; |
2152 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
2153 | - { |
2154 | - icon = ic->data; |
2155 | - |
2156 | - icon->fDeltaYReflection = 0; |
2157 | - if (myIconsParam.fAlphaAtRest != 1) |
2158 | - icon->fAlpha = fDockMagnitude + myIconsParam.fAlphaAtRest * (1 - fDockMagnitude); |
2159 | - |
2160 | - bIconIsAnimating = FALSE; |
2161 | - if (bUpdateSlowAnimation) |
2162 | - { |
2163 | - cairo_dock_notify_on_object (icon, NOTIFICATION_UPDATE_ICON_SLOW, icon, pDock, &bIconIsAnimating); |
2164 | - pContainer->bKeepSlowAnimation |= bIconIsAnimating; |
2165 | - } |
2166 | - cairo_dock_notify_on_object (icon, NOTIFICATION_UPDATE_ICON, icon, pDock, &bIconIsAnimating); |
2167 | - |
2168 | - if ((icon->bIsDemandingAttention || icon->bAlwaysVisible) && cairo_dock_is_hidden (pDock)) // animation d'une icone demandant l'attention dans un dock cache => on force le dessin qui normalement ne se fait pas. |
2169 | - { |
2170 | - gtk_widget_queue_draw (pContainer->pWidget); |
2171 | - } |
2172 | - |
2173 | - bContinue |= bIconIsAnimating; |
2174 | - if (! bIconIsAnimating) |
2175 | - { |
2176 | - icon->iAnimationState = CAIRO_DOCK_STATE_REST; |
2177 | - if (icon->bIsDemandingAttention) |
2178 | - { |
2179 | - icon->bIsDemandingAttention = FALSE; |
2180 | - bNoMoreDemandingAttention = TRUE; |
2181 | - } |
2182 | - } |
2183 | - } |
2184 | - bContinue |= pContainer->bKeepSlowAnimation; |
2185 | - |
2186 | - if (pDock->iVisibility == CAIRO_DOCK_VISI_KEEP_BELOW && bNoMoreDemandingAttention && ! pDock->bIsBelow && ! pContainer->bInside) |
2187 | - { |
2188 | - //g_print ("plus de raison d'etre devant\n"); |
2189 | - cairo_dock_pop_down (pDock); |
2190 | - } |
2191 | - |
2192 | - if (! _cairo_dock_handle_inserting_removing_icons (pDock)) |
2193 | - { |
2194 | - cd_debug ("ce dock n'a plus de raison d'etre"); |
2195 | - return FALSE; |
2196 | - } |
2197 | - |
2198 | - if (bUpdateSlowAnimation) |
2199 | - { |
2200 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_UPDATE_SLOW, pDock, &pContainer->bKeepSlowAnimation); |
2201 | - } |
2202 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_UPDATE, pDock, &bContinue); |
2203 | - |
2204 | - if (! bContinue && ! pContainer->bKeepSlowAnimation) |
2205 | - { |
2206 | - pContainer->iSidGLAnimation = 0; |
2207 | - return FALSE; |
2208 | - } |
2209 | - else |
2210 | - return TRUE; |
2211 | -} |
2212 | - |
2213 | -static gboolean _on_dock_destroyed (GtkWidget *menu, CairoContainer *pContainer); |
2214 | -static void _on_menu_deactivated (GtkMenuShell *menu, CairoDock *pDock) |
2215 | -{ |
2216 | - //g_print ("\n+++ %s ()\n\n", __func__); |
2217 | - g_return_if_fail (CAIRO_DOCK_IS_DOCK (pDock)); |
2218 | - pDock->bMenuVisible = FALSE; |
2219 | - cairo_dock_emit_leave_signal (CAIRO_CONTAINER (pDock)); |
2220 | -} |
2221 | -static void _on_menu_destroyed (GtkWidget *menu, CairoDock *pDock) |
2222 | -{ |
2223 | - //g_print ("\n+++ %s ()\n\n", __func__); |
2224 | - cairo_dock_remove_notification_func_on_object (pDock, |
2225 | - NOTIFICATION_DESTROY, |
2226 | - (CairoDockNotificationFunc) _on_dock_destroyed, |
2227 | - menu); |
2228 | -} |
2229 | -static gboolean _on_dock_destroyed (GtkWidget *menu, CairoContainer *pContainer) |
2230 | -{ |
2231 | - //g_print ("\n+++ %s ()\n\n", __func__); |
2232 | - g_signal_handlers_disconnect_matched |
2233 | - (menu, |
2234 | - G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, |
2235 | - 0, |
2236 | - 0, |
2237 | - NULL, |
2238 | - _on_menu_deactivated, |
2239 | - pContainer); |
2240 | - g_signal_handlers_disconnect_matched |
2241 | - (menu, |
2242 | - G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, |
2243 | - 0, |
2244 | - 0, |
2245 | - NULL, |
2246 | - _on_menu_destroyed, |
2247 | - pContainer); |
2248 | -} |
2249 | -static void _setup_menu (CairoContainer *pContainer, Icon *pIcon, GtkWidget *pMenu) |
2250 | -{ |
2251 | - // keep the dock visible |
2252 | - CAIRO_DOCK (pContainer)->bMenuVisible = TRUE; |
2253 | - |
2254 | - // connect signals |
2255 | - if (g_signal_handler_find (pMenu, |
2256 | - G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, |
2257 | - 0, |
2258 | - 0, |
2259 | - NULL, |
2260 | - _on_menu_deactivated, |
2261 | - pContainer) == 0) // on evite de connecter 2 fois ce signal, donc la fonction est appelable plusieurs fois sur un meme menu. |
2262 | - { |
2263 | - // when the menu is deactivated, hide the dock back if necessary. |
2264 | - g_signal_connect (G_OBJECT (pMenu), |
2265 | - "deactivate", |
2266 | - G_CALLBACK (_on_menu_deactivated), |
2267 | - pContainer); |
2268 | - // when the menu is destroyed, remove the 'destroyed' notification on the dock. |
2269 | - g_signal_connect (G_OBJECT (pMenu), |
2270 | - "destroy", |
2271 | - G_CALLBACK (_on_menu_destroyed), |
2272 | - pContainer); |
2273 | - // when the dock is destroyed, remove the 2 signals on the menu. |
2274 | - cairo_dock_register_notification_on_object (pContainer, |
2275 | - NOTIFICATION_DESTROY, |
2276 | - (CairoDockNotificationFunc) _on_dock_destroyed, |
2277 | - CAIRO_DOCK_RUN_AFTER, pMenu); // the menu can stay alive even if the container disappear, so we need to ensure we won't call the callbacks then. |
2278 | - } |
2279 | -} |
2280 | - |
2281 | - |
2282 | -CairoDock *cairo_dock_new_dock (void) |
2283 | -{ |
2284 | - //\__________________ On cree un dock. |
2285 | - CairoDock *pDock = g_new0 (CairoDock, 1); |
2286 | - pDock->container.iType = CAIRO_DOCK_TYPE_DOCK; |
2287 | - |
2288 | - pDock->iRefCount = 0; // c'est un dock racine par defaut. |
2289 | - pDock->iAvoidingMouseIconType = -1; |
2290 | - pDock->fFlatDockWidth = - myIconsParam.iIconGap; |
2291 | - ///pDock->container.iMouseX = -1; // utile ? |
2292 | - ///pDock->container.iMouseY = -1; |
2293 | - pDock->fMagnitudeMax = 1.; |
2294 | - pDock->fPostHideOffset = 1.; |
2295 | - pDock->iInputState = CAIRO_DOCK_INPUT_AT_REST; // le dock est cree au repos. La zone d'input sera mis en place lors du configure. |
2296 | - |
2297 | - pDock->container.iface.animation_loop = _cairo_dock_dock_animation_loop; |
2298 | - pDock->container.iface.setup_menu = _setup_menu; |
2299 | - |
2300 | - //\__________________ On cree la fenetre GTK. |
2301 | - GtkWidget *pWindow = cairo_dock_init_container (CAIRO_CONTAINER (pDock)); |
2302 | - ///cairo_dock_install_notifications_on_object (pDock, NB_NOTIFICATIONS_DOCKS); |
2303 | - gldi_object_set_manager (GLDI_OBJECT (pDock), GLDI_MANAGER (&myDocksMgr)); |
2304 | - gtk_container_set_border_width (GTK_CONTAINER (pWindow), 0); |
2305 | - gtk_window_set_gravity (GTK_WINDOW (pWindow), GDK_GRAVITY_STATIC); |
2306 | - gtk_window_set_type_hint (GTK_WINDOW (pWindow), GDK_WINDOW_TYPE_HINT_DOCK); |
2307 | - gtk_window_set_title (GTK_WINDOW (pWindow), "cairo-dock"); |
2308 | - |
2309 | - |
2310 | - cairo_dock_register_notification_on_object (pDock, |
2311 | - NOTIFICATION_RENDER, |
2312 | - (CairoDockNotificationFunc) cairo_dock_render_dock_notification, |
2313 | - CAIRO_DOCK_RUN_FIRST, NULL); |
2314 | - |
2315 | - //\__________________ On connecte les evenements a la fenetre. |
2316 | - gtk_widget_add_events (pWindow, |
2317 | - GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK | |
2318 | - GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | |
2319 | - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK); |
2320 | - |
2321 | - g_signal_connect (G_OBJECT (pWindow), |
2322 | - #if (GTK_MAJOR_VERSION < 3) |
2323 | - "expose-event", |
2324 | - #else |
2325 | - "draw", |
2326 | - #endif |
2327 | - G_CALLBACK (cairo_dock_on_expose), |
2328 | - pDock); |
2329 | - g_signal_connect (G_OBJECT (pWindow), |
2330 | - "configure-event", |
2331 | - G_CALLBACK (cairo_dock_on_configure), |
2332 | - pDock); |
2333 | - g_signal_connect (G_OBJECT (pWindow), |
2334 | - "key-release-event", |
2335 | - G_CALLBACK (cairo_dock_on_key_release), |
2336 | - pDock); |
2337 | - g_signal_connect (G_OBJECT (pWindow), |
2338 | - "key-press-event", |
2339 | - G_CALLBACK (cairo_dock_on_key_release), |
2340 | - pDock); |
2341 | - g_signal_connect (G_OBJECT (pWindow), |
2342 | - "button-press-event", |
2343 | - G_CALLBACK (cairo_dock_on_button_press), |
2344 | - pDock); |
2345 | - g_signal_connect (G_OBJECT (pWindow), |
2346 | - "button-release-event", |
2347 | - G_CALLBACK (cairo_dock_on_button_press), |
2348 | - pDock); |
2349 | - g_signal_connect (G_OBJECT (pWindow), |
2350 | - "scroll-event", |
2351 | - G_CALLBACK (cairo_dock_on_scroll), |
2352 | - pDock); |
2353 | - g_signal_connect (G_OBJECT (pWindow), |
2354 | - "motion-notify-event", |
2355 | - G_CALLBACK (cairo_dock_on_motion_notify), |
2356 | - pDock); |
2357 | - g_signal_connect (G_OBJECT (pWindow), |
2358 | - "enter-notify-event", |
2359 | - G_CALLBACK (cairo_dock_on_enter_notify), |
2360 | - pDock); |
2361 | - g_signal_connect (G_OBJECT (pWindow), |
2362 | - "leave-notify-event", |
2363 | - G_CALLBACK (cairo_dock_on_leave_notify), |
2364 | - pDock); |
2365 | - gldi_container_enable_drop (CAIRO_CONTAINER (pDock), |
2366 | - G_CALLBACK (cairo_dock_on_drag_data_received), |
2367 | - pDock); |
2368 | - g_signal_connect (G_OBJECT (pWindow), |
2369 | - "drag-motion", |
2370 | - G_CALLBACK (cairo_dock_on_drag_motion), |
2371 | - pDock); |
2372 | - g_signal_connect (G_OBJECT (pWindow), |
2373 | - "drag-leave", |
2374 | - G_CALLBACK (cairo_dock_on_drag_leave), |
2375 | - pDock); |
2376 | - /*g_signal_connect (G_OBJECT (pWindow), |
2377 | - "drag-drop", |
2378 | - G_CALLBACK (cairo_dock_on_drag_drop), |
2379 | - pDock);*/ |
2380 | - |
2381 | - gtk_window_get_size (GTK_WINDOW (pWindow), &pDock->container.iWidth, &pDock->container.iHeight); // ca n'est que la taille initiale allouee par GTK. |
2382 | - gtk_widget_show_all (pWindow); |
2383 | - #if (GTK_MAJOR_VERSION < 3) |
2384 | - gdk_window_set_back_pixmap (pWindow->window, NULL, FALSE); |
2385 | - #else |
2386 | - gdk_window_set_background_pattern (gldi_container_get_gdk_window (CAIRO_CONTAINER (pDock)), NULL); |
2387 | - #endif |
2388 | - return pDock; |
2389 | -} |
2390 | - |
2391 | -void cairo_dock_free_dock (CairoDock *pDock) |
2392 | -{ |
2393 | - if (pDock->iSidUnhideDelayed != 0) |
2394 | - g_source_remove (pDock->iSidUnhideDelayed); |
2395 | - if (pDock->iSidHideBack != 0) |
2396 | - g_source_remove (pDock->iSidHideBack); |
2397 | - if (pDock->iSidMoveResize != 0) |
2398 | - g_source_remove (pDock->iSidMoveResize); |
2399 | - if (pDock->iSidLeaveDemand != 0) |
2400 | - g_source_remove (pDock->iSidLeaveDemand); |
2401 | - if (pDock->iSidUpdateWMIcons != 0) |
2402 | - g_source_remove (pDock->iSidUpdateWMIcons); |
2403 | - if (pDock->iSidLoadBg != 0) |
2404 | - g_source_remove (pDock->iSidLoadBg); |
2405 | - if (pDock->iSidDestroyEmptyDock != 0) |
2406 | - g_source_remove (pDock->iSidDestroyEmptyDock); |
2407 | - if (pDock->iSidTestMouseOutside != 0) |
2408 | - g_source_remove (pDock->iSidTestMouseOutside); |
2409 | - if (pDock->iSidUpdateDockSize != 0) |
2410 | - g_source_remove (pDock->iSidUpdateDockSize); |
2411 | - |
2412 | - GList *icons = pDock->icons; |
2413 | - pDock->icons = NULL; // remove the icons first, to avoid any use of 'icons' in the 'destroy' callbacks. |
2414 | - g_list_foreach (icons, (GFunc) cairo_dock_free_icon, NULL); |
2415 | - g_list_free (icons); |
2416 | - |
2417 | - if (pDock->pShapeBitmap != NULL) |
2418 | - gldi_shape_destroy (pDock->pShapeBitmap); |
2419 | - |
2420 | - if (pDock->pHiddenShapeBitmap != NULL) |
2421 | - gldi_shape_destroy (pDock->pHiddenShapeBitmap); |
2422 | - |
2423 | - if (pDock->pActiveShapeBitmap != NULL) |
2424 | - gldi_shape_destroy (pDock->pActiveShapeBitmap); |
2425 | - |
2426 | - if (pDock->pRenderer != NULL && pDock->pRenderer->free_data != NULL) |
2427 | - { |
2428 | - pDock->pRenderer->free_data (pDock); |
2429 | - } |
2430 | - |
2431 | - g_free (pDock->cRendererName); |
2432 | - |
2433 | - g_free (pDock->cBgImagePath); |
2434 | - cairo_dock_unload_image_buffer (&pDock->backgroundBuffer); |
2435 | - |
2436 | - if (pDock->iFboId != 0) |
2437 | - glDeleteFramebuffersEXT (1, &pDock->iFboId); |
2438 | - if (pDock->iRedirectedTexture != 0) |
2439 | - _cairo_dock_delete_texture (pDock->iRedirectedTexture); |
2440 | - |
2441 | - cairo_dock_finish_container (CAIRO_CONTAINER (pDock)); // -> NOTIFICATION_DESTROY |
2442 | - |
2443 | - g_free (pDock); |
2444 | -} |
2445 | - |
2446 | -void cairo_dock_make_sub_dock (CairoDock *pDock, CairoDock *pParentDock, const gchar *cRendererName) |
2447 | -{ |
2448 | - //\__________________ set sub-dock flag |
2449 | - pDock->iRefCount = 1; |
2450 | - gtk_window_set_title (GTK_WINDOW (pDock->container.pWidget), "cairo-dock-sub"); |
2451 | - |
2452 | - //\__________________ set the orientation relatively to the parent dock |
2453 | - pDock->container.bIsHorizontal = pParentDock->container.bIsHorizontal; |
2454 | - pDock->container.bDirectionUp = pParentDock->container.bDirectionUp; |
2455 | - pDock->iScreenOffsetX = pParentDock->iScreenOffsetX; |
2456 | - pDock->iScreenOffsetY = pParentDock->iScreenOffsetY; |
2457 | - |
2458 | - //\__________________ set a renderer |
2459 | - cairo_dock_set_renderer (pDock, cRendererName); |
2460 | - |
2461 | - //\__________________ update the icons size and the ratio. |
2462 | - double fPrevRatio = pDock->container.fRatio; |
2463 | - pDock->container.fRatio = MIN (pDock->container.fRatio, myBackendsParam.fSubDockSizeRatio); |
2464 | - pDock->iIconSize = pParentDock->iIconSize; |
2465 | - |
2466 | - Icon *icon; |
2467 | - GList *ic; |
2468 | - pDock->fFlatDockWidth = - myIconsParam.iIconGap; |
2469 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
2470 | - { |
2471 | - icon = ic->data; |
2472 | - icon->fWidth = icon->fHeight = icon->iImageWidth = icon->iImageHeight = 0; // no request |
2473 | - cairo_dock_set_icon_size_in_dock (pDock, icon); |
2474 | - pDock->fFlatDockWidth += icon->fWidth + myIconsParam.iIconGap; |
2475 | - } |
2476 | - pDock->iMaxIconHeight *= pDock->container.fRatio / fPrevRatio; |
2477 | - |
2478 | - //\__________________ remove any input shape |
2479 | - if (pDock->pShapeBitmap != NULL) |
2480 | - { |
2481 | - gldi_shape_destroy (pDock->pShapeBitmap); |
2482 | - pDock->pShapeBitmap = NULL; |
2483 | - if (pDock->iInputState != CAIRO_DOCK_INPUT_ACTIVE) |
2484 | - { |
2485 | - cairo_dock_set_input_shape_active (pDock); |
2486 | - pDock->iInputState = CAIRO_DOCK_INPUT_ACTIVE; |
2487 | - } |
2488 | - } |
2489 | - |
2490 | - //\__________________ hide the dock |
2491 | - pDock->bAutoHide = FALSE; |
2492 | - gtk_widget_hide (pDock->container.pWidget); |
2493 | - |
2494 | - ///cairo_dock_update_dock_size (pDock); |
2495 | -} |
2496 | - |
2497 | - |
2498 | -void cairo_dock_insert_icon_in_dock_full (Icon *icon, CairoDock *pDock, gboolean bAnimated, gboolean bInsertSeparator, GCompareFunc pCompareFunc) |
2499 | -{ |
2500 | - //g_print ("%s (%s)\n", __func__, icon->cName); |
2501 | - g_return_if_fail (icon != NULL); |
2502 | - if (g_list_find (pDock->icons, icon) != NULL) // elle est deja dans ce dock. |
2503 | - return ; |
2504 | - if (icon->pContainer != NULL) |
2505 | - { |
2506 | - cd_warning ("This icon (%s) is already inside a container !", icon->cName); |
2507 | - } |
2508 | - |
2509 | - //\______________ On regarde si on doit inserer un separateur. |
2510 | - gboolean bSeparatorNeeded = FALSE; |
2511 | - if (bInsertSeparator && ! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon)) |
2512 | - { |
2513 | - Icon *pSameTypeIcon = cairo_dock_get_first_icon_of_group (pDock->icons, icon->iGroup); |
2514 | - if (pSameTypeIcon == NULL && pDock->icons != NULL) |
2515 | - { |
2516 | - bSeparatorNeeded = TRUE; |
2517 | - //g_print ("separateur necessaire\n"); |
2518 | - } |
2519 | - } |
2520 | - |
2521 | - //\______________ On insere l'icone a sa place dans la liste. |
2522 | - if (icon->fOrder == CAIRO_DOCK_LAST_ORDER) |
2523 | - { |
2524 | - Icon *pLastIcon = cairo_dock_get_last_icon_of_order (pDock->icons, icon->iGroup); |
2525 | - if (pLastIcon != NULL) |
2526 | - icon->fOrder = pLastIcon->fOrder + 1; |
2527 | - else |
2528 | - icon->fOrder = 1; |
2529 | - } |
2530 | - |
2531 | - if (pCompareFunc == NULL) |
2532 | - pCompareFunc = (GCompareFunc) cairo_dock_compare_icons_order; |
2533 | - pDock->icons = g_list_insert_sorted (pDock->icons, |
2534 | - icon, |
2535 | - pCompareFunc); |
2536 | - cairo_dock_set_icon_container (icon, pDock); |
2537 | - |
2538 | - //\______________ set the icon size, now that it's inside a container. |
2539 | - int wi = icon->iImageWidth, hi = icon->iImageHeight; |
2540 | - cairo_dock_set_icon_size_in_dock (pDock, icon); |
2541 | - |
2542 | - if (wi != icon->iImageWidth || hi != icon->iImageHeight) // if size has changed, reload the buffers |
2543 | - cairo_dock_trigger_load_icon_buffers (icon); |
2544 | - |
2545 | - pDock->fFlatDockWidth += myIconsParam.iIconGap + icon->fWidth; |
2546 | - if (! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon)) |
2547 | - pDock->iMaxIconHeight = MAX (pDock->iMaxIconHeight, icon->fHeight); |
2548 | - |
2549 | - //\______________ On insere un separateur si necessaire. |
2550 | - if (bSeparatorNeeded) |
2551 | - { |
2552 | - // insert a separator after if needed |
2553 | - Icon *pNextIcon = cairo_dock_get_next_icon (pDock->icons, icon); |
2554 | - if (pNextIcon != NULL && ! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (pNextIcon)) |
2555 | - { |
2556 | - int iSeparatorGroup = cairo_dock_get_icon_order (icon) + |
2557 | - (cairo_dock_get_icon_order (icon) == cairo_dock_get_icon_order (pNextIcon) ? 0 : 1); // for separators, group = order. |
2558 | - double fOrder = (cairo_dock_get_icon_order (icon) == cairo_dock_get_icon_order (pNextIcon) ? (icon->fOrder + pNextIcon->fOrder) / 2 : 0); |
2559 | - cairo_dock_insert_automatic_separator_in_dock (iSeparatorGroup, fOrder, pNextIcon->cParentDockName, pDock); |
2560 | - } |
2561 | - |
2562 | - // insert a separator before if needed |
2563 | - Icon *pPrevIcon = cairo_dock_get_previous_icon (pDock->icons, icon); |
2564 | - if (pPrevIcon != NULL && ! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (pPrevIcon)) |
2565 | - { |
2566 | - int iSeparatorGroup = cairo_dock_get_icon_order (icon) - |
2567 | - (cairo_dock_get_icon_order (icon) == cairo_dock_get_icon_order (pPrevIcon) ? 0 : 1); // for separators, group = order. |
2568 | - double fOrder = (cairo_dock_get_icon_order (icon) == cairo_dock_get_icon_order (pPrevIcon) ? (icon->fOrder + pPrevIcon->fOrder) / 2 : 0); |
2569 | - cairo_dock_insert_automatic_separator_in_dock (iSeparatorGroup, fOrder, pPrevIcon->cParentDockName, pDock); |
2570 | - } |
2571 | - } |
2572 | - |
2573 | - //\______________ On effectue les actions demandees. |
2574 | - if (bAnimated) |
2575 | - { |
2576 | - if (cairo_dock_animation_will_be_visible (pDock)) |
2577 | - icon->fInsertRemoveFactor = - 0.95; |
2578 | - else |
2579 | - icon->fInsertRemoveFactor = - 0.05; |
2580 | - cairo_dock_launch_animation (CAIRO_CONTAINER (pDock)); |
2581 | - } |
2582 | - else |
2583 | - icon->fInsertRemoveFactor = 0.; |
2584 | - |
2585 | - cairo_dock_trigger_update_dock_size (pDock); |
2586 | - |
2587 | - if (pDock->iRefCount != 0 && ! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon)) // on prevoit le redessin de l'icone pointant sur le sous-dock. |
2588 | - { |
2589 | - cairo_dock_trigger_redraw_subdock_content (pDock); |
2590 | - } |
2591 | - |
2592 | - if (icon->pSubDock != NULL) |
2593 | - cairo_dock_synchronize_one_sub_dock_orientation (icon->pSubDock, pDock, TRUE); |
2594 | - |
2595 | - //\______________ Notify everybody. |
2596 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_INSERT_ICON, icon, pDock); |
2597 | -} |
2598 | - |
2599 | - |
2600 | -static gboolean _destroy_empty_dock (CairoDock *pDock) |
2601 | -{ |
2602 | - const gchar *cDockName = cairo_dock_search_dock_name (pDock); // safe meme si le dock n'existe plus. |
2603 | - g_return_val_if_fail (cDockName != NULL, FALSE); // si NULL, cela signifie que le dock n'existe plus, donc on n'y touche pas. Ce cas ne devrait jamais arriver, c'est de la pure parano. |
2604 | - |
2605 | - if (pDock->bIconIsFlyingAway) |
2606 | - return TRUE; |
2607 | - pDock->iSidDestroyEmptyDock = 0; |
2608 | - if (pDock->icons == NULL && pDock->iRefCount == 0 && ! pDock->bIsMainDock) // le dock est toujours a detruire. |
2609 | - { |
2610 | - cd_debug ("The dock '%s' is empty. No icon, no dock.", cDockName); |
2611 | - cairo_dock_destroy_dock (pDock, cDockName); |
2612 | - } |
2613 | - return FALSE; |
2614 | -} |
2615 | -gboolean cairo_dock_detach_icon_from_dock_full (Icon *icon, CairoDock *pDock, gboolean bCheckUnusedSeparator) |
2616 | -{ |
2617 | - if (pDock == NULL) |
2618 | - return FALSE; |
2619 | - if (icon->pContainer == NULL) |
2620 | - { |
2621 | - cd_warning ("This icon (%s) is already not inside a container !", icon->cName); // not a big deal, just print that for debug. |
2622 | - } |
2623 | - |
2624 | - //\___________________ On trouve l'icone et ses 2 voisins. |
2625 | - GList *prev_ic = NULL, *ic, *next_ic; |
2626 | - Icon *pPrevIcon = NULL, *pNextIcon = NULL; |
2627 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
2628 | - { |
2629 | - if (ic -> data == icon) |
2630 | - { |
2631 | - prev_ic = ic->prev; |
2632 | - next_ic = ic->next; |
2633 | - if (prev_ic) |
2634 | - pPrevIcon = prev_ic->data; |
2635 | - if (next_ic) |
2636 | - pNextIcon = next_ic->data; |
2637 | - break; |
2638 | - } |
2639 | - } |
2640 | - if (ic == NULL) // elle est deja detachee. |
2641 | - return FALSE; |
2642 | - |
2643 | - cd_message ("%s (%s)", __func__, icon->cName); |
2644 | - g_free (icon->cParentDockName); |
2645 | - icon->cParentDockName = NULL; |
2646 | - cairo_dock_set_icon_container (icon, NULL); |
2647 | - |
2648 | - //\___________________ On stoppe ses animations. |
2649 | - cairo_dock_stop_icon_animation (icon); |
2650 | - |
2651 | - //\___________________ On desactive sa miniature. |
2652 | - if (icon->Xid != 0) |
2653 | - { |
2654 | - //cd_debug ("on desactive la miniature de %s (Xid : %lx)", icon->cName, icon->Xid); |
2655 | - cairo_dock_set_xicon_geometry (icon->Xid, 0, 0, 0, 0); |
2656 | - } |
2657 | - |
2658 | - //\___________________ On l'enleve de la liste. |
2659 | - pDock->icons = g_list_delete_link (pDock->icons, ic); |
2660 | - ic = NULL; |
2661 | - pDock->fFlatDockWidth -= icon->fWidth + myIconsParam.iIconGap; |
2662 | - |
2663 | - //\___________________ On enleve le separateur si c'est la derniere icone de son type. |
2664 | - if (bCheckUnusedSeparator && ! CAIRO_DOCK_IS_AUTOMATIC_SEPARATOR (icon)) |
2665 | - { |
2666 | - if ((pPrevIcon == NULL || CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (pPrevIcon)) && CAIRO_DOCK_IS_AUTOMATIC_SEPARATOR (pNextIcon)) |
2667 | - { |
2668 | - pDock->icons = g_list_delete_link (pDock->icons, next_ic); |
2669 | - next_ic = NULL; |
2670 | - pDock->fFlatDockWidth -= pNextIcon->fWidth + myIconsParam.iIconGap; |
2671 | - cairo_dock_free_icon (pNextIcon); |
2672 | - pNextIcon = NULL; |
2673 | - } |
2674 | - if ((pNextIcon == NULL || CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (pNextIcon)) && CAIRO_DOCK_IS_AUTOMATIC_SEPARATOR (pPrevIcon)) |
2675 | - { |
2676 | - pDock->icons = g_list_delete_link (pDock->icons, prev_ic); |
2677 | - prev_ic = NULL; |
2678 | - pDock->fFlatDockWidth -= pPrevIcon->fWidth + myIconsParam.iIconGap; |
2679 | - cairo_dock_free_icon (pPrevIcon); |
2680 | - pPrevIcon = NULL; |
2681 | - } |
2682 | - } |
2683 | - |
2684 | - //\___________________ Cette icone realisait peut-etre le max des hauteurs, comme on l'enleve on recalcule ce max. |
2685 | - Icon *pOtherIcon; |
2686 | - if (icon->fHeight >= pDock->iMaxIconHeight) |
2687 | - { |
2688 | - pDock->iMaxIconHeight = 0; |
2689 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
2690 | - { |
2691 | - pOtherIcon = ic->data; |
2692 | - if (! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (pOtherIcon)) |
2693 | - { |
2694 | - pDock->iMaxIconHeight = MAX (pDock->iMaxIconHeight, pOtherIcon->fHeight); |
2695 | - if (pOtherIcon->fHeight == icon->fHeight) // on sait qu'on n'ira pas plus haut. |
2696 | - break; |
2697 | - } |
2698 | - } |
2699 | - } |
2700 | - |
2701 | - //\___________________ On la remet a la taille normale en vue d'une reinsertion quelque part. |
2702 | - icon->fWidth /= pDock->container.fRatio; |
2703 | - icon->fHeight /= pDock->container.fRatio; |
2704 | - |
2705 | - //\___________________ On prevoit le redessin de l'icone pointant sur le sous-dock. |
2706 | - if (pDock->iRefCount != 0 && ! CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon)) |
2707 | - { |
2708 | - cairo_dock_trigger_redraw_subdock_content (pDock); |
2709 | - } |
2710 | - |
2711 | - //\___________________ On prevoit la destruction du dock si c'est un dock principal qui devient vide. |
2712 | - if (pDock->iRefCount == 0 && pDock->icons == NULL && ! pDock->bIsMainDock) // on supprime les docks principaux vides. |
2713 | - { |
2714 | - if (pDock->iSidDestroyEmptyDock == 0) |
2715 | - pDock->iSidDestroyEmptyDock = g_idle_add ((GSourceFunc) _destroy_empty_dock, pDock); // on ne passe pas le nom du dock en parametre, car le dock peut se faire renommer (improbable, mais bon). |
2716 | - } |
2717 | - else |
2718 | - { |
2719 | - cairo_dock_trigger_update_dock_size (pDock); |
2720 | - } |
2721 | - |
2722 | - //\___________________ Notify everybody. |
2723 | - icon->fInsertRemoveFactor = 0.; |
2724 | - cairo_dock_notify_on_object (pDock, NOTIFICATION_REMOVE_ICON, icon, pDock); |
2725 | - |
2726 | - return TRUE; |
2727 | -} |
2728 | -void cairo_dock_remove_icon_from_dock_full (CairoDock *pDock, Icon *icon, gboolean bCheckUnusedSeparator) |
2729 | -{ |
2730 | - g_return_if_fail (icon != NULL); |
2731 | - |
2732 | - //\___________________ On detache l'icone du dock. |
2733 | - if (pDock != NULL) |
2734 | - cairo_dock_detach_icon_from_dock_full (icon, pDock, bCheckUnusedSeparator); // on le fait maintenant, pour que l'icone ait son type correct, et ne soit pas confondue avec un separateur |
2735 | - |
2736 | - //\___________________ On supprime l'icone du theme courant. |
2737 | - if (icon->iface.on_delete) |
2738 | - { |
2739 | - gboolean r = icon->iface.on_delete (icon); |
2740 | - if (r) |
2741 | - cairo_dock_mark_current_theme_as_modified (TRUE); |
2742 | - } |
2743 | -} |
2744 | - |
2745 | - |
2746 | -void cairo_dock_remove_automatic_separators (CairoDock *pDock) |
2747 | -{ |
2748 | - //g_print ("%s ()\n", __func__); |
2749 | - Icon *icon; |
2750 | - GList *ic = pDock->icons, *next_ic; |
2751 | - while (ic != NULL) |
2752 | - { |
2753 | - icon = ic->data; |
2754 | - next_ic = ic->next; // si l'icone se fait enlever, on perdrait le fil. |
2755 | - if (CAIRO_DOCK_IS_AUTOMATIC_SEPARATOR (icon)) |
2756 | - { |
2757 | - cairo_dock_remove_one_icon_from_dock (pDock, icon); |
2758 | - cairo_dock_free_icon (icon); |
2759 | - } |
2760 | - ic = next_ic; |
2761 | - } |
2762 | -} |
2763 | - |
2764 | -void cairo_dock_insert_automatic_separators_in_dock (CairoDock *pDock) |
2765 | -{ |
2766 | - //g_print ("%s ()\n", __func__); |
2767 | - Icon *icon, *pNextIcon; |
2768 | - GList *ic; |
2769 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
2770 | - { |
2771 | - icon = ic->data; |
2772 | - if (! CAIRO_DOCK_IS_AUTOMATIC_SEPARATOR (icon)) |
2773 | - { |
2774 | - if (ic->next != NULL) |
2775 | - { |
2776 | - pNextIcon = ic->next->data; |
2777 | - if (! CAIRO_DOCK_IS_AUTOMATIC_SEPARATOR (pNextIcon) && icon->iGroup != pNextIcon->iGroup) |
2778 | - { |
2779 | - int iSeparatorGroup = cairo_dock_get_icon_order (icon) + |
2780 | - (cairo_dock_get_icon_order (icon) == cairo_dock_get_icon_order (pNextIcon) ? 0 : 1); // for separators, group = order. |
2781 | - double fOrder = (cairo_dock_get_icon_order (icon) == cairo_dock_get_icon_order (pNextIcon) ? (icon->fOrder + pNextIcon->fOrder) / 2 : 0); |
2782 | - cairo_dock_insert_automatic_separator_in_dock (iSeparatorGroup, fOrder, icon->cParentDockName, pDock); |
2783 | - } |
2784 | - } |
2785 | - } |
2786 | - } |
2787 | -} |
2788 | - |
2789 | - |
2790 | -Icon *cairo_dock_add_new_launcher_by_uri_or_type (const gchar *cExternDesktopFileURI, CairoDockDesktopFileType iType, CairoDock *pReceivingDock, double fOrder) |
2791 | -{ |
2792 | - //\_________________ On ajoute un fichier desktop dans le repertoire des lanceurs du theme courant. |
2793 | - GError *erreur = NULL; |
2794 | - const gchar *cDockName = cairo_dock_search_dock_name (pReceivingDock); |
2795 | - if (fOrder == CAIRO_DOCK_LAST_ORDER && pReceivingDock != NULL) |
2796 | - { |
2797 | - Icon *pLastIcon = cairo_dock_get_last_launcher (pReceivingDock->icons); |
2798 | - if (pLastIcon != NULL) |
2799 | - fOrder = pLastIcon->fOrder + 1; |
2800 | - else |
2801 | - fOrder = 1; |
2802 | - } |
2803 | - gchar *cNewDesktopFileName; |
2804 | - if (cExternDesktopFileURI != NULL) |
2805 | - cNewDesktopFileName = cairo_dock_add_desktop_file_from_uri (cExternDesktopFileURI, cDockName, fOrder, &erreur); |
2806 | - else |
2807 | - cNewDesktopFileName = cairo_dock_add_desktop_file_from_type (iType, cDockName, fOrder, &erreur); |
2808 | - if (erreur != NULL) |
2809 | - { |
2810 | - cd_warning (erreur->message); |
2811 | - g_error_free (erreur); |
2812 | - return NULL; |
2813 | - } |
2814 | - |
2815 | - //\_________________ On verifie ici l'unicite du sous-dock. |
2816 | - if (iType == CAIRO_DOCK_DESKTOP_FILE_FOR_CONTAINER && cExternDesktopFileURI == NULL) |
2817 | - { |
2818 | - |
2819 | - } |
2820 | - |
2821 | - //\_________________ On charge ce nouveau lanceur. |
2822 | - Icon *pNewIcon = NULL; |
2823 | - if (cNewDesktopFileName != NULL) |
2824 | - { |
2825 | - cairo_dock_mark_current_theme_as_modified (TRUE); |
2826 | - |
2827 | - pNewIcon = cairo_dock_create_icon_from_desktop_file (cNewDesktopFileName); |
2828 | - g_free (cNewDesktopFileName); |
2829 | - |
2830 | - if (pNewIcon != NULL) |
2831 | - { |
2832 | - cairo_dock_insert_icon_in_dock (pNewIcon, pReceivingDock, CAIRO_DOCK_ANIMATE_ICON); |
2833 | - |
2834 | - if (pNewIcon->pSubDock != NULL) |
2835 | - cairo_dock_trigger_redraw_subdock_content (pNewIcon->pSubDock); |
2836 | - } |
2837 | - } |
2838 | - return pNewIcon; |
2839 | -} |
2840 | - |
2841 | - |
2842 | -void cairo_dock_remove_icons_from_dock (CairoDock *pDock, CairoDock *pReceivingDock, const gchar *cReceivingDockName) |
2843 | -{ |
2844 | - GList *pIconsList = pDock->icons; |
2845 | - pDock->icons = NULL; |
2846 | - Icon *icon; |
2847 | - GList *ic; |
2848 | - gchar *cDesktopFilePath; |
2849 | - for (ic = pIconsList; ic != NULL; ic = ic->next) |
2850 | - { |
2851 | - icon = ic->data; |
2852 | - |
2853 | - if (icon->pSubDock != NULL) |
2854 | - { |
2855 | - cairo_dock_remove_icons_from_dock (icon->pSubDock, pReceivingDock, cReceivingDockName); |
2856 | - } |
2857 | - |
2858 | - if (pReceivingDock == NULL || cReceivingDockName == NULL) // alors on les jete. |
2859 | - { |
2860 | - if (icon->iface.on_delete) |
2861 | - icon->iface.on_delete (icon); // efface le .desktop / ecrit les modules actifs. |
2862 | - |
2863 | - if (CAIRO_DOCK_IS_APPLET (icon)) |
2864 | - { |
2865 | - cairo_dock_update_icon_s_container_name (icon, CAIRO_DOCK_MAIN_DOCK_NAME); // on decide de les remettre dans le dock principal la prochaine fois qu'ils seront actives. |
2866 | - } |
2867 | - cairo_dock_free_icon (icon); // de-instancie l'applet. |
2868 | - } |
2869 | - else // on les re-attribue au dock receveur. |
2870 | - { |
2871 | - cairo_dock_update_icon_s_container_name (icon, cReceivingDockName); |
2872 | - |
2873 | - icon->fWidth /= pDock->container.fRatio; // optimization: no need to detach the icon, we just steal all of them. |
2874 | - icon->fHeight /= pDock->container.fRatio; |
2875 | - |
2876 | - cd_debug (" on re-attribue %s au dock %s", icon->cName, icon->cParentDockName); |
2877 | - cairo_dock_insert_icon_in_dock (icon, pReceivingDock, CAIRO_DOCK_ANIMATE_ICON); |
2878 | - |
2879 | - if (CAIRO_DOCK_IS_APPLET (icon)) |
2880 | - { |
2881 | - icon->pModuleInstance->pContainer = CAIRO_CONTAINER (pReceivingDock); // astuce pour ne pas avoir a recharger le fichier de conf ^_^ |
2882 | - icon->pModuleInstance->pDock = pReceivingDock; |
2883 | - cairo_dock_reload_module_instance (icon->pModuleInstance, FALSE); |
2884 | - } |
2885 | - } |
2886 | - } |
2887 | - |
2888 | - g_list_free (pIconsList); |
2889 | -} |
2890 | - |
2891 | - |
2892 | -void cairo_dock_reload_buffers_in_dock (CairoDock *pDock, gboolean bRecursive, gboolean bUpdateIconSize) |
2893 | -{ |
2894 | - //g_print ("************%s (%d, %d)\n", __func__, pDock->bIsMainDock, bRecursive); |
2895 | - if (bUpdateIconSize && pDock->bGlobalIconSize) |
2896 | - pDock->iIconSize = myIconsParam.iIconWidth; |
2897 | - |
2898 | - // for each icon, reload its buffer (size may change). |
2899 | - Icon* icon; |
2900 | - GList* ic; |
2901 | - for (ic = pDock->icons; ic != NULL; ic = ic->next) |
2902 | - { |
2903 | - icon = ic->data; |
2904 | - |
2905 | - if (CAIRO_DOCK_IS_APPLET (icon)) // for an applet, we need to let the module know that the size or the theme has changed, so that it can reload its private buffers. |
2906 | - { |
2907 | - cairo_dock_reload_module_instance (icon->pModuleInstance, FALSE); |
2908 | - } |
2909 | - else |
2910 | - { |
2911 | - if (bUpdateIconSize) |
2912 | - { |
2913 | - icon->fWidth = icon->fHeight = 0; // no request |
2914 | - icon->iImageWidth = icon->iImageHeight = 0; |
2915 | - cairo_dock_set_icon_size_in_dock (pDock, icon); |
2916 | - } |
2917 | - cairo_dock_trigger_load_icon_buffers (icon); |
2918 | - } |
2919 | - |
2920 | - if (bRecursive && icon->pSubDock != NULL) // we handle the sub-dock for applets too, so that they don't need to care. |
2921 | - { |
2922 | - ///cairo_dock_synchronize_one_sub_dock_orientation (icon->pSubDock, pDock, FALSE); /// should probably not be here. |
2923 | - if (bUpdateIconSize) |
2924 | - icon->pSubDock->iIconSize = pDock->iIconSize; |
2925 | - cairo_dock_reload_buffers_in_dock (icon->pSubDock, bRecursive, bUpdateIconSize); |
2926 | - } |
2927 | - } |
2928 | - |
2929 | - if (bUpdateIconSize) |
2930 | - { |
2931 | - cairo_dock_update_dock_size (pDock); |
2932 | - cairo_dock_calculate_dock_icons (pDock); |
2933 | - |
2934 | - cairo_dock_move_resize_dock (pDock); |
2935 | - if (pDock->iVisibility == CAIRO_DOCK_VISI_RESERVE) // la position/taille a change, il faut refaire la reservation. |
2936 | - cairo_dock_reserve_space_for_dock (pDock, TRUE); |
2937 | - gtk_widget_queue_draw (pDock->container.pWidget); |
2938 | - } |
2939 | -} |
2940 | - |
2941 | - |
2942 | -void cairo_dock_set_icon_size_in_dock (CairoDock *pDock, Icon *icon) |
2943 | -{ |
2944 | - if (pDock->pRenderer && pDock->pRenderer->set_icon_size) |
2945 | - { |
2946 | - pDock->pRenderer->set_icon_size (icon, pDock); |
2947 | - } |
2948 | - else |
2949 | - { |
2950 | - int wi, hi; |
2951 | - if (pDock->iIconSize != 0) |
2952 | - { |
2953 | - wi = hi = pDock->iIconSize; |
2954 | - } |
2955 | - else // same size as main dock. |
2956 | - { |
2957 | - wi = myIconsParam.iIconWidth; |
2958 | - hi = myIconsParam.iIconHeight; |
2959 | - } |
2960 | - //g_print (" size: %d => %dx%d\n", pDock->iIconSize, wi, hi); |
2961 | - double fMaxScale = cairo_dock_get_max_scale (pDock); |
2962 | - |
2963 | - // set the visible size at rest. |
2964 | - if (CAIRO_DOCK_ICON_TYPE_IS_APPLET (icon)) // for applets, consider (fWidth,fHeight) as a requested size, if not 0. |
2965 | - { |
2966 | - //g_print ("%s (%s, %.1fx%.1f\n", __func__, icon->pModuleInstance->pModule->pVisitCard->cModuleName, icon->fWidth, icon->fHeight); |
2967 | - if (icon->iImageWidth != 0) |
2968 | - { |
2969 | - if (pDock->container.bIsHorizontal) |
2970 | - icon->fWidth = icon->iImageWidth / fMaxScale; |
2971 | - else |
2972 | - icon->fHeight = icon->iImageWidth / fMaxScale; |
2973 | - } |
2974 | - if (icon->iImageHeight != 0) |
2975 | - { |
2976 | - if (pDock->container.bIsHorizontal) |
2977 | - icon->fHeight = icon->iImageHeight / fMaxScale; |
2978 | - else |
2979 | - icon->fWidth = icon->iImageHeight / fMaxScale; |
2980 | - } |
2981 | - if (icon->fWidth == 0) |
2982 | - icon->fWidth = wi; |
2983 | - if (icon->fHeight == 0 || icon->fHeight > hi) |
2984 | - icon->fHeight = hi; |
2985 | - } |
2986 | - else if (CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon)) // separators have their own size. |
2987 | - { |
2988 | - icon->fWidth = myIconsParam.iSeparatorWidth; |
2989 | - icon->fHeight = MIN (myIconsParam.iSeparatorHeight, hi); |
2990 | - } |
2991 | - else // any other icon use the global size |
2992 | - { |
2993 | - icon->fWidth = wi; |
2994 | - icon->fHeight = hi; |
2995 | - } |
2996 | - |
2997 | - // texture size can be deduced then. |
2998 | - if (pDock->container.bIsHorizontal |
2999 | - || (CAIRO_DOCK_ICON_TYPE_IS_SEPARATOR (icon) && myIconsParam.bRevolveSeparator)) |
3000 | - { |
3001 | - icon->iImageWidth = icon->fWidth * fMaxScale; |
3002 | - icon->iImageHeight = icon->fHeight * fMaxScale; |
3003 | - } |
3004 | - else |
3005 | - { |
3006 | - icon->iImageWidth = icon->fHeight * fMaxScale; |
3007 | - icon->iImageHeight = icon->fWidth * fMaxScale; |
3008 | - } |
3009 | - } |
3010 | - icon->fWidth *= pDock->container.fRatio; |
3011 | - icon->fHeight *= pDock->container.fRatio; |
3012 | -} |
3013 | - |
3014 | - |
3015 | -void cairo_dock_create_redirect_texture_for_dock (CairoDock *pDock) |
3016 | -{ |
3017 | - if (! g_openglConfig.bFboAvailable) |
3018 | - return ; |
3019 | - if (pDock->iRedirectedTexture == 0) |
3020 | - { |
3021 | - pDock->iRedirectedTexture = cairo_dock_create_texture_from_raw_data (NULL, |
3022 | - (pDock->container.bIsHorizontal ? pDock->container.iWidth : pDock->container.iHeight), |
3023 | - (pDock->container.bIsHorizontal ? pDock->container.iHeight : pDock->container.iWidth)); |
3024 | - } |
3025 | - if (pDock->iFboId == 0) |
3026 | - glGenFramebuffersEXT(1, &pDock->iFboId); |
3027 | -} |
3028 | |
3029 | === removed directory '.pc/02-bzr_fixed_compilation_error.patch' |
3030 | === removed directory '.pc/02-bzr_fixed_compilation_error.patch/src' |
3031 | === removed directory '.pc/02-bzr_fixed_compilation_error.patch/src/gldit' |
3032 | === removed file '.pc/02-bzr_fixed_compilation_error.patch/src/gldit/cairo-dock-keybinder.h' |
3033 | --- .pc/02-bzr_fixed_compilation_error.patch/src/gldit/cairo-dock-keybinder.h 2012-04-25 01:29:46 +0000 |
3034 | +++ .pc/02-bzr_fixed_compilation_error.patch/src/gldit/cairo-dock-keybinder.h 1970-01-01 00:00:00 +0000 |
3035 | @@ -1,152 +0,0 @@ |
3036 | -/* |
3037 | -* cairo-dock-keybinder.h |
3038 | -* This file is a part of the Cairo-Dock project |
3039 | -* Login : <ctaf42@localhost.localdomain> |
3040 | -* Started on Thu Jan 31 03:57:17 2008 Cedric GESTES |
3041 | -* $Id$ |
3042 | -* |
3043 | -* Author(s) |
3044 | -* - Cedric GESTES <ctaf42@gmail.com> |
3045 | -* - Havoc Pennington |
3046 | -* - Tim Janik |
3047 | -* |
3048 | -* Copyright : (C) 2008 Cedric GESTES |
3049 | -* E-mail : see the 'copyright' file. |
3050 | -* |
3051 | -* This program is free software; you can redistribute it and/or |
3052 | -* modify it under the terms of the GNU General Public License |
3053 | -* as published by the Free Software Foundation; either version 3 |
3054 | -* of the License, or (at your option) any later version. |
3055 | -* |
3056 | -* This program is distributed in the hope that it will be useful, |
3057 | -* but WITHOUT ANY WARRANTY; without even the implied warranty of |
3058 | -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3059 | -* GNU General Public License for more details. |
3060 | -* You should have received a copy of the GNU General Public License |
3061 | -* along with this program. If not, see <http://www.gnu.org/licenses/>. |
3062 | -* |
3063 | -* imported from tomboy_key_binder.h |
3064 | -*/ |
3065 | - |
3066 | -#ifndef __CD_KEY_BINDER_H__ |
3067 | -#define __CD_KEY_BINDER_H__ |
3068 | - |
3069 | -#include <glib/gtypes.h> |
3070 | -#include "cairo-dock-struct.h" |
3071 | -#include "cairo-dock-manager.h" |
3072 | - |
3073 | -G_BEGIN_DECLS |
3074 | - |
3075 | -/** |
3076 | -*@file cairo-dock-keybinder.h This class contains functions to easily bind a keyboard shortcut to an action. These shortkeys are defined globally in your session, that is to say they will be effective whatever window has the focus. |
3077 | -* Shortkeys are of the form <alt>F1 or <ctrl><shift>s. |
3078 | -* |
3079 | -* You bind an action to a shortkey with \ref cd_keybinder_bind, and unbind it with \ref cd_keybinder_unbind. |
3080 | -* To update a binding (on shortkey or description chenge, or just to re-grab it), use \ref cd_keybinder_rebind. |
3081 | -*/ |
3082 | - |
3083 | - |
3084 | -/// Definition of a callback, called when a shortcut is pressed by the user. |
3085 | -typedef void (* CDBindkeyHandler) (const gchar *keystring, gpointer user_data); |
3086 | - |
3087 | -struct _CairoKeyBinding { |
3088 | - gchar *keystring; |
3089 | - CDBindkeyHandler handler; |
3090 | - gpointer user_data; |
3091 | - guint keycode; |
3092 | - guint modifiers; |
3093 | - gboolean bSuccess; |
3094 | - gchar *cDemander; |
3095 | - gchar *cDescription; |
3096 | - gchar *cIconFilePath; |
3097 | - gchar *cConfFilePath; |
3098 | - gchar *cGroupName; |
3099 | - gchar *cKeyName; |
3100 | -} ; |
3101 | - |
3102 | - |
3103 | -typedef struct _CairoShortkeysManager CairoShortkeysManager; |
3104 | - |
3105 | -#ifndef _MANAGER_DEF_ |
3106 | -extern CairoShortkeysManager myShortkeysMgr; |
3107 | -#endif |
3108 | - |
3109 | -// params |
3110 | - |
3111 | -// manager |
3112 | -struct _CairoShortkeysManager { |
3113 | - GldiManager mgr; |
3114 | - gboolean (*bind) (const gchar *keystring, CDBindkeyHandler handler, gpointer user_data); |
3115 | - void (*unbind) (const gchar *keystring, CDBindkeyHandler handler); |
3116 | - gboolean (*trigger_shortkey) (const gchar *cKeyString); |
3117 | - } ; |
3118 | - |
3119 | -// signals |
3120 | -typedef enum { |
3121 | - NOTIFICATION_SHORTKEY_ADDED = NB_NOTIFICATIONS_OBJECT, |
3122 | - NOTIFICATION_SHORTKEY_REMOVED, |
3123 | - NOTIFICATION_SHORTKEY_CHANGED, |
3124 | - NB_NOTIFICATIONS_SHORTKEYS |
3125 | - } CairoShortkeysNotifications; |
3126 | - |
3127 | - |
3128 | -/** Bind a shortkey to an action. Unbind it when you don't want it anymore, or when 'user_data' is freed. |
3129 | - * @param keystring a shortcut. |
3130 | - * @param cDemander the actor making the demand |
3131 | - * @param cDescription a short description of the action |
3132 | - * @param cIconFilePath an icon that represents the demander |
3133 | - * @param cConfFilePath conf file where the shortkey stored |
3134 | - * @param cGroupName group name where it's stored in the conf file |
3135 | - * @param cKeyName key name where it's stored in the conf file |
3136 | - * @param handler function called when the shortkey is pressed by the user |
3137 | - * @param user_data data passed to the callback |
3138 | - * @return the key binding |
3139 | -*/ |
3140 | -CairoKeyBinding *cd_keybinder_bind (const gchar *keystring, |
3141 | - const gchar *cDemander, |
3142 | - const gchar *cDescription, |
3143 | - const gchar *cIconFilePath, |
3144 | - const gchar *cConfFilePath, |
3145 | - const gchar *cGroupName, |
3146 | - const gchar *cKeyName, |
3147 | - CDBindkeyHandler handler, |
3148 | - gpointer user_data); |
3149 | - |
3150 | -/** Says if the shortkey of a key binding could be grabbed. |
3151 | - * @param binding a key binding. |
3152 | - * @return TRUE iif the shortkey has been successfuly grabbed by the key binding. |
3153 | -*/ |
3154 | -#define cd_keybinder_could_grab(binding) ((binding)->bSuccess) |
3155 | - |
3156 | -/** Unbind a shortkey. The binding is destroyed. |
3157 | - * @param binding a key binding. |
3158 | -*/ |
3159 | -void cd_keybinder_unbind (CairoKeyBinding *binding); |
3160 | - |
3161 | - |
3162 | -/** Rebind a shortkey to a new one. If the shortkey is the same, don't re-bind it. |
3163 | - * @param binding a key binding. |
3164 | - * @param .cNewKeyString the new shortkey |
3165 | - * @param .cNewDescription the new description, or NULL to keep the current one. |
3166 | - * @return TRUE on success |
3167 | -*/ |
3168 | -gboolean cd_keybinder_rebind (CairoKeyBinding *binding, |
3169 | - const gchar *cNewKeyString, |
3170 | - const gchar *cNewDescription); |
3171 | - |
3172 | - |
3173 | -void cd_keybinder_foreach (GFunc pCallback, gpointer data); |
3174 | - |
3175 | -/** Trigger the given shortkey. It will be as if the user effectively pressed the shortkey on its keyboard. It uses the 'XTest' X extension. |
3176 | - * @param cKeyString a shortkey. |
3177 | - * @return TRUE if success. |
3178 | -*/ |
3179 | -gboolean cairo_dock_trigger_shortkey (const gchar *cKeyString); |
3180 | - |
3181 | - |
3182 | -void gldi_register_shortkeys_manager (void); |
3183 | - |
3184 | -G_END_DECLS |
3185 | - |
3186 | -#endif /* __CD_KEY_BINDER_H__ */ |
3187 | - |
3188 | |
3189 | === removed file '.pc/applied-patches' |
3190 | --- .pc/applied-patches 2012-04-25 01:29:46 +0000 |
3191 | +++ .pc/applied-patches 1970-01-01 00:00:00 +0000 |
3192 | @@ -1,2 +0,0 @@ |
3193 | -02-bzr_fixed_compilation_error.patch |
3194 | -01-bzr_dock-s_menu.patch |
3195 | |
3196 | === modified file 'CMakeLists.txt' |
3197 | --- CMakeLists.txt 2012-04-16 17:57:58 +0000 |
3198 | +++ CMakeLists.txt 2012-06-19 14:00:30 +0000 |
3199 | @@ -11,7 +11,7 @@ |
3200 | ########### project ############### |
3201 | |
3202 | project ("cairo-dock") |
3203 | -set (VERSION "3.0.0") |
3204 | +set (VERSION "3.0.2") |
3205 | |
3206 | 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 |
3207 | if (NOT ${CMAKE_BUILD_TYPE}) |
3208 | @@ -22,6 +22,11 @@ |
3209 | add_definitions (-DCAIRO_DOCK_ICON="cairo-dock.svg") |
3210 | add_definitions (-DCAIRO_DOCK_LOGO="cairo-dock-logo.png") |
3211 | add_definitions (-DCAIRO_DOCK_DATA_DIR="cairo-dock") |
3212 | +if (NOT "${force-icon-in-menus}" STREQUAL "no") # we believe that not showing icons in the menus by default is a terrible idea; unfortunately, it's not easily undoable for an end-user; so until this is fixed by a big player (Gnome, Ubuntu or other), we'll force the display, unless "-Dforce-icon-in-menus=yes" is provided in the cmake command. |
3213 | + add_definitions (-DCAIRO_DOCK_FORCE_ICON_IN_MENUS=1) |
3214 | +else() |
3215 | + add_definitions (-DCAIRO_DOCK_FORCE_ICON_IN_MENUS=0) |
3216 | +endif() |
3217 | add_custom_target (uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") |
3218 | |
3219 | ############ sources tarball ############ |
3220 | |
3221 | === added file 'debian/cairo-dock-data.links' |
3222 | --- debian/cairo-dock-data.links 1970-01-01 00:00:00 +0000 |
3223 | +++ debian/cairo-dock-data.links 2012-06-19 14:00:30 +0000 |
3224 | @@ -0,0 +1,2 @@ |
3225 | +usr/share/man/man1/cairo-dock.1.gz usr/share/man/man1/cairo-dock-package-theme.1.gz |
3226 | +usr/share/man/man1/cairo-dock.1.gz usr/share/man/man1/cairo-dock-session.1.gz |
3227 | |
3228 | === removed file 'debian/cairo-dock-data.lintian-overrides' |
3229 | --- debian/cairo-dock-data.lintian-overrides 2011-10-11 10:53:26 +0000 |
3230 | +++ debian/cairo-dock-data.lintian-overrides 1970-01-01 00:00:00 +0000 |
3231 | @@ -1,2 +0,0 @@ |
3232 | -# Cairo-Dock uses custom scripts |
3233 | -cairo-dock-data: binary-without-manpage |
3234 | |
3235 | === modified file 'debian/changelog' |
3236 | --- debian/changelog 2012-04-25 01:29:46 +0000 |
3237 | +++ debian/changelog 2012-06-19 14:00:30 +0000 |
3238 | @@ -1,3 +1,46 @@ |
3239 | +cairo-dock (3.0.2-0ubuntu1) UNRELEASED; urgency=low |
3240 | + |
3241 | + * New upstream bug-fix release. (LP: #1014801) |
3242 | + * Upstream ChangeLog (3.0.0 -> 3.0.1): |
3243 | + - Dialogs: fixed a bug where the dock could auto-hide when a modal dialog |
3244 | + was raised |
3245 | + - Dialog: fixed a crash with gcc-4.7: the local variable can be corrupted |
3246 | + due to optimisations |
3247 | + - Fixed a bug where the dock didn't accept clicks when the mouse touches |
3248 | + the screen edge (with auto-hide) |
3249 | + - Added a compilation option to not force the display of icons in menus |
3250 | + (design request but disable by default) |
3251 | + - Fixed a bug where the hidden dock background color was not updated |
3252 | + properly |
3253 | + - Class-Manager: fixed a bug with Windows applications whose name is in |
3254 | + upper case (.EXE) |
3255 | + - GUI: use cairo_dock_get_xwindow_class to link a programm with a launcher |
3256 | + - French translations: fixed 2 small errors |
3257 | + * Upstream ChangeLog (3.0.1 -> 3.0.2): |
3258 | + - Main GUI: Fixed a crash when hovering group buttons too quickly |
3259 | + - Main GUI: The dialog and preview didn't appear when hovering the button |
3260 | + - Accelerators: On recent distro, 'Control' key is now called 'Primary' |
3261 | + - Icon Mgr: Added a mutex because of occasional crashes with |
3262 | + gtk_icon_theme_lookup_icon |
3263 | + - Icon Mgr: Don't call a 'change-icon' callback when clicking or scrolling |
3264 | + on an icon, and trigger an unneeded animation on the icon |
3265 | + - Dock Mgr: Avoid emitting an 'enter' event when not needed |
3266 | + - Class Mgr: Fixed 2 typos (special case for kdesu and not kdes) |
3267 | + - Class Mgr: Remove launching options (%U) in quick-list Exec command |
3268 | + (LP: #1002691) |
3269 | + - Dialogues: Prevent closing the dialog unexpectedly when clicking on it, |
3270 | + if the click is actually inside the interactive widget |
3271 | + - Background: When set to 'always visible', applets' background couldn't |
3272 | + be turned off |
3273 | + - Added a workaround for the Unity-panel which has a wrong window type |
3274 | + - po: Updated translations |
3275 | + * debian/patches: |
3276 | + - Removed all patches (now in upstream) |
3277 | + * debian/cairo-dock-data: |
3278 | + - Removed a lintian warning by added symlinks (binary-without-manpage) |
3279 | + |
3280 | + -- Matthieu Baerts (matttbe) <matttbe@gmail.com> Mon, 18 Jun 2012 20:01:30 +0200 |
3281 | + |
3282 | cairo-dock (3.0.0.1-0ubuntu2) quantal; urgency=low |
3283 | |
3284 | * debian/patches/01-bzr_dock-s_menu.patch: don't hide the dock if it's raised |
3285 | |
3286 | === removed file 'debian/patches/01-bzr_dock-s_menu.patch' |
3287 | --- debian/patches/01-bzr_dock-s_menu.patch 2012-04-25 01:29:46 +0000 |
3288 | +++ debian/patches/01-bzr_dock-s_menu.patch 1970-01-01 00:00:00 +0000 |
3289 | @@ -1,48 +0,0 @@ |
3290 | -## Description: Dock's menu: don't hide the dock if it is raised and don't try to check if the mouse has left the dock if the menu is raised |
3291 | -## Origin/Author: Upstream (Fabrice Rey) |
3292 | -## https://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/3.0.x/revision/1070 |
3293 | - |
3294 | -Index: cairo-dock/src/gldit/cairo-dock-callbacks.c |
3295 | -=================================================================== |
3296 | ---- cairo-dock.orig/src/gldit/cairo-dock-callbacks.c 2012-04-16 18:03:45.645725000 +0200 |
3297 | -+++ cairo-dock/src/gldit/cairo-dock-callbacks.c 2012-04-24 02:34:27.416854701 +0200 |
3298 | -@@ -763,10 +763,10 @@ |
3299 | - { |
3300 | - //g_print ("forced leave event: %d;%d\n", pDock->container.iMouseX, pDock->container.iMouseY); |
3301 | - } |
3302 | -- if (pEvent && !_mouse_is_really_outside(pDock)) // check that the mouse is really outside (only if the request comes from the Window Manager; this is to work around buggy WM like KWin). |
3303 | -+ if (/**pEvent && */!_mouse_is_really_outside(pDock)) // check that the mouse is really outside (the request might not come from the Window Manager, for instance if we deactivate the menu; this also works around buggy WM like KWin). |
3304 | - { |
3305 | - //g_print ("not really outside (%d;%d ; %d/%d)\n", pDock->container.iMouseX, pDock->container.iMouseY, pDock->iMaxDockHeight, pDock->iMinDockHeight); |
3306 | -- if (pDock->iSidTestMouseOutside == 0 && pEvent) // si l'action induit un changement de bureau, ou une appli qui bloque le focus (gksu), X envoit un signal de sortie alors qu'on est encore dans le dock, et donc n'en n'envoit plus lorsqu'on en sort reellement. On teste donc pendant qques secondes apres l'evenement. |
3307 | -+ if (pDock->iSidTestMouseOutside == 0 && pEvent && ! pDock->bMenuVisible) // si l'action induit un changement de bureau, ou une appli qui bloque le focus (gksu), X envoit un signal de sortie alors qu'on est encore dans le dock, et donc n'en n'envoit plus lorsqu'on en sort reellement. On teste donc pendant qques secondes apres l'evenement. C'est ausi vrai pour l'affichage d'un menu, mais comme on envoie nous-meme un signal de sortie lorsque le menu disparait, il est inutile de le faire ici. |
3308 | - { |
3309 | - //g_print ("start checking mouse\n"); |
3310 | - pDock->iSidTestMouseOutside = g_timeout_add (500, (GSourceFunc)_check_mouse_outside, pDock); |
3311 | -@@ -1038,7 +1038,7 @@ |
3312 | - static gboolean _check_mouse_outside (CairoDock *pDock) // ce test est principalement fait pour detecter les cas ou X nous envoit un signal leave errone alors qu'on est dedans (=> sortie refusee, bInside reste a TRUE), puis du coup ne nous en envoit pas de leave lorsqu'on quitte reellement le dock. |
3313 | - { |
3314 | - //g_print ("%s (%d, %d, %d)\n", __func__, pDock->bIsShrinkingDown, pDock->iMagnitudeIndex, pDock->container.bInside); |
3315 | -- if (pDock->bIsShrinkingDown || pDock->iMagnitudeIndex == 0 || ! pDock->container.bInside) // cas triviaux : si le dock est deja retrecit, ou qu'on est deja plus dedans, on peut quitter. |
3316 | -+ if (pDock->bIsShrinkingDown || pDock->iMagnitudeIndex == 0 || ! pDock->container.bInside) // trivial cases : if the dock has already shrunk, or we're not inside any more, we can quit the loop. |
3317 | - { |
3318 | - pDock->iSidTestMouseOutside = 0; |
3319 | - return FALSE; |
3320 | -Index: cairo-dock/src/gldit/cairo-dock-dock-factory.c |
3321 | -=================================================================== |
3322 | ---- cairo-dock.orig/src/gldit/cairo-dock-dock-factory.c 2012-04-16 18:03:45.645725000 +0200 |
3323 | -+++ cairo-dock/src/gldit/cairo-dock-dock-factory.c 2012-04-24 02:34:27.416854701 +0200 |
3324 | -@@ -443,8 +443,11 @@ |
3325 | - { |
3326 | - //g_print ("\n+++ %s ()\n\n", __func__); |
3327 | - g_return_if_fail (CAIRO_DOCK_IS_DOCK (pDock)); |
3328 | -- pDock->bMenuVisible = FALSE; |
3329 | -- cairo_dock_emit_leave_signal (CAIRO_CONTAINER (pDock)); |
3330 | -+ if (pDock->bMenuVisible) // don't send the signal if the menu was already deactivated. |
3331 | -+ { |
3332 | -+ pDock->bMenuVisible = FALSE; |
3333 | -+ cairo_dock_emit_leave_signal (CAIRO_CONTAINER (pDock)); |
3334 | -+ } |
3335 | - } |
3336 | - static void _on_menu_destroyed (GtkWidget *menu, CairoDock *pDock) |
3337 | - { |
3338 | |
3339 | === removed file 'debian/patches/02-bzr_fixed_compilation_error.patch' |
3340 | --- debian/patches/02-bzr_fixed_compilation_error.patch 2012-04-25 01:29:46 +0000 |
3341 | +++ debian/patches/02-bzr_fixed_compilation_error.patch 1970-01-01 00:00:00 +0000 |
3342 | @@ -1,16 +0,0 @@ |
3343 | -## Description: ixed a compilation error with GLib >= 2.33 |
3344 | -## Origin/Author: Upstream (Fabrice Rey) |
3345 | -## https://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/cairo-dock/revision/1073 |
3346 | - |
3347 | -Index: cairo-dock/src/gldit/cairo-dock-keybinder.h |
3348 | -=================================================================== |
3349 | ---- cairo-dock.orig/src/gldit/cairo-dock-keybinder.h 2012-06-04 18:22:56.544276402 +0200 |
3350 | -+++ cairo-dock/src/gldit/cairo-dock-keybinder.h 2012-06-04 18:23:13.528276165 +0200 |
3351 | -@@ -31,7 +31,6 @@ |
3352 | - #ifndef __CD_KEY_BINDER_H__ |
3353 | - #define __CD_KEY_BINDER_H__ |
3354 | - |
3355 | --#include <glib/gtypes.h> |
3356 | - #include "cairo-dock-struct.h" |
3357 | - #include "cairo-dock-manager.h" |
3358 | - |
3359 | |
3360 | === modified file 'debian/patches/series' |
3361 | --- debian/patches/series 2012-04-25 01:29:46 +0000 |
3362 | +++ debian/patches/series 2012-06-19 14:00:30 +0000 |
3363 | @@ -1,2 +0,0 @@ |
3364 | -02-bzr_fixed_compilation_error.patch |
3365 | -01-bzr_dock-s_menu.patch |
3366 | |
3367 | === modified file 'po/ar.po' |
3368 | --- po/ar.po 2012-04-16 16:03:43 +0000 |
3369 | +++ po/ar.po 2012-06-19 14:00:30 +0000 |
3370 | @@ -7,14 +7,14 @@ |
3371 | msgstr "" |
3372 | "Project-Id-Version: cairo-dock-core\n" |
3373 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3374 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3375 | -"PO-Revision-Date: 2012-03-22 13:22+0000\n" |
3376 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3377 | +"PO-Revision-Date: 2012-04-14 18:49+0000\n" |
3378 | "Last-Translator: Matthieu Baerts <matttbe@gmail.com>\n" |
3379 | "Language-Team: Arabic <ar@li.org>\n" |
3380 | "MIME-Version: 1.0\n" |
3381 | "Content-Type: text/plain; charset=UTF-8\n" |
3382 | "Content-Transfer-Encoding: 8bit\n" |
3383 | -"X-Launchpad-Export-Date: 2012-04-13 05:20+0000\n" |
3384 | +"X-Launchpad-Export-Date: 2012-04-15 04:37+0000\n" |
3385 | "X-Generator: Launchpad (build 15070)\n" |
3386 | "Language: ar\n" |
3387 | |
3388 | |
3389 | === modified file 'po/be.po' |
3390 | --- po/be.po 2012-04-16 16:03:43 +0000 |
3391 | +++ po/be.po 2012-06-19 14:00:30 +0000 |
3392 | @@ -7,14 +7,14 @@ |
3393 | msgstr "" |
3394 | "Project-Id-Version: cairo-dock-core\n" |
3395 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3396 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3397 | -"PO-Revision-Date: 2012-04-01 14:07+0000\n" |
3398 | -"Last-Translator: Vitaly Danilovich <Unknown>\n" |
3399 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3400 | +"PO-Revision-Date: 2012-04-14 18:54+0000\n" |
3401 | +"Last-Translator: Matthieu Baerts <matttbe@gmail.com>\n" |
3402 | "Language-Team: Belarusian <be@li.org>\n" |
3403 | "MIME-Version: 1.0\n" |
3404 | "Content-Type: text/plain; charset=UTF-8\n" |
3405 | "Content-Transfer-Encoding: 8bit\n" |
3406 | -"X-Launchpad-Export-Date: 2012-04-13 05:20+0000\n" |
3407 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
3408 | "X-Generator: Launchpad (build 15070)\n" |
3409 | "Language: be\n" |
3410 | |
3411 | @@ -420,6 +420,8 @@ |
3412 | msgid "translator-credits" |
3413 | msgstr "" |
3414 | "Launchpad Contributions:\n" |
3415 | +" Fabounet https://launchpad.net/~fabounet03\n" |
3416 | +" Matthieu Baerts https://launchpad.net/~matttbe\n" |
3417 | " Vitaly Danilovich https://launchpad.net/~danvyr" |
3418 | |
3419 | #: ../src/cairo-dock-menu.c:285 |
3420 | |
3421 | === modified file 'po/bn.po' |
3422 | --- po/bn.po 2012-04-16 16:03:43 +0000 |
3423 | +++ po/bn.po 2012-06-19 14:00:30 +0000 |
3424 | @@ -7,14 +7,14 @@ |
3425 | msgstr "" |
3426 | "Project-Id-Version: cairo-dock-core\n" |
3427 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3428 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3429 | -"PO-Revision-Date: 2012-03-22 13:28+0000\n" |
3430 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3431 | +"PO-Revision-Date: 2012-04-14 18:51+0000\n" |
3432 | "Last-Translator: Fabounet <fabounet03@gmail.com>\n" |
3433 | "Language-Team: Bengali <bn@li.org>\n" |
3434 | "MIME-Version: 1.0\n" |
3435 | "Content-Type: text/plain; charset=UTF-8\n" |
3436 | "Content-Transfer-Encoding: 8bit\n" |
3437 | -"X-Launchpad-Export-Date: 2012-04-13 05:20+0000\n" |
3438 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
3439 | "X-Generator: Launchpad (build 15070)\n" |
3440 | "Language: bn\n" |
3441 | |
3442 | |
3443 | === modified file 'po/ca.po' |
3444 | --- po/ca.po 2012-04-16 16:03:43 +0000 |
3445 | +++ po/ca.po 2012-06-19 14:00:30 +0000 |
3446 | @@ -8,14 +8,14 @@ |
3447 | msgstr "" |
3448 | "Project-Id-Version: cairo-dock-core\n" |
3449 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3450 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3451 | -"PO-Revision-Date: 2012-03-22 13:42+0000\n" |
3452 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3453 | +"PO-Revision-Date: 2012-04-14 18:52+0000\n" |
3454 | "Last-Translator: Fabounet <fabounet03@gmail.com>\n" |
3455 | "Language-Team: Catalan <ca@li.org>\n" |
3456 | "MIME-Version: 1.0\n" |
3457 | "Content-Type: text/plain; charset=UTF-8\n" |
3458 | "Content-Transfer-Encoding: 8bit\n" |
3459 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
3460 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
3461 | "X-Generator: Launchpad (build 15070)\n" |
3462 | "Language: ca\n" |
3463 | |
3464 | |
3465 | === modified file 'po/cs.po' |
3466 | --- po/cs.po 2012-04-16 16:03:43 +0000 |
3467 | +++ po/cs.po 2012-06-19 14:00:30 +0000 |
3468 | @@ -7,14 +7,14 @@ |
3469 | msgstr "" |
3470 | "Project-Id-Version: cairo-dock-core\n" |
3471 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3472 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3473 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3474 | "PO-Revision-Date: 2012-03-21 03:01+0000\n" |
3475 | "Last-Translator: Michal Mlejnek <chaemil72@gmail.com>\n" |
3476 | "Language-Team: Czech <cs@li.org>\n" |
3477 | "MIME-Version: 1.0\n" |
3478 | "Content-Type: text/plain; charset=UTF-8\n" |
3479 | "Content-Transfer-Encoding: 8bit\n" |
3480 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
3481 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
3482 | "X-Generator: Launchpad (build 15070)\n" |
3483 | "Language: cs\n" |
3484 | |
3485 | |
3486 | === modified file 'po/cy.po' |
3487 | --- po/cy.po 2012-04-16 16:03:43 +0000 |
3488 | +++ po/cy.po 2012-06-19 14:00:30 +0000 |
3489 | @@ -7,14 +7,14 @@ |
3490 | msgstr "" |
3491 | "Project-Id-Version: cairo-dock-core\n" |
3492 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3493 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3494 | -"PO-Revision-Date: 2012-03-22 12:57+0000\n" |
3495 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3496 | +"PO-Revision-Date: 2012-04-14 18:53+0000\n" |
3497 | "Last-Translator: Fabounet <fabounet03@gmail.com>\n" |
3498 | "Language-Team: Welsh <cy@li.org>\n" |
3499 | "MIME-Version: 1.0\n" |
3500 | "Content-Type: text/plain; charset=UTF-8\n" |
3501 | "Content-Transfer-Encoding: 8bit\n" |
3502 | -"X-Launchpad-Export-Date: 2012-04-13 05:23+0000\n" |
3503 | +"X-Launchpad-Export-Date: 2012-04-15 04:40+0000\n" |
3504 | "X-Generator: Launchpad (build 15070)\n" |
3505 | "Language: cy\n" |
3506 | |
3507 | |
3508 | === modified file 'po/de.po' |
3509 | --- po/de.po 2012-04-16 16:03:43 +0000 |
3510 | +++ po/de.po 2012-06-19 14:00:30 +0000 |
3511 | @@ -7,14 +7,14 @@ |
3512 | msgstr "" |
3513 | "Project-Id-Version: cairo-dock-core\n" |
3514 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3515 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3516 | -"PO-Revision-Date: 2012-04-10 11:01+0000\n" |
3517 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3518 | +"PO-Revision-Date: 2012-04-14 18:49+0000\n" |
3519 | "Last-Translator: Daniel Winzen <d@winzen4.de>\n" |
3520 | "Language-Team: German <de@li.org>\n" |
3521 | "MIME-Version: 1.0\n" |
3522 | "Content-Type: text/plain; charset=UTF-8\n" |
3523 | "Content-Transfer-Encoding: 8bit\n" |
3524 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
3525 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
3526 | "X-Generator: Launchpad (build 15070)\n" |
3527 | "Language: de\n" |
3528 | |
3529 | |
3530 | === modified file 'po/el.po' |
3531 | --- po/el.po 2012-04-16 16:03:43 +0000 |
3532 | +++ po/el.po 2012-06-19 14:00:30 +0000 |
3533 | @@ -8,14 +8,14 @@ |
3534 | msgstr "" |
3535 | "Project-Id-Version: cairo-dock_el\n" |
3536 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3537 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3538 | -"PO-Revision-Date: 2012-03-22 13:29+0000\n" |
3539 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3540 | +"PO-Revision-Date: 2012-04-14 18:54+0000\n" |
3541 | "Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n" |
3542 | "Language-Team: Greek\n" |
3543 | "MIME-Version: 1.0\n" |
3544 | "Content-Type: text/plain; charset=UTF-8\n" |
3545 | "Content-Transfer-Encoding: 8bit\n" |
3546 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
3547 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
3548 | "X-Generator: Launchpad (build 15070)\n" |
3549 | "X-Poedit-Country: France\n" |
3550 | "Language: \n" |
3551 | |
3552 | === modified file 'po/en_GB.po' |
3553 | --- po/en_GB.po 2012-04-16 16:03:43 +0000 |
3554 | +++ po/en_GB.po 2012-06-19 14:00:30 +0000 |
3555 | @@ -7,14 +7,14 @@ |
3556 | msgstr "" |
3557 | "Project-Id-Version: cairo-dock-core\n" |
3558 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3559 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3560 | -"PO-Revision-Date: 2012-03-22 13:35+0000\n" |
3561 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3562 | +"PO-Revision-Date: 2012-04-14 18:54+0000\n" |
3563 | "Last-Translator: Philippe Le Toquin <philippe@ppmt.org>\n" |
3564 | "Language-Team: English (United Kingdom) <en_GB@li.org>\n" |
3565 | "MIME-Version: 1.0\n" |
3566 | "Content-Type: text/plain; charset=UTF-8\n" |
3567 | "Content-Transfer-Encoding: 8bit\n" |
3568 | -"X-Launchpad-Export-Date: 2012-04-13 05:23+0000\n" |
3569 | +"X-Launchpad-Export-Date: 2012-04-15 04:40+0000\n" |
3570 | "X-Generator: Launchpad (build 15070)\n" |
3571 | "Language: \n" |
3572 | |
3573 | |
3574 | === modified file 'po/eo.po' |
3575 | --- po/eo.po 2012-04-16 16:03:43 +0000 |
3576 | +++ po/eo.po 2012-06-19 14:00:30 +0000 |
3577 | @@ -7,14 +7,14 @@ |
3578 | msgstr "" |
3579 | "Project-Id-Version: cairo-dock-core\n" |
3580 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3581 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3582 | -"PO-Revision-Date: 2012-03-22 12:51+0000\n" |
3583 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3584 | +"PO-Revision-Date: 2012-04-14 18:53+0000\n" |
3585 | "Last-Translator: Matthieu Baerts <matttbe@gmail.com>\n" |
3586 | "Language-Team: Esperanto <eo@li.org>\n" |
3587 | "MIME-Version: 1.0\n" |
3588 | "Content-Type: text/plain; charset=UTF-8\n" |
3589 | "Content-Transfer-Encoding: 8bit\n" |
3590 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
3591 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
3592 | "X-Generator: Launchpad (build 15070)\n" |
3593 | "Language: eo\n" |
3594 | |
3595 | |
3596 | === modified file 'po/es.po' |
3597 | --- po/es.po 2012-04-16 16:03:43 +0000 |
3598 | +++ po/es.po 2012-06-19 14:00:30 +0000 |
3599 | @@ -2,15 +2,15 @@ |
3600 | msgstr "" |
3601 | "Project-Id-Version: 1.6.2\n" |
3602 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
3603 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
3604 | -"PO-Revision-Date: 2012-03-22 12:53+0000\n" |
3605 | -"Last-Translator: Fabounet <fabounet03@gmail.com>\n" |
3606 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
3607 | +"PO-Revision-Date: 2012-06-12 06:24+0000\n" |
3608 | +"Last-Translator: Morgus <Unknown>\n" |
3609 | "Language-Team: \n" |
3610 | "MIME-Version: 1.0\n" |
3611 | "Content-Type: text/plain; charset=UTF-8\n" |
3612 | "Content-Transfer-Encoding: 8bit\n" |
3613 | -"X-Launchpad-Export-Date: 2012-04-13 05:22+0000\n" |
3614 | -"X-Generator: Launchpad (build 15070)\n" |
3615 | +"X-Launchpad-Export-Date: 2012-06-13 04:35+0000\n" |
3616 | +"X-Generator: Launchpad (build 15389)\n" |
3617 | "Language: \n" |
3618 | "X-Poedit-Language: Spanish\n" |
3619 | |
3620 | @@ -30,7 +30,7 @@ |
3621 | |
3622 | #: ../src/cairo-dock-gui-commons.c:369 |
3623 | msgid "Configure this applet" |
3624 | -msgstr "Configurar esta mini-aplicación" |
3625 | +msgstr "Configurar esta miniaplicación" |
3626 | |
3627 | #: ../src/cairo-dock-gui-commons.c:406 ../src/cairo-dock-gui-main.c:131 |
3628 | msgid "Files" |
3629 | @@ -187,7 +187,7 @@ |
3630 | |
3631 | #: ../src/cairo-dock-gui-main.c:1541 |
3632 | msgid "Applets can be displayed on your desktop as widgets." |
3633 | -msgstr "Las mini-aplicaciones pueden situarse en el escritorio como objetos." |
3634 | +msgstr "Las miniaplicaciones pueden situarse en el escritorio como objetos." |
3635 | |
3636 | #: ../src/cairo-dock-gui-main.c:1542 ../data/messages:89 ../data/messages:989 |
3637 | msgid "Desklets" |
3638 | @@ -313,7 +313,7 @@ |
3639 | msgid "" |
3640 | "Click on an applet in order to have a preview and a description for it." |
3641 | msgstr "" |
3642 | -"Haga clic sobre una mini-aplicación para tener una vista previa y una " |
3643 | +"Pulse sobre una miniaplicación para ver una previsualización y una " |
3644 | "descripción de ella." |
3645 | |
3646 | #: ../src/cairo-dock-gui-simple.c:823 |
3647 | @@ -322,7 +322,7 @@ |
3648 | |
3649 | #: ../src/cairo-dock-gui-simple.c:825 ../data/messages:485 |
3650 | msgid "On click:" |
3651 | -msgstr "Al hacer clic:" |
3652 | +msgstr "Al pulsar:" |
3653 | |
3654 | #: ../src/cairo-dock-gui-simple.c:898 |
3655 | msgid "" |
3656 | @@ -374,7 +374,7 @@ |
3657 | |
3658 | #: ../src/cairo-dock-menu.c:219 ../src/cairo-dock-menu.c:953 |
3659 | msgid "Get more applets!" |
3660 | -msgstr "¡Obtener más complementos!" |
3661 | +msgstr "Obtener más miniaplicaciones" |
3662 | |
3663 | #: ../src/cairo-dock-menu.c:223 ../src/cairo-dock-menu.c:229 |
3664 | msgid "Donate" |
3665 | @@ -422,18 +422,42 @@ |
3666 | msgid "translator-credits" |
3667 | msgstr "" |
3668 | "Launchpad Contributions:\n" |
3669 | +" Adolfo Jayme Barrientos https://launchpad.net/~fitoschido\n" |
3670 | +" Alain Jerrel Bustamante-López https://launchpad.net/~zanmato\n" |
3671 | " Albert Milian https://launchpad.net/~mln-gmx\n" |
3672 | +" Andrés Casals Jahnsen https://launchpad.net/~mxwig23\n" |
3673 | +" Carlos Joel Delgado Pizarro https://launchpad.net/~carlosj2585\n" |
3674 | " Carlos Rosales https://launchpad.net/~chartre\n" |
3675 | +" Daniel O. Mondaca S. https://launchpad.net/~dnielm\n" |
3676 | +" David Portella https://launchpad.net/~dobled\n" |
3677 | " DiegoJ https://launchpad.net/~diegojromerolopez\n" |
3678 | +" FaPrO https://launchpad.net/~fabro-pro\n" |
3679 | " Fabounet https://launchpad.net/~fabounet03\n" |
3680 | +" Florencia Mincucci https://launchpad.net/~flomincucci\n" |
3681 | +" Gonzalo Testa https://launchpad.net/~gonzalogtesta\n" |
3682 | +" Harold https://launchpad.net/~sancospi\n" |
3683 | " Joaquín Padilla Rivero https://launchpad.net/~logseman\n" |
3684 | +" José A. Fuentes Santiago https://launchpad.net/~joanfusan\n" |
3685 | +" José Luis Figueroa https://launchpad.net/~jolfig\n" |
3686 | +" Juan Eduardo Riva https://launchpad.net/~juaneduardoriva\n" |
3687 | +" Juan Pablo Marzetti https://launchpad.net/~yonpols\n" |
3688 | +" Kaede https://launchpad.net/~caramelo--asesino\n" |
3689 | " Martín V. https://launchpad.net/~martinvukovic\n" |
3690 | " Miguel Valdiri Badillo https://launchpad.net/~catastro1\n" |
3691 | " Monkey https://launchpad.net/~monkey-libre\n" |
3692 | " Morgus https://launchpad.net/~morgus\n" |
3693 | +" Patricio Gonzalez https://launchpad.net/~pagondel\n" |
3694 | +" Ricardo A. Hermosilla Carrillo https://launchpad.net/~rahermosillac\n" |
3695 | " Sergio Meneses https://launchpad.net/~sergiomeneses\n" |
3696 | +" Stefano Prenna https://launchpad.net/~stefanoprenna\n" |
3697 | +" benjamin https://launchpad.net/~jesuisbenjamin\n" |
3698 | " david cg https://launchpad.net/~dcardelleg\n" |
3699 | -" orvalius https://launchpad.net/~orvalius" |
3700 | +" hoortiz https://launchpad.net/~hoortiz\n" |
3701 | +" hug0 https://launchpad.net/~hug0\n" |
3702 | +" orvalius https://launchpad.net/~orvalius\n" |
3703 | +" polkillas https://launchpad.net/~paulsanzcalvo\n" |
3704 | +" rubioo https://launchpad.net/~rubioo\n" |
3705 | +" sebikul https://launchpad.net/~sebikul" |
3706 | |
3707 | #: ../src/cairo-dock-menu.c:285 |
3708 | msgid "Support" |
3709 | @@ -487,9 +511,9 @@ |
3710 | "Now move some launchers or applets into it by right-clicking on the icon -> " |
3711 | "move to another dock" |
3712 | msgstr "" |
3713 | -"El nuevo lanzador ha sido creado.\n" |
3714 | -"Ahora mueva algunos lanzadores o complementos dentro haciendo clic derecho " |
3715 | -"en el ícono -> mover a otro lanzador" |
3716 | +"Se ha creado el nuevo dock.\n" |
3717 | +"Ahora, mueva algunos lanzadores o miniaplicaciones a él pulsando con el " |
3718 | +"botón derecho sobre un icono ‣ Mover a otro dock" |
3719 | |
3720 | #: ../src/cairo-dock-menu.c:567 |
3721 | msgid "Add" |
3722 | @@ -542,9 +566,9 @@ |
3723 | "You can customize it by right-clicking on it -> cairo-dock -> configure this " |
3724 | "dock." |
3725 | msgstr "" |
3726 | -"El nuevo lanzador ha sido creado.\n" |
3727 | -"Puede personalizarlo haciendo clic derecho en él -> cairo-dock -> configurar " |
3728 | -"este lanzador" |
3729 | +"Se ha creado el nuevo dock.\n" |
3730 | +"Puede personalizarlo pulsando con el botón derecho sobre él ‣ Cairo-Dock ‣ " |
3731 | +"Configurar este dock" |
3732 | |
3733 | #: ../src/cairo-dock-menu.c:754 |
3734 | msgid "" |
3735 | @@ -558,7 +582,7 @@ |
3736 | #, c-format |
3737 | msgid "You're about to remove this applet (%s) from the dock. Are you sure?" |
3738 | msgstr "" |
3739 | -"Está apunto de remover la mini-aplicación (%s) de la barra. ¿Está seguro?" |
3740 | +"Está a punto de quitar esta miniaplicación (%s) del dock. ¿Está seguro?" |
3741 | |
3742 | # SOME DESCRIPTIVE TITLE. |
3743 | # Copyright (C) 2007 Cairo-Dock project |
3744 | @@ -572,7 +596,7 @@ |
3745 | |
3746 | #: ../src/cairo-dock-menu.c:858 |
3747 | msgid "Configure behaviour, appearance, and applets." |
3748 | -msgstr "Configurar el comportamiento, la apariencia y aplicaciones." |
3749 | +msgstr "Configurar comportamiento, apariencia y miniaplicaciones." |
3750 | |
3751 | #: ../src/cairo-dock-menu.c:863 |
3752 | msgid "Configure this dock" |
3753 | @@ -620,8 +644,8 @@ |
3754 | msgid "" |
3755 | "Third-party applets provide integration with many programs, like Pidgin" |
3756 | msgstr "" |
3757 | -"Los complementos de terceros proveen integración con otros programas, como " |
3758 | -"Pidgin" |
3759 | +"Las miniaplicaciones de terceros proporcionan integración con muchos " |
3760 | +"programas, como Pidgin" |
3761 | |
3762 | #: ../src/cairo-dock-menu.c:961 ../src/help/applet-init.c:28 |
3763 | #: ../src/help/applet-notifications.c:257 |
3764 | @@ -688,7 +712,7 @@ |
3765 | |
3766 | #: ../src/cairo-dock-menu.c:1065 |
3767 | msgid "Applet's handbook" |
3768 | -msgstr "Guía de la mini-aplicación" |
3769 | +msgstr "Guía de la miniaplicación" |
3770 | |
3771 | #: ../src/cairo-dock-menu.c:1110 |
3772 | msgid "Pick up an image" |
3773 | @@ -1189,13 +1213,11 @@ |
3774 | "Hope you will enjoy this soft !\n" |
3775 | " (you can now click on this dialog to close it)" |
3776 | msgstr "" |
3777 | -"Bienvenido a Cairo-Dock !\n" |
3778 | -"Esta aplicación esta aquí para ayudarlo a comenzar usando el dock; solo e " |
3779 | -"click sobre el.\n" |
3780 | -"Si tiene alguna pregunta/solicitud/observación, por favor visítenos en " |
3781 | -"http://glx-dock.org.\n" |
3782 | -"Esperamos disfrute este software!\n" |
3783 | -" (ahora se puede hacer click en este cuadro de dialogo para cerrarlo)" |
3784 | +"¡Bienvenido a Cairo-Dock!\n" |
3785 | +"Esta miniaplicación le ayudará a usar el dock, solo pulse sobre ella.\n" |
3786 | +"Si tiene preguntas/pedidos/sugerencias, visítenos en http://glx-dock.org.\n" |
3787 | +"Esperamos que disfrute este software.\n" |
3788 | +" (pulse en este diálogo para cerrarlo)" |
3789 | |
3790 | #: ../src/help/applet-composite.c:160 |
3791 | msgid "Don't ask me any more" |
3792 | @@ -1244,13 +1266,12 @@ |
3793 | "Middle-click to open the configuration window.\n" |
3794 | "Right-click to access some troubleshooting actions." |
3795 | msgstr "" |
3796 | -"Esta aplicación se hace para ayudarlo.\n" |
3797 | -"Haga click en el icono para que aparezca consejos útiles acerca de las " |
3798 | -"posibilidades de El Cairo-Dock.\n" |
3799 | -"Haga click con el botón central del ratón para abrir la ventana de " |
3800 | -"configuración.\n" |
3801 | -"Haga click con el botón derecho para acceder a algunas de las acciones de " |
3802 | -"solución de problemas." |
3803 | +"Esta miniaplicación tiene como objetivo ayudarle.\n" |
3804 | +"Pulse en su icono para mostrar consejos útiles sobre las posibilidades de " |
3805 | +"Cairo-Dock.\n" |
3806 | +"Pulse con el botón central para abrir la ventana de configuración.\n" |
3807 | +"Pulse con el botón derecho para acceder a algunas acciones de solución de " |
3808 | +"problemas." |
3809 | |
3810 | #: ../src/help/applet-notifications.c:247 |
3811 | msgid "Open global settings" |
3812 | @@ -1329,11 +1350,11 @@ |
3813 | "Some applets let you bind a shortkey to an action, and decide which action " |
3814 | "sould be on middle-click." |
3815 | msgstr "" |
3816 | -"La mayoría de los iconos del dock realizan varias acciones : la acción " |
3817 | -"primaria con el botón izquierdo del ratón, una acción secundaria con el " |
3818 | -"botón central y acciones adicionales con el botón derecho (en el menú).\n" |
3819 | -"Algunos complementos permiten vincular una tecla de acceso rápido a una " |
3820 | -"acción y decidir qué acción se realiza con el click central." |
3821 | +"La mayoría de iconos en el dock tienen varias acciones: la acción primaria " |
3822 | +"se ejecuta al pulsar, la acción secundaria al pulsar con el botón central, y " |
3823 | +"acciones adicionales al pulsar con el botón derecho.\n" |
3824 | +"Algunas miniaplicaciones le permiten vincular una tecla de acceso rápido a " |
3825 | +"una acción y así decidir qué acción realizar al pulsar con el botón central." |
3826 | |
3827 | #: ../data/messages:7 |
3828 | msgid "Adding features" |
3829 | @@ -1349,16 +1370,16 @@ |
3830 | "the \"More applets\" button (which will lead you to our applets web page) " |
3831 | "and then just drag-and-drop the link of an applet into your dock." |
3832 | msgstr "" |
3833 | -"Cairo-Dock tiene muchos complementos. Los complementos son pequeñas " |
3834 | -"aplicaciones dentro del dock, por ejemplo un reloj o un botón de finalizar " |
3835 | -"sesión.\n" |
3836 | -"Para habilitar nuevos complementos, ir a preferencias (click derecho -> " |
3837 | -"Cairo-Dock -> configurar), ir a \"Componentes adicionales\", y marcar el " |
3838 | -"complemento que se desea.\n" |
3839 | -"Más complementos se pueden instalar fácilmente: en la ventana de " |
3840 | -"configuración, click en el botón de \"Obtener más complementos\" (que nos " |
3841 | -"redireccionará a nuestra página web de complementos) y luego simplemente " |
3842 | -"arrastrar el enlace del complemento deseado al dock." |
3843 | +"Cairo-Dock tiene muchas miniaplicaciones. Las miniaplicaciones son pequeños " |
3844 | +"complementos que residen en el dock, por ejemplo un reloj o un botón para " |
3845 | +"cerrar sesión.\n" |
3846 | +"Para activar miniaplicaciones nuevas, abra la configuración (pulsación " |
3847 | +"derecha ‣ Cairo-Dock ‣ Configurar), vaya a «Añadidos», y active la " |
3848 | +"miniaplicación que desee.\n" |
3849 | +"Puede instalar más miniaplicaciones fácilmente: en la ventana de " |
3850 | +"configuración, pulse en «Más miniaplicaciones» (que le llevará a nuestro " |
3851 | +"sitio web de miniaplicaciones) y luego arrastre el enlace de una " |
3852 | +"miniaplicación y suéltelo en su dock." |
3853 | |
3854 | #: ../data/messages:13 |
3855 | msgid "Adding a launcher" |
3856 | @@ -1374,8 +1395,8 @@ |
3857 | "Se puede añadir un lanzador arrastrándolo desde el menú de Aplicaciones y " |
3858 | "soltándolo dentro del dock. Una flecha animada aparecerá cuando se pueda " |
3859 | "soltar.\n" |
3860 | -"Alternativamente, si una aplicación ya está abierta, se puede hacer click " |
3861 | -"derecho en su icono y seleccionar \"Crear un lanzador\"." |
3862 | +"Alternativamente, si una aplicación ya está abierta, puede pulsar su icono " |
3863 | +"con el botón derecho y seleccionar «Crear un lanzador»." |
3864 | |
3865 | #: ../data/messages:17 |
3866 | msgid "Removing a launcher" |
3867 | @@ -1441,6 +1462,17 @@ |
3868 | "of them to be used instead of the default icon theme, in the global config " |
3869 | "window." |
3870 | msgstr "" |
3871 | +"Para un lanzador o miniaplicación:\n" |
3872 | +"Abra la configuración de un icono y establezca la ruta a una imagen.\n" |
3873 | +"- Para un icono de aplicación:\n" |
3874 | +"Pulsación derecha sobre el icono ‣ «Otras acciones» ‣ «Establecer un icono " |
3875 | +"personalizado», y elija una imagen. Para quitar la imagen personalizada, " |
3876 | +"pulsación derecha sobre el icono ‣ «Otras acciones» ‣ «Quitar el icono " |
3877 | +"personalizado».\n" |
3878 | +"\n" |
3879 | +"Si ha instalado temas de iconos en su equipo, también puede seleccionar uno " |
3880 | +"de ellos para su uso en lugar del tema predeterminado, en la ventana de " |
3881 | +"configuración global." |
3882 | |
3883 | #: ../data/messages:33 |
3884 | msgid "Resizing icons" |
3885 | @@ -1456,13 +1488,13 @@ |
3886 | "Also, you can define the size of each applet independently in their own " |
3887 | "settings." |
3888 | msgstr "" |
3889 | -"Se pueden hacer los iconos o el efecto de zoom mayor o menor. Aprir las " |
3890 | -"opciones (click derecho -> Cairo-Dock -> configuración), e ir a Apariencia " |
3891 | -"(o Iconos en modo avanzado).\n" |
3892 | -"Notar que si hay demasiados iconos en el dock, serán emequeñecidos para " |
3893 | -"caber en la pantalla.\n" |
3894 | -"También se puede definir el tamaño de cada complemento independientemente en " |
3895 | -"sus opciones." |
3896 | +"Puede cambiar el tamaño de los iconos y el efecto de ampliación. Abra la " |
3897 | +"configuración (pulsación derecha ‣ Cairo-Dock ‣ Configurar), y vaya a " |
3898 | +"Apariencia (o Iconos en el modo avanzado).\n" |
3899 | +"Note que si hay demasiados iconos en el dock, éstos se reducirán para caber " |
3900 | +"en la pantalla.\n" |
3901 | +"También puede definir el tamaño individual de cada miniaplicación en sus " |
3902 | +"configuraciones." |
3903 | |
3904 | #: ../data/messages:37 |
3905 | msgid "Separating icons" |
3906 | @@ -1515,8 +1547,8 @@ |
3907 | msgid "" |
3908 | "You can close a window by middle-clicking on its icon (or from the menu)." |
3909 | msgstr "" |
3910 | -"Puedes cerrar una ventana haciendo click medio sobre el icono (o desde el " |
3911 | -"menú)" |
3912 | +"Puede cerrar una ventana haciendo una pulsación central sobre su icono (o " |
3913 | +"desde el menú)." |
3914 | |
3915 | #: ../data/messages:51 |
3916 | msgid "Minimizing / restauring a window" |
3917 | @@ -1636,7 +1668,7 @@ |
3918 | |
3919 | #: ../data/messages:91 |
3920 | msgid "Placing applets on your desktop" |
3921 | -msgstr "Colocando complementos en tu escritorio" |
3922 | +msgstr "Colocar miniaplicaciones en su escritorio" |
3923 | |
3924 | #: ../data/messages:93 |
3925 | msgid "" |
3926 | @@ -1644,10 +1676,13 @@ |
3927 | "wherever on your desktop.\n" |
3928 | "To detach an applet from the dock, simply drag and drop it outside the dock." |
3929 | msgstr "" |
3930 | +"Las miniaplicaciones pueden posicionarse en «desklets» que son ventanas " |
3931 | +"pequeñas que pueden ubicarse en cualquier lugar de su escritorio.\n" |
3932 | +"Para separar una miniaplicación del dock, simplemente arrástrela fuera de él." |
3933 | |
3934 | #: ../data/messages:95 |
3935 | msgid "Moving desklets" |
3936 | -msgstr "" |
3937 | +msgstr "Moviendo desklets" |
3938 | |
3939 | #: ../data/messages:97 |
3940 | msgid "" |
3941 | @@ -1683,6 +1718,9 @@ |
3942 | "applet, go to Desklet, and select the decoration you want (you can provide " |
3943 | "your own one)." |
3944 | msgstr "" |
3945 | +"Los «desklets» pueden tener decoraciones. Para cambiar eso, abra la " |
3946 | +"configuración de la miniaplicación, vaya a Desklet, y seleccione la " |
3947 | +"decoración que desee (puede proporcionar la suya propia)." |
3948 | |
3949 | #: ../data/messages:107 |
3950 | msgid "Useful Features" |
3951 | @@ -1701,6 +1739,12 @@ |
3952 | "When a task has been or is going to be scheduled, the applet will warn you " |
3953 | "(15mn before the event, and also 1 day before in the case of an anniversary)." |
3954 | msgstr "" |
3955 | +"Active la miniaplicación Reloj.\n" |
3956 | +"Al pulsar sobre él se abrirá un calendario.\n" |
3957 | +"Al pulsar dos veces sobre él se abrirá un editor de tareas. Allí puede " |
3958 | +"añadir o quitar tareas.\n" |
3959 | +"Cuando una tarea ha sido o será programada, la miniaplicación le avisará " |
3960 | +"(15min antes del evento, o un día antes en caso de un aniversario)." |
3961 | |
3962 | #: ../data/messages:113 |
3963 | msgid "Having a list of all windows" |
3964 | @@ -1736,6 +1780,9 @@ |
3965 | "Activate the Show-Desktop applet.\n" |
3966 | "Right-click on it -> \"change resolution\" -> select the one you want." |
3967 | msgstr "" |
3968 | +"Active la miniaplicación Mostrar escritorio.\n" |
3969 | +"Pulse con el botón derecho en él ‣ «Cambiar resolución» ‣ seleccione la que " |
3970 | +"desee.t" |
3971 | |
3972 | #: ../data/messages:125 |
3973 | msgid "Locking your session" |
3974 | @@ -2083,15 +2130,16 @@ |
3975 | #: ../data/messages:229 |
3976 | msgid "The «netspeed» applet displays 0 even when I'm downloading something" |
3977 | msgstr "" |
3978 | -"El applet «Redrapidez» expone 0 incluso cuando estoy trasvasando algo." |
3979 | +"La miniaplicación «Velocidad de red» muestra 0 aun cuando estoy descargando " |
3980 | +"algo" |
3981 | |
3982 | #: ../data/messages:231 |
3983 | msgid "" |
3984 | "Tip: you can run several instances of this applet if you wish to monitor " |
3985 | "several interfaces." |
3986 | msgstr "" |
3987 | -"Pista: se puede iniciar este aplique varias veces si se desea controlar " |
3988 | -"varias interfaces." |
3989 | +"Consejo: puede ejecutar varias instancias de esta miniaplicación si quiere " |
3990 | +"monitorear varias interfaces." |
3991 | |
3992 | #: ../data/messages:233 |
3993 | msgid "" |
3994 | @@ -2169,7 +2217,7 @@ |
3995 | msgid "" |
3996 | "If you wish to develop an applet, a complete documentation is available here." |
3997 | msgstr "" |
3998 | -"Si usted desea desarrollar un applet, una documentación completa está " |
3999 | +"Si quiere desarrollar una miniaplicación, hay una completa documentación " |
4000 | "disponible aquí." |
4001 | |
4002 | #: ../data/messages:255 |
4003 | @@ -2182,9 +2230,10 @@ |
4004 | "or to interact with the dock in any kind of way, a full DBus API is " |
4005 | "described here." |
4006 | msgstr "" |
4007 | -"Si quieres crear un appelt con Python, Perl o cualquier otro lenguaje,\n" |
4008 | -"o si quieres interactura con el dock por cualquira manera, un API DBus " |
4009 | -"complete esta describido ahí." |
4010 | +"Si quiere desarrollar una miniaplicación con Python, Perl o cualquier otro " |
4011 | +"lenguaje,\n" |
4012 | +"o quiere interactuar con el dock de otra manera, aquí está descrita una API " |
4013 | +"completa de DBus." |
4014 | |
4015 | #: ../data/messages:259 |
4016 | msgid "DBus API" |
4017 | @@ -2214,7 +2263,7 @@ |
4018 | |
4019 | #: ../data/messages:273 |
4020 | msgid "More applets available online!" |
4021 | -msgstr "" |
4022 | +msgstr "Más miniaplicaiones disponibles en línea" |
4023 | |
4024 | #: ../data/messages:275 |
4025 | msgid "Cairo-Dock-Plug-ins-Extras" |
4026 | @@ -2316,15 +2365,15 @@ |
4027 | |
4028 | #: ../data/messages:315 |
4029 | msgid "Set to 0 to use the default applet size" |
4030 | -msgstr "Establezca a 0 para usar el tamaño de aplique predeterminado" |
4031 | +msgstr "Configure a 0 para usar el tamaño predeterminado de miniaplicación" |
4032 | |
4033 | #: ../data/messages:317 |
4034 | msgid "Desired icon size for this applet" |
4035 | -msgstr "Tamaño de icono deseado para este aplique" |
4036 | +msgstr "Tamaño de icono deseado para esta miniaplicación" |
4037 | |
4038 | #: ../data/messages:319 |
4039 | msgid "Applet's Handbook" |
4040 | -msgstr "Manual del aplique" |
4041 | +msgstr "Manual de la miniaplicación" |
4042 | |
4043 | #: ../data/messages:321 |
4044 | msgid "Desklet" |
4045 | @@ -2722,7 +2771,7 @@ |
4046 | |
4047 | #: ../data/messages:523 |
4048 | msgid "Add or remove any applet" |
4049 | -msgstr "Agrega o remueve cualquier applet" |
4050 | +msgstr "Añadir o quitar cualquier miniaplicación" |
4051 | |
4052 | #: ../data/messages:525 |
4053 | msgid "" |
4054 | @@ -2730,11 +2779,11 @@ |
4055 | "Click on the left check-box to (de)activate an applet.\n" |
4056 | "Once an applet is active, you can configure it by right clicking on its icon." |
4057 | msgstr "" |
4058 | -"Seleccione una línea para obtener una descripción y una vista previa de la " |
4059 | -"mini-aplicación.\n" |
4060 | -"Haga click en la casilla izquierda para (des)activar una miniaplicación.\n" |
4061 | -"Una vez que la mini-aplicación está activa, puede configurarla haciendo " |
4062 | -"click derecho en su icono" |
4063 | +"Seleccione una línea para obtener una previsualización y descripción de la " |
4064 | +"miniaplicación.\n" |
4065 | +"Pulse en la casilla a la izquierda para (des)activar una miniaplicación.\n" |
4066 | +"Una vez que la miniaplicación esté activa, puede configurarla haciendo una " |
4067 | +"pulsación derecha sobre su icono." |
4068 | |
4069 | #: ../data/messages:527 |
4070 | msgid "" |
4071 | @@ -3346,6 +3395,8 @@ |
4072 | #: ../data/messages:909 |
4073 | msgid "Several applets can be visible even when the dock is hidden" |
4074 | msgstr "" |
4075 | +"Algunas miniaplicaciones pueden permanecer visibles incluso cuando el dock " |
4076 | +"está oculto" |
4077 | |
4078 | #: ../data/messages:911 |
4079 | msgid "Default background color when the dock is hidden" |
4080 | |
4081 | === modified file 'po/et.po' |
4082 | --- po/et.po 2012-04-16 16:03:43 +0000 |
4083 | +++ po/et.po 2012-06-19 14:00:30 +0000 |
4084 | @@ -7,14 +7,14 @@ |
4085 | msgstr "" |
4086 | "Project-Id-Version: cairo-dock-core\n" |
4087 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
4088 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
4089 | -"PO-Revision-Date: 2012-03-22 13:42+0000\n" |
4090 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
4091 | +"PO-Revision-Date: 2012-04-14 18:48+0000\n" |
4092 | "Last-Translator: Fabounet <fabounet03@gmail.com>\n" |
4093 | "Language-Team: Estonian <et@li.org>\n" |
4094 | "MIME-Version: 1.0\n" |
4095 | "Content-Type: text/plain; charset=UTF-8\n" |
4096 | "Content-Transfer-Encoding: 8bit\n" |
4097 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
4098 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
4099 | "X-Generator: Launchpad (build 15070)\n" |
4100 | "Language: et\n" |
4101 | |
4102 | |
4103 | === modified file 'po/eu.po' |
4104 | --- po/eu.po 2012-04-16 16:03:43 +0000 |
4105 | +++ po/eu.po 2012-06-19 14:00:30 +0000 |
4106 | @@ -8,14 +8,14 @@ |
4107 | msgstr "" |
4108 | "Project-Id-Version: cairo-dock-core\n" |
4109 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
4110 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
4111 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
4112 | "PO-Revision-Date: 2012-03-21 03:02+0000\n" |
4113 | "Last-Translator: Mendi <arrietaarambarri@hotmail.com>\n" |
4114 | "Language-Team: librezale.org\n" |
4115 | "MIME-Version: 1.0\n" |
4116 | "Content-Type: text/plain; charset=UTF-8\n" |
4117 | "Content-Transfer-Encoding: 8bit\n" |
4118 | -"X-Launchpad-Export-Date: 2012-04-13 05:20+0000\n" |
4119 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
4120 | "X-Generator: Launchpad (build 15070)\n" |
4121 | "Language: eu\n" |
4122 | |
4123 | |
4124 | === modified file 'po/fi.po' |
4125 | --- po/fi.po 2012-04-16 16:03:43 +0000 |
4126 | +++ po/fi.po 2012-06-19 14:00:30 +0000 |
4127 | @@ -7,14 +7,14 @@ |
4128 | msgstr "" |
4129 | "Project-Id-Version: cairo-dock-core\n" |
4130 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
4131 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
4132 | -"PO-Revision-Date: 2012-03-22 13:37+0000\n" |
4133 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
4134 | +"PO-Revision-Date: 2012-04-14 18:54+0000\n" |
4135 | "Last-Translator: Rami Selin <rami.selin@gmail.com>\n" |
4136 | "Language-Team: Finnish <fi@li.org>\n" |
4137 | "MIME-Version: 1.0\n" |
4138 | "Content-Type: text/plain; charset=UTF-8\n" |
4139 | "Content-Transfer-Encoding: 8bit\n" |
4140 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
4141 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
4142 | "X-Generator: Launchpad (build 15070)\n" |
4143 | "Language: fi\n" |
4144 | |
4145 | |
4146 | === modified file 'po/fo.po' |
4147 | --- po/fo.po 2012-04-16 16:03:43 +0000 |
4148 | +++ po/fo.po 2012-06-19 14:00:30 +0000 |
4149 | @@ -7,14 +7,14 @@ |
4150 | msgstr "" |
4151 | "Project-Id-Version: cairo-dock-core\n" |
4152 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
4153 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
4154 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
4155 | "PO-Revision-Date: 2012-03-21 02:58+0000\n" |
4156 | "Last-Translator: Matthieu Baerts <matttbe@gmail.com>\n" |
4157 | "Language-Team: Faroese <fo@li.org>\n" |
4158 | "MIME-Version: 1.0\n" |
4159 | "Content-Type: text/plain; charset=UTF-8\n" |
4160 | "Content-Transfer-Encoding: 8bit\n" |
4161 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
4162 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
4163 | "X-Generator: Launchpad (build 15070)\n" |
4164 | "Language: fo\n" |
4165 | |
4166 | |
4167 | === modified file 'po/fr.po' |
4168 | --- po/fr.po 2012-04-16 16:03:43 +0000 |
4169 | +++ po/fr.po 2012-06-19 14:00:30 +0000 |
4170 | @@ -7,15 +7,15 @@ |
4171 | msgstr "" |
4172 | "Project-Id-Version: 2.1.0\n" |
4173 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
4174 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
4175 | -"PO-Revision-Date: 2012-04-01 12:59+0000\n" |
4176 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
4177 | +"PO-Revision-Date: 2012-05-08 02:24+0000\n" |
4178 | "Last-Translator: Matthieu Baerts <matttbe@gmail.com>\n" |
4179 | "Language-Team: Cairo-Dock <LL@li.org>\n" |
4180 | "MIME-Version: 1.0\n" |
4181 | "Content-Type: text/plain; charset=UTF-8\n" |
4182 | "Content-Transfer-Encoding: 8bit\n" |
4183 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
4184 | -"X-Generator: Launchpad (build 15070)\n" |
4185 | +"X-Launchpad-Export-Date: 2012-05-09 04:40+0000\n" |
4186 | +"X-Generator: Launchpad (build 15213)\n" |
4187 | "X-Poedit-Country: France\n" |
4188 | "Language: \n" |
4189 | "X-Poedit-Language: French\n" |
4190 | @@ -437,6 +437,7 @@ |
4191 | " Lentdormi https://launchpad.net/~dahr974\n" |
4192 | " Matthieu Baerts https://launchpad.net/~matttbe\n" |
4193 | " Nicolas Delvaux https://launchpad.net/~malizor\n" |
4194 | +" Pierre Slamich https://launchpad.net/~pierre-slamich\n" |
4195 | " SQP https://launchpad.net/~sqp\n" |
4196 | " Thibault Févry https://launchpad.net/~thibaultfevry\n" |
4197 | " bouchard renaud https://launchpad.net/~renaud-bouchard\n" |
4198 | @@ -3555,12 +3556,12 @@ |
4199 | |
4200 | #: ../data/messages:907 |
4201 | msgid "Background when hidden" |
4202 | -msgstr "Arrière plan lorsque que c'est caché" |
4203 | +msgstr "Arrière plan du dock caché" |
4204 | |
4205 | #: ../data/messages:909 |
4206 | msgid "Several applets can be visible even when the dock is hidden" |
4207 | msgstr "" |
4208 | -"Plusieurs applets peuvent être visible même lorsque le dock est caché." |
4209 | +"Plusieurs applets peuvent être visibles même lorsque le dock est caché." |
4210 | |
4211 | #: ../data/messages:911 |
4212 | msgid "Default background color when the dock is hidden" |
4213 | |
4214 | === modified file 'po/gl.po' |
4215 | --- po/gl.po 2012-04-16 16:03:43 +0000 |
4216 | +++ po/gl.po 2012-06-19 14:00:30 +0000 |
4217 | @@ -7,14 +7,14 @@ |
4218 | msgstr "" |
4219 | "Project-Id-Version: cairo-dock-core\n" |
4220 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
4221 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
4222 | -"PO-Revision-Date: 2012-03-22 13:17+0000\n" |
4223 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
4224 | +"PO-Revision-Date: 2012-04-14 18:49+0000\n" |
4225 | "Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>\n" |
4226 | "Language-Team: Galician <gl@li.org>\n" |
4227 | "MIME-Version: 1.0\n" |
4228 | "Content-Type: text/plain; charset=UTF-8\n" |
4229 | "Content-Transfer-Encoding: 8bit\n" |
4230 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
4231 | +"X-Launchpad-Export-Date: 2012-04-15 04:38+0000\n" |
4232 | "X-Generator: Launchpad (build 15070)\n" |
4233 | "Language: gl\n" |
4234 | |
4235 | |
4236 | === modified file 'po/hu.po' |
4237 | --- po/hu.po 2012-04-16 16:03:43 +0000 |
4238 | +++ po/hu.po 2012-06-19 14:00:30 +0000 |
4239 | @@ -7,15 +7,15 @@ |
4240 | msgstr "" |
4241 | "Project-Id-Version: cairo-dock-core\n" |
4242 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
4243 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
4244 | -"PO-Revision-Date: 2012-03-22 13:17+0000\n" |
4245 | -"Last-Translator: Fabounet <fabounet03@gmail.com>\n" |
4246 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
4247 | +"PO-Revision-Date: 2012-04-22 13:19+0000\n" |
4248 | +"Last-Translator: Péter Trombitás <trombipeti@gmail.com>\n" |
4249 | "Language-Team: Hungarian <hu@li.org>\n" |
4250 | "MIME-Version: 1.0\n" |
4251 | "Content-Type: text/plain; charset=UTF-8\n" |
4252 | "Content-Transfer-Encoding: 8bit\n" |
4253 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
4254 | -"X-Generator: Launchpad (build 15070)\n" |
4255 | +"X-Launchpad-Export-Date: 2012-04-23 04:42+0000\n" |
4256 | +"X-Generator: Launchpad (build 15135)\n" |
4257 | "Language: hu\n" |
4258 | |
4259 | #: ../src/cairo-dock-gui-commons.c:221 |
4260 | @@ -70,15 +70,15 @@ |
4261 | |
4262 | #: ../src/cairo-dock-gui-commons.c:575 |
4263 | msgid "Press the shortkey" |
4264 | -msgstr "" |
4265 | +msgstr "Nyomja meg a gyorsgombot" |
4266 | |
4267 | #: ../src/cairo-dock-gui-commons.c:594 |
4268 | msgid "Change the shortkey" |
4269 | -msgstr "" |
4270 | +msgstr "Gyorsgomb megváltoztatása" |
4271 | |
4272 | #: ../src/cairo-dock-gui-commons.c:681 |
4273 | msgid "Origin" |
4274 | -msgstr "" |
4275 | +msgstr "Forrás" |
4276 | |
4277 | #: ../src/cairo-dock-gui-commons.c:686 |
4278 | msgid "Action" |
4279 | @@ -86,7 +86,7 @@ |
4280 | |
4281 | #: ../src/cairo-dock-gui-commons.c:690 |
4282 | msgid "Shortkey" |
4283 | -msgstr "" |
4284 | +msgstr "Gyorsgomb" |
4285 | |
4286 | #: ../src/cairo-dock-gui-items.c:242 |
4287 | msgid "" |
4288 | @@ -154,7 +154,7 @@ |
4289 | |
4290 | #: ../src/cairo-dock-gui-main.c:1502 ../data/messages:515 ../data/messages:767 |
4291 | msgid "Shortkeys" |
4292 | -msgstr "" |
4293 | +msgstr "Gyorsgombok" |
4294 | |
4295 | #: ../src/cairo-dock-gui-main.c:1508 |
4296 | msgid "All of the parameters you will never want to tweak." |
4297 | @@ -441,6 +441,8 @@ |
4298 | "Thanks to all people that help us to improve the Cairo-Dock project.\n" |
4299 | "Thanks to all current, former and future contributors." |
4300 | msgstr "" |
4301 | +"Köszönet mindenkinek, aki segíti a Cairo-Dock projekt fejlődését.\n" |
4302 | +"Köszönet minden jelenlegi, volt és jövendőbeli közreműködőnek." |
4303 | |
4304 | #: ../src/cairo-dock-menu.c:317 |
4305 | msgid "How to help us?" |
4306 | @@ -448,7 +450,7 @@ |
4307 | |
4308 | #: ../src/cairo-dock-menu.c:318 |
4309 | msgid "Don't hesitate to join the project, we need you ;)" |
4310 | -msgstr "" |
4311 | +msgstr "Ne habozzon, csatlakozzon most a projekthez, szükségünk van Önre!" |
4312 | |
4313 | #: ../src/cairo-dock-menu.c:319 |
4314 | msgid "Former contributors" |
4315 | @@ -460,7 +462,7 @@ |
4316 | |
4317 | #: ../src/cairo-dock-menu.c:321 |
4318 | msgid "Users of our forum" |
4319 | -msgstr "" |
4320 | +msgstr "A fórum felhasználói" |
4321 | |
4322 | #: ../src/cairo-dock-menu.c:322 |
4323 | msgid "Artwork" |
4324 | @@ -589,7 +591,7 @@ |
4325 | |
4326 | #: ../src/cairo-dock-menu.c:898 |
4327 | msgid "Lock icons position" |
4328 | -msgstr "" |
4329 | +msgstr "Ikonok helyzetének rögzítése" |
4330 | |
4331 | #: ../src/cairo-dock-menu.c:902 |
4332 | msgid "This will (un)lock the position of the icons." |
4333 | |
4334 | === modified file 'po/id.po' |
4335 | --- po/id.po 2012-04-16 16:03:43 +0000 |
4336 | +++ po/id.po 2012-06-19 14:00:30 +0000 |
4337 | @@ -7,14 +7,14 @@ |
4338 | msgstr "" |
4339 | "Project-Id-Version: cairo-dock-core\n" |
4340 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
4341 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
4342 | -"PO-Revision-Date: 2012-03-22 13:36+0000\n" |
4343 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
4344 | +"PO-Revision-Date: 2012-04-14 18:54+0000\n" |
4345 | "Last-Translator: Fabounet <fabounet03@gmail.com>\n" |
4346 | "Language-Team: Indonesian <id@li.org>\n" |
4347 | "MIME-Version: 1.0\n" |
4348 | "Content-Type: text/plain; charset=UTF-8\n" |
4349 | "Content-Transfer-Encoding: 8bit\n" |
4350 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
4351 | +"X-Launchpad-Export-Date: 2012-04-15 04:39+0000\n" |
4352 | "X-Generator: Launchpad (build 15070)\n" |
4353 | "Language: id\n" |
4354 | |
4355 | |
4356 | === modified file 'po/it.po' |
4357 | --- po/it.po 2012-04-16 16:03:43 +0000 |
4358 | +++ po/it.po 2012-06-19 14:00:30 +0000 |
4359 | @@ -7,15 +7,15 @@ |
4360 | msgstr "" |
4361 | "Project-Id-Version: 1.4.5\n" |
4362 | "Report-Msgid-Bugs-To: fabounet@glx-dock.org\n" |
4363 | -"POT-Creation-Date: 2012-04-12 00:33+0000\n" |
4364 | -"PO-Revision-Date: 2012-03-22 13:48+0000\n" |
4365 | -"Last-Translator: Mattia Tavernini <maathias@interfree.it>\n" |
4366 | +"POT-Creation-Date: 2012-04-14 15:42+0000\n" |
4367 | +"PO-Revision-Date: 2012-06-03 11:35+0000\n" |
4368 | +"Last-Translator: Wonderfulheart <Unknown>\n" |
4369 | "Language-Team: Italian <kde-i18n-it@lists.kde.org>\n" |
4370 | "MIME-Version: 1.0\n" |
4371 | "Content-Type: text/plain; charset=UTF-8\n" |
4372 | "Content-Transfer-Encoding: 8bit\n" |
4373 | -"X-Launchpad-Export-Date: 2012-04-13 05:21+0000\n" |
4374 | -"X-Generator: Launchpad (build 15070)\n" |
4375 | +"X-Launchpad-Export-Date: 2012-06-04 04:35+0000\n" |
4376 | +"X-Generator: Launchpad (build 15353)\n" |
4377 | "Language: it\n" |
4378 | |
4379 | #: ../src/cairo-dock-gui-commons.c:221 |
4380 | @@ -71,23 +71,23 @@ |
4381 | |
4382 | #: ../src/cairo-dock-gui-commons.c:575 |
4383 | msgid "Press the shortkey" |
4384 | -msgstr "" |
4385 | +msgstr "Premere il tasto scorciatoia" |
4386 | |
4387 | #: ../src/cairo-dock-gui-commons.c:594 |
4388 | msgid "Change the shortkey" |
4389 | -msgstr "" |
4390 | +msgstr "Cambia il tasto scorciatoia" |
4391 | |
4392 | #: ../src/cairo-dock-gui-commons.c:681 |
4393 | msgid "Origin" |
4394 | -msgstr "" |
4395 | +msgstr "Origine" |
4396 | |
4397 | #: ../src/cairo-dock-gui-commons.c:686 |
4398 | msgid "Action" |
4399 | -msgstr "" |
4400 | +msgstr "Azione" |
4401 | |
4402 | #: ../src/cairo-dock-gui-commons.c:690 |
4403 | msgid "Shortkey" |
4404 | -msgstr "" |
4405 | +msgstr "Tasto scorciatoia" |
4406 | |
4407 | #: ../src/cairo-dock-gui-items.c:242 |
4408 | msgid "" |
4409 | @@ -102,7 +102,7 @@ |
4410 | |
4411 | #: ../src/cairo-dock-gui-items.c:878 |
4412 | msgid "Remove this item" |
4413 | -msgstr "" |
4414 | +msgstr "Rimuovere questa voce" |
4415 | |
4416 | #: ../src/cairo-dock-gui-main.c:129 ../data/messages:665 |
4417 | msgid "Behaviour" |
4418 | @@ -153,11 +153,11 @@ |
4419 | |
4420 | #: ../src/cairo-dock-gui-main.c:1501 |
4421 | msgid "Define all the keyboard shortcuts currently available." |
4422 | -msgstr "" |
4423 | +msgstr "Rileva tutte le scorciatoie da tastiera attualmente disponibili." |
4424 | |
4425 | #: ../src/cairo-dock-gui-main.c:1502 ../data/messages:515 ../data/messages:767 |
4426 | msgid "Shortkeys" |
4427 | -msgstr "" |
4428 | +msgstr "Tasti scorciatoia" |
4429 | |
4430 | #: ../src/cairo-dock-gui-main.c:1508 |
4431 | msgid "All of the parameters you will never want to tweak." |
4432 | @@ -315,7 +315,7 @@ |
4433 | #: ../src/cairo-dock-gui-simple.c:797 |
4434 | msgid "" |
4435 | "Click on an applet in order to have a preview and a description for it." |
4436 | -msgstr "Clicca su di un'applet per averne un'anteprima e una sua descrizione" |
4437 | +msgstr "Clicca su un'applet per avere un'anteprima e una sua descrizione." |
4438 | |
4439 | #: ../src/cairo-dock-gui-simple.c:823 |
4440 | msgid "On mouse hover:" |
4441 | @@ -348,8 +348,8 @@ |
4442 | "powerful tool to customise your current theme." |
4443 | msgstr "" |
4444 | "La Modalità avanzata dà la possibilità di configurare ogni singolo parametro " |
4445 | -"della dock. E' uno strumento potente per customizzare il tema attualmente in " |
4446 | -"uso." |
4447 | +"della dock. E' uno strumento potente per personalizzare il tema attualmente " |
4448 | +"in uso." |
4449 | |
4450 | #: ../src/cairo-dock-gui-themes.c:149 |
4451 | msgid "Importing theme ..." |
4452 | @@ -387,24 +387,24 @@ |
4453 | msgid "" |
4454 | "Support the people who spend countless hours to bring you the best dock ever." |
4455 | msgstr "" |
4456 | -"Supporta le persone che spendono gratuitamente il loro tempo per consegnarti " |
4457 | -"la migliore dock in assoluto." |
4458 | +"Sostieni le persone che impiegano gratuitamente il loro tempo per " |
4459 | +"consegnarti la migliore dock in assoluto." |
4460 | |
4461 | #: ../src/cairo-dock-menu.c:260 |
4462 | msgid "Here is a list of the current developers and contributors" |
4463 | -msgstr "" |
4464 | +msgstr "Ecco una lista degli attuali sviluppatori e collaboratori" |
4465 | |
4466 | #: ../src/cairo-dock-menu.c:261 |
4467 | msgid "Developers" |
4468 | -msgstr "" |
4469 | +msgstr "Sviluppatori" |
4470 | |
4471 | #: ../src/cairo-dock-menu.c:262 |
4472 | msgid "Main developer and project leader" |
4473 | -msgstr "" |
4474 | +msgstr "Sviluppatore principale e Leader del Progetto" |
4475 | |
4476 | #: ../src/cairo-dock-menu.c:263 |
4477 | msgid "Contributors / Hackers" |
4478 | -msgstr "" |
4479 | +msgstr "Collaboratori / Esperti" |
4480 | |
4481 | #: ../src/cairo-dock-menu.c:265 |
4482 | msgid "Development" |
4483 | @@ -412,23 +412,33 @@ |
4484 | |
4485 | #: ../src/cairo-dock-menu.c:280 |
4486 | msgid "Website" |
4487 | -msgstr "" |
4488 | +msgstr "Sito Web" |
4489 | |
4490 | #: ../src/cairo-dock-menu.c:281 |
4491 | msgid "Beta-testing / Suggestions / Forum animation" |
4492 | -msgstr "" |
4493 | +msgstr "Beta-testing / Suggerimenti / Animazione Forum" |
4494 | |
4495 | #: ../src/cairo-dock-menu.c:282 |
4496 | msgid "Translators for this language" |
4497 | -msgstr "" |
4498 | +msgstr "Traduttori nella lingua italiana" |
4499 | |
4500 | #: ../src/cairo-dock-menu.c:283 |
4501 | msgid "translator-credits" |
4502 | msgstr "" |
4503 | "Launchpad Contributions:\n" |
4504 | " Andrea Amoroso https://launchpad.net/~heiko81\n" |
4505 | +" Andrea Calabrò https://launchpad.net/~mastropino\n" |
4506 | +" Giampaolo Bozzali https://launchpad.net/~g.bozzali\n" |
4507 | +" Loscuby https://launchpad.net/~scuby84\n" |
4508 | +" Luca Vercelli https://launchpad.net/~luca-vercelli\n" |
4509 | " Mario Calabrese https://launchpad.net/~mario-calabrese\n" |
4510 | -" Mattia Tavernini https://launchpad.net/~maathias" |
4511 | +" Mattia Tavernini https://launchpad.net/~maathias\n" |
4512 | +" Natale https://launchpad.net/~ngm270189\n" |
4513 | +" Stefano Prenna https://launchpad.net/~stefanoprenna\n" |
4514 | +" Wonderfulheart https://launchpad.net/~wonderfulheart\n" |
4515 | +" bobol68 https://launchpad.net/~bobol68\n" |
4516 | +" danielesil88 https://launchpad.net/~danielesil88\n" |
4517 | +" yoruk https://launchpad.net/~yoruk87" |
4518 | |
4519 | #: ../src/cairo-dock-menu.c:285 |
4520 | msgid "Support" |
4521 | @@ -439,26 +449,29 @@ |
4522 | "Thanks to all people that help us to improve the Cairo-Dock project.\n" |
4523 | "Thanks to all current, former and future contributors." |
4524 | msgstr "" |
4525 | +"Grazie a tutte le persone che ci aiutano a migliorare il progetto Cairo-" |
4526 | +"Dock.\n" |
4527 | +"Grazie a tutti i collaboratori attuali, precedenti e futuri." |
4528 | |
4529 | #: ../src/cairo-dock-menu.c:317 |
4530 | msgid "How to help us?" |
4531 | -msgstr "" |
4532 | +msgstr "Come aiutarci?" |
4533 | |
4534 | #: ../src/cairo-dock-menu.c:318 |
4535 | msgid "Don't hesitate to join the project, we need you ;)" |
4536 | -msgstr "" |
4537 | +msgstr "Non esitare ad unirti al progetto, abbiamo bisogno di te ;)" |
4538 | |
4539 | #: ../src/cairo-dock-menu.c:319 |
4540 | msgid "Former contributors" |
4541 | -msgstr "" |
4542 | +msgstr "Collaboratori di concetto" |
4543 | |
4544 | #: ../src/cairo-dock-menu.c:320 |
4545 | msgid "For a complete list, please have a look to BZR logs" |
4546 | -msgstr "" |
4547 | +msgstr "Per una lista completa, per favore date uno sguardo ai log della BZR" |
4548 | |
4549 | #: ../src/cairo-dock-menu.c:321 |
4550 | msgid "Users of our forum" |
4551 | -msgstr "" |
4552 | +msgstr "Utenti del nostro forum" |
4553 | |
4554 | #: ../src/cairo-dock-menu.c:322 |
4555 | msgid "Artwork" |
4556 | @@ -466,11 +479,11 @@ |
4557 | |
4558 | #: ../src/cairo-dock-menu.c:324 |
4559 | msgid "Thanks" |
4560 | -msgstr "" |
4561 | +msgstr "Ringraziamenti" |
4562 | |
4563 | #: ../src/cairo-dock-menu.c:401 |
4564 | msgid "Quit Cairo-Dock?" |
4565 | -msgstr "Esci da Cairo-Dock?" |
4566 | +msgstr "Uscire da Cairo-Dock?" |
4567 | |
4568 | #: ../src/cairo-dock-menu.c:431 ../src/cairo-dock-menu.c:573 |
4569 | msgid "Separator" |
4570 | @@ -483,7 +496,7 @@ |
4571 | "move to another dock" |
4572 | msgstr "" |
4573 | "La nuova dock è stata creata.\n" |
4574 | -"Adesso sposta qualche lanciatore o applet su di lei con clic destro " |
4575 | +"Adesso sposta qualche lanciatore o applet su di essa con clic destro " |
4576 | "sull'icona -> Sposta in un'altra dock" |
4577 | |
4578 | #: ../src/cairo-dock-menu.c:567 |
4579 | @@ -500,12 +513,12 @@ |
4580 | |
4581 | #: ../src/cairo-dock-menu.c:575 |
4582 | msgid "Custom launcher" |
4583 | -msgstr "Lanciatori personalizzati" |
4584 | +msgstr "Lanciatore personalizzato" |
4585 | |
4586 | #: ../src/cairo-dock-menu.c:576 |
4587 | msgid "" |
4588 | "Usually you would drag a launcher from the menu and drop it on the dock." |
4589 | -msgstr "Di solito trascineresti un lanciatore dal menu alla dock." |
4590 | +msgstr "Di solito dovresti trascinare un lanciatore dal menu alla dock." |
4591 | |
4592 | #: ../src/cairo-dock-menu.c:593 |
4593 | msgid "separator" |
4594 | @@ -551,7 +564,7 @@ |
4595 | #: ../src/cairo-dock-menu.c:795 |
4596 | #, c-format |
4597 | msgid "You're about to remove this applet (%s) from the dock. Are you sure?" |
4598 | -msgstr "Stai per rimuovere questo applet (%s) dalla dock. Sicuro?" |
4599 | +msgstr "Stai per rimuovere questa applet (%s) dalla dock. Sei sicuro?" |
4600 | |
4601 | #: ../src/cairo-dock-menu.c:853 |
4602 | msgid "Configure" |
4603 | @@ -559,7 +572,7 @@ |
4604 | |
4605 | #: ../src/cairo-dock-menu.c:858 |
4606 | msgid "Configure behaviour, appearance, and applets." |
4607 | -msgstr "Configura il comportamento, l'aspetto, e le applet." |
4608 | +msgstr "Configura il comportamento, l'aspetto e le applet." |
4609 | |
4610 | #: ../src/cairo-dock-menu.c:863 |
4611 | msgid "Configure this dock" |
4612 | @@ -568,7 +581,7 @@ |
4613 | #: ../src/cairo-dock-menu.c:868 |
4614 | msgid "Customize the position, visibility and appearance of this main dock." |
4615 | msgstr "" |
4616 | -"Personalizza la posizione, visibilità e apparenza della dock principale." |
4617 | +"Personalizza la posizione, la visibilità e l'aspetto della dock principale." |
4618 | |
4619 | #: ../src/cairo-dock-menu.c:870 |
4620 | msgid "Delete this dock" |
4621 | @@ -582,12 +595,12 @@ |
4622 | msgid "" |
4623 | "Choose from amongst many themes on the server or save your current theme." |
4624 | msgstr "" |
4625 | -"Scegli uno tra i molti temi disponibili sul server, e salva il tuo tema " |
4626 | +"Scegli tra uno dei molti temi disponibili sul server o salva il tuo tema " |
4627 | "corrente." |
4628 | |
4629 | #: ../src/cairo-dock-menu.c:898 |
4630 | msgid "Lock icons position" |
4631 | -msgstr "" |
4632 | +msgstr "Blocca le icone" |
4633 | |
4634 | #: ../src/cairo-dock-menu.c:902 |
4635 | msgid "This will (un)lock the position of the icons." |
4636 | @@ -609,8 +622,8 @@ |
4637 | msgid "" |
4638 | "Third-party applets provide integration with many programs, like Pidgin" |
4639 | msgstr "" |
4640 | -"Le applet di terze-parti provvedono all'integrazione di molti programmi, " |
4641 | -"come Pidgin" |
4642 | +"Le applet di terze-parti forniscono un'integrazione a molti programmi, come " |
4643 | +"Pidgin" |
4644 | |
4645 | #: ../src/cairo-dock-menu.c:961 ../src/help/applet-init.c:28 |
4646 | #: ../src/help/applet-notifications.c:257 |
4647 | @@ -636,14 +649,17 @@ |
4648 | "It's not advised to quit the dock but you can press Shift to unlock this " |
4649 | "menu entry." |
4650 | msgstr "" |
4651 | +"Stai usando una sessione Cairo-Dock!\n" |
4652 | +"Non è consigliato uscire dalla dock ma è possibile premere Shift per " |
4653 | +"sbloccare questa voce del menu." |
4654 | |
4655 | #: ../src/cairo-dock-menu.c:1018 ../src/cairo-dock-menu.c:1039 |
4656 | msgid "Edit" |
4657 | -msgstr "" |
4658 | +msgstr "Modifica" |
4659 | |
4660 | #: ../src/cairo-dock-menu.c:1020 ../src/cairo-dock-menu.c:1046 |
4661 | msgid "Remove" |
4662 | -msgstr "" |
4663 | +msgstr "Elimina" |
4664 | |
4665 | #: ../src/cairo-dock-menu.c:1021 |
4666 | msgid "" |
4667 | @@ -666,7 +682,7 @@ |
4668 | |
4669 | #: ../src/cairo-dock-menu.c:1043 |
4670 | msgid "Detach" |
4671 | -msgstr "" |
4672 | +msgstr "Distacca" |
4673 | |
4674 | #: ../src/cairo-dock-menu.c:1043 |
4675 | msgid "Return to the dock" |
4676 | @@ -674,7 +690,7 @@ |
4677 | |
4678 | #: ../src/cairo-dock-menu.c:1050 |
4679 | msgid "Duplicate" |
4680 | -msgstr "" |
4681 | +msgstr "Duplica" |
4682 | |
4683 | #: ../src/cairo-dock-menu.c:1065 |
4684 | msgid "Applet's handbook" |
4685 | @@ -682,7 +698,7 @@ |
4686 | |
4687 | #: ../src/cairo-dock-menu.c:1110 |
4688 | msgid "Pick up an image" |
4689 | -msgstr "" |
4690 | +msgstr "Trovare un'immagine" |
4691 | |
4692 | #: ../src/cairo-dock-menu.c:1341 |
4693 | #, c-format |
4694 | @@ -778,7 +794,7 @@ |
4695 | #: ../src/cairo-dock-menu.c:1666 ../src/cairo-dock-menu.c:1668 |
4696 | #: ../data/messages:745 |
4697 | msgid "Lower" |
4698 | -msgstr "" |
4699 | +msgstr "Arrotola" |
4700 | |
4701 | #: ../src/cairo-dock-menu.c:1674 ../src/cairo-dock-menu.c:1676 |
4702 | #: ../data/messages:739 |
4703 | @@ -832,7 +848,7 @@ |
4704 | "config.\n" |
4705 | "It is located in the 'Taskbar' module." |
4706 | msgstr "" |
4707 | -"L'opzione ' sovrascrivi le icone di X' è stata automaticamente abilitata " |
4708 | +"L'opzione 'sovrascrivi le icone di X' è stata automaticamente abilitata " |
4709 | "nella configurazione.\n" |
4710 | "E' rintracciabile nel modulo 'Taskbar'." |
4711 | |
4712 | @@ -847,7 +863,7 @@ |
4713 | |
4714 | #: ../src/cairo-dock.c:328 |
4715 | msgid "Use OpenGL backend." |
4716 | -msgstr "Usa il backend OpenGL" |
4717 | +msgstr "Usa il backend OpenGL." |
4718 | |
4719 | #: ../src/cairo-dock.c:331 |
4720 | msgid "" |
4721 | @@ -859,7 +875,7 @@ |
4722 | |
4723 | #: ../src/cairo-dock.c:334 |
4724 | msgid "Ask again on startup which backend to use." |
4725 | -msgstr "" |
4726 | +msgstr "Chiedi nuovamente all'avvio quale backend usare." |
4727 | |
4728 | #: ../src/cairo-dock.c:337 |
4729 | msgid "Force the dock to consider this environnement - use it with care." |
4730 | @@ -870,7 +886,7 @@ |
4731 | msgid "" |
4732 | "Force the dock to load from this directory, instead of ~/.config/cairo-dock." |
4733 | msgstr "" |
4734 | -"Forza la dock a caricare da questa cartella, invece che da ~/.config/cairo-" |
4735 | +"Forza la dock a caricare da questa directory, invece che da ~/.config/cairo-" |
4736 | "dock." |
4737 | |
4738 | #: ../src/cairo-dock.c:343 |
4739 | @@ -879,15 +895,15 @@ |
4740 | "default server address." |
4741 | msgstr "" |
4742 | "Indirizzo di un server contenente temi addizionali. Questo sovrascriverà " |
4743 | -"l'indirizzo server di default." |
4744 | +"l'indirizzo del server predefinito." |
4745 | |
4746 | #: ../src/cairo-dock.c:346 |
4747 | msgid "" |
4748 | "Wait for N seconds before starting; this is useful if you notice some " |
4749 | "problems when the dock starts with the session." |
4750 | msgstr "" |
4751 | -"Attendi per N secondi prima di partire; questo è utile se sperimenti " |
4752 | -"problemi quando la dock si avvia ad inizio sessione." |
4753 | +"Attendi per N secondi prima di partire; questo è utile se hai problemi " |
4754 | +"quando la dock si avvia ad inizio sessione." |
4755 | |
4756 | #: ../src/cairo-dock.c:349 |
4757 | msgid "" |
4758 | @@ -910,7 +926,7 @@ |
4759 | msgid "" |
4760 | "Log verbosity (debug,message,warning,critical,error); default is warning." |
4761 | msgstr "" |
4762 | -"Log verboso (debug,message,warning,critical,error); di base è solo warning." |
4763 | +"Log prolisso (debug,message,warning,critical,error); di base è solo warning." |
4764 | |
4765 | #: ../src/cairo-dock.c:361 |
4766 | msgid "Force to display some output messages with colors." |
4767 | @@ -942,8 +958,8 @@ |
4768 | "Ask the dock to load additionnal modules contained in this directory (though " |
4769 | "it is unsafe for your dock to load unnofficial modules)." |
4770 | msgstr "" |
4771 | -"Domanda alla dock di caricare moduli addizionali contenuti in questa " |
4772 | -"cartella (ricorda che non è sicuro per la tua dock, caricare moduli non " |
4773 | +"Domanda alla dock di caricare i moduli addizionali contenuti in questa " |
4774 | +"directory (sebbene non sia sicuro per la tua dock caricare moduli non " |
4775 | "ufficiali)." |
4776 | |
4777 | #: ../src/cairo-dock.c:383 |
4778 | @@ -951,20 +967,20 @@ |
4779 | "For debugging purpose only. The crash manager will not be started to hunt " |
4780 | "down the bugs." |
4781 | msgstr "" |
4782 | -"Per interessi di debug soltanto. Il manager dei crash non verrà avviato per " |
4783 | -"ricercare gli errori." |
4784 | +"Solo per interesse di debug. Il manager dei crash non sarà avviato per " |
4785 | +"ricercare degli errori." |
4786 | |
4787 | #: ../src/cairo-dock.c:386 |
4788 | msgid "" |
4789 | "For debugging purpose only. Some hidden and still unstable options will be " |
4790 | "activated." |
4791 | msgstr "" |
4792 | -"Per interessi di debug soltanto. Qualche opzione ancora nascosta e instabile " |
4793 | -"sarà attivata." |
4794 | +"Solo per interesse di debug. Saranno attivate delle opzioni ancora nascoste " |
4795 | +"ed instabili." |
4796 | |
4797 | #: ../src/cairo-dock.c:503 |
4798 | msgid "Use OpenGL in Cairo-Dock" |
4799 | -msgstr "Utilizza OpenGL in Cairo-Dock?" |
4800 | +msgstr "Utilizza OpenGL in Cairo-Dock" |
4801 | |
4802 | #: ../src/cairo-dock.c:511 |
4803 | msgid "" |
4804 | @@ -983,10 +999,10 @@ |
4805 | "In ogni caso, alcune schede video e/o i relativi driver non la supportano " |
4806 | "completamente, il che potrebbe causare un funzionamento non corretto della " |
4807 | "dock.\n" |
4808 | -"Attiva OpenGL?\n" |
4809 | +"Vuoi attivare OpenGL?\n" |
4810 | " (Per non mostrare questo avviso, lanciare la dock dal menu delle " |
4811 | "Applicazioni,\n" |
4812 | -" oppure con l'opzione -o per forzare OpenGL e -c per forzare cairo.)" |
4813 | +" oppure con l'opzione -o per forzare OpenGL e -c per forzare Cairo.)" |
4814 | |
4815 | #: ../src/cairo-dock.c:522 |
4816 | msgid "Remember this choice" |
4817 | @@ -1004,8 +1020,8 @@ |
4818 | "at http://glx-dock.org" |
4819 | msgstr "" |
4820 | "Il modulo '%s' potrebbe avere incontrato un problema.\n" |
4821 | -"E' stato riavviato con successo, ma è accaduto ancora; ti ringraziamo se lo " |
4822 | -"riferisci su http://glx-dock.org" |
4823 | +"E' stato riavviato con successo, ma se accade ancora, per favore, " |
4824 | +"riferiscilo su http://glx-dock.org" |
4825 | |
4826 | #: ../src/gldit/cairo-dock-applet-facility.h:277 |
4827 | msgid "" |
4828 | @@ -1051,7 +1067,7 @@ |
4829 | #: ../src/gldit/cairo-dock-dock-manager.c:1656 |
4830 | #: ../src/gldit/cairo-dock-dock-manager.c:1757 |
4831 | msgid "Pop up the main dock" |
4832 | -msgstr "" |
4833 | +msgstr "Fai apparire la Dock principale" |
4834 | |
4835 | #: ../src/gldit/cairo-dock-gui-factory.c:243 |
4836 | #, c-format |
4837 | @@ -1060,7 +1076,7 @@ |
4838 | |
4839 | #: ../src/gldit/cairo-dock-gui-factory.c:255 |
4840 | msgid "kB" |
4841 | -msgstr "kB" |
4842 | +msgstr "KB" |
4843 | |
4844 | #: ../src/gldit/cairo-dock-gui-factory.c:257 |
4845 | msgid "MB" |
4846 | @@ -1088,11 +1104,11 @@ |
4847 | |
4848 | #: ../src/gldit/cairo-dock-gui-factory.c:724 |
4849 | msgid "Pick up a file" |
4850 | -msgstr "" |
4851 | +msgstr "Trovare un file" |
4852 | |
4853 | #: ../src/gldit/cairo-dock-gui-factory.c:724 |
4854 | msgid "Pick up a directory" |
4855 | -msgstr "" |
4856 | +msgstr "Trovare una directory" |
4857 | |
4858 | #: ../src/gldit/cairo-dock-gui-factory.c:984 |
4859 | msgid "_Custom Icons_" |
4860 | @@ -1135,7 +1151,7 @@ |
4861 | |
4862 | #: ../src/gldit/cairo-dock-gui-factory.c:2962 |
4863 | msgid "Theme" |
4864 | -msgstr "tema" |
4865 | +msgstr "Tema" |
4866 | |
4867 | #: ../src/gldit/cairo-dock-gui-factory.c:2975 |
4868 | msgid "Rating" |
4869 | @@ -1143,7 +1159,7 @@ |
4870 | |
4871 | #: ../src/gldit/cairo-dock-gui-factory.c:2981 |
4872 | msgid "Sobriety" |
4873 | -msgstr "sobrietà" |
4874 | +msgstr "Sobrietà" |
4875 | |
4876 | #: ../src/gldit/cairo-dock-gui-factory.c:3054 |
4877 | msgid "link" |
4878 | @@ -1151,7 +1167,7 @@ |
4879 | |
4880 | #: ../src/gldit/cairo-dock-gui-factory.c:3107 |
4881 | msgid "Grab" |
4882 | -msgstr "cattura" |
4883 | +msgstr "Cattura" |
4884 | |
4885 | #: ../src/gldit/cairo-dock-struct.h:423 |
4886 | msgid "Default" |
4887 | @@ -1172,6 +1188,8 @@ |
4888 | "Could not access remote file %s. Maybe the server is down.\n" |
4889 | "Please retry later or contact us at glx-dock.org." |
4890 | msgstr "" |
4891 | +"Non posso accedere al file remoto %s. Il server potrebbe essere spento.\n" |
4892 | +"Per favore prova più tardi o contattaci su glx-dock.org." |
4893 | |
4894 | #: ../src/gldit/cairo-dock-themes-manager.c:267 |
4895 | #, c-format |
4896 | @@ -1192,12 +1210,12 @@ |
4897 | " (you can now click on this dialog to close it)" |
4898 | msgstr "" |
4899 | "Benvenuto in Cairo-Dock!\n" |
4900 | -"Quest' applet è qui per aiutarti ad iniziare con l'utilizzo della dock; " |
4901 | -"basta cliccarci sopra.\n" |
4902 | -"Se hai delle domande/richieste/segnalazioni, per favore spendi una visita al " |
4903 | +"Quest'applet è qui per aiutarti ad iniziare con l'utilizzo della dock; basta " |
4904 | +"cliccarci sopra.\n" |
4905 | +"Se hai delle domande/richieste/segnalazioni, per favore facci una visita al " |
4906 | "sito http://glx-dock.org.\n" |
4907 | -"Speriamo tu gradisca questo software!\n" |
4908 | -" (adesso puoi cliccare sul dialogo per chiuderlo)" |
4909 | +"Speriamo che tu gradisca questo software!\n" |
4910 | +" (adesso puoi cliccare su questo dialogo per chiuderlo)" |
4911 | |
4912 | #: ../src/help/applet-composite.c:160 |
4913 | msgid "Don't ask me any more" |
4914 | @@ -1390,7 +1408,7 @@ |
4915 | |
4916 | #: ../data/messages:21 |
4917 | msgid "Grouping icons into a sub-dock" |
4918 | -msgstr "Ragruppare le icone in sub-dock" |
4919 | +msgstr "Raggruppare le icone in una sub-dock" |
4920 | |
4921 | #: ../data/messages:23 |
4922 | msgid "" |
4923 | @@ -1465,13 +1483,13 @@ |
4924 | "Also, you can define the size of each applet independently in their own " |
4925 | "settings." |
4926 | msgstr "" |
4927 | -"Puoi rendere più grandi o più piccoli sia le icone che l'effetto zoom. Apri " |
4928 | -"le impostazioni (clic destro -> Cairo-Dock -> Configura) e vai su Aspetto (o " |
4929 | +"Puoi ingrandire o rimpicciolire sia le icone che l'effetto zoom. Apri le " |
4930 | +"impostazioni (clic destro -> Cairo-Dock -> Configura) e vai su Aspetto (o " |
4931 | "Icone nella modalità avanzata).\n" |
4932 | -"Considera che se ci saranno troppe icone sulla dock, queste verranno " |
4933 | +"Considera che se ci saranno troppe icone sulla dock, esse verranno " |
4934 | "ridimensionate per adattarsi allo schermo.\n" |
4935 | -"In più puoi definire la dimensione di ogni applet indipendentemente, " |
4936 | -"attraverso le loro impostazioni." |
4937 | +"Inoltre puoi definire la dimensione di ciascuna applet impostandone ognuna " |
4938 | +"indipendentemente." |
4939 | |
4940 | #: ../data/messages:37 |
4941 | msgid "Separating icons" |
4942 | @@ -1964,8 +1982,8 @@ |
4943 | "To remove a bookmark, right-click on its icon -> remove" |
4944 | msgstr "" |
4945 | "Attiva l'applet Scorciatoie.\n" |
4946 | -"Successivamente ogni segnalibro delle cartelle (quelli che appaiono in " |
4947 | -"Nautilus) sarà elencato in na sub-dock.\n" |
4948 | +"Successivamente, ogni segnalibro delle cartelle (quelli che appaiono in " |
4949 | +"Nautilus), sarà elencato in una sub-dock.\n" |
4950 | "Per aggiungere segnalibri, trascina semplicemente una cartella nell'icona " |
4951 | "dell'applet.\n" |
4952 | "Per rimuoverlo, clic destro sulla sua icona -> \"rimuovi\"" |
4953 | @@ -2146,10 +2164,10 @@ |
4954 | "If the dock is running with OpenGL, try to disable it by launching the dock " |
4955 | "with «cairo-dock -c»." |
4956 | msgstr "" |
4957 | -"Se hai una GeForce8, dovrai installare gli ultimi driver, perchè i " |
4958 | -"precedenti avevano molti bug.\n" |
4959 | +"Se hai una GeForce8, dovrai installare gli ultimi driver perché i precedenti " |
4960 | +"avevano molti bug.\n" |
4961 | "Se la dock sta andando senza OpenGL, prova a ridurre il numero di icone " |
4962 | -"sulla dock principale, oppure a ridurne la dimensione.\n" |
4963 | +"sulla dock principale oppure a ridurne la dimensione.\n" |
4964 | "Se la dock va con OpenGL, prova a disattivarlo lanciandola con 'cairo-dock -" |
4965 | "c'." |
4966 | |
4967 | @@ -2172,7 +2190,7 @@ |
4968 | "cards can do this, as can more and more Intel cards. Most ATI cards do not " |
4969 | "support OpenGL2.0." |
4970 | msgstr "" |
4971 | -"Occorre una scheda grafica con driver che supportino openGL2.0. La maggior " |
4972 | +"Occorre una scheda grafica con driver che supportino OpenGL2.0. La maggior " |
4973 | "parte delle schede Nvidia lo fanno, sempre più schede Intel ne sono in " |
4974 | "grado. La maggior parte delle schede ATI invece non può farlo." |
4975 | |
4976 | @@ -2241,7 +2259,7 @@ |
4977 | "Se usi KDE, è possibile tu debba dirgli il percorso della cartella Cestino.\n" |
4978 | "Apri l'editor di configurazione, e riempi il percorso del cestino; " |
4979 | "probabilmente è ~/.local/share/Trash/files. Stai molto attento quando digiti " |
4980 | -"un percorso qui!!! (Non inserire spazi nè caratteri invisibili)." |
4981 | +"un percorso qui!!! (Non inserire spazi né caratteri invisibili)." |
4982 | |
4983 | #: ../data/messages:239 |
4984 | msgid "" |
4985 | @@ -2355,8 +2373,8 @@ |
4986 | " One for stable releases and another which is updated weekly (unstable " |
4987 | "version)" |
4988 | msgstr "" |
4989 | -"Manteniamo due repository per Debian, Ubuntu e altre Debian-derivate:\n" |
4990 | -" Uno per la release stable e un altro aggiornato setttimanalmente (versione " |
4991 | +"Manteniamo due repository per Debian, Ubuntu e altre derivate Debian:\n" |
4992 | +" Uno per la release stable e un altro aggiornato settimanalmente (versione " |
4993 | "unstable)" |
4994 | |
4995 | #: ../data/messages:281 |
4996 | @@ -2425,7 +2443,7 @@ |
4997 | |
4998 | #: ../data/messages:307 |
4999 | msgid "Name of the dock it belongs to:" |
5000 | -msgstr "Nome della dock al quale appartiene:" |
When attempting to merge your branch into lp:ubuntu/cairo-dock, I still get 2 conflicts:
luke@acapella: ~/Ubuntu/ quantal/ bzr/cairo- dock/cairo- dock$ bzr conflicts cairo-dock- callbacks. c cairo-dock- dock-factory. c
Text conflict in src/gldit/
Text conflict in src/gldit/
Did you branch against the latest changes in the lp:ubuntu/cairo-dock package, or have I missed something?
Thanks for your work.