graesslin (Martin Flöser)
KWin maintainer

Projects (8)

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Saturday

  • Clear sailing ahead.

User Details

User Since
Apr 18 2015, 8:19 AM (182 w, 5 d)
Availability
Available

Recent Activity

Yesterday

graesslin added a comment to D15720: [TabBox] Fix Arrow Key / Keyboard Events in QML Alt+Tab Skins.

A reason for the old code being weird is that KWin is weird. I remember that I fought quite a lot when porting this to Qt5 and there was a time when it was working.

Wed, Oct 17, 7:19 PM · KWin

Mon, Oct 15

graesslin accepted D16225: [ksmserver] Split startup into separate class.
Mon, Oct 15, 3:32 PM · Plasma

Sun, Oct 14

graesslin committed R108:77e3bbef7e4a: Disable modifier window actions if global shortcuts are disabled (authored by graesslin).
Disable modifier window actions if global shortcuts are disabled
Sun, Oct 14, 7:46 AM
graesslin closed D16025: Disable modifier window actions if global shortcuts are disabled.
Sun, Oct 14, 7:46 AM · KWin

Fri, Oct 12

graesslin added a comment to D16130: [effects/diminactive] Delete active transitions when window is deleted.
In D16130#341384, @zzag wrote:

Good detection work! The problem you describe is btw. quite common. I remember that any Qt file open dialog caused this behavior. It first created the window than closed it and created it again.

Do you know why they do that?

Fri, Oct 12, 7:37 PM · KWin
graesslin accepted D16148: [autotests] Hook up some missing tests for XDGShellStable.
Fri, Oct 12, 7:35 PM · KWin

Thu, Oct 11

graesslin added a comment to D16130: [effects/diminactive] Delete active transitions when window is deleted.

Good detection work! The problem you describe is btw. quite common. I remember that any Qt file open dialog caused this behavior. It first created the window than closed it and created it again. That was one of the first very painful Wayland crashers I investigated.

Thu, Oct 11, 4:40 PM · KWin
graesslin accepted D16124: [kcmkwin/ruleswidget] Disable "Detect" button when countdown is running.
Thu, Oct 11, 4:35 PM · KWin

Wed, Oct 10

graesslin added a comment to D16099: [libkwineffects] Drop AniData constructor that receives QString.

Please increase the so version of the library as that was an ABI incompatible change.

Wed, Oct 10, 3:02 PM · KWin

Tue, Oct 9

graesslin added a comment to D15117: [RFC] [effects] Make Scale and Glide effects Wayland-friendly.

I don't see why we shouldn't set ShellClient::isClient to return true - semantically they are managed so I think it's nicer - but I'm ok with this

Tue, Oct 9, 4:30 AM · KWin
graesslin added a comment to D15720: [TabBox] Fix Arrow Key / Keyboard Events in QML Alt+Tab Skins.

Don't focus too much on Plasma::Dialog. It should also work with a plain QQuickWindow or a QuickControls2::Dialog

Tue, Oct 9, 4:29 AM · KWin

Sun, Oct 7

graesslin requested review of D16025: Disable modifier window actions if global shortcuts are disabled.
Sun, Oct 7, 7:04 PM · KWin

Sat, Oct 6

graesslin committed R108:cefc15e573d2: Ignore modifier mouse actions when the pointer is constrained (authored by graesslin).
Ignore modifier mouse actions when the pointer is constrained
Sat, Oct 6, 4:11 PM
graesslin closed D15982: Ignore modifier mouse actions when the pointer is constrained.
Sat, Oct 6, 4:11 PM · KWin
graesslin requested review of D15982: Ignore modifier mouse actions when the pointer is constrained.
Sat, Oct 6, 4:06 PM · KWin

Fri, Oct 5

graesslin accepted D15117: [RFC] [effects] Make Scale and Glide effects Wayland-friendly.
Fri, Oct 5, 5:33 PM · KWin
graesslin added a comment to D14536: [scripting] Port ScriptedEffects to QJSEngine.

