On Mon, 08 Feb 2010 22:12:45 +0100 Krzysztof Borowczyk <krzysz...@borowczyk.eu>
said:

> Hi,
> 
> I've found two problems, that I believe are E17 bugs - so I'd like to
> report them ;) . As I use Gentoo operating system, I've first reported
> them to Gustavo Sverzut Barbieri, after few emails exchanges he directed
> me to this list.
> 
> So here are my problems:
> 
> 1. First problem is with positioning of window after you hide and unhide
> it by clicking on it's icon in task bar. If it's GTK+ application, all
> seems OK, but if it uses Qt (tested on Qt4) it appears every time on a
> lower position (lower by the height of title bar).
> 
> Steps to reproduce (for psi jabber client):
> 
> 1) emerge -v1 psi  (assuming Gentoo OS)
> 2) psi &
> 3) click cancel when it asks to create account and close the startup
> help dialog
> 4) align the main window to the top of the screen (not necessary, but
> helps to spot the problem)
> 5) click multiple times on the icon in the tray

ok. this is likely a problem in kde. as such if you iconify in e - k3b here
pops up just where it was. my bet is kde apps are explicitly requesting
position and NOT accounting for frame extents - e does adversitse these via
netwm - and yes. i know gtk's code reads them and uses them. in x when u
request a position - u reqtes top-left of the FRAME (not your app window), BUT
your configurenotify events tell you the top-left of your window - thus thy
there exist properties to tell you the size of your frame. my bet is kde has
specific support for specific wm's - and for those it doesnt know - ti ignores
this. this will explain the wandering window - the toolkit (kde+qt) is asking
for a position - e is giving it to the toolkit. i think this is something to
pass off to qt/kde people. from xprop ok this k3b window:

...
_E_FRAME_SIZE(CARDINAL) = 0, 0, 23, 4
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 23, 4
__E_WINDOW_DESK(CARDINAL) = 0, 0
...
_NET_WM_PID(CARDINAL) = 8898
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING,
_NET_WM_SYNC_REQUEST WM_NAME(STRING) = "K3b - The CD and DVD Kreator"
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "k3b", "K3b"
...

there u go - frame extents properties. and e advertises that it supports these
netwm features on root:

_NET_SUPPORTED(ATOM) = _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING,
_NET_ACTIVE_WINDOW, _NET_SUPPORTING_WM_CHECK, _NET_VIRTUAL_ROOTS,
_NET_WM_MOVERESIZE, _NET_REQUEST_FRAME_EXTENTS, _NET_WM_NAME,
_NET_WM_VISIBLE_NAME, _NET_WM_ICON_NAME, _NET_WM_VISIBLE_ICON_NAME,
_NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK,
_NET_WM_WINDOW_TYPE_TOOLBAR, _NET_WM_WINDOW_TYPE_MENU,
_NET_WM_WINDOW_TYPE_UTILITY, _NET_WM_WINDOW_TYPE_SPLASH,
_NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_NORMAL, _NET_WM_STATE,
_NET_WM_STATE_MODAL, _NET_WM_STATE_STICKY, _NET_WM_STATE_MAXIMIZED_VERT,
_NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_SHADED, _NET_WM_STATE_SKIP_TASKBAR,
_NET_WM_STATE_SKIP_PAGER, _NET_WM_STATE_HIDDEN, _NET_WM_STATE_FULLSCREEN,
_NET_WM_STATE_ABOVE, _NET_WM_STATE_BELOW, _NET_WM_STRUT, _NET_WM_STRUT_PARTIAL,
_NET_WM_ICON, _NET_WM_PID, _NET_WM_USER_TIME, _NET_FRAME_EXTENTS, _NET_WM_PING,
_NET_WM_SYNC_REQUEST, _NET_WM_SYNC_REQUEST_COUNTER

notice the _NET_FRAME_EXTENTS there. as such the app itself handles shoing +
hiding its window from its own window in the systray - wm is only invovled in
handling the map request and that request will contain a requested position -
that position... is set by the app+toolkit. so here - redirect back to kde/qt.
i dont think e is at fault here. interestingly enough - skype works. it uses qt.

> It's the same with kadu - GaduGadu client. I didn't test other
> applications.
> 
> 2. Second problem is with hiding the window by clicking on it's icon on
> task bar when you are on different virtual desktop than the applications
> window.
> 
> When you open some application (tested on psi, kadu - based on Qt,
> Sonata - based on GTK+) on one virtual desktop, then switch to some
> other and try to hide it by clicking it's task bar icon and come back to
> that virtual desktop - the contents of the window (i.e. buttons, text)
> disappear, but the window stays.

this indeed might be an e problem - it's missing a unmap event somewhere -
but... works for me. rythmbox tested here.

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to