[arch-commits] Commit in pidgin-libnotify/trunk (2 files)
Balló György
bgyorgy at nymeria.archlinux.org
Thu May 16 10:52:08 UTC 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