Reliability fix wrt gtk+2 update, xfwm4 was badly locking.
- Tweak WANTLIB while here. - Upstream bug report : http://bugzilla.xfce.org/show_bug.cgi?id=3346 - Thanks to Samuel Verstraete from Lunar-Linux for pointing me at the patch. - feedback from steven@ and jasper@ "go ahead" jasper@
This commit is contained in:
parent
0a48c9c773
commit
3d361c1191
@ -1,8 +1,9 @@
|
||||
# $OpenBSD: Makefile,v 1.15 2007/09/15 20:04:27 merdely Exp $
|
||||
# $OpenBSD: Makefile,v 1.16 2007/10/26 11:16:32 landry Exp $
|
||||
|
||||
COMMENT= xfce4 window manager
|
||||
V= 4.4.1
|
||||
DISTNAME= xfwm4-${V}
|
||||
PKGNAME= ${DISTNAME}p0
|
||||
|
||||
HOMEPAGE= http://www.xfce.org/projects/xfwm4/
|
||||
MAINTAINER= Landry Breuil <gaston@gcu.info>
|
||||
@ -26,7 +27,7 @@ WANTLIB= ICE SM X11 Xcomposite Xdamage Xext Xfixes Xrandr freetype \
|
||||
Xrender Xau Xdmcp expat Xcursor Xi Xinerama fontconfig \
|
||||
atk-1.0 gdk-x11-2.0 gdk_pixbuf-2.0 glib-2.0 \
|
||||
gmodule-2.0 gobject-2.0 gtk-x11-2.0 pango-1.0 \
|
||||
pangoft2-1.0 startup-notification-1 \
|
||||
pangoft2-1.0 startup-notification-1 pcre \
|
||||
xfce4util.>=1 pangocairo-1.0 cairo glitz png z c m
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
27
x11/xfce4/xfwm4/patches/patch-src_client_c
Normal file
27
x11/xfce4/xfwm4/patches/patch-src_client_c
Normal file
@ -0,0 +1,27 @@
|
||||
$OpenBSD: patch-src_client_c,v 1.1 2007/10/26 11:16:32 landry Exp $
|
||||
--- src/client.c.orig Mon Apr 2 21:48:20 2007
|
||||
+++ src/client.c Fri Oct 26 10:04:18 2007
|
||||
@@ -4868,21 +4868,19 @@ clientCycle (Client * c, XEvent * ev)
|
||||
|
||||
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)
|
41
x11/xfce4/xfwm4/patches/patch-src_display_c
Normal file
41
x11/xfce4/xfwm4/patches/patch-src_display_c
Normal file
@ -0,0 +1,41 @@
|
||||
$OpenBSD: patch-src_display_c,v 1.1 2007/10/26 11:16:32 landry Exp $
|
||||
--- src/display.c.orig Mon Apr 2 21:32:01 2007
|
||||
+++ src/display.c Fri Oct 26 10:04:18 2007
|
||||
@@ -178,6 +178,19 @@ myDisplayInitAtoms (DisplayInfo *display_info)
|
||||
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 @@ myDisplayInit (GdkDisplay *gdisplay)
|
||||
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 @@ myDisplayClose (DisplayInfo *display)
|
||||
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)
|
||||
{
|
11
x11/xfce4/xfwm4/patches/patch-src_display_h
Normal file
11
x11/xfce4/xfwm4/patches/patch-src_display_h
Normal file
@ -0,0 +1,11 @@
|
||||
$OpenBSD: patch-src_display_h,v 1.1 2007/10/26 11:16:32 landry Exp $
|
||||
--- src/display.h.orig Mon Apr 2 21:32:01 2007
|
||||
+++ src/display.h Fri Oct 26 10:04:18 2007
|
||||
@@ -226,6 +226,7 @@ struct _DisplayInfo
|
||||
gboolean quit;
|
||||
gboolean reload;
|
||||
|
||||
+ Window timestamp_win;
|
||||
Cursor busy_cursor;
|
||||
Cursor move_cursor;
|
||||
Cursor root_cursor;
|
62
x11/xfce4/xfwm4/patches/patch-src_hints_c
Normal file
62
x11/xfce4/xfwm4/patches/patch-src_hints_c
Normal file
@ -0,0 +1,62 @@
|
||||
$OpenBSD: patch-src_hints_c,v 1.1 2007/10/26 11:16:32 landry Exp $
|
||||
--- src/hints.c.orig Sun Mar 11 14:44:43 2007
|
||||
+++ src/hints.c Fri Oct 26 10:04:18 2007
|
||||
@@ -1167,27 +1167,18 @@ setAtomIdManagerOwner (DisplayInfo *display_info, int
|
||||
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 @@ getXServerTime (DisplayInfo *display_info)
|
||||
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 @@ getXServerTime (DisplayInfo *display_info)
|
||||
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);
|
||||
}
|
||||
|
11
x11/xfce4/xfwm4/patches/patch-src_hints_h
Normal file
11
x11/xfce4/xfwm4/patches/patch-src_hints_h
Normal file
@ -0,0 +1,11 @@
|
||||
$OpenBSD: patch-src_hints_h,v 1.1 2007/10/26 11:16:32 landry Exp $
|
||||
--- src/hints.h.orig Sun Mar 11 14:44:43 2007
|
||||
+++ src/hints.h Fri Oct 26 10:04:18 2007
|
||||
@@ -269,6 +269,7 @@ gboolean setAtomIdManagerOwner
|
||||
int,
|
||||
Window ,
|
||||
Window);
|
||||
+void updateXserverTime (DisplayInfo *);
|
||||
Time getXServerTime (DisplayInfo *);
|
||||
|
||||
#ifdef ENABLE_KDE_SYSTRAY_PROXY
|
Loading…
Reference in New Issue
Block a user