summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartti <martti@pkgsrc.org>2007-10-03 10:24:42 +0000
committermartti <martti@pkgsrc.org>2007-10-03 10:24:42 +0000
commit4422585dd0111913c23356b93dfad9fec64af980 (patch)
treefbecdd2d91d1c4cd675d12a0d51bdb24c4ed5fdf
parent2bce8d537c07eff1b5a2cfb0527d03620165789d (diff)
downloadpkgsrc-4422585dd0111913c23356b93dfad9fec64af980.tar.gz
Updated wm/xfce4-wm to 4.4.1nb1
Fix keyboard/mouse problems with gtk2 2.11 and later. http://bugzilla.xfce.org/show_bug.cgi?id=3346
-rw-r--r--wm/xfce4-wm/Makefile3
-rw-r--r--wm/xfce4-wm/buildlink3.mk4
-rw-r--r--wm/xfce4-wm/distinfo3
-rw-r--r--wm/xfce4-wm/patches/patch-ab159
4 files changed, 165 insertions, 4 deletions
diff --git a/wm/xfce4-wm/Makefile b/wm/xfce4-wm/Makefile
index d921ca1e4f6..8adefa0a108 100644
--- a/wm/xfce4-wm/Makefile
+++ b/wm/xfce4-wm/Makefile
@@ -1,9 +1,10 @@
-# $NetBSD: Makefile,v 1.23 2007/04/18 22:33:21 drochner Exp $
+# $NetBSD: Makefile,v 1.24 2007/10/03 10:24:42 martti Exp $
.include "../../meta-pkgs/xfce4/Makefile.common"
DISTNAME= xfwm4-${XFCE4_VERSION}
PKGNAME= xfce4-wm-${XFCE4_VERSION}
+PKGREVISION= 1
CATEGORIES= wm
COMMENT= Xfce window manager
diff --git a/wm/xfce4-wm/buildlink3.mk b/wm/xfce4-wm/buildlink3.mk
index 4d2e8283562..515b143a448 100644
--- a/wm/xfce4-wm/buildlink3.mk
+++ b/wm/xfce4-wm/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.21 2007/04/12 09:55:20 martti Exp $
+# $NetBSD: buildlink3.mk,v 1.22 2007/10/03 10:24:42 martti Exp $
BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+
XFCE4_WM_BUILDLINK3_MK:= ${XFCE4_WM_BUILDLINK3_MK}+
@@ -12,7 +12,7 @@ BUILDLINK_PACKAGES+= xfce4-wm
BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}xfce4-wm
.if ${XFCE4_WM_BUILDLINK3_MK} == "+"
-BUILDLINK_API_DEPENDS.xfce4-wm+= xfce4-wm>=4.4.1
+BUILDLINK_API_DEPENDS.xfce4-wm+= xfce4-wm>=4.4.1nb1
BUILDLINK_PKGSRCDIR.xfce4-wm?= ../../wm/xfce4-wm
.endif # XFCE4_WM_BUILDLINK3_MK
diff --git a/wm/xfce4-wm/distinfo b/wm/xfce4-wm/distinfo
index 2f3feee4d99..6eef32f7b5c 100644
--- a/wm/xfce4-wm/distinfo
+++ b/wm/xfce4-wm/distinfo
@@ -1,6 +1,7 @@
-$NetBSD: distinfo,v 1.16 2007/04/12 09:55:20 martti Exp $
+$NetBSD: distinfo,v 1.17 2007/10/03 10:24:42 martti Exp $
SHA1 (xfwm4-4.4.1.tar.bz2) = 1f1c0cb374941bce2bd59eedd8d9bd05591c65a0
RMD160 (xfwm4-4.4.1.tar.bz2) = 6bd28775d3625b799f5443d3ba28dafb75215bb8
Size (xfwm4-4.4.1.tar.bz2) = 1645973 bytes
SHA1 (patch-aa) = adca693a9a740544416fb3dcf28e4aa0b24c5488
+SHA1 (patch-ab) = c98996a922e4808662f7c7a81fd4786f7ef385ce
diff --git a/wm/xfce4-wm/patches/patch-ab b/wm/xfce4-wm/patches/patch-ab
new file mode 100644
index 00000000000..9e6b1da9e62
--- /dev/null
+++ b/wm/xfce4-wm/patches/patch-ab
@@ -0,0 +1,159 @@
+$NetBSD: patch-ab,v 1.1 2007/10/03 10:24:42 martti Exp $
+
+Index: src/display.c
+===================================================================
+--- src/display.c (revision 25820)
++++ src/display.c (working copy)
+@@ -178,6 +178,19 @@
+ FALSE, display_info->atoms) != 0);
+ }
+
++static void
++myDisplayCreateTimestampWin (DisplayInfo *display_info)
++{
++ XSetWindowAttributes attributes;
++
++ attributes.event_mask = PropertyChangeMask;
++ attributes.override_redirect = TRUE;
++ display_info->timestamp_win =
++ XCreateWindow (display_info->dpy, DefaultRootWindow (display_info->dpy),
++ -100, -100, 10, 10, 0, 0, CopyFromParent, CopyFromParent,
++ CWEventMask | CWOverrideRedirect, &attributes);
++}
++
+ DisplayInfo *
+ myDisplayInit (GdkDisplay *gdisplay)
+ {
+@@ -309,6 +322,8 @@
+ display->resize_cursor[CORNER_COUNT + SIDE_BOTTOM] =
+ XCreateFontCursor (display->dpy, XC_bottom_side);
+
++ myDisplayCreateTimestampWin (display);
++
+ display->xfilter = NULL;
+ display->screens = NULL;
+ display->clients = NULL;
+@@ -340,6 +355,8 @@
+ display->move_cursor = None;
+ XFreeCursor (display->dpy, display->root_cursor);
+ display->root_cursor = None;
++ XDestroyWindow (display->dpy, display->timestamp_win);
++ display->timestamp_win = None;
+
+ if (display->hostname)
+ {
+Index: src/display.h
+===================================================================
+--- src/display.h (revision 25820)
++++ src/display.h (working copy)
+@@ -226,6 +226,7 @@
+ gboolean quit;
+ gboolean reload;
+
++ Window timestamp_win;
+ Cursor busy_cursor;
+ Cursor move_cursor;
+ Cursor root_cursor;
+Index: src/client.c
+===================================================================
+--- src/client.c (revision 25820)
++++ src/client.c (working copy)
+@@ -4868,21 +4868,19 @@
+
+ if (passdata.c)
+ {
+- GdkPixbuf *icon;
+-
+ TRACE ("entering cycle loop");
+ passdata.wireframe = wireframeCreate (passdata.c);
+- icon = getAppIcon (display_info, passdata.c->window, 32, 32);
+ passdata.tabwin = tabwinCreate (passdata.c->screen_info->gscr, c,
+ passdata.c, passdata.cycle_range,
+ screen_info->params->cycle_workspaces);
+ eventFilterPush (display_info->xfilter, clientCycleEventFilter, &passdata);
+ gtk_main ();
+ eventFilterPop (display_info->xfilter);
+- wireframeDelete (screen_info, passdata.wireframe);
+ TRACE ("leaving cycle loop");
+ tabwinDestroy (passdata.tabwin);
+ g_free (passdata.tabwin);
++ wireframeDelete (screen_info, passdata.wireframe);
++ updateXserverTime (display_info);
+ }
+
+ if (passdata.c)
+Index: src/hints.c
+===================================================================
+--- src/hints.c (revision 25820)
++++ src/hints.c (working copy)
+@@ -1167,27 +1167,18 @@
+ return setXAtomManagerOwner(display_info, display_info->atoms[atom_id], root, w);
+ }
+
+-
+-static Bool
+-checkPropEvent (Display *display, XEvent *xevent, XPointer arg)
++void
++updateXserverTime (DisplayInfo *display_info)
+ {
+- DisplayInfo *display_info;
+ ScreenInfo *screen_info;
++ char c = '\0';
+
+- display_info = (DisplayInfo *) arg;
+- g_return_val_if_fail (display_info, FALSE);
++ g_return_if_fail (display_info);
+
+- screen_info = myDisplayGetDefaultScreen (display_info);
+- g_return_val_if_fail (screen_info, FALSE);
+-
+- if ((xevent->type == PropertyNotify) &&
+- (xevent->xproperty.window == screen_info->xfwm4_win) &&
+- (xevent->xproperty.atom == display_info->atoms[XFWM4_TIMESTAMP_PROP]))
+- {
+- return TRUE;
+- }
+-
+- return FALSE;
++ XChangeProperty (display_info->dpy, display_info->timestamp_win,
++ display_info->atoms[XFWM4_TIMESTAMP_PROP],
++ display_info->atoms[XFWM4_TIMESTAMP_PROP],
++ 8, PropModeReplace, (unsigned char *) &c, 1);
+ }
+
+ Time
+@@ -1196,7 +1187,6 @@
+ ScreenInfo *screen_info;
+ XEvent xevent;
+ Time timestamp;
+- char c = '\0';
+
+ g_return_val_if_fail (display_info, (Time) CurrentTime);
+ timestamp = myDisplayGetCurrentTime (display_info);
+@@ -1206,12 +1196,8 @@
+ g_return_val_if_fail (screen_info, (Time) CurrentTime);
+
+ TRACE ("getXServerTime: Using X server roundtrip");
+- XChangeProperty (display_info->dpy, screen_info->xfwm4_win,
+- display_info->atoms[XFWM4_TIMESTAMP_PROP],
+- display_info->atoms[XFWM4_TIMESTAMP_PROP],
+- 8, PropModeReplace, (unsigned char *) &c, 1);
+- XIfEvent (display_info->dpy, &xevent, checkPropEvent, (XPointer) display_info);
+-
++ updateXserverTime (display_info);
++ XWindowEvent (display_info->dpy, display_info->timestamp_win, PropertyChangeMask, &xevent);
+ timestamp = (Time) myDisplayUpdateCurrentTime (display_info, &xevent);
+ }
+
+Index: src/hints.h
+===================================================================
+--- src/hints.h (revision 25820)
++++ src/hints.h (working copy)
+@@ -269,6 +269,7 @@
+ int,
+ Window ,
+ Window);
++void updateXserverTime (DisplayInfo *);
+ Time getXServerTime (DisplayInfo *);
+
+ #ifdef ENABLE_KDE_SYSTRAY_PROXY