r36602 - in /desktop/unstable/gnome-panel/debian: changelog patches/18_fix_force_quit_applet.patch patches/series

sebastien at users.alioth.debian.org sebastien at users.alioth.debian.org
Mon Jan 28 12:48:04 UTC 2013


Author: sebastien
Date: Mon Jan 28 12:48:03 2013
New Revision: 36602

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=36602
Log:
debian/patches/18_fix_force_quit_applet.patch: new patch, makes the
Force-Quit applet work again. (Closes: #698740)

Added:
    desktop/unstable/gnome-panel/debian/patches/18_fix_force_quit_applet.patch
Modified:
    desktop/unstable/gnome-panel/debian/changelog
    desktop/unstable/gnome-panel/debian/patches/series

Modified: desktop/unstable/gnome-panel/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-panel/debian/changelog?rev=36602&op=diff
==============================================================================
--- desktop/unstable/gnome-panel/debian/changelog [utf-8] (original)
+++ desktop/unstable/gnome-panel/debian/changelog [utf-8] Mon Jan 28 12:48:03 2013
@@ -1,3 +1,10 @@
+gnome-panel (3.4.2.1-4) UNRELEASED; urgency=low
+
+  * debian/patches/18_fix_force_quit_applet.patch: new patch, makes the
+    Force-Quit applet work again. (Closes: #698740)
+
+ -- Sébastien Villemot <sebastien at debian.org>  Sun, 27 Jan 2013 10:48:48 +0100
+
 gnome-panel (3.4.2.1-3) unstable; urgency=low
 
   [ Josselin Mouette ]

Added: desktop/unstable/gnome-panel/debian/patches/18_fix_force_quit_applet.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-panel/debian/patches/18_fix_force_quit_applet.patch?rev=36602&op=file
==============================================================================
--- desktop/unstable/gnome-panel/debian/patches/18_fix_force_quit_applet.patch (added)
+++ desktop/unstable/gnome-panel/debian/patches/18_fix_force_quit_applet.patch [utf-8] Mon Jan 28 12:48:03 2013
@@ -1,0 +1,98 @@
+Description: Fix Force-Quit panel applet
+ This patch implements handling of XInput2 extension events in the applet.
+ Without this patch, the applet fails to recognize such events (either mouse
+ click for killing application, or escape key for exiting), hence freezing the
+ desktop.
+ .
+ Also fix the event mask in call of gdk_device_grab() for keyboard.
+Author: Sébastien Villemot <sebastien at debian.org>
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698740
+Forwarded: no
+Last-Update: 2013-01-28
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/gnome-panel/panel-force-quit.c
++++ b/gnome-panel/panel-force-quit.c
+@@ -32,6 +32,8 @@
+ #include <X11/Xlib.h>
+ #include <X11/keysym.h>
+ 
++#include <X11/extensions/XInput2.h>
++
+ #include "panel-icon-names.h"
+ #include "panel-stock-icons.h"
+ 
+@@ -246,22 +248,23 @@
+ 
+ static void 
+ handle_button_press_event (GtkWidget *popup,
+-			   XKeyEvent *event)
++			   Display *display,
++			   Window subwindow)
+ {
+ 	Window window;
+ 
+ 	remove_popup (popup);
+ 
+-	if (event->subwindow == None)
++	if (subwindow == None)
+ 		return;
+ 
+ 	if (wm_state_atom == None)
+-		wm_state_atom = XInternAtom (event->display, "WM_STATE", FALSE);
++		wm_state_atom = XInternAtom (display, "WM_STATE", FALSE);
+ 
+-	window = find_managed_window (event->display, event->subwindow);
++	window = find_managed_window (display, subwindow);
+ 
+ 	if (window != None) {
+-		if (!gdk_x11_window_lookup_for_display (gdk_x11_lookup_xdisplay (event->display), window))
++		if (!gdk_x11_window_lookup_for_display (gdk_x11_lookup_xdisplay (display), window))
+ 			kill_window_question ((gpointer) window);
+ 	}
+ }
+@@ -272,10 +275,12 @@
+ 	      GtkWidget *popup)
+ {
+ 	XEvent *xevent = (XEvent *) gdk_xevent;
++	XIEvent *xiev;
++	XIDeviceEvent *xidev;
+ 
+ 	switch (xevent->type) {
+ 	case ButtonPress:
+-		handle_button_press_event (popup, &xevent->xkey);
++		handle_button_press_event (popup, xevent->xbutton.display, xevent->xbutton.subwindow);
+ 		return GDK_FILTER_REMOVE;
+ 	case KeyPress:
+ 		if (xevent->xkey.keycode == XKeysymToKeycode (xevent->xany.display, XK_Escape)) {
+@@ -283,6 +288,21 @@
+ 			return GDK_FILTER_REMOVE;
+ 		}
+ 		break;
++	case GenericEvent:
++		xiev = (XIEvent *) xevent->xcookie.data;
++		xidev = (XIDeviceEvent *) xiev;
++		switch (xiev->evtype) {
++		case XI_KeyPress:
++			if (xidev->detail == XKeysymToKeycode (xevent->xany.display, XK_Escape)) {
++				remove_popup (popup);
++				return GDK_FILTER_REMOVE;
++			}
++			break;
++		case XI_ButtonPress:
++			handle_button_press_event (popup, xidev->display, xidev->child);
++			return GDK_FILTER_REMOVE;
++		}
++		break;
+ 	default:
+ 		break;
+ 	}
+@@ -331,7 +351,7 @@
+ 
+ 	status = gdk_device_grab (keyboard, root,
+ 				  GDK_OWNERSHIP_NONE, FALSE,
+-				  GDK_KEY_PRESS | GDK_KEY_RELEASE,
++				  GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK,
+ 				  NULL, time);
+ 	if (status != GDK_GRAB_SUCCESS) {
+ 		g_warning ("Keyboard grab failed\n");

Modified: desktop/unstable/gnome-panel/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-panel/debian/patches/series?rev=36602&op=diff
==============================================================================
--- desktop/unstable/gnome-panel/debian/patches/series [utf-8] (original)
+++ desktop/unstable/gnome-panel/debian/patches/series [utf-8] Mon Jan 28 12:48:03 2013
@@ -6,3 +6,4 @@
 15_avoid_applet_loading_failures.patch
 16_remove_online_accounts_from_user_menu.patch
 17_avoid_double_forking.patch
+18_fix_force_quit_applet.patch




More information about the pkg-gnome-commits mailing list