[PATCH] making KDE more independent from X11

Lubos Lunak l.lunak at suse.cz
Thu Aug 28 19:57:00 BST 2003

Dne čt 28. srpna 2003 18:33 Holger Schroeder napsal(a):
> Hi.
> please look at the patches and give me some feedback. if you are in n7y and
> want to see it running, simply drop by...
> This is a description of what i changed in kde head to make it
> less dependent on X11.
> first of all: nothing is changed in the case when only Q_WS_X11 is
> defined.

 Not quite:
- KApplication::read_app_startup_id() - you didn't really mean to comment that 
out, did you?
- kdeui/kspellui.ui - it just changes the .ui file version

> i added a configure check --enable-qtonly. when that one is set,
> it sets a define in config.h, its name is K_WS_QTONLY. dependent on
> that define, X-dependent stuff is deactivated on X too. this is good for
> testing purposes, as you can strip out X-dependent stuff step by step,
> although you are still working on X. so you don't have to work on another
> qt library, such as embedded, mac, or windows, but most of this work
> can be done on x11.
> there were a lot of
> #ifndef Q_WS_QWS
> in the sources, i changed most of them to
> #if defined Q_WS_X11 && ! defined K_WS_QTONLY
> as the stuff in the defines is used on x11 only, and not on the other
> platforms.

 The #if looks a bit messy, but after all it will be you messing with it. You 
should be psychically prepared for the fact that people will break it from 
time to time.

> for the QTONLY case i got rid of these classes:
> KRootPixmap : it makes transparency possible for konsole.
> KStartupInfo : it sets some startup informations so that a busy cursor
>     can be displayed. it is quite x-dependent, so i deactivated it for
>     now.
> KWinModule : used for managing multiple desktops and getting information
>     about the desktop. there is of course some functionality missing in
>     the qtonly case, but i will fix that later, as it is not so important
>     now.
> netwm: contains NETRootInfo and friends, all this is quite dependent on
>     X, it is used to query for example the screen number or the size
>     of a window.
> KXMessages: used to send out messages to other windows/programs in a
>     X-dependent way.
> KXErrorHandler: offers a possibility to query for x errors.

 These all are very closely bound to X11. The last 3 are more or less internal 
classes, but the other could be possibly reimplemented on other platforms.

> remaining bugs in the qtonly case:
> - kmenubars in programs don't have the correct width at startup,
>   probably because of some deactivated netwm stuff.

 Unless you're talking about the case when the menubar is standalone at the 
top of the screen, this shouldn't depend on X11. If you're talking about it, 
you'll have probably to redo kmenubar completely for your platform.


 Otherwise the patch seems to be ok, after a brief review.

Lubos Lunak
KDE Developer
l.lunak at suse.cz     l.lunak at kde.org

More information about the kde-core-devel mailing list