Merge lp:~cairo-dock-team/ubuntu/precise/cairo-dock/988102 into lp:ubuntu/precise/cairo-dock

Proposed by Matthieu Baerts
Status: Needs review
Proposed branch: lp:~cairo-dock-team/ubuntu/precise/cairo-dock/988102
Merge into: lp:ubuntu/precise/cairo-dock
Diff against target: 99 lines (+77/-0)
4 files modified
debian/changelog (+11/-0)
debian/patches/01-bzr_dock-s_menu.patch (+48/-0)
debian/patches/02-bzr_fixed_compilation_error.patch (+16/-0)
debian/patches/series (+2/-0)
To merge this branch: bzr merge lp:~cairo-dock-team/ubuntu/precise/cairo-dock/988102
Reviewer Review Type Date Requested Status
Andrew Starr-Bochicchio (community) Approve
Review via email: mp+103397@code.launchpad.net

Description of the change

Hello

The Cairo-Dock team is proposing a new patch to fix two bugs with Cairo-Dock's menus:
 * don't hide the dock if this dock is raised
 * don't try to check if the mouse has left the dock if the menu is raised

How to reproduce these bugs:
 * open an application and maximise its window: the dock is now hidden (except if you've modified the visibility option). Now move the mouse to display the dock and do a right click on it. You'll see a menu but the dock will disappear (it should be visible to have an interaction with the dock and to show the changes, etc.)
 * do a right click on the dock (or a left click on the Applications Menu applet or Status-Notifier applet, etc.) and quickly move the mouse somewhere else on the dock. You should see something like that: http://i.imgur.com/lrZGX.png (here we can see two icons of musicPlayer applet instead of one and Clipper icon has been partially hidden)

This patch is available there: lp:cairo-dock-core/3.0 => https://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/3.0.x/revision/1070

This branch should be ready to be pushed on lp:ubuntu/cairo-dock

Thank you for your help! ;)

To post a comment you must log in.
Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :

See comment in LP: #988102

review: Needs Fixing
27. By Matthieu Baerts

* debian/patches/02-bzr_fixed_compilation_error.patch:
 - Fixed a compilation error with GLib >= 2.33

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

Now it should compile on Quantal.
Note that the 3.0.1 version is also a bugs-fix version but another bugs-fix version is in preparation. I'll try to propose it in Quantal and Precise (if it's possible) ASAP but I'm very busy right now... But I will not forget it ;)

Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) :
review: Approve

Unmerged revisions

27. By Matthieu Baerts

* debian/patches/02-bzr_fixed_compilation_error.patch:
 - Fixed a compilation error with GLib >= 2.33

26. By Matthieu Baerts