Just an idea: duplicate all the code and keep the QScript variant to have backwards compatibility. Add the new qml based one and require a desktop file entry to be used there. If we need to break the API anyway, because not everything is 1:1 mapped, let's break it properly and do some cleanup in the API. And then with Qt 6 or removal of QScript we switch over. That would give every user some time to update the scripts.

Fri, Oct 5, 5:31 PM · KWin
graesslin accepted D15913: Expose AbstractClient's colorScheme as a property.
Fri, Oct 5, 5:26 PM · KWin

Wed, Oct 3

graesslin added a comment to D14949: Add option for whether to show the volume change OSD.

It's not about that there are only complaints on Reddit. It's about the user group: do we want to deaign so that the small Reddit community is happy or do we want to design for the rest? Do we want to make the product more complicated (yes that's the result of a config option) to please some people on Reddit while at the same time we already have a mechanism to achieve the same?

Wed, Oct 3, 6:12 AM · Plasma

Mon, Oct 1

graesslin added a comment to D14949: Add option for whether to show the volume change OSD.

Please don't introduce options based on what's unpopular on Reddit.

Mon, Oct 1, 4:20 PM · Plasma

Sep 10 2018

graesslin added a comment to D15410: Handle clients which change window metadata during early startup.

I just want to point out that such applications are not ICCCM compliant: This property must be present when the window leaves the Withdrawn state and may be changed only while the window is in the Withdrawn state. Window managers may examine the property only when they start up and when the window leaves the Withdrawn state, but there should be no need for a client to change its state dynamically.

Sep 10 2018, 6:20 PM · Plasma

Sep 7 2018

graesslin accepted D15261: Remove XRandrBrightness.
Sep 7 2018, 10:23 AM · Plasma

Aug 25 2018

graesslin added a comment to D15061: [xwl] Generic X selections translation mechanism with Clipboard support.

Just wondering: why did you integrate directly into KWin, instead of adding this to the existing helper process? My motivation to use a dedicated process was to ensure that KWin cannot be attacked through the X clipboard (the data is hold by the helper process, not by KWin). If you think having it in KWin is better I suggest a follow up change to move the normal clipboard functionality also into the xwl directory.

Aug 25 2018, 5:22 AM · KWin

Aug 22 2018

graesslin updated subscribers of D14910: Pass a dedicated fd to each keyboard for the xkb keymap.
Aug 22 2018, 4:51 PM · Frameworks

Aug 21 2018

graesslin added a comment to D14923: Supress paste in screen locker.

. As a matter of fact the default options of Klipper are also fine. Only if the not default prevent empty clipboard option is used this breaks.

Code says otherwise.

klipper.kcfg: <entry name="PreventEmptyClipboard" type="Bool">
klipper.kcfg- <label>Prevent empty clipboard</label>
klipper.kcfg- <default>true</default>

Aug 21 2018, 4:55 PM · Plasma

Aug 19 2018

graesslin added a comment to D14850: [effects] Turn off Translucency by default.

These arguments are also not very convincing to me. In fact, during Akademy, it was applauded that we asked to change defaults to more sensible ones. Sorry, not seeing the picture. I would still move forward.

Aug 19 2018, 7:16 AM · KWin
graesslin added a comment to D14924: Prevent paste in screen locker (alternative approach).

I like the other solution better as it doesn't depend on Klipper specific behavior.

Aug 19 2018, 6:34 AM · Plasma
graesslin added a comment to D14923: Supress paste in screen locker.

I like this solution. As a matter of fact the default options of Klipper are also fine. Only if the not default prevent empty clipboard option is used this breaks.

Aug 19 2018, 6:13 AM · Plasma

Aug 18 2018

graesslin requested changes to D14850: [effects] Turn off Translucency by default.

Someone was giving a presentation during the KDE e.V. meeting and resized a Dolphin window to make it bigger. The act of doing this made the window translucent and revealed the content of the window beneath it. This was a significant privacy violation, and could have had damaging consequences.

Aug 18 2018, 6:49 AM · KWin

Aug 17 2018

graesslin added a comment to D14910: Pass a dedicated fd to each keyboard for the xkb keymap.

Sorry for strange upload, arc decided to no longer like me.

Aug 17 2018, 7:24 PM · Frameworks
graesslin requested review of D14910: Pass a dedicated fd to each keyboard for the xkb keymap.
Aug 17 2018, 7:20 PM · Frameworks

Jul 31 2018

graesslin added a comment to D14482: Unit test a bunch of scripted effects.

We need to start a thread on frameworks-devel defining KDE's coding standard use of auto. I've made the changes for now but it's rather frustrating to try and follow non-defined policies.

Personally, I fully support being explicit with type hints when there's overloads or when you want const references, but being explicit for the common T* case doesn't help anything.
Also I don't really buy that being explicit is needed for readability given we allow foo()->bar() without interim variables.

but I'm happy to follow whatever

Jul 31 2018, 4:20 AM · KWin

Jul 21 2018

graesslin added a comment to D14264: Disconnect decoration button requestHover tooltip on decoration destuction.

What's really strange is that requestShowTooltip comes from the event loop. But nothing in kdecoration or in KWin goes through a queued event to KWin::Decoration::DecoratedClientImpl::requestShowToolTip.

Jul 21 2018, 7:04 PM · Plasma
graesslin added a comment to D14264: Disconnect decoration button requestHover tooltip on decoration destuction.

The hovered state cannot change if there is no decoration. Hover is from an event handler from Decoration. I doubt that this change here can fix the crash. Also that's the explanation for the update slot not checking: no hover change if there's no decoration.

Jul 21 2018, 6:56 PM · Plasma

Jul 20 2018

graesslin added inline comments to D14251: Flush Xwayland connection only when events were filtered.
Jul 20 2018, 6:44 PM · KWin

Jul 18 2018

graesslin accepted D14210: Don't remove outputs during page flip.
Jul 18 2018, 3:29 PM · KWin

Jul 17 2018

graesslin added inline comments to D14176: Use locked cursor position hint.
Jul 17 2018, 7:55 PM · KWin
graesslin accepted D14176: Use locked cursor position hint.
Jul 17 2018, 2:52 PM · KWin
graesslin accepted D14188: [libkwineffects] Deprecate Outline feature.
Jul 17 2018, 2:47 PM · KWin

Jul 15 2018

graesslin accepted D14142: Explicitly disable pointer constraints on TabBox invocation.
Jul 15 2018, 7:49 PM · KWin
graesslin added a comment to D14036: [wayland] Confine pointer to screen geometry.
In D14036#292528, @zzag wrote:

@graesslin Where should it go? Plasma/5.13(and master) or just master?

Jul 15 2018, 7:48 PM · KWin
graesslin added a comment to D14117: [effects/magiclamp] Eliminate unnecessary reallocations.

just saying: I really like these changes. Good work, keep it going!

Jul 15 2018, 1:42 PM · KWin
graesslin accepted D14036: [wayland] Confine pointer to screen geometry.
Jul 15 2018, 1:40 PM · KWin
graesslin added a comment to D14027: [kwinrules] Added option to enable and disable blur.

I would turn it around: first think about how to pass the information to the effects. Without that it doesn't make much sense to define which rules exists. Especially have a look how KWin core uses the rules. The common pattern is: something changes, then check in rules the value and use that as the true new value. That pattern is btw. not used in the code of this patch. But for having the rules work correctly and in all circumstances this is extremely important.

Jul 15 2018, 1:39 PM · KWin

Jul 10 2018

graesslin added a comment to D13456: [wayland] Make it possible to reach screen edges.

go for it :-)

