Add hint similar to autohide to raise/lower a window

Review Request #124272 - Created July 6, 2015 and submitted

Information
David Edmundson
kwin
847c89a...
Reviewers
kwin

Add action type to screen edge show to allow raise/lower as well as autohide

Add an action type to screen edge show to allow raise/lower as well as
autohide. This uses the same atom, using a mask to separate type and
location.

The logic for handling geometry changes is moved from the screenedge to
the client so that we can handle both types without screenedge needing
to know what the raise is for.


  

Issues

  • 0
  • 5
  • 6
  • 11
Description From Last Updated
Martin Flöser
Thomas Lübking
David Edmundson
David Edmundson
Thomas Lübking
David Edmundson
Thomas Lübking
David Edmundson
Thomas Lübking
David Edmundson
Thomas Lübking
Thomas Lübking
David Edmundson
Martin Flöser
David Edmundson
Review request changed

Status: Closed (submitted)

Change Summary:

Submitted with commit 04ab8554aacb5d39093aeb5fab0849e584b4fe82 by David Edmundson to branch master.
Martin Flöser

The change broke the screen edge auto test: https://build.kde.org/job/kwin%20master%20kf5-qt5/198/PLATFORM=Linux,compiler=gcc/

  1. I don't even understand the idea of the test - why should reserving an edge break the internal hidden state (ie. show it)?
    But I read a general complaint about autohiding panels which would start visible and not hide until a leave event - is this intentional then?

  2. reading the test case and the documentation, it verifies: "If the client doesn't border the screen edge, no Edge gets created and the client is shown again. Otherwise there would not be a possibility to show the client again."

    But I read a general complaint about autohiding panels which would start visible and not hide until a leave event - is this intentional then?

    I don't know how Plasma expects to handle that but on KWin side there should be nothing preventing it to be not starting hidden.

  3. Right above there's

    s->reserve(&client, KWin::ElectricBottom);
    QCOMPARE(edge.data(), s->findChildren<Edge*>().last());
    QCOMPARE(edge->isReserved(), true);

    what reads like "should be assignable" - I assume the test got broken by the removal of "client.setGeometry(QRect(2, 2, 20, 20));" ?

Loading...