* debian/patches/01-bzr_dock-s_menu.patch: don't hide the dock if it's raised
  and don't try to check if the mouse has left the dock if the menu is raised
  (LP: #988102)
 - It's an uptream's patch (lp:cairo-dock-core/3.0 - rev 1070)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2012-04-17 06:57:26 +0000
3+++ debian/changelog 2012-06-04 16:34:22 +0000
4@@ -1,3 +1,14 @@
5+cairo-dock (3.0.0.1-0ubuntu2) precise; urgency=low
6+
7+ * debian/patches/01-bzr_dock-s_menu.patch: don't hide the dock if it's raised
8+ and don't try to check if the mouse has left the dock if the menu is raised
9+ (LP: #988102)
10+ - It's an uptream's patch (lp:cairo-dock-core/3.0 - rev 1070)
11+ * debian/patches/02-bzr_fixed_compilation_error.patch:
12+ - Fixed a compilation error with GLib >= 2.33
13+
14+ -- Matthieu Baerts (matttbe) <matttbe@gmail.com> Wed, 25 Apr 2012 01:29:46 +0200
15+
16 cairo-dock (3.0.0.1-0ubuntu1) precise; urgency=low
17
18 * New upstream release. (LP: #983288)
19
20=== added file 'debian/patches/01-bzr_dock-s_menu.patch'
21--- debian/patches/01-bzr_dock-s_menu.patch 1970-01-01 00:00:00 +0000
22+++ debian/patches/01-bzr_dock-s_menu.patch 2012-06-04 16:34:22 +0000
23@@ -0,0 +1,48 @@
24+## 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
25+## Origin/Author: Upstream (Fabrice Rey)
26+## https://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/3.0.x/revision/1070
27+
28+Index: cairo-dock/src/gldit/cairo-dock-callbacks.c
29+===================================================================
30+--- cairo-dock.orig/src/gldit/cairo-dock-callbacks.c 2012-04-16 18:03:45.645725000 +0200
31++++ cairo-dock/src/gldit/cairo-dock-callbacks.c 2012-04-24 02:34:27.416854701 +0200
32+@@ -763,10 +763,10 @@
33+ {
34+ //g_print ("forced leave event: %d;%d\n", pDock->container.iMouseX, pDock->container.iMouseY);
35+ }
36+- 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).
37++ 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).
38+ {
39+ //g_print ("not really outside (%d;%d ; %d/%d)\n", pDock->container.iMouseX, pDock->container.iMouseY, pDock->iMaxDockHeight, pDock->iMinDockHeight);
40+- 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.
41++ 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.
42+ {
43+ //g_print ("start checking mouse\n");
44+ pDock->iSidTestMouseOutside = g_timeout_add (500, (GSourceFunc)_check_mouse_outside, pDock);
45+@@ -1038,7 +1038,7 @@
46+ 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.
47+ {
48+ //g_print ("%s (%d, %d, %d)\n", __func__, pDock->bIsShrinkingDown, pDock->iMagnitudeIndex, pDock->container.bInside);
49+- 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.
50++ 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.
51+ {
52+ pDock->iSidTestMouseOutside = 0;
53+ return FALSE;
54+Index: cairo-dock/src/gldit/cairo-dock-dock-factory.c
55+===================================================================
56+--- cairo-dock.orig/src/gldit/cairo-dock-dock-factory.c 2012-04-16 18:03:45.645725000 +0200
57++++ cairo-dock/src/gldit/cairo-dock-dock-factory.c 2012-04-24 02:34:27.416854701 +0200
58+@@ -443,8 +443,11 @@
59+ {
60+ //g_print ("\n+++ %s ()\n\n", __func__);
61+ g_return_if_fail (CAIRO_DOCK_IS_DOCK (pDock));
62+- pDock->bMenuVisible = FALSE;
63+- cairo_dock_emit_leave_signal (CAIRO_CONTAINER (pDock));
64++ if (pDock->bMenuVisible) // don't send the signal if the menu was already deactivated.
65++ {
66++ pDock->bMenuVisible = FALSE;
67++ cairo_dock_emit_leave_signal (CAIRO_CONTAINER (pDock));
68++ }
69+ }
70+ static void _on_menu_destroyed (GtkWidget *menu, CairoDock *pDock)
71+ {
72
73=== added file 'debian/patches/02-bzr_fixed_compilation_error.patch'
74--- debian/patches/02-bzr_fixed_compilation_error.patch 1970-01-01 00:00:00 +0000
75+++ debian/patches/02-bzr_fixed_compilation_error.patch 2012-06-04 16:34:22 +0000
76@@ -0,0 +1,16 @@
77+## Description: ixed a compilation error with GLib >= 2.33
78+## Origin/Author: Upstream (Fabrice Rey)
79+## https://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/cairo-dock/revision/1073
80+
81+Index: cairo-dock/src/gldit/cairo-dock-keybinder.h
82+===================================================================
83+--- cairo-dock.orig/src/gldit/cairo-dock-keybinder.h 2012-06-04 18:22:56.544276402 +0200
84++++ cairo-dock/src/gldit/cairo-dock-keybinder.h 2012-06-04 18:23:13.528276165 +0200
85+@@ -31,7 +31,6 @@
86+ #ifndef __CD_KEY_BINDER_H__
87+ #define __CD_KEY_BINDER_H__
88+
89+-#include <glib/gtypes.h>
90+ #include "cairo-dock-struct.h"
91+ #include "cairo-dock-manager.h"
92+
93
94=== modified file 'debian/patches/series'
95--- debian/patches/series 2012-02-16 01:08:11 +0000
96+++ debian/patches/series 2012-06-04 16:34:22 +0000
97@@ -0,0 +1,2 @@
98+02-bzr_fixed_compilation_error.patch
99+01-bzr_dock-s_menu.patch

Subscribers

People subscribed via source and target branches