pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/43178: Qt and Gtk applications don't start correctly on amd64/ WindowMaker environment
>Number: 43178
>Category: pkg
>Synopsis: Qt and Gtk applications don't start correctly on amd64/
>WindowMaker environment
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Apr 19 12:10:00 +0000 2010
>Originator: Helge Muehlmeier
>Release: current
>Organization:
privat
>Environment:
NetBSD wopr.fritz.box 5.99.27 NetBSD 5.99.27 (GENERIC) #0: Tue Apr 13 13:53:06
UTC 2010
builds%b8.netbsd.org@localhost:/home/builds/ab/HEAD/amd64/201004130000Z-obj/home/builds/ab/HEAD/src/sys/arch/amd64/compile/GENERIC
amd64
>Description:
Some applications like lyx, eric4 or wxMaxima start (in background and maybe
show their GUI) but aren't usable. You can't klick on menu items or do
something useful with that programs.
AFAIK only amd64 is affected.
As discussed on
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=311563
it is a bug in WindowMaker (current releases are fixed but not stable version
0.92.0).
>How-To-Repeat:
Install windowmaker from pkgsrc on amd64 arch and install an application like
lyx, eric4 or wxMaxima.
Start WindowMaker and try to use that applications.
>Fix:
As discussed on http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=311563 there
is a patch for WindowMaker (needed for stable version 0.92.0).
I added the following patch to wm/windowmaker:
$NetBSD$
#This patch avoid some application trouble (qt and gtk apps are affected i.g.
lyx, eric4 or wxMaxima) on amd64 systems.
--- src/wmspec.c.orig 2005-05-15 16:41:09.000000000 +0000
+++ src/wmspec.c
@@ -35,6 +35,7 @@
#include <X11/Xlib.h>
#include <X11/Xatom.h>
+#include <X11/Xarch.h>
#include <string.h>
#include "WindowMaker.h"
@@ -322,15 +323,15 @@ setSupportedHints(WScreen *scr)
void
wNETWMUpdateDesktop(WScreen *scr)
{
- CARD32 *views, sizes[2];
+ long *views, sizes[2];
int count, i;
if (scr->workspace_count==0)
return;
count = scr->workspace_count * 2;
- views = wmalloc(sizeof(CARD32) * count);
- /*memset(views, 0, sizeof(CARD32) * count);*/
+ views = wmalloc(sizeof(long) * count);
+ /*memset(views, 0, sizeof(long) * count);*/
#ifdef VIRTUAL_DESKTOP
sizes[0] = scr->workspaces[scr->current_workspace]->width;
@@ -370,7 +371,7 @@ wNETWMGetCurrentDesktopFromHint(WScreen
0, 1, &count);
if (prop)
{
- int desktop= *(CARD32*)prop;
+ int desktop= *(long*)prop;
XFree(prop);
return desktop;
}
@@ -487,7 +488,7 @@ updateIconImage(WScreen *scr, WWindow *w
static void
updateShowDesktop(WScreen * scr, Bool show)
{
- CARD32 foo;
+ long foo;
foo = (show == True);
XChangeProperty(dpy, scr->root_win, net_showing_desktop, XA_CARDINAL, 32,
@@ -660,7 +661,7 @@ wNETWMUpdateActions(WWindow *wwin, Bool
void
wNETWMUpdateWorkarea(WScreen *scr, WArea usableArea)
{
- CARD32 *area;
+ long *area;
int count, i;
/* XXX: not Xinerama compatible,
@@ -670,7 +671,7 @@ wNETWMUpdateWorkarea(WScreen *scr, WArea
return;
count = scr->workspace_count * 4;
- area = wmalloc(sizeof(CARD32) * count);
+ area = wmalloc(sizeof(long) * count);
for (i=0; i<scr->workspace_count; i++) {
area[4*i + 0] = usableArea.x1;
area[4*i + 1] = usableArea.y1;
@@ -793,7 +794,7 @@ updateClientListStacking(WScreen *scr, W
static void
updateWorkspaceCount(WScreen *scr) /* changeable */
{
- CARD32 count;
+ long count;
count = scr->workspace_count;
@@ -805,7 +806,7 @@ updateWorkspaceCount(WScreen *scr) /* ch
static void
updateCurrentWorkspace(WScreen *scr) /* changeable */
{
- CARD32 count;
+ long count;
count = scr->current_workspace;
@@ -852,7 +853,7 @@ updateFocusHint(WScreen *scr, WWindow *w
static void
updateWorkspaceHint(WWindow *wwin, Bool fake, Bool del)
{
- CARD32 l;
+ long l;
if (del) {
XDeleteProperty(dpy, wwin->client_win, net_wm_desktop);
Home |
Main Index |
Thread Index |
Old Index