PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding

Gem selection not always reverting to original value when pressing escape

オープン
#4,785 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug
主要言語
Lua
スター
5.4k
フォーク
2.4k
平均マージ
1日 12時間
マージ済み PR(30日)
26

説明

Check version
  • I'm running the latest version of Path of Building and I've verified this by checking the changelog
Check for duplicates
  • I've checked for duplicate issues by using the search function of the issue tracker
What is the expected behaviour/value?

When pressing escape on an expanded selection box in the skill selection, the selection should go back to the original selection from when the box was expanded.

This seem to be related to that the functionality of escape is based on selection index and text in the gem name box. Which can be affected by filtering, and doesnt take into account the boxes level/variant:

GemSelectControl.lua:652:
function GemSelectClass:OnFocusGained() ... self.initialBuf = self.buf self.initialIndex = self.selIndex

GemSelectControl.lua:710
elseif key == "ESCAPE" then self.dropped = false self:BuildList("") self.buf = self.initialBuf self.selIndex = self.initialIndex self:UpdateGem(false,true) return

What is the actual behaviour/value?

The following examples are gifs below:
When filtering out the active skill, selecting that skill and pressing escape, the skill changes to something allowed by the filter

When not filtering, there is still an issue with levels and variant reverted to defaults based on what has been marked when moving up and down the list before escaping:

How to reproduce the issue

As discussed in #863.
Do the following steps:

  • Choose a non-awakened skill (for instance brutality)
  • set show support gems to "awakened"
  • expand the brutality selection box,
  • Press escape

And the second example

  • Chose a skill (for instance brutality)
  • set the level to 7
  • expand the selection list
  • move up and down through the list (and see that level and variant changes)
  • press escape and see that the changes have stuck
Character build code
https://pobb.in/ijj1-ZwhHsWD
Screenshots

Brutality

BrutalitylevelVariant

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

GemSelectControl.lua の、652 行目と 710 行目付近にある OnFocusGained と ESCAPE の処理から始めます。issue にあるフィルタリングの場合とレベル/バリアントの場合の両方を再現し、その後、Escape を押すと元の skill 選択、レベル、バリアントが復元されることを確認します。参照にはリンクされた例と build コードを使用してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
lua
領域
desktop
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。