[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[STUMP] gnome-panel doesn't/didn't work; telent-clx denies equality axio
From: |
Magnus Henoch |
Subject: |
[STUMP] gnome-panel doesn't/didn't work; telent-clx denies equality axiom |
Date: |
Fri, 03 Oct 2008 23:58:35 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (berkeley-unix) |
So I was trying to find out why gnome-panel wouldn't start in stumpwm,
but only give backtraces.
Of course I forgot to save the backtrace from the times of trouble...
But, gnome-panel sent a :MAP-REQUEST event, which caused the event
handler to call PLACE-MODE-LINE-WINDOW, which failed because SCREEN is
NIL. The event handler gets SCREEN from (find-screen parent), so why is
that NIL?
FIND-SCREEN compares its argument to the root window of each screen (in
my case only one screen). The PARENT that was passed to the event
handler was #<WINDOW :0 54>. (mapcar #'screen-root *screen-list*)
revealed that the root window was also #<WINDOW :0 54>.
It turned out that XLIB:WINDOW-EQUAL considered those two windows to be
different. The definition is in clx.lisp; search for
"make-mumble-equal". A comment there says:
;; When cached, EQ works fine, otherwise test resource id's and displays
and windows are among the cached types. Apparently EQ doesn't work
fine.
I augmented the check in FIND-SCREEN with a comparison of resource id
and display, and - it worked. I have my panel.
(StumpWM stubbornly believes that it is at the _top_ of the screen,
regardless of its actual position. But that is another problem that I
will fix some day...)
So, where should this be fixed? I have the latest telent-clx, if that
is defined as whatever is at http://common-lisp.net/~crhodes/clx . My
SBCL is 1.0.19.35; it isn't _that_ old. My system is NetBSD/macppc.
Magnus
- [STUMP] gnome-panel doesn't/didn't work; telent-clx denies equality axiom,
Magnus Henoch <=