Jul 10 2018, 5:47 PM · KWin
graesslin added inline comments to D13758: [tabbox] Deactivate client while switching windows on Wayland.
Jul 10 2018, 5:25 PM · KWin
graesslin added a comment to D13456: [wayland] Make it possible to reach screen edges.
In D13456#289923, @zzag wrote:
Jul 10 2018, 5:13 PM · KWin
graesslin added a comment to D14027: [kwinrules] Added option to enable and disable blur.

Adding support for rule in effects is not trivial. We have had this idea for years and never found a suitable and implementable solution. Hacking this in for one effect is not a solution. We need a general solution. And that is not trivial as many areas in KWin are lacking:

  • effects need to define sensible rules
  • rules ui must be able to load the rules for effects
  • a way to notify from rules to effects
Jul 10 2018, 5:11 PM · KWin

Jul 5 2018

graesslin added a comment to D13456: [wayland] Make it possible to reach screen edges.

What's the status of this?

I can help with anything if needed

Jul 5 2018, 5:15 PM · KWin
graesslin requested changes to D13887: use the new plasma virtual desktop protocol.

I think this change is way too invasive. When I drafted that my idea was to not change all in one go but make it backward compatible. Especially not touching anything related to X11 Windows.

Jul 5 2018, 5:15 PM · KWin

