VirtualBox

Custom Query (16363 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (49 - 51 of 16363)

Ticket Resolution Summary Owner Reporter
#19650 fixed XWayland: Fix shortcuts like alt-tab not working under [X]wayland gombara Frank Batschulat (Oracle)
Description

From: "Hans de Goede" <> To: vbox-dev <vbox-dev@…> Subject: [vbox-dev] [PATCH][resend] Fix shortcuts like alt-tab not working under [X]wayland Date: Mon, 08 Jun 2020 17:18:57 +0200

Hi,

Note this is a resend since my first submission was ignored. This patch makes virtualbox work much better (things like alt+tab will work in the VM) when run inside a Wayland session. Can we please get this merged?

The attached patch tackles a long-standing issue when running VirtualBox under [X]wayland. By default keyboard-grabs are denied to X11 apps under Xwayland, this causes e.g. alt-tab to not be send to the VM, but to go to the host window-environment.

The attached patch modifies VirtualBox to send a special ClientMessage which lets mutter knows that VirtualBox works properly with emulated grabs and that they should be allowed.

As usual, the patch is released under the MIT license.

Regards,

Hans

diff -up VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp~ VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp
--- VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp~	2020-02-18 18:19:59.000000000 +0100
+++ VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp	2020-04-06 13:30:21.274027340 +0200
@@ -2203,6 +2204,17 @@ void UICommon::setWMClass(QWidget *pWidg
     XSetClassHint(QX11Info::display(), pWidget->window()->winId(), &windowClass);
 }
 
+/* static */
+void UICommon::setXwaylandMayGrabKeyboardFlag(QWidget *pWidget)
+{
+    /* Tell the WM we are well behaved wrt Xwayland keyboard-grabs. This will
+     * make the WM turn our grab into a Wayland shortcut inhibition request,
+     * so that e.g. alt+tab will get send to the VM instead of moving the
+     * focus away from the VM. */
+    XXSendClientMessage(QX11Info::display(), pWidget->window()->winId(),
+                        "_XWAYLAND_MAY_GRAB_KEYBOARD", 1);
+}
+
 #endif /* VBOX_WS_X11 */
 
 /* static */
diff -up VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h~ VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h
--- VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h~	2020-02-18 18:19:59.000000000 +0100
+++ VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h	2020-04-06 13:30:20.345012390 +0200
@@ -416,6 +416,8 @@ public:
 
         /** Assigns WM_CLASS property for passed @a pWidget. */
         static void setWMClass(QWidget *pWidget, const QString &strNameString, const QString &strClassString);
+        /** Tell the WM the passed @a pWidget window is well behaved wrt XWayland keyboard-grabs. */
+        static void setXwaylandMayGrabKeyboardFlag(QWidget *pWidget);
 #endif /* VBOX_WS_X11 */
 
         /** Assigns minimum @a pSpinBox to correspond to @a cCount digits. */
diff -up VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp~ VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp
--- VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp~	2020-04-06 13:18:46.000000000 +0200
+++ VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	2020-04-06 13:25:52.235673962 +0200
@@ -135,6 +135,8 @@ void UIMachineWindow::prepare()
         strWindowName = QString("VirtualBox Machine UUID: %1").arg(uiCommon().managedVMUuid().toString());
     /* Assign WM_CLASS property: */
     UICommon::setWMClass(this, strWindowName, strWindowClass);
+    /* Tell the WM we are well behaved wrt Xwayland keyboard-grabs: */
+    UICommon::setXwaylandMayGrabKeyboardFlag(this);
 #endif
 }
 
#19985 fixed Virtual Media Manager crashes when I close it gombara Artem S. Tashkinov
Description

This has been happening for more than a year already.

OS: Fedora 32 with all updates installed

NVIDIA drivers: 455.28

Steps to reproduce:

1) Open Virtual Media Manager

2) Close it

3) Get a crash:

Process 1242677 (VirtualBox) of user 1000 dumped core.

