Skip to content
Snippets Groups Projects
  1. Oct 03, 2023
  2. Sep 29, 2023
  3. Sep 12, 2023
  4. Sep 04, 2023
  5. Jun 27, 2023
  6. May 28, 2023
  7. Mar 21, 2023
    • Marc-André Lureau's avatar
      ui: fix crash on serial reset, during init · 49152ac4
      Marc-André Lureau authored
      
      For ex, when resetting the xlnx-zcu102 machine:
      
      (lldb) bt
      * thread #1, queue = 'com.apple.main-thread', stop reason =
      EXC_BAD_ACCESS (code=1, address=0x50)
         * frame #0: 0x10020a740 gd_vc_send_chars(vc=0x000000000) at
      gtk.c:1759:41 [opt]
           frame #1: 0x100636264 qemu_chr_fe_accept_input(be=<unavailable>) at
      char-fe.c:159:9 [opt]
           frame #2: 0x1000608e0 cadence_uart_reset_hold [inlined]
      uart_rx_reset(s=0x10810a960) at cadence_uart.c:158:5 [opt]
           frame #3: 0x1000608d4 cadence_uart_reset_hold(obj=0x10810a960) at
      cadence_uart.c:530:5 [opt]
           frame #4: 0x100580ab4 resettable_phase_hold(obj=0x10810a960,
      opaque=0x000000000, type=<unavailable>) at resettable.c:0 [opt]
           frame #5: 0x10057d1b0 bus_reset_child_foreach(obj=<unavailable>,
      cb=(resettable_phase_hold at resettable.c:162), opaque=0x000000000,
      type=RESET_TYPE_COLD) at bus.c:97:13 [opt]
           frame #6: 0x1005809f8 resettable_phase_hold [inlined]
      resettable_child_foreach(rc=0x000060000332d2c0, obj=0x0000600002c1c180,
      cb=<unavailable>, opaque=0x000000000, type=RESET_TYPE_COLD) at
      resettable.c:96:9 [opt]
           frame #7: 0x1005809d8 resettable_phase_hold(obj=0x0000600002c1c180,
      opaque=0x000000000, type=RESET_TYPE_COLD) at resettable.c:173:5 [opt]
           frame #8: 0x1005803a0
      resettable_assert_reset(obj=0x0000600002c1c180, type=<unavailable>) at
      resettable.c:60:5 [opt]
           frame #9: 0x10058027c resettable_reset(obj=0x0000600002c1c180,
      type=RESET_TYPE_COLD) at resettable.c:45:5 [opt]
      
      While the chardev is created early, the VirtualConsole is associated
      after, during qemu_init_displays().
      
      Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
      Tested-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
      Message-Id: <20230220072251.3385878-1-marcandre.lureau@redhat.com>
      49152ac4
    • Marc-André Lureau's avatar
      ui/gtk: fix cursor moved to left corner · 281a77df
      Marc-André Lureau authored
      
      Do not attempt to move the pointer if the widget is not yet realized.
      The mouse cursor is placed to the corner of the screen, on X11 at least,
      as x_root and y_root are then miscalculated. (this is not reproducible
      on Wayland, because Gtk doesn't implement device warping there)
      
      This also fixes the following warning at start:
      qemu: Gdk: gdk_window_get_root_coords: assertion 'GDK_IS_WINDOW (window)' failed
      
      Fixes: 6effaa16 ("ui: set cursor position upon listener
      registration")
      Reported-by: default avatarBernhard Beschow <shentey@gmail.com>
      Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
      Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
      Tested-by: default avatarBernhard Beschow <shentey@gmail.com>
      Message-Id: <20230320132624.1612464-1-marcandre.lureau@redhat.com>
      281a77df
  8. Feb 14, 2023
  9. Feb 08, 2023
  10. Nov 23, 2022
  11. Oct 24, 2022
  12. Oct 12, 2022
  13. Jul 19, 2022
  14. Jun 14, 2022
    • Akihiko Odaki's avatar
      ui: Deliver refresh rate via QemuUIInfo · aeffd071
      Akihiko Odaki authored
      
      This change adds a new member, refresh_rate to QemuUIInfo in
      include/ui/console.h. It represents the refresh rate of the
      physical display backend, and it is more appropriate than
      GUI update interval as the refresh rate which the emulated device
      reports:
      - sdl may set GUI update interval shorter than the refresh rate
        of the physical display to respond to user-generated events.
      - sdl and vnc aggressively changes GUI update interval, but
        a guests is typically not designed to respond to frequent
        refresh rate changes, or frequent "display mode" changes in
        general. The frequency of refresh rate changes of the physical
        display backend matches better to the guest's expectation.
      
      QemuUIInfo also has other members representing "display mode",
      which makes it suitable for refresh rate representation. It has
      a throttling of update notifications, and prevents frequent changes
      of the display mode.
      
      Signed-off-by: default avatarAkihiko Odaki <akihiko.odaki@gmail.com>
      Message-Id: <20220226115516.59830-3-akihiko.odaki@gmail.com>
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      aeffd071
  15. Mar 18, 2022
  16. Mar 14, 2022
  17. Jan 13, 2022
  18. Dec 21, 2021
  19. Nov 22, 2021
  20. Nov 05, 2021
  21. Sep 15, 2021
  22. Aug 10, 2021
  23. Jul 26, 2021
    • Volker Rümelin's avatar
      ui/gtk: add a keyboard fifo to the VTE consoles · 584af1f1
      Volker Rümelin authored
      
      Since commit 8eb13bbb ("ui/gtk: vte: fix sending multiple
      characeters") it's very easy to lock up QEMU with the GTK ui.
      If you configure a guest with a serial device and the guest
      doesn't listen on this device, QEMU will lock up after
      entering two characters in the serial console. That's because
      current code uses a busy loop for the chardev write retries
      and the busy loop doesn't terminate in this case.
      
      To fix this problem add a fifo to the VTE consoles and use the
      chr_accept_input() callback function to write the remaining
      characters in the queue to the chardev.
      
      The fifo has a size of 4096 bytes, so one can copy and paste
      a fairly large URL or file path.
      
      Fixes: 8eb13bbb ("ui/gtk: vte: fix sending multiple characeters")
      Signed-off-by: default avatarVolker Rümelin <vr_qemu@t-online.de>
      Message-Id: <20210725165039.5242-1-vr_qemu@t-online.de>
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      584af1f1
    • Dennis Wölfing's avatar
      ui/gtk: Fix relative mouse with multiple monitors · cd6c768f
      Dennis Wölfing authored
      
      To handle relative mouse input the event handler needs to move the mouse
      away from the screen edges. Failing to do so results in the mouse
      getting stuck at invisible walls. However the current implementation for
      this is broken on hosts with multiple monitors.
      
      With multiple monitors the mouse can be located outside of the current
      monitor which is not handled by the current code. Also the monitor
      itself might be located at coordinates different from (0, 0).
      
      Signed-off-by: default avatarDennis Wölfing <denniswoelfing@gmx.de>
      Reviewed-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
      Message-Id: <20210720143940.291413-1-denniswoelfing@gmx.de>
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      cd6c768f
Loading