Saturday 12 January 2013

Where did you come from?

I've been spending the Xmas period working on CRiSP. One feature I had
been pondering for a long while was addition of a ribbon bar, like
Microsoft tools. The ribbon can be effect, and aesthetically pleasing
in its design, and quite complex in terms of implementation semantics.

I have a prototype working - still more work to do.

I spend most of my live development on Linux - its easier and more
convenient, using the tools. (Windows 7 build speeds are pretty impressive,
and I use MINGW when I need to debug, using gdb, rather than Visual Studio).

Over the years, one thing has always annoyed me: programming paradigms
where messages are received to effect an action or event, but where
you have no idea what or why they are delivered, or where from.

The Xlib protocol is simple and of high performance, but due to the
multiprocess nature of an X-Windows system, determining what is going on
can be problematic. CRiSP has built into it an X11 message tracing
facility (set the env var XDEBUG=1 if you are curious). Its very
helpful to see what is happening.

The particular area causing me problems at the moment relates to tooltips.
CRiSP has had for tooltips for an awful long time - floating text
labels next to items in the GUI (tabbed windows, icons, etc). In the
ribbon and image implementation, the popup of the tooltip, is immediately
dismissed - the act of the popup causes a LeaveNotify event to be
delivered, but I dont know where from. (Most likely the window manager,
but finding out "why" is difficult). Bear in mind its the same
subroutines which implement this - this effect doesnt happen elsewhere.

As with all difficult programming problems, most likely, I am looking
in the wrong place. Hopefully I wont have to waste too much time on
this.


Post created by CRiSP v11.0.14a-b6519


No comments:

Post a Comment