Stack trace of thread 1242677:
#0  0x00007f36a8a4ac88 _ZNK7QWindow10isTopLevelEv (libQt5Gui.so.5 + 0x128c88)
#1  0x00007f36a8a4cb47 _ZN14QWindowPrivate27maybeQuitOnLastWindowClosedEv (libQt5Gui.so.5 + 0x12ab47)
#2  0x00007f36a8a515d5 _ZN7QWindow5eventEP6QEvent (libQt5Gui.so.5 + 0x12f5d5)
#3  0x00007f36a844af4b _ZN13QWidgetWindow5eventEP6QEvent (libQt5Widgets.so.5 + 0x1cef4b)
#4  0x00007f36a83ee063 _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x172063)
#5  0x00007f36a90e5fc0 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x25afc0)
#6  0x00007f36a8a435ad _ZN22QGuiApplicationPrivate17processCloseEventEPN29QWindowSystemInterfacePrivate10CloseEventE (libQt5Gui.so.5 + 0x1215ad)
#7  0x00007f36a8a2815b _ZN22QWindowSystemInterface22sendWindowSystemEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Gui.so.5 + 0x10615b)
#8  0x00007f36a3dd4c9e _ZL17xcbSourceDispatchP8_GSourcePFiPvES1_ (libQt5XcbQpa.so.5 + 0x65c9e)
#9  0x00007f36a6e6878f g_main_context_dispatch (libglib-2.0.so.0 + 0x5278f)
#10 0x00007f36a6e68b18 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0x52b18)
#11 0x00007f36a6e68be3 g_main_context_iteration (libglib-2.0.so.0 + 0x52be3)
#12 0x00007f36a9131b73 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2a6b73)
#13 0x00007f36a90e491b _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x25991b)
#14 0x00007f36a90ec5a6 _ZN16QCoreApplication4execEv (libQt5Core.so.5 + 0x2615a6)
#15 0x0000000000479cce TrustedMain (VirtualBox + 0x79cce)
#16 0x0000000000477a1e main (VirtualBox + 0x77a1e)
#17 0x00007f36a7e19042 __libc_start_main (libc.so.6 + 0x27042)
#18 0x00000000004793ee _start (VirtualBox + 0x793ee)

