--===============8968477233131124907== Content-Type: multipart/alternative; boundary="===============2379627027595029341==" --===============2379627027595029341== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/103700/#review10060 ----------------------------------------------------------- This review has been submitted with commit 9c377f223edb14d83ae079f203c36244= c3208a0e by Thomas L=C3=BCbking to branch master. - Commit Hook On Jan. 14, 2012, 8:48 p.m., Thomas L=C3=BCbking wrote: > = > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/103700/ > ----------------------------------------------------------- > = > (Updated Jan. 14, 2012, 8:48 p.m.) > = > = > Review request for kwin. > = > = > Description > ------- > = > This one's weird. > If there's more than one plasma activity, activating a client (from kwin)= triggers changeActiveWindow() from a root window event. > One of the outcomes is the behavior described in the attached bug, but ac= tually activating a window becomes the same as > a) activating it > b) make the window call for self-activation > = > ----------------- > = > I'm not sure what exactly causes this (ie.. activity implementation in pl= asma-desktop or kwin), but what happens is: > = > activation.cpp > void Workspace::requestFocus(Client* c, bool force) > -> void Workspace::takeActivity(Client* c, int flags, bool handled) > -> client.cpp > void Client::takeActivity(int flags, bool handled, allowed_t) > -> void Client::takeFocus(allowed_t) > -> XSetInputFocus(display(), window(), RevertToPointerRoot, xTime()); > = > =3D=3D> events.cpp // from this point we handle the property change on th= e root window > void RootInfo::changeActiveWindow(Window w, NET::RequestSource src, Time = timestamp, Window active_window) > // workspace->activateClient(c); > -> activation.cpp > Workspace::activateClient(Client *c); > -> raise() // by the bugreport unwanted > = > ------------- > = > The patch fixes it by ignoring self-activating calls of the last client w= e intended to pass the focus anyway. > This fixes a bug, so it's suitable for 4.8, but it's very late and w/o re= ally knowing what's actually broken and given the present bug will affect a= minority (i dare to claim that the amount of pp. using such focus policy, = no autoraise and yet interested in activities is close to void.) i'd rather= suggest to not add it for 4.8.0 but test it locally and add it for 4.8.1 i= f there's no apparent side-effect. > Or we figure what's actually happening there to break it. > = > = > This addresses bug 240673. > http://bugs.kde.org/show_bug.cgi?id=3D240673 > = > = > Diffs > ----- > = > kwin/events.cpp 26e0139 = > = > Diff: http://git.reviewboard.kde.org/r/103700/diff/diff > = > = > Testing > ------- > = > Yes, adding a second activity and changing activities reliably caused thi= s for me (across WM restarts!) - it's gone with the patch (and why that wor= ks, i actually /do/ understand ;-) > = > = > Thanks, > = > Thomas L=C3=BCbking > = > --===============2379627027595029341== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable
This is an automatically generated e-mail. To reply, visit: http://git.revie= wboard.kde.org/r/103700/ |
This revie= w has been submitted with commit 9c377f223edb14d83ae079f203c36244c3208a0e b= y Thomas L=C3=BCbking to branch master.
- Commit
On January 14th, 2012, 8:48 p.m., Thomas L=C3=BCbking wrote:
Review request for kwin.
By Thomas L=C3=BCbking.
Updated Jan. 14, 2012, 8:48 p.m. Descripti= on
Testing <= /h1>
Bugs:
240673
Diffs=
|