2009/9/24 András Murányi <muranyia@gmail.com>

In the meantime, you could assign me small jobs on the tcl side, if any. I could for example take a look if the popup menu can be built in a way that behaves better with compiz..?

Please do!  That would be great.  There are lots of TODOs in the source code, plus some on the wiki.  Most are totally open for anyone who want to take them on.  Just post here to express your interest so that people don't step each others' toes.

 
As for the menu it proves to be an unavoidable speciality of tk. I think it's a bug, so i have filed it.

Seems it's fixed in 8.5 now (see below)
I noticed Hans had changed submenu delays to infinite - if it was to avoid compiz glitches it can be changed back now.

Andras

---------- Forwarded message ----------
From: SourceForge.net <noreply@sourceforge.net>
Date: Tue, Dec 8, 2009 at 10:50 PM
Subject: [ tktoolkit-Bugs-2864685 ] Compiz animates each menu item as a new window
To: noreply@sourceforge.net


Bugs item #2864685, was opened at 2009-09-23 01:06
Message generated for change (Settings changed) made by patthoyts
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2864685&group_id=12997

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: 12. Unix Menus
Group: obsolete: 8.5.7
>Status: Closed
>Resolution: Fixed
Priority: 9
Private: No
Submitted By: Andras Muranyi (muranyia)
Assigned to: Donal K. Fellows (dkf)
Summary: Compiz animates each menu item as a new window

Initial Comment:
Compiz somehow thinks that the menus of these apps are separate windows and applies window open and close animation to them. Thus each submenu "pulses" like ordinary window when opened and navigating a menu (specially one with zero delay) looks like a firework.

----------------------------------------------------------------------

>Comment By: Pat Thoyts (patthoyts)
Date: 2009-12-08 21:50

Message:
Applied this patch to HEAD and to 8.5 branch.
A separate patch (possibly done as a TIP) will be done to make it possible
to handle the combobox dropdowns, tooltips and other window types from
script level.

----------------------------------------------------------------------

Comment By: Emiliano (egavilan)
Date: 2009-12-07 19:27

Message:
Sorry, forgot to attach patch's URL:
http://paste.tclers.tk/1887

----------------------------------------------------------------------

Comment By: Emiliano (egavilan)
Date: 2009-12-07 19:26

Message:
Updated patch with feedback and code from patthoyts.
Menus show sensible behaviour in both normal and tornoff states now.
Patch against HEAD.

----------------------------------------------------------------------

Comment By: Emiliano (egavilan)
Date: 2009-12-07 15:01

Message:
You are right (I was reading an old version of the document).
I tried setting _NET_WM_WINDOW_TYPE_MENU for torn-off menus and
_NET_WM_WINDOW_TYPE_DROPDOWN_MENU for normal menus. The result is the
same for normal (override-redirect) menus, but for torn-off menus the
result is a window which doesn't have an icon in the applications bar
but is not transient of the [winfo toplevel $menu] . This can resut in the
menu going bottom of the window stack without the user noticing.

I think we can do two things in this scenario:
* For torn-off menus, we set _NET_WM_WINDOW_TYPE_NORMAL and it behaves
like a normal (animated) window. This is the default now.
* For torn-off menus, we set _NET_WM_WINDOW_TYPE_MENU and
WM_TRANSIENT_FOR to make the menu transient of its toplevel, so it
doesn't get lost behind other windows.

I don't think Tk can distinguish between a "normal" menu and a "popup"
menu, so _NET_WM_WINDOW_TYPE_POPUP_MENU is out of discussion.

----------------------------------------------------------------------

Comment By: Donal K. Fellows (dkf)
Date: 2009-12-06 17:32

Message:
Note that these additional properties were not described in EWMH 1.3, but
instead form part of EWMH 1.4.

----------------------------------------------------------------------

Comment By: Donal K. Fellows (dkf)
Date: 2009-12-06 17:02

Message:
Actually, it wants to be one of:
1. _NET_WM_WINDOW_TYPE_MENU - for torn off menus
2. _NET_WM_WINDOW_TYPE_DROPDOWN_MENU - for "real" menus from the menubar
3. _NET_WM_WINDOW_TYPE_POPUP_MENU - for menus that are neither of the
other two (i.e. posted with tk_popup)

----------------------------------------------------------------------

Comment By: Emiliano (egavilan)
Date: 2009-12-05 17:21

Message:
Apparently new window managers expects additional information to be set
about what the function of the window is.
More precisely, it expects the _NET_WM_WINDOW_TYPE property to be set to
_NET_WM_WINDOW_TYPE_MENU for menu windows. See
http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html .
A patch against HEAD (5 dec 2009) adds this information to menu windows on
x11.
As a result, the new property is set for menu windows as shown by xprop
output:

_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_MENU

For the patch, see http://paste.tclers.tk/1880

----------------------------------------------------------------------

Comment By: Donal K. Fellows (dkf)
Date: 2009-11-29 18:43

Message:
The menu code is very scattered over different files, but the key part
appears to be in tkUnixWm.c in the function to create the actual X window
for the menu (TkpMakeMenuWindow). If I'm reading that function right, the
override_redirect flag is not being set on the menu until after the window
is created, and maybe compiz is not noticing that. Can't tell, as I'm not a
user of the right platform...

----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2864685&group_id=12997