[arch-commits] Commit in pidgin-libnotify/trunk (2 files)

Balló György bgyorgy at nymeria.archlinux.org
Thu May 16 06:52:08 EDT 2013


    Date: Thursday, May 16, 2013 @ 12:52:08
  Author: bgyorgy
Revision: 90955

upgpkg: pidgin-libnotify 0.14-8

Fix FS#35135

Added:
  pidgin-libnotify/trunk/pidgin-libnotify-getfocus.patch
Modified:
  pidgin-libnotify/trunk/PKGBUILD

---------------------------------+
 PKGBUILD                        |   15 ++++----
 pidgin-libnotify-getfocus.patch |   69 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 78 insertions(+), 6 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-05-16 10:33:01 UTC (rev 90954)
+++ PKGBUILD	2013-05-16 10:52:08 UTC (rev 90955)
@@ -4,7 +4,7 @@
 
 pkgname=pidgin-libnotify
 pkgver=0.14
-pkgrel=7
+pkgrel=8
 arch=('i686' 'x86_64')
 pkgdesc="pidgin plugin that enables popups when someone logs in or messages you."
 url="http://gaim-libnotify.sourceforge.net/"
@@ -14,22 +14,25 @@
 optdepends=('notification-daemon')
 options=(!libtool)
 source=(http://downloads.sourceforge.net/sourceforge/gaim-libnotify/$pkgname-$pkgver.tar.gz language_fixes.patch
-        pidgin-libnotify-0.14-libnotify-0.7.patch pidgin-libnotify-showbutton.patch)
+        pidgin-libnotify-0.14-libnotify-0.7.patch pidgin-libnotify-showbutton.patch pidgin-libnotify-getfocus.patch)
+md5sums=('bfb5368b69c02d429b2b17c00a6673c0'
+         'e9bdbb3c7faa61f062fc64277457b6c0'
+         '05538625f14d9f2c12adae5fa6a1fa26'
+         'efe1e86aa1e0bc9f7d20efe7f34ad4a7'
+         'e624998744d1c2fb8e2c6be94b04c38a')
 
 build() {
   cd "$srcdir/$pkgname-$pkgver"
   patch -Np1 -i "$srcdir/language_fixes.patch"
   patch -Np0 -i "$srcdir/pidgin-libnotify-0.14-libnotify-0.7.patch"
   patch -Np0 -i "$srcdir/pidgin-libnotify-showbutton.patch"
+  patch -Np0 -i "$srcdir/pidgin-libnotify-getfocus.patch"
 
   ./configure --prefix=/usr --disable-deprecated  --disable-static
   make
 }
+
 package() {
   cd "$srcdir/$pkgname-$pkgver"
   make DESTDIR="$pkgdir" install
 }
-md5sums=('bfb5368b69c02d429b2b17c00a6673c0'
-         'e9bdbb3c7faa61f062fc64277457b6c0'
-         '05538625f14d9f2c12adae5fa6a1fa26'
-         'efe1e86aa1e0bc9f7d20efe7f34ad4a7')

Added: pidgin-libnotify-getfocus.patch
===================================================================
--- pidgin-libnotify-getfocus.patch	                        (rev 0)
+++ pidgin-libnotify-getfocus.patch	2013-05-16 10:52:08 UTC (rev 90955)
@@ -0,0 +1,69 @@
+--- src/pidgin-libnotify.c	2013-05-07 17:38:31.397261982 +0200
++++ src2/pidgin-libnotify.c	2013-05-07 17:43:43.787904584 +0200
+@@ -169,6 +169,49 @@ pixbuf_from_buddy_icon (PurpleBuddyIcon
+ 	return icon;
+ }
+ 
++/* Taken from pidgin-hotkeys to get focus on conversation window */
++static void
++hacky_active_window(GtkWidget *window)
++{
++    GdkScreen *screen;
++    GdkWindow *root;
++    GdkDisplay *display;
++    Display *xdisplay;
++    Window xroot;
++    XEvent xev;
++    static Atom _net_active_window = None;
++
++    screen = gtk_widget_get_screen(window);
++    root = gdk_screen_get_root_window(screen);
++    display = gdk_screen_get_display(screen);
++
++    xdisplay = GDK_DISPLAY_XDISPLAY(display);
++    xroot = GDK_WINDOW_XWINDOW(root);
++
++    if (_net_active_window == None)
++	_net_active_window = XInternAtom(xdisplay,
++					 "_NET_ACTIVE_WINDOW",
++					 False);
++
++    xev.xclient.type = ClientMessage;
++    xev.xclient.serial = 0;
++    xev.xclient.send_event = True;
++    xev.xclient.window = GDK_WINDOW_XWINDOW(window->window);
++    xev.xclient.message_type = _net_active_window;
++    xev.xclient.format = 32;
++    xev.xclient.data.l[0] = 1; /* requestor type; we're an app, I guess */
++    xev.xclient.data.l[1] = CurrentTime;
++    xev.xclient.data.l[2] = None; /* "currently active window", supposedly */
++    xev.xclient.data.l[3] = 0;
++    xev.xclient.data.l[4] = 0;
++
++    XSendEvent(xdisplay,
++	       xroot, False,
++	       SubstructureRedirectMask | SubstructureNotifyMask,
++	       &xev);
++}
++
++
+ static void
+ action_cb (NotifyNotification *notification,
+ 		   gchar *action, gpointer user_data)
+@@ -194,6 +237,16 @@ action_cb (NotifyNotification *notificat
+ 									  buddy->name);
+ 	}
+ 	conv->ui_ops->present (conv);
++	
++	/* get the focus on the new conversation window */
++	{
++	    GtkWindow *gtkwindow;
++
++	    gtkwindow = GTK_WINDOW(pidgin_conv_get_window(PIDGIN_CONVERSATION(conv))->window);
++	    /*gtk_window_present(gtkwindow);*/
++	    hacky_active_window(GTK_WIDGET(gtkwindow));
++	}
++
+ 
+ 	notify_notification_close (notification, NULL);
+ }



More information about the arch-commits mailing list