| Summary: | xreconfigurewmwindow places window on bottom of windowstack with stack_mode below | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | Martin Schreiber <mse00000> |
| Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | openSUSE | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | screenshots | ||
Created attachment 66627 [details]
screenshots
I think you have to explain more what you are actually doing and what you want to achieve. The pascal code is nothing I can understand any more (it's years ago since I last saw pascal code). There are three stacked windows from top to bottom form1, form2, form3. changes.sibling = <winid of form2> xreconfigurewmwindow() is called with <winid of form1> as w parameter. xreconfigurewmwindow() is the xlib function XReconfigureWMWindow(). It should place form1 below form2 and above form3. http://tronche.com/gui/x/xlib/window/configure.html#XWindowChanges I'm not sure about the code at all ("or" is a bitwise "|" in pascal???) but i know what he wants to do.
Gonna write a simple cpp/X11 test to check whether that works.
yes, happens. No wonder, layers.cpp:690 void Client::restackWindow(Window /*above TODO */, int detail, NET::RequestSource src, Time timestamp, bool send_event) Luckily i wrote that "poor man's window highlight" for the uncomposited mode, so fixing the todo should not be all that hard ;-) Same problem is with the _NET_RESTACK_WINDOW protocol BTW. Git commit b470dad7955babd73c51346831d290bed6b6ae4d by Thomas Lübking. Committed on 11/12/2011 at 19:00. Pushed by luebking into branch 'master'. implement restack configure events, fix stackUnder when stacking up under a foreign client BUG: 288721 REVIEW: 103387 M +91 -43 kwin/layers.cpp http://commits.kde.org/kde-workspace/b470dad7955babd73c51346831d290bed6b6ae4d |
Version: unspecified (using KDE 4.7.2) OS: Linux The following code places the window on bottom of windowstack instead below sibling: " procedure tmainfo.exe(const sender: TObject); var changes: txwindowchanges; begin changes.stack_mode:= below; changes.sibling:= form2fo.window.winid; xreconfigurewmwindow(msedisplay,form1fo.window.winid,msedefaultscreenno, cwsibling or cwstackmode,@changes); end; " see attachments kdebefore.png and kdeafter.png. With windowmaker it works as expected, see windowmakerbefore.png and windowmakerafter.png. The tescase is made with MSEide+MSEgui: http://gitorious.org/mseide-msegui The test project is here: http://gitorious.org/mseuniverse/mseuniverse/trees/master/testcase/window/reconfigurewmwindow Reproducible: Always Steps to Reproduce: ./. Actual Results: ./. Expected Results: ./.