Stack trace of thread 1242689:
#0  0x00007f36a7b45e92 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xfe92)
#1  0x00007f36a758157f _xcb_conn_wait (libxcb.so.1 + 0xd57f)
#2  0x00007f36a758371a xcb_wait_for_event (libxcb.so.1 + 0xf71a)
#3  0x00007f36a3dd3c78 _ZN14QXcbEventQueue3runEv (libQt5XcbQpa.so.5 + 0x64c78)
#4  0x00007f36a8f51690 _ZN14QThreadPrivate5startEPv (libQt5Core.so.5 + 0xc6690)
#5  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#6  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242692:
#0  0x00007f36a7ee8aaf __poll (libc.so.6 + 0xf6aaf)
#1  0x00007f36a6e68aae g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0x52aae)
#2  0x00007f36a6e68be3 g_main_context_iteration (libglib-2.0.so.0 + 0x52be3)
#3  0x00007f36a9131b73 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2a6b73)
#4  0x00007f36a90e491b _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x25991b)
#5  0x00007f36a8f50427 _ZN7QThread4execEv (libQt5Core.so.5 + 0xc5427)
#6  0x00007f36a3cb451b _ZN22QDBusConnectionManager3runEv (libQt5DBus.so.5 + 0x1951b)
#7  0x00007f36a8f51690 _ZN14QThreadPrivate5startEPv (libQt5Core.so.5 + 0xc6690)
#8  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#9  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242697:
#0  0x00007f36a7ee8aaf __poll (libc.so.6 + 0xf6aaf)
#1  0x00007f36a944cf12 _pr_poll_with_poll (VBoxXPCOM.so + 0xa4f12)
#2  0x00007f36a944e825 VBoxNsprPR_Poll (VBoxXPCOM.so + 0xa6825)
#3  0x00007f36a17b5f2c _ZL10ConnThreadPv (VBoxXPCOMIPCC.so + 0x17f2c)
#4  0x00007f36a9449ba5 _pt_iprt_root (VBoxXPCOM.so + 0xa1ba5)
#5  0x00007f36a97896f4 rtThreadMain (VBoxRT.so + 0x1896f4)
#6  0x00007f36a984137e _ZL18rtThreadNativeMainPv (VBoxRT.so + 0x24137e)
#7  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#8  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242777:
#0  0x00007f36a7b461b8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0x101b8)
#1  0x00007f36a8f56d0a _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt5Core.so.5 + 0xcbd0a)
#2  0x00007f36a8f56e0b _ZN14QWaitCondition4waitEP6QMutexm (libQt5Core.so.5 + 0xcbe0b)
#3  0x00007f36a9bd9dd2 _ZN12UIThreadPool11dequeueTaskEP14UIThreadWorker (UICommon.so + 0x288dd2)
#4  0x00007f36a9bda163 _ZN14UIThreadWorker3runEv (UICommon.so + 0x289163)
#5  0x00007f36a8f51690 _ZN14QThreadPrivate5startEPv (libQt5Core.so.5 + 0xc6690)
#6  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#7  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242731:
#0  0x00007f36a7b461b8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0x101b8)
#1  0x00007f36a984321c RTSemEventWait (VBoxRT.so + 0x24321c)
#2  0x00007f36a04fbb16 _ZN14ListenerRecord7dequeueEPP6IEventiRN4util12AutoLockBaseE (VBoxC.so + 0x111b16)
#3  0x00007f36a04fbd2a _ZN11EventSource8getEventERK6ComPtrI14IEventListenerEiRS0_I6IEventE (VBoxC.so + 0x111d2a)
#4  0x00007f36a066a3a0 _ZN15EventSourceWrap8GetEventEP14IEventListeneriPP6IEvent (VBoxC.so + 0x2803a0)
#5  0x00007f36a9d607ff _ZN12CEventSource8GetEventERK14CEventListeneri (UICommon.so + 0x40f7ff)
#6  0x00007f36a9bbc1c8 _ZN26UIMainEventListeningThread3runEv (UICommon.so + 0x26b1c8)
#7  0x00007f36a8f51690 _ZN14QThreadPrivate5startEPv (libQt5Core.so.5 + 0xc6690)
#8  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#9  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242698:
#0  0x00007f36a7b45e92 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xfe92)
#1  0x00007f36a944aebe VBoxNsprPR_WaitCondVar (VBoxXPCOM.so + 0xa2ebe)
#2  0x00007f36a944b101 VBoxNsprPR_Wait (VBoxXPCOM.so + 0xa3101)
#3  0x00007f36a17b2f90 _ZN14DConnectWorker3RunEv (VBoxXPCOMIPCC.so + 0x14f90)
#4  0x00007f36a943942b _ZN8nsThread4MainEPv (VBoxXPCOM.so + 0x9142b)
#5  0x00007f36a9449ba5 _pt_iprt_root (VBoxXPCOM.so + 0xa1ba5)
#6  0x00007f36a97896f4 rtThreadMain (VBoxRT.so + 0x1896f4)
#7  0x00007f36a984137e _ZL18rtThreadNativeMainPv (VBoxRT.so + 0x24137e)
#8  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#9  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242690:
#0  0x00007f36a7ee8aaf __poll (libc.so.6 + 0xf6aaf)
#1  0x00007f36a6e68aae g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0x52aae)
#2  0x00007f36a6e68be3 g_main_context_iteration (libglib-2.0.so.0 + 0x52be3)
#3  0x00007f36a6e68c31 glib_worker_main (libglib-2.0.so.0 + 0x52c31)
#4  0x00007f36a6e927f2 g_thread_proxy (libglib-2.0.so.0 + 0x7c7f2)
#5  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#6  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242696:
#0  0x00007f36a7b45e92 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xfe92)
#1  0x00007f36a98432f1 RTSemEventWait (VBoxRT.so + 0x2432f1)
#2  0x00007f36a9786cd9 RTReqQueueProcess (VBoxRT.so + 0x186cd9)
#3  0x00007f36a984122e _ZL32rtThreadPosixPriorityProxyThreadP11RTTHREADINTPv (VBoxRT.so + 0x24122e)
#4  0x00007f36a97896f4 rtThreadMain (VBoxRT.so + 0x1896f4)
#5  0x00007f36a984137e _ZL18rtThreadNativeMainPv (VBoxRT.so + 0x24137e)
#6  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#7  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242729:
#0  0x00007f36a7b461b8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0x101b8)
#1  0x00007f36a984321c RTSemEventWait (VBoxRT.so + 0x24321c)
#2  0x00007f36a058cf68 _ZN16VirtualBoxClient16SVCWatcherThreadEP11RTTHREADINTPv (VBoxC.so + 0x1a2f68)
#3  0x00007f36a97896f4 rtThreadMain (VBoxRT.so + 0x1896f4)
#4  0x00007f36a984137e _ZL18rtThreadNativeMainPv (VBoxRT.so + 0x24137e)
#5  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#6  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242730:
#0  0x00007f36a7b461b8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0x101b8)
#1  0x00007f36a944aaa1 pt_TimedWait (VBoxXPCOM.so + 0xa2aa1)
#2  0x00007f36a944ae63 VBoxNsprPR_WaitCondVar (VBoxXPCOM.so + 0xa2e63)
#3  0x00007f36a944b101 VBoxNsprPR_Wait (VBoxXPCOM.so + 0xa3101)
#4  0x00007f36a17a9d88 _ZL10WaitTargetRK4nsIDjPP10ipcMessagePFjPvP13ipcTargetDataPKS2_ES5_ (VBoxXPCOMIPCC.so + 0xbd88)
#5  0x00007f36a17aaa80 _Z15IPC_WaitMessagejRK4nsIDP19ipcIMessageObserverS3_j (VBoxXPCOMIPCC.so + 0xca80)
#6  0x00007f36a17b0b6b _ZN12DConnectStub10CallMethodEtPK15nsXPTMethodInfoP17nsXPTCMiniVariant (VBoxXPCOMIPCC.so + 0x12b6b)
#7  0x00007f36a9445f71 PrepareAndDispatch (VBoxXPCOM.so + 0x9df71)
#8  0x00007f36a94453ef SharedStub (VBoxXPCOM.so + 0x9d3ef)
#9  0x00007f36a9d607ff _ZN12CEventSource8GetEventERK14CEventListeneri (UICommon.so + 0x40f7ff)
#10 0x00007f36a9bbc1c8 _ZN26UIMainEventListeningThread3runEv (UICommon.so + 0x26b1c8)
#11 0x00007f36a8f51690 _ZN14QThreadPrivate5startEPv (libQt5Core.so.5 + 0xc6690)
#12 0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#13 0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242691:
#0  0x00007f36a7ee8aaf __poll (libc.so.6 + 0xf6aaf)
#1  0x00007f36a6e68aae g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0x52aae)
#2  0x00007f36a6e68e33 g_main_loop_run (libglib-2.0.so.0 + 0x52e33)
#3  0x00007f36a2cf06aa gdbus_shared_thread_func (libgio-2.0.so.0 + 0x1226aa)
#4  0x00007f36a6e927f2 g_thread_proxy (libglib-2.0.so.0 + 0x7c7f2)
#5  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#6  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242776:
#0  0x00007f36a7b461b8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0x101b8)
#1  0x00007f36a8f56d0a _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt5Core.so.5 + 0xcbd0a)
#2  0x00007f36a8f56e0b _ZN14QWaitCondition4waitEP6QMutexm (libQt5Core.so.5 + 0xcbe0b)
#3  0x00007f36a9bd9dd2 _ZN12UIThreadPool11dequeueTaskEP14UIThreadWorker (UICommon.so + 0x288dd2)
#4  0x00007f36a9bda163 _ZN14UIThreadWorker3runEv (UICommon.so + 0x289163)
#5  0x00007f36a8f51690 _ZN14QThreadPrivate5startEPv (libQt5Core.so.5 + 0xc6690)
#6  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#7  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

