1. 19 Jul, 2021 1 commit
  2. 29 Aug, 2020 12 commits
    • Mike Auty's avatar
      virtual-input-device/native: Try lower level keycodes first · b19894c3
      Mike Auty authored and Robert Mader's avatar Robert Mader committed
      Issue 405 relates to mismapped keys injected by gnome-remote-desktop.  It
      seems to be because a keyval (keysym) may be in the keymap more than once.
      We currently run through each keycode, trying from lowest level to highest
      level and stop as soon as we find a hit, which means that if the key
      symbol is in a lower level of a later keycode, we mis-pick the earlier one
      with the higher level (hence the far less common greek_OMEGA rather than
      common AT symbol).
      
      This patch swaps the order of the loops (so we loop through the levels
      from lowest to highest, and at each level run through the keycodes. We
      make sure we only go as high as the highest level for all keys (by
      figuring out the maximum on the first level's run through). This resolves
      the issues being experienced and ensures it is possible to type characters
      like @. It is slightly less efficient in the worst case, in that we keep
      figuring out the maximum for each key multiplied by the maximum number of
      levels (rather than 1), but in the common case is probably more efficient
      (because there's a whole bunch of higher levels we never have to try if we
      hit the right keycode first).
      
      Fixes #405.
      
      GNOME/mutter#405
      b19894c3
    • Olivier Fourdan's avatar
      xwayland: Add a setting to disable selected X extensions · 5171e35a
      Olivier Fourdan authored and Robert Mader's avatar Robert Mader committed
      The X server, including Xwayland, can be compiled with different X11
      extensions enabled at build time.
      
      When an X11 extension is built in the X server, it's usually also
      enabled at run time. Users can chose to disable those extensions at run
      time using the X server command line option "-extension".
      
      However, in the case of Xwayland, it is spawned automatically by the
      Wayland compositor, and the command line options are not configurable
      by users.
      
      Add a new setting to disable a selected set of X extension in Xwayland
      at startup, without needing to rebuild Xwayland.
      
      Of course, if Xwayland is not built with a given extension support in
      the first place (which is the default for the security extension for
      example), that option has no effect.
      
      GNOME/mutter!1405
      5171e35a
    • Marco Trevisan's avatar
      seat-native: Process device added/removed events as ClutterEvents · e44c42f2
      Marco Trevisan authored and Robert Mader's avatar Robert Mader committed
      Delay the addition and removal of devices using ClutterDeviceEvent's so that
      they are processed following the libinput event order, and that we don't
      have to flush the events on removal.
      
      GNOME/mutter!1371
      e44c42f2
    • Marco Trevisan's avatar
      seat-x11: Translate device enabled/disabled into clutter events · 9db289b4
      Marco Trevisan authored and Robert Mader's avatar Robert Mader committed
      When a device is removed from the seat the events that this device may have
      emitted just before being removed might still be in the stage events queue,
      this may lead a to a crash because:
      
      Once the device is removed, we dispose it and the staling event is
      kept in queue and sent for processing at next loop.
      During event processing we ask the backend to update the last device
      with the disposed device
      The device is disposed once the events referencing it, are free'd
      The actual last device emission happens in an idle, but at this point
      the device may have been free'd, and in any case will be still disposed
      and so not providing useful informations.
      
      To avoid this, once a device has been added/removed from the seat, we queue
      ClutterDeviceEvent events to inform the stack that the device state has
      changed, preserving the order with the other actual generated device events.
      In this way it can't happen that we emit another event before that the
      device has been added or after that it has been removed.
      
      Fixes: GNOME/mutter#1345
      9db289b4
    • Marco Trevisan's avatar
      clutter-seat: Handle device events and emit signals · cf67c54f
      Marco Trevisan authored and Robert Mader's avatar Robert Mader committed
      Clutter device events are special events coming from the backend when an
      input device is added or removed.
      
      When such events are processed, we should make the seat to handle them by
      calling vfunc that can be implemented by each backend and eventually
      emitting the appropriate signal.
      
      If a device is removed, we can also safely dispose it, as it can be
      considered stale at this point.
      
      GNOME/mutter!1371
      cf67c54f
    • Marco Trevisan's avatar
      clutter-event: Add device added/removed events · 928b32b1
      Marco Trevisan authored and Robert Mader's avatar Robert Mader committed
      Add clutter device added and removed events to allow processing of them as
      it happens in the backends, queuing them and performing actions in order.
      
      This allows not to loose any event that is performed just before removing or
      disabling a device, and still process the events in order in the event
      queue.
      
      GNOME/mutter!1371
      928b32b1
    • Marco Trevisan's avatar
      backend: Use connect-after to perform actions on device removed · 5730b998
      Marco Trevisan authored and Robert Mader's avatar Robert Mader committed
      When a device is removed we perform some actions such as stopping the
      "::last-device-changed" signal emission and unsetting the current device.
      And we want to be sure that these actions happen after all the
      device-removed operations are sorted out.
      
      Related to: GNOME/mutter#1345
      GNOME/mutter!1371
      5730b998
    • Marco Trevisan's avatar
      backend: Don't emit last-device updates with no device · 07568267
      Marco Trevisan authored and Robert Mader's avatar Robert Mader committed
      When removing a device that has been just marked as the last in use, we may
      try to notify that a NULL device is the last one.
      
      This is not supported, as both update_last_device() and the clients of the
      "::last-device-changed" signal are assuming that the last device is always
      a valid ClutterInputDevice.
      
      So let's avoid erroring, and stop the idle when clearing the current device.
      
      Related to: GNOME/mutter#1345
      GNOME/mutter!1371
      07568267
    • Björn Daase's avatar
      cogl: Fix spelling of CoglPipelineStateComparator · 285f2a21
      Björn Daase authored and Robert Mader's avatar Robert Mader committed
      GNOME/mutter!1410
      285f2a21
    • Björn Daase's avatar
      *: Fix spelling mistakes found by codespell · 5ec9bde6
      Björn Daase authored and Robert Mader's avatar Robert Mader committed
      GNOME/mutter!1410
      5ec9bde6
    • Benjamin Berg's avatar
      startup: Fix possible crash in startup notifications · 5962ee79
      Benjamin Berg authored and Robert Mader's avatar Robert Mader committed
      A GAppInfo is not guaranteed to have a filename or an application (or
      rather a desktop ID). Add a check for application_id to be non-NULL
      before trying to call sn_launcher_set_application_id, which would crash
      otherwise.
      
      GNOME/mutter!1392
      5962ee79
    • Gwan-gyeong Mun's avatar
      Update Korean translation · a4f1c5f3
      Gwan-gyeong Mun authored and Administrator's avatar Administrator committed
      a4f1c5f3
  3. 28 Aug, 2020 4 commits
  4. 26 Aug, 2020 5 commits
  5. 25 Aug, 2020 2 commits
    • Pascal Nowack's avatar
      screen-cast: Increase size of maximum mouse pointer bitmap · 5037b88a
      Pascal Nowack authored
      Currently, the maximum size for a mouse pointer bitmap for screen
      casting is 64x64 pixels.
      However, this limit is hit way too often as it is way too low and
      results in crashes in either gnome-remote-desktop or mutter.
      For example: The a11y settings in g-c-c allow setting a larger pointer
      bitmap in order to increase the visibility of the mouse pointer.
      With the current limit of 64x64 pixels it is not possible to use the
      larger variants of the default mouse pointer bitmap, without
      experiencing any crash.
      Another way to hit the limit is when display scaling is used or some
      game uses a custom (large) mouse pointer bitmap.
      
      The VNC backend in gnome-remote-desktop does not seem to have a maximum
      pointer bitmap size.
      The RDP backend on the other hand has a maximum pointer bitmap size at
      384x384.
      
      Use this size (384x384) as maximum size instead of the current 64x64
      size for mouse pointer bitmaps to avoid crashes in mutter and
      gnome-remote-desktop and to ensure that bigger mouse pointer bitmaps
      can be used.
      
      GNOME/mutter!1414
      5037b88a
    • Marek Černocký's avatar
      Updated Czech translation · 7da1c952
      Marek Černocký authored
      7da1c952
  6. 24 Aug, 2020 1 commit
  7. 23 Aug, 2020 3 commits
  8. 22 Aug, 2020 1 commit
  9. 20 Aug, 2020 2 commits
  10. 19 Aug, 2020 1 commit
  11. 17 Aug, 2020 3 commits
  12. 16 Aug, 2020 1 commit
  13. 15 Aug, 2020 2 commits
  14. 14 Aug, 2020 1 commit
  15. 13 Aug, 2020 1 commit
    • Jian-Hong Pan's avatar
      monitor-manager: Set switch config when create monitors config · bd6bab11
      Jian-Hong Pan authored and Jonas Ådahl's avatar Jonas Ådahl committed
      It is linear config manager created when ensuring configuration.
      However, the switch config is not set as LINEAR, but left as UNKNOWN.
      This leads switch mode OSD always shows "Join Displays" icon, rather
      than the next icon which is "External Only" after connect an external
      display and press Super+P once at first time since mutter starts.
      
      This patch moves switch config setting into
      meta_monitor_config_manager_create_linear() (and the sibling functions)
      to well prepare the monitors config and avoid missing settings.
      
      This is a regression introduced by 149e4d69.
      
      Fixes: GNOME/mutter#1362
      bd6bab11