Jul 1 2018

graesslin accepted D13821: Use std::transform in libkwineffects implementation part.

Nice. To our defense: c++ wasn't that nice when that code was written.

Jul 1 2018, 2:20 PM · KWin
graesslin added a comment to D13084: Avoid invalid geometry of internal clients through plasma surface interface.

But if you think we should directly just in general disallow any geometry updates through the PlasmaShellSurface

IMHO yes. (through either this patch or in the QPA or in dialog) Having two providers of the same information is wrong, we should fix code paths to make sense, not just where we see bugs.
If it is brittle, we need to fix that regardless.

Jul 1 2018, 5:54 AM · KWin
graesslin added a comment to D13810: [effects] Rewrite the Dialog Parent effect.

I think it is a bad idea to go back to c++. From maintainability and hackability the switch to JavaScript was the most important change I ever did in KWin.

Jul 1 2018, 5:51 AM · KWin

Jun 30 2018

graesslin accepted D13616: Fractional scaling in DRM kscreen integration.
Jun 30 2018, 6:21 AM · KWin

Jun 28 2018

graesslin added a comment to D13758: [tabbox] Deactivate client while switching windows on Wayland.

also on Wayland we have X11 Windows with the negative side effects.

Jun 28 2018, 4:11 PM · KWin
graesslin accepted D13740: [libkwineffects] Add TimeLine helper.
Jun 28 2018, 4:04 PM · KWin
graesslin added a comment to D13758: [tabbox] Deactivate client while switching windows on Wayland.

-2 from my side. This has side effects which could in worst case trigger alt+tab to cancel.

In this case can you point out which side effects exactly and if possible propose a different solution?

Jun 28 2018, 4:27 AM · KWin

Jun 27 2018

graesslin accepted D13740: [libkwineffects] Add TimeLine helper.
Jun 27 2018, 7:10 PM · KWin
graesslin added a comment to D13758: [tabbox] Deactivate client while switching windows on Wayland.

-2 from my side. This has side effects which could in worst case trigger alt+tab to cancel.

Jun 27 2018, 7:06 PM · KWin
graesslin added inline comments to D13740: [libkwineffects] Add TimeLine helper.
Jun 27 2018, 4:31 AM · KWin
graesslin requested changes to D13740: [libkwineffects] Add TimeLine helper.
Jun 27 2018, 4:26 AM · KWin

Jun 26 2018

graesslin added a comment to D13740: [libkwineffects] Add TimeLine helper.

+1 from my side. I don't think we would have used it if the QEasingCurve would have existed at that time.

Jun 26 2018, 5:11 PM · KWin
graesslin added a comment to D13481: Recommend window border size "None".

Nate, I cannot believe what I read here. Every week you do a blog post about usability. In other reviews you draw the usability card so often that it annoys me. And here you want to break user setups and break with "form follows function". This is absolutely unbelievable to me.

Jun 26 2018, 4:30 AM · Plasma

Jun 25 2018

graesslin accepted D13715: Avoid potential assert in SM saving.
Jun 25 2018, 3:33 PM · KWin
graesslin added a comment to D13481: Recommend window border size "None".
In D13481#282653, @mart wrote:

