mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-19 17:49:14 +00:00
UI: Fix preview right-click menu getting wrong source
When right-clicking items in the preview window and getting context menus for them, it would often make the wrong scene item be associated with the context menu because of the fact that it was using QListWidget::currentItem instead of querying the actual selected list. You must query the actual selection list via QListWidget::selectedItems because QListWidget::currentItem does not work properly for multi-selection list widgets.
This commit is contained in:
parent
e5fc4dbbcd
commit
9b5ac1fbd2
|
@ -1285,7 +1285,7 @@ OBSSceneItem OBSBasic::GetSceneItem(QListWidgetItem *item)
|
|||
|
||||
OBSSceneItem OBSBasic::GetCurrentSceneItem()
|
||||
{
|
||||
return GetSceneItem(ui->sources->currentItem());
|
||||
return GetSceneItem(GetTopSelectedSourceItem());
|
||||
}
|
||||
|
||||
void OBSBasic::UpdateSources(OBSScene scene)
|
||||
|
@ -2605,7 +2605,7 @@ void OBSBasic::on_sources_itemSelectionChanged()
|
|||
|
||||
void OBSBasic::EditSceneItemName()
|
||||
{
|
||||
QListWidgetItem *item = ui->sources->currentItem();
|
||||
QListWidgetItem *item = GetTopSelectedSourceItem();
|
||||
Qt::ItemFlags flags = item->flags();
|
||||
OBSSceneItem sceneItem= GetOBSRef<OBSSceneItem>(item);
|
||||
obs_source_t *source = obs_sceneitem_get_source(sceneItem);
|
||||
|
@ -3339,9 +3339,18 @@ void OBSBasic::on_actionShowProfileFolder_triggered()
|
|||
QDesktopServices::openUrl(QUrl::fromLocalFile(path));
|
||||
}
|
||||
|
||||
QListWidgetItem *OBSBasic::GetTopSelectedSourceItem()
|
||||
{
|
||||
QList<QListWidgetItem*> selectedItems = ui->sources->selectedItems();
|
||||
QListWidgetItem *topItem = nullptr;
|
||||
if (selectedItems.size() != 0)
|
||||
topItem = selectedItems[0];
|
||||
return topItem;
|
||||
}
|
||||
|
||||
void OBSBasic::on_preview_customContextMenuRequested(const QPoint &pos)
|
||||
{
|
||||
CreateSourcePopupMenu(ui->sources->currentItem(), true);
|
||||
CreateSourcePopupMenu(GetTopSelectedSourceItem(), true);
|
||||
|
||||
UNUSED_PARAMETER(pos);
|
||||
}
|
||||
|
|
|
@ -189,6 +189,8 @@ private:
|
|||
|
||||
void SaveProjectNow();
|
||||
|
||||
QListWidgetItem *GetTopSelectedSourceItem();
|
||||
|
||||
obs_hotkey_pair_id streamingHotkeys, recordingHotkeys;
|
||||
obs_hotkey_id forceStreamingStopHotkey;
|
||||
|
||||
|
|
Loading…
Reference in a new issue