Stack trace of thread 1242778:
#0  0x00007f36a7b461b8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0x101b8)
#1  0x00007f36a8f56d0a _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt5Core.so.5 + 0xcbd0a)
#2  0x00007f36a8f56e0b _ZN14QWaitCondition4waitEP6QMutexm (libQt5Core.so.5 + 0xcbe0b)
#3  0x00007f36a9bd9dd2 _ZN12UIThreadPool11dequeueTaskEP14UIThreadWorker (UICommon.so + 0x288dd2)
#4  0x00007f36a9bda163 _ZN14UIThreadWorker3runEv (UICommon.so + 0x289163)
#5  0x00007f36a8f51690 _ZN14QThreadPrivate5startEPv (libQt5Core.so.5 + 0xc6690)
#6  0x00007f36a7b3f432 start_thread (libpthread.so.0 + 0x9432)
#7  0x00007f36a7ef3913 __clone (libc.so.6 + 0x101913)

dmesg:

VirtualBox[1242677]: segfault at 3b1 ip 00007f36a8a4ac88 sp 00007ffdd060edb8 error 4 in libQt5Gui.so.5.14.2[7f36a8a01000+37d000]
Code: ff ff ff 0f 1f 80 00 00 00 00 8b 01 45 31 e4 4d 8d 75 18 83 f8 01 0f 86 29 ff ff ff e9 71 ff ff ff 90 f3 0f 1e fa 48 8b 47 08 <48> 83 78 60 00 0f 94 c0 c3 90 66 66 2e 0f 1f 84 00 00 00 00 00 0f' from markup due to error parsing markup: Error on line 3 char 166: “48” is not a valid name
#20222 fixed GUI BUG: file picker on Linux KDE Plasma does not handle mouse, unusable gombara ValdikSS
Description

