1. 25 Feb, 2021 2 commits
  2. 24 Feb, 2021 6 commits
  3. 23 Feb, 2021 8 commits
    • Vlad Zahorodnii's avatar
      Fix build · 73dd65f4
      Vlad Zahorodnii authored
      73dd65f4
    • Aleix Pol Gonzalez's avatar
      inputmethod: do not cover panels with the input method (e.g. virtual keyboard) · 65ad7ffb
      Aleix Pol Gonzalez authored and Aleix Pol Gonzalez's avatar Aleix Pol Gonzalez committed
      This way we can adapt the panels themselves to show useful UX like
      hiding the keyboard or switching.
      65ad7ffb
    • Vlad Zahorodnii's avatar
      Add QDebug stream operator for AbstractOutput · 220a1e04
      Vlad Zahorodnii authored
      This can be useful for debugging purposes.
      220a1e04
    • Vlad Zahorodnii's avatar
      effects: Properly copy previous geometry · 33ba2974
      Vlad Zahorodnii authored
      In QJSEngine, QRect is an Object, which is correct. This means that we
      cannot use simple assignment operator to copy geometries, we need to use
      standard ways to copy Objects, such as Object.assign() or the spread
      operator, which is not available in QJSEngine yet.
      33ba2974
    • Vlad Zahorodnii's avatar
      Drop QtScript dependency · bd4d17b3
      Vlad Zahorodnii authored
      QtScript is not used anywhere anymore plus it's dropped in Qt 6.
      bd4d17b3
    • David Edmundson's avatar
      [scripting] Port ScriptedEffects to QJSEngine · ae6e6dc6
      David Edmundson authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      Summary:
      QScriptEngine is deprecated for years and suffers bitrot.
      Plasma hit one super major bug with it in 5.11.0 and has now ported
      away.
      
      Main porting notes:
      - creating low level functions no longer exists
      The old global functions are exposed on the ScriptedEffect instance
      and then the QJSValue wrappers of the globalObject are modified to
      trampoline the methods at a wrapper level.
      
      - We can then use QJSEngine to automatically do argument error checking
      rather than unmarshalling a QJSValue manually which significantly
      reduces a lot of code.
      
      - We can't make FPX2 a native type, so these are QJSValue args and
      unboxed there.
      
      Long term I want overloads for animate that take int/QSize/QPoint which
      are native JS types, but that might be an API break.
      
      Test Plan:
      Hopefully comprehensive unit test which passes
      Tested fade/fadeDesktop manually.
      
      It's a very invasive change, so I expect some things will be broke
      please help test any JS effects.
      
      Reviewers: #kwin, mart, fvogt
      
      Subscribers: fvogt, zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D14536
      ae6e6dc6
    • Vlad Zahorodnii's avatar
      scripting: Port Script to QJSEngine · 566d4aa2
      Vlad Zahorodnii authored
      QtScript is not well maintained and deprecated in favor of QJSEngine.
      566d4aa2
    • Bhushan Shah's avatar
      [platforms/drm] include missing errno.h include · 28d2650f
      Bhushan Shah authored
      CCMAIL: Xaver Hugl <xaver.hugl@gmail.com>
      28d2650f
  4. 22 Feb, 2021 8 commits
  5. 19 Feb, 2021 10 commits
  6. 18 Feb, 2021 6 commits
    • Aleix Pol Gonzalez's avatar
      Prevent layershell from crashing when rearranging when we shouldn't · 04465e99
      Aleix Pol Gonzalez authored
      Here's the backtrace that prompted the MR:
      ```
      0  QVector<KWin::VirtualDesktop*>::count() const (this=0x10) at
      /home/apol/devel/kde5/include/QtCore/qvector.h:241
      1  KWin::VirtualDesktopManager::count() const (this=0x0) at
      /home/apol/devel/frameworks/kwin/src/virtualdesktops.h:687
      2  KWin::Workspace::updateClientArea(bool) (this=0x0, force=false) at
      /home/apol/devel/frameworks/kwin/src/workspace.cpp:2089
      3  0x00007fef12a180b3 in KWin::LayerShellV1Integration::rearrange()
      (this=<optimized out>) at
      /home/apol/devel/frameworks/kwin/src/layershellv1integration.cpp:208
      4  0x00007fef13094806 in QtPrivate::QSlotObjectBase::call(QObject*,
      void**) (a=0x7ffcf9674f70, r=0x5569d2981a40, this=0x5569d2981e50) at
      ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
      5  doActivate<false>(QObject*, int, void**) (sender=0x5569d2981dc0,
      signal_index=3, argv=argv@entry=0x7ffcf9674f70) at
      /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886
      6  0x00007fef1308db60 in QMetaObject::activate(QObject*, QMetaObject
      const*, int, void**) (sender=<optimized out>, m=m@entry=0x7fef1332d280
      <QTimer::staticMetaObject>,
      local_signal_index=local_signal_index@entry=0,
      argv=argv@entry=0x7ffcf9674f70) at
      /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3946
      7  0x00007fef1309871a in QTimer::timeout(QTimer::QPrivateSignal)
      (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205
      ```
      04465e99
    • Aleix Pol Gonzalez's avatar
      --warning: Don't try to connect to a null object · 4fb24938
      Aleix Pol Gonzalez authored
      It happens when running without libinput.
      4fb24938
    • Aleix Pol Gonzalez's avatar
      pipewire: Don't crash if we're passed a null spa_data · 8950b781
      Aleix Pol Gonzalez authored and Aleix Pol Gonzalez's avatar Aleix Pol Gonzalez committed
      I just had that crash, this is what coredumpctl suggested it was
      happening.
      We don't need to make sure we're in dmabuf mode to remove the buffer.
      Worst case scenario it won't remove anything. Check the spa_data before
      querying in case it's null.
      8950b781
    • Méven Car's avatar
      DrmGpu fix atomicModeSetting try · 11c3ada1
      Méven Car authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      11c3ada1
    • Vlad Zahorodnii's avatar
      x11: Properly detect whether swap events have to disabled · cf2486d6
      Vlad Zahorodnii authored
      qEnvironmentVariableIntValue() will return 0 if the specified variable
      is not set.
      
      This means that swap events will be disabled on AMD GPUs unless the env
      var is set explicitly to 1.
      cf2486d6
    • Bhushan Shah's avatar
      inputmethod: toggle the inputmethod if we get second show request · 892b8cf6
      Bhushan Shah authored
      This is in a way working around bad protocol, input-method-unstable-v1
      and also input-method-unstable-v2 does not have a way for input-method
      to mark itself as "deactivated". This can happen when e.g. user closes
      the virtual keyboard using swiping down or "close keyboard" button in
      keyboard.
      
      When this happens, the state between compositor, text_input and
      input_method gets out of sync, compositor does not know that input
      method got deactivated and hence it will continue sending various events
      to it. The quick way around it is to change focus, which makes
      compositor send deactivate request to input-method, that puts compositor
      and input-method in sync again.
      
      This patch aims to solve this by tracking the last state of input
      method, If we know that input method is active and text input sends us
      the show event, we toggle the input-method.
      
      I will re-iterate that this is in no way proper solution, ideally
      input-method-unstable-v3 or input-method-unstable-v2 even (since it is
      not upstream anyway) gains the new request which essentially allows
      input-method to sync enabled/disabled state with compositor.
      892b8cf6