What I thought of as a solution back when it happened was to check if it's a single click on the dead zone without mouse movement, then activate the window below. Since if you want to use the virtual border, you would move the mouse after press to drag. Not sure if it's worth it since as said, never disturbed my work flow afterwards again.

how difficult is to implement? would just bring the window forward, or actually pass the click? (ie, if there is a button under that dead zone, it should be clicked)

Jun 25 2018, 3:32 PM · Plasma

Jun 24 2018

graesslin accepted D13690: [libkwineffects] Save value of the managed property during construction of EffectWindow.
Jun 24 2018, 1:10 PM · KWin
graesslin added a comment to D13614: Workaround crash in Aurorae destruction.

I've seen. Sorry. It depends on the QSGRenderContext used. One hooks in with the GL context which is now out of scope - and my machine was doing something different.
Might be best to just revert as I did a proper (safe!) fix in Qt 5.12 and the original bug was more rare.

Jun 24 2018, 12:46 PM · KWin
graesslin accepted D13701: [libkwineffects] Emit a signal when active fullscreen effect changed.
Jun 24 2018, 8:25 AM · KWin
graesslin added a comment to D13614: Workaround crash in Aurorae destruction.

We are getting regression crash reports on X11 (or older Qt) now: https://bugs.kde.org/show_bug.cgi?id=395732 and a bisect report in https://bugs.kde.org/show_bug.cgi?id=395807

Jun 24 2018, 6:59 AM · KWin
graesslin added inline comments to D13690: [libkwineffects] Save value of the managed property during construction of EffectWindow.
Jun 24 2018, 6:57 AM · KWin

Jun 23 2018

graesslin requested changes to D13690: [libkwineffects] Save value of the managed property during construction of EffectWindow.

Except for the virtual I like the change

Jun 23 2018, 8:25 PM · KWin
graesslin accepted D13608: Load Kwin's internal cursors for the highest resolution of attached monitors.
Jun 23 2018, 8:22 PM · KWin
graesslin accepted D13605: DRM cursor scaling.
Jun 23 2018, 7:55 AM · KWin
graesslin accepted D13616: Fractional scaling in DRM kscreen integration.
Jun 23 2018, 7:54 AM · KWin
graesslin accepted D13606: Set correct DPR on wayland cursors received from remote buffers.
Jun 23 2018, 7:52 AM · KWin
graesslin accepted D13492: Make keyboard focus a pointer constraints necessity.
Jun 23 2018, 7:27 AM · KWin
graesslin accepted D13566: [effects/slide] Disable "Slide docks".
Jun 23 2018, 7:26 AM · KWin
graesslin added inline comments to D13605: DRM cursor scaling.
Jun 23 2018, 7:25 AM · KWin
graesslin added a comment to D13481: Recommend window border size "None".

Please don't play with the users. I would have never pushed a change to test how things work. They are not our testbed. That it worked on other platforms doesn't mean a thing. Maybe that other platform cannot even run into the dead zone situation.

Jun 23 2018, 7:20 AM · Plasma
graesslin accepted D13607: Remove concept of resolution dependent cursors.
Jun 23 2018, 6:48 AM · KWin
graesslin added inline comments to D13608: Load Kwin's internal cursors for the highest resolution of attached monitors.
Jun 23 2018, 6:47 AM · KWin

Jun 22 2018

graesslin accepted D13642: Support cursor scaling in X windowed backend.
Jun 22 2018, 4:55 PM · KWin

Jun 21 2018

graesslin added a comment to D13481: Recommend window border size "None".

To everyone here: you are extremely experienced developers and software users, partially working in the window manager area. Of course you understand why the dead zone happens and of course you are able to adapt to it. But please think of your users. I fear they won't understand it. Also with click the dead zone might be obvious. With just mouse hover it might not. Please try not to argument for this strong behavior change with anecdotal evidence like "I use this for years".

Jun 21 2018, 3:24 PM · Plasma
graesslin added a comment to D13481: Recommend window border size "None".

Right. That's not a workflow I think I've ever seen anyone do with a windowed game.

Jun 21 2018, 3:20 PM · Plasma

Jun 20 2018

graesslin added a comment to D13481: Recommend window border size "None".

There are two visual hints when the mouse is inside the deadzone.

You would still get the different cursor
The client gets the mouse left event and would not show any hover effect on whatever control might be there.
Jun 20 2018, 6:12 PM · Plasma

Jun 18 2018

graesslin added a comment to D13481: Recommend window border size "None".

I realized that there's yet another problem with the approach: if two windows border and the window with pointer focus is lower in the stacking order this would create a dead zone in the window. With compositing disabled this would be worse as there's not even a visual hint.

Jun 18 2018, 3:28 PM · Plasma

Jun 17 2018

graesslin added a comment to D13567: Smaller steps for animation speed option.

We don't break users configuration. There is nothing which justifies that. For example: if the user configured a wallpaper the new wallpaper won't replace it. Only default values my be modified by updates. As soon as a user configured a setting it must not be changed. Users need to be able to trust their software.

Jun 17 2018, 6:55 AM · KWin

Jun 16 2018

graesslin added a comment to D13567: Smaller steps for animation speed option.

This would break configurations of users.

Also I don't think that such a change is needed as I already expressed in the bug report. It is possible to adjust the speed on a per effect level. I doubt that any user would benefit from a higher granularity.

If users' configuration is one of 0, 1, 2, 3, it won't change anything. If users' configuration is 4, 5 or 6. It only get slightly faster, nothing break.

Jun 16 2018, 4:28 PM · KWin
graesslin added a comment to D13566: [effects/slide] Disable "Slide docks".

An advice: don't change the default based on the random feedback you get. If you change this I can promise you you will get the same amount of complaints after the next release.

Jun 16 2018, 3:51 PM · KWin
graesslin requested changes to D13567: Smaller steps for animation speed option.

This would break configurations of users.

Jun 16 2018, 3:44 PM · KWin
graesslin added a comment to D13530: Add XDG WmBase support.
In D13530#278467, @zzag wrote:

I disagree. comma at end is just bad style which is accepted by compilers.

by C++ standard. draft ;-)

Could you please explain why trailing commas are bad?

Jun 16 2018, 5:51 AM · KWin

Jun 14 2018

graesslin requested review of D13541: Port solid from Qt5::Widgets to Qt5::Gui.
Jun 14 2018, 4:10 PM · Frameworks
graesslin added inline comments to D13530: Add XDG WmBase support.
Jun 14 2018, 3:14 PM · KWin
graesslin added a comment to D13535: Do not cancel old clipboard selection if it is same as the new one..

I would appreciate a unit test for the issue.

Jun 14 2018, 3:04 PM · Frameworks
graesslin added inline comments to D13492: Make keyboard focus a pointer constraints necessity.
Jun 14 2018, 4:28 AM · KWin

Jun 11 2018

graesslin added a comment to D13456: [wayland] Make it possible to reach screen edges.
In D13456#277137, @zzag wrote:

run "dbus-launch ./test-whatever"

I usually go to the build directory and run

bin/testWhateverIWantToTest
Jun 11 2018, 7:30 PM · KWin
graesslin added a comment to D13456: [wayland] Make it possible to reach screen edges.

Great work. Could you please extend the unit test for this area. Did you run them? As this is a behavior change I could imagine that it breaks the existing tests.

Jun 11 2018, 4:29 AM · KWin
graesslin added inline comments to D13466: Remove pointer constraint on resource unbind.
Jun 11 2018, 4:25 AM · KWin

Jun 10 2018

graesslin added a dependency for D13459: [RFC] Implement new window tab API in DecoratedClientImpl: D12997: Add new api to support window tabs.
Jun 10 2018, 9:28 AM · KWin
graesslin added a dependent revision for D12997: Add new api to support window tabs: D13459: [RFC] Implement new window tab API in DecoratedClientImpl.
Jun 10 2018, 9:28 AM · Plasma