VirtualBox file picker dialog (ISO or HDD selection, etc) does not handle mouse events when running on KDE Plasma 5. All dialog elements are not clickable. You can still use it with keyboard.

When opening the dialog, Qt outputs the following warning into console:

Qt WARNING: QWidgetWindow(0x681e4a0, name="UIMachineSettingsStorageWindow") must be a top level window.

I'm not sure whether is this a Qt, VirtualBox, KDE Plasma or packaging issue, but Mageia bug reporter https://bugs.mageia.org/show_bug.cgi?id=27433 says that rebuilding the same package under older version of distro fixes the issue.

This is happening in Virtualbox 6.1.18 too, but only in Plasma5. Doesn't happen under GNOME. Curiously the same .src.rpm rebuilt under Mageia7 doesn't show up the problem under Plasma.

Also reproducible on Fedora 33 with RPMFusion repository. Bug: https://bugzilla.rpmfusion.org/show_bug.cgi?id=5929#c1

### HOW TO REPRODUCE

  1. Open VirtualBox
  2. Create new VM or use existing
  3. Open VM settings
  4. Go to "storage" tab
  5. Click on any drive → cilck on HDD or optical icon → Choose a disk file… dropdown element

### EXPECTED RESULT File picker dialog works as usual, you can select ISO or disk drive file with a mouse.

### ACTUAL RESULT You can't click on any dialog element.

### WORKAROUND Quick and dirty patch is in the attachment.

KDE Plasma: 5.20.5 KDE Frameworks: 5.78.0 Qt version: 5.15.2

Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy