Explicitly propagate screen to QComboBoxListView constructor
QComboBoxListView is constructed without a parent. It therefore inherits the current screen, which normally is the screen on which the related QComboBox is located. With two identical screens in Windows, that can lead to the popup showing on the wrong screen. The issue occurs, when the other screen is found before the right one. This patch calls setScreen() in the constructor, to explicitly inherit the screen from the combobox, if a valid pointer is passed. Fixes: QTBUG-106099 Pick-to: 6.5 6.2 5.15 Change-Id: Ic6679cfd59291092294d2cc75632a5485c2529b7 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
This commit is contained in:
parent
e7cb3cb041
commit
df0b661bfc
@ -49,7 +49,11 @@ class QComboBoxListView : public QListView
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QComboBoxListView(QComboBox *cmb = nullptr) : combo(cmb) {}
|
||||
QComboBoxListView(QComboBox *cmb = nullptr) : combo(cmb)
|
||||
{
|
||||
if (cmb)
|
||||
setScreen(cmb->screen());
|
||||
}
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *event) override
|
||||
|
Loading…
x
Reference in New Issue
Block a user