Review Request 121197: KStartupInfo: use QX11Info::getTimestamp if appUserTime is 0
Thomas Lübking
thomas.luebking at gmail.com
Mon Nov 24 16:01:55 UTC 2014
> On Nov. 24, 2014, 2:01 nachm., 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!
> 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)
- Thomas
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121197/#review70849
-----------------------------------------------------------
On Nov. 24, 2014, 3:06 nachm., 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, 3:06 nachm.)
>
>
> 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/a500af16/attachment.html>
More information about the Kde-frameworks-devel
mailing list