Mike Gabriel pushed to branch debian/stretch/backports at Debian and Ubuntu MATE Packaging Team / brisk-menu
Commits:
-
22b2891c
by Mike Gabriel at 2018-04-27T12:20:14Z
-
bb37ace2
by Mike Gabriel at 2018-04-27T13:04:02Z
-
667ea8bd
by Mike Gabriel at 2018-06-11T06:56:39Z
-
901203c7
by Mike Gabriel at 2018-07-05T09:29:18Z
-
0d11cb0a
by Mike Gabriel at 2018-08-22T08:07:55Z
-
f6114642
by Mike Gabriel at 2018-08-22T08:10:32Z
-
b3e78587
by Martin Wimpress at 2018-09-28T12:39:03Z
-
625534ab
by Martin Wimpress at 2018-09-28T12:40:37Z
-
559167f0
by Mike Gabriel at 2018-10-01T08:06:48Z
-
00fdfbec
by Mike Gabriel at 2018-10-30T18:29:42Z
-
8c62d0ad
by Mike Gabriel at 2018-10-30T18:31:24Z
6 changed files:
- debian/changelog
- debian/control
- debian/copyright
- + debian/patches/1007_prevent_key-binder_swallowing_super-mouse_events.patch
- + debian/patches/1008_unset_lock_masks.patch
- debian/patches/series
Changes:
1 |
+brisk-menu (0.5.0-8~bpo9+1) stretch-backports; urgency=medium
|
|
2 |
+ |
|
3 |
+ * Rebuild for stretch-backports.
|
|
4 |
+ |
|
5 |
+ -- Mike Gabriel <sunweaver@debian.org> Tue, 30 Oct 2018 19:30:14 +0100
|
|
6 |
+ |
|
7 |
+brisk-menu (0.5.0-8) unstable; urgency=medium
|
|
8 |
+ |
|
9 |
+ [ Martin Wimpress ]
|
|
10 |
+ * debian/patches:
|
|
11 |
+ + Add 1007_prevent_key-binder_swallowing_super-mouse_events.patch:
|
|
12 |
+ Fix key-binder from swallowing Super+Mouse events. (LP: #1767525)
|
|
13 |
+ + Add 1008_unset_lock_masks.patch. Unset Lock key masks when closing
|
|
14 |
+ menu. (LP: #1774290)
|
|
15 |
+ |
|
16 |
+ -- Mike Gabriel <sunweaver@debian.org> Mon, 01 Oct 2018 10:05:05 +0200
|
|
17 |
+ |
|
18 |
+brisk-menu (0.5.0-7) unstable; urgency=medium
|
|
19 |
+ |
|
20 |
+ * debian/control:
|
|
21 |
+ + Update Vcs-*: fields. Package has been migrated to salsa.debian.org.
|
|
22 |
+ + Drop pkg-mate-team Alioth mailing list from Uploaders: field.
|
|
23 |
+ + Bump Standards-Version: to 4.2.0. No changes needed.
|
|
24 |
+ * debian/copyright:
|
|
25 |
+ + Make Upstream-Name: field's value more human readable.
|
|
26 |
+ |
|
27 |
+ -- Mike Gabriel <sunweaver@debian.org> Wed, 22 Aug 2018 10:09:01 +0200
|
|
28 |
+ |
|
1 | 29 |
brisk-menu (0.5.0-6~bpo9+1) stretch-backports; urgency=medium
|
2 | 30 |
|
3 | 31 |
* Rebuild for stretch-backports.
|
... | ... | @@ -5,7 +5,6 @@ Maintainer: Debian+Ubuntu MATE Packaging Team <debian-mate@lists.debian.org> |
5 | 5 |
Uploaders: Martin Wimpress <code@flexion.org>,
|
6 | 6 |
Mike Gabriel <sunweaver@debian.org>,
|
7 | 7 |
Vangelis Mouhtsis <vangelis@gnugr.org>,
|
8 |
- MATE Packaging Team <pkg-mate-team@lists.alioth.debian.org>,
|
|
9 | 8 |
Build-Depends: debhelper (>= 11~),
|
10 | 9 |
dpkg-dev (>= 1.16.1.1),
|
11 | 10 |
intltool,
|
... | ... | @@ -18,10 +17,10 @@ Build-Depends: debhelper (>= 11~), |
18 | 17 |
meson (>= 0.40.0),
|
19 | 18 |
ninja-build,
|
20 | 19 |
pkg-config,
|
21 |
-Standards-Version: 4.1.3
|
|
20 |
+Standards-Version: 4.2.0
|
|
22 | 21 |
Homepage: http://www.mate-desktop.org/
|
23 |
-Vcs-Browser: https://anonscm.debian.org/git/pkg-mate/brisk-menu.git
|
|
24 |
-Vcs-Git: https://anonscm.debian.org/git/pkg-mate/brisk-menu.git
|
|
22 |
+Vcs-Browser: https://salsa.debian.org/debian-mate-team/brisk-menu
|
|
23 |
+Vcs-Git: https://salsa.debian.org/debian-mate-team/brisk-menu.git
|
|
25 | 24 |
|
26 | 25 |
Package: mate-applet-brisk-menu
|
27 | 26 |
Architecture: any
|
1 | 1 |
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
2 |
-Upstream-Name: brisk-menu
|
|
2 |
+Upstream-Name: Brisk Menu
|
|
3 | 3 |
Upstream-Contact: Ikey Doherty <ikey@solus-project.com>
|
4 | 4 |
Source: https://github.com/solus-project/brisk-menu
|
5 | 5 |
|
1 |
+Author: Victor Kareh <vkareh@vkareh.net>
|
|
2 |
+Description: Fix key-binder from swallowing Super+Mouse events
|
|
3 |
+ |
|
4 |
+diff --git a/src/lib/key-binder.c b/src/lib/key-binder.c
|
|
5 |
+index d639c71..f997005 100644
|
|
6 |
+--- a/src/lib/key-binder.c
|
|
7 |
++++ b/src/lib/key-binder.c
|
|
8 |
+@@ -17,6 +17,7 @@
|
|
9 |
+
|
|
10 |
+ BRISK_BEGIN_PEDANTIC
|
|
11 |
+ #include "key-binder.h"
|
|
12 |
++#include <X11/Xatom.h>
|
|
13 |
+ #include <X11/XKBlib.h>
|
|
14 |
+ #include <X11/Xlib.h>
|
|
15 |
+ #include <gdk/gdk.h>
|
|
16 |
+@@ -134,6 +135,73 @@ static void brisk_key_binder_init(BriskKeyBinder *self)
|
|
17 |
+ gdk_window_add_filter(root, brisk_key_binder_filter, self);
|
|
18 |
+ }
|
|
19 |
+
|
|
20 |
++static char* get_window_manager(void)
|
|
21 |
++{
|
|
22 |
++ Window *xwindow;
|
|
23 |
++ Window wm_window;
|
|
24 |
++ Atom type;
|
|
25 |
++ gint format;
|
|
26 |
++ gulong nitems;
|
|
27 |
++ gulong bytes_after;
|
|
28 |
++
|
|
29 |
++ Atom wm_check = gdk_x11_get_xatom_by_name ("_NET_SUPPORTING_WM_CHECK");
|
|
30 |
++
|
|
31 |
++ XGetWindowProperty (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), GDK_ROOT_WINDOW (),
|
|
32 |
++ wm_check, 0, G_MAXLONG, False, XA_WINDOW, &type, &format,
|
|
33 |
++ &nitems, &bytes_after, (guchar **) &xwindow);
|
|
34 |
++
|
|
35 |
++ if (type != XA_WINDOW)
|
|
36 |
++ {
|
|
37 |
++ return g_strdup ("Unknown");
|
|
38 |
++ }
|
|
39 |
++
|
|
40 |
++ gdk_error_trap_push ();
|
|
41 |
++ XSelectInput (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), *xwindow,
|
|
42 |
++ StructureNotifyMask | PropertyChangeMask);
|
|
43 |
++ XSync (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), False);
|
|
44 |
++
|
|
45 |
++ if (gdk_error_trap_pop ())
|
|
46 |
++ {
|
|
47 |
++ XFree (xwindow);
|
|
48 |
++ return g_strdup ("Unknown");
|
|
49 |
++ }
|
|
50 |
++
|
|
51 |
++ wm_window = *xwindow;
|
|
52 |
++ XFree (xwindow);
|
|
53 |
++
|
|
54 |
++ Atom utf8_string = gdk_x11_get_xatom_by_name ("UTF8_STRING");
|
|
55 |
++ Atom wm_name = gdk_x11_get_xatom_by_name ("_NET_WM_NAME");
|
|
56 |
++ gchar *val;
|
|
57 |
++ gchar *wm;
|
|
58 |
++ int result;
|
|
59 |
++
|
|
60 |
++ val = NULL;
|
|
61 |
++
|
|
62 |
++ gdk_error_trap_push ();
|
|
63 |
++ result = XGetWindowProperty (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()),
|
|
64 |
++ wm_window,
|
|
65 |
++ wm_name,
|
|
66 |
++ 0, G_MAXLONG,
|
|
67 |
++ False, utf8_string,
|
|
68 |
++ &type, &format, &nitems,
|
|
69 |
++ &bytes_after, (guchar **) &val);
|
|
70 |
++
|
|
71 |
++ if (gdk_error_trap_pop () || result != Success || type != utf8_string || format != 8 ||
|
|
72 |
++ nitems == 0 || !g_utf8_validate (val, (gssize)nitems, NULL))
|
|
73 |
++ {
|
|
74 |
++ wm = NULL;
|
|
75 |
++ }
|
|
76 |
++ else
|
|
77 |
++ {
|
|
78 |
++ wm = g_strndup (val, nitems);
|
|
79 |
++ }
|
|
80 |
++
|
|
81 |
++ if (val)
|
|
82 |
++ XFree (val);
|
|
83 |
++
|
|
84 |
++ return wm;
|
|
85 |
++}
|
|
86 |
++
|
|
87 |
+ /**
|
|
88 |
+ * Handle global events (eventually)
|
|
89 |
+ */
|
|
90 |
+@@ -151,7 +219,7 @@ static GdkFilterReturn brisk_key_binder_filter(GdkXEvent *xevent, GdkEvent *even
|
|
91 |
+ self = BRISK_KEY_BINDER(v);
|
|
92 |
+ display = GDK_WINDOW_XDISPLAY(self->root_window);
|
|
93 |
+
|
|
94 |
+- if (xev->type != KeyRelease && xev->type != KeyPress) {
|
|
95 |
++ if (xev->type != KeyRelease && xev->type != KeyPress && xev->type != ButtonPress) {
|
|
96 |
+ return GDK_FILTER_CONTINUE;
|
|
97 |
+ }
|
|
98 |
+
|
|
99 |
+@@ -178,6 +246,39 @@ static GdkFilterReturn brisk_key_binder_filter(GdkXEvent *xevent, GdkEvent *even
|
|
100 |
+ self->wait_for_release) {
|
|
101 |
+ /* capture release within same shortcut sequence */
|
|
102 |
+ binding->func(event, binding->udata);
|
|
103 |
++ self->wait_for_release = FALSE;
|
|
104 |
++ } else if (xev->type == ButtonPress) {
|
|
105 |
++ /* Modifiers are often used with mouse events.
|
|
106 |
++ * Don't let the key-binder swallow those */
|
|
107 |
++ XAllowEvents(display, ReplayPointer, CurrentTime);
|
|
108 |
++
|
|
109 |
++ /* Compiz would rather not have the event sent to it and just read it from
|
|
110 |
++ * the replayed queue. All other window managers seem to expect an event. */
|
|
111 |
++ gchar *wm = get_window_manager ();
|
|
112 |
++ if (g_strcmp0 (wm, "Compiz") != 0) {
|
|
113 |
++ Window root_return, child_return;
|
|
114 |
++ int root_x_return, root_y_return;
|
|
115 |
++ int win_x_return, win_y_return;
|
|
116 |
++ unsigned int mask_return;
|
|
117 |
++ XUngrabKeyboard(display, CurrentTime);
|
|
118 |
++ XUngrabPointer(display, CurrentTime);
|
|
119 |
++ XQueryPointer(display,
|
|
120 |
++ GDK_WINDOW_XID(self->root_window),
|
|
121 |
++ &root_return,
|
|
122 |
++ &child_return,
|
|
123 |
++ &root_x_return,
|
|
124 |
++ &root_y_return,
|
|
125 |
++ &win_x_return,
|
|
126 |
++ &win_y_return,
|
|
127 |
++ &mask_return);
|
|
128 |
++ XSendEvent(display,
|
|
129 |
++ child_return,
|
|
130 |
++ TRUE,
|
|
131 |
++ ButtonPressMask,
|
|
132 |
++ xev);
|
|
133 |
++ }
|
|
134 |
++ g_free (wm);
|
|
135 |
++
|
|
136 |
+ self->wait_for_release = FALSE;
|
|
137 |
+ } else {
|
|
138 |
+ XUngrabKeyboard(display, xev->xkey.time);
|
|
139 |
+@@ -238,6 +339,15 @@ gboolean brisk_key_binder_bind(BriskKeyBinder *self, const gchar *shortcut, Bind
|
|
140 |
+ }
|
|
141 |
+ gdk_flush();
|
|
142 |
+
|
|
143 |
++ if (!mod) {
|
|
144 |
++ gdk_error_trap_push();
|
|
145 |
++ /* We grab Super+click so that we can forward it to the window manager and allow
|
|
146 |
++ * Super+click bindings (window move, resize, etc.) */
|
|
147 |
++ XGrabButton(display, AnyButton, Mod4Mask, id, TRUE, ButtonPressMask, GrabModeSync,
|
|
148 |
++ GrabModeAsync, None, None);
|
|
149 |
++ gdk_flush();
|
|
150 |
++ }
|
|
151 |
++
|
|
152 |
+ return TRUE;
|
|
153 |
+ }
|
|
154 |
+
|
1 |
+Author: Victor Kareh <vkareh@vkareh.net>
|
|
2 |
+Description: Unset Lock key masks when closing menu
|
|
3 |
+ |
|
4 |
+diff --git a/src/frontend/menu-keyboard.c b/src/frontend/menu-keyboard.c
|
|
5 |
+index 33c3e2e..81197d7 100644
|
|
6 |
+--- a/src/frontend/menu-keyboard.c
|
|
7 |
++++ b/src/frontend/menu-keyboard.c
|
|
8 |
+@@ -23,12 +23,17 @@ gboolean brisk_menu_window_key_press(BriskMenuWindow *self, GdkEvent *event,
|
|
9 |
+ __brisk_unused__ gpointer v)
|
|
10 |
+ {
|
|
11 |
+ autofree(gchar) *accel_name = NULL;
|
|
12 |
++ GdkModifierType lock_masks = GDK_MOD2_MASK | GDK_LOCK_MASK | GDK_MOD5_MASK;
|
|
13 |
++ guint mods;
|
|
14 |
+
|
|
15 |
+ if (!self->shortcut) {
|
|
16 |
+ return GDK_EVENT_PROPAGATE;
|
|
17 |
+ }
|
|
18 |
+
|
|
19 |
+- accel_name = gtk_accelerator_name(event->key.keyval, event->key.state);
|
|
20 |
++ /* Unset mask of the lock keys */
|
|
21 |
++ mods = event->key.state & ~(lock_masks);
|
|
22 |
++
|
|
23 |
++ accel_name = gtk_accelerator_name(event->key.keyval, mods);
|
|
24 |
+ if (!accel_name || g_ascii_strcasecmp(self->shortcut, accel_name) != 0) {
|
|
25 |
+ return GDK_EVENT_PROPAGATE;
|
|
26 |
+ }
|
... | ... | @@ -4,3 +4,5 @@ |
4 | 4 |
1004_fix_dash_styling_for_some_light_themes.patch
|
5 | 5 |
1005_prevent_super_key_swallows_on_compiz.patch
|
6 | 6 |
1006_session_buttons_style_class.patch
|
7 |
+1007_prevent_key-binder_swallowing_super-mouse_events.patch
|
|
8 |
+1008_unset_lock_masks.patch
|