Review Request 121197: KStartupInfo: use QX11Info::getTimestamp if appUserTime is 0

Martin Gräßlin mgraesslin at kde.org
Mon Nov 24 16:04:23 UTC 2014



> On Nov. 24, 2014, 3:01 p.m., Martin Gräßlin wrote:
> > after checking https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++ : this is a BC compatible change, but not SC. Seems like one needs to use a different method name :-(
> 
> Thomas Lübking wrote:
>     Where did you read this?
>         void foo() -> void foo(int bar = 1);
>     isn't BC, but it is oc SC.
>     
>     What you need to do is to overload explicitly:
>         void foo() -> void foo(); void foo(int bar); // no default!
> 
> Thomas Lübking wrote:
>     > The solution in this change is to get the current timestamp from the X server in case the appUserTime is 0.
>     
>     This is (luckily) not what the patch does atm. (I took the default w/ a grain of salt, as the proposed behavior would have prevented to explicitly start the application w/o taking the focus)

yoy cannot add an overload (BC, but not SC: makes &func ambiguous), adding overloads to already overloaded functions is ok (any use of &func already needed a cast).

to your other comment: rbt failed updating the comment.


- Martin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121197/#review70849
-----------------------------------------------------------


On Nov. 24, 2014, 4:06 p.m., Martin Gräßlin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/121197/
> -----------------------------------------------------------
> 
> (Updated Nov. 24, 2014, 4:06 p.m.)
> 
> 
> Review request for KDE Frameworks.
> 
> 
> Bugs: 337798
>     https://bugs.kde.org/show_bug.cgi?id=337798
> 
> 
> Repository: kwindowsystem
> 
> 
> Description
> -------
> 
> KStartupInfo::createNewStartupId is supposed to return a new
> id with a properly setup user timestamp. But if QX11Info::appUserTime
> returns 0 this was included in the id and cannot be considered a
> properly setup user timestamp. An app user time of 0 is the case
> for klauncher. If an application uses this timestamp of 0 passed from
> the startup notification it causes problems with passing focus to it
> from KWin. The application sets the timestamp in the
> _NET_WM_USER_TIME property and the value "0" has the special meaning
> of requesting to not be initially mapped. KWin honors that and doesn't
> focus the window. An application is not supposed to interpret a 0 time
> stamp passed through the startup notification as a special value to get
> the current time. It is totally fine to expect that it gets a proper
> value passed. Thus one cannot blame applications for not interpreting
> this value accordingly. An example for an application passing the 0
> to the _NET_WM_USER_TIME is Firefox. Starting Firefox in a Plasma 5
> session through e.g. the launcher results in KWin not passing focus
> to it and instead demands attention. This is clearly wrong and not
> intended.
> 
> The solution in this change is to get the current timestamp from
> the X server in case the appUserTime is 0. This fixes the described
> problem with Firefox: it now gets properly focused on starting
> through a launcher.
> 
> 
> Diffs
> -----
> 
>   autotests/kstartupinfo_unittest.cpp f4b607d2a21da7dcf32434c00b2bdeeaf401ee65 
>   src/kstartupinfo.h ff4454b4102ecaea7067adb8c3a56d7f500250e0 
>   src/kstartupinfo.cpp 03418fce1a154ea388d0f65665dc0c9724a5623a 
> 
> Diff: https://git.reviewboard.kde.org/r/121197/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Martin Gräßlin
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20141124/906eb0f4/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list