Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Popup) Window and Table Quality of Life Improvements #7136

Open
leechristensen opened this issue Nov 1, 2024 · 4 comments
Open

(Popup) Window and Table Quality of Life Improvements #7136

leechristensen opened this issue Nov 1, 2024 · 4 comments
Assignees
Labels
Status: Internal This is being tracked internally by the Ghidra team

Comments

@leechristensen
Copy link
Contributor

Is your feature request related to a problem? Please describe.

  1. Closing popup windows using the ESC key. Some dialog boxes can be closed with the ESC key where as some can't, leading minor frustrations. Examples:

    • ESC does close the active window:
      • Load PDB File
      • Menu --> Search -->
        • Program Text
        • For address tables
        • For Strings (the initial options window)
        • For encoded strings
      • BSim --> "Manage Servers" and "Search Functions" (the initial window)
      • Analysis --> Auto Analyze
      • Edit --> "Tool Options", "Options for ", and "Symbol Server Config"
    • ESC does NOT close the active window:
      • Menu --> Search -->
        • For memory
        • For Direct References
        • For Strings (the 2nd window that has the results)
      • Listing --> Right click --> Show references to address
      • Decompiler --> Right click a function --> References --> Find references to function/address.
      • The Bookmarks window if it's popped out as an individual window.
      • BSim --> "Feature Visualizer" and "Search Functions" (the 2nd window that appears after setting search options)
      • FWIW, the Listing/Decompiler "References" and "Search Memory" windows are probably the most annoying to me. I'm aware you can apply a custom "Close Window" key binding, but I've found that cumbersome since the action doesn't work in dialogs/windows that close using ESC.
  2. Filter Bar Keyboard Improvement. If the currently selected window has table in it (e.g., Search --> For Strings), it'd be nice if hitting Ctrl+F focused text input to the "Filter" bar and allowed using the arrows to scroll up/down in the table. It's annoying when I'm in a window and have to use the mouse to change focus to the filter bar, type my query, and then use my mouse to select items in the list. To aid with discoverability, any window that does support search could include a search icon in its toolbar.

  3. Hide "Filter" bar if not being used. Screen real estate is always a battle in Ghidra. One feature that'd help with this is if the "Filter" bar wasn't always displayed and only appears if you hit Ctrl+F.

  4. Console Window Search. Self-explanatory: add the ability to search script output, ideally with Ctrl+F. I have found myself on many occasions copying all text from this window into another text editor and then doing the search there.

  5. Ability to toggle window visibility. Right now, there's actions to open windows individually, but not hide them individually. For example, you can open the Listing window with Menu --> Window --> Listing or assigning a key binding. Once the window is open though, the only way to close it is by clicking the X in the toolbar or assigning a key binding to "Close Window". My preference would be, if there's a key binding assigned to open a window, that same key binding can to hide the window as well (if it's already open).

    • Example: I primarily work out of the Decompiler window, but need to use the Listing window occasionally. When I want to use the Listing window, I bind Ctrl+Shift+L to display it side by side with the Decompiler. To close it, I'd like to be able to hit Ctrl+Shift+L again (right now, hitting key binding multiple times trigger the window focus/jiggle animations).

Describe the solution you'd like
See above.

Describe alternatives you've considered
See above.

Additional context
Crammed them all into one issue here so you can break them out into individual ones if you decide they're worth pursuing. Let me know if in the future you'd prefer them as individual issues.

@dragonmacher
Copy link
Collaborator

All good suggestions.

Regarding 1, When I bind ESC to the Close Window action, then provider all seem to close as expected and dialogs that support ESC still close too. Seems like this should work in all cases. If it is not, then that is something we may be able to fix.

2 and 3 sounds like good suggestions, but are non-trivial.

4 Search and a highlight feature seem useful here. This would also be non-trivial.

I could see 5 being something we would have to make an option, since it may annoy some users. Assuming ESC works, then that would handle some workflows in which you wish to open the window and then close it again without changing focus.

@dragonmacher dragonmacher self-assigned this Nov 1, 2024
@dragonmacher dragonmacher added the Status: Prioritize This is currently being prioritized label Nov 1, 2024
@leechristensen
Copy link
Contributor Author

Regarding 1, When I bind ESC to the Close Window action, then provider all seem to close as expected and dialogs that support ESC still close too. Seems like this should work in all cases. If it is not, then that is something we may be able to fix.

I tried this initially as well. The annoyance I encountered that caused me to switch back was sometimes I'd hit ESC multiple times to close a dialog box (just out of habit from other tools). Upon doing so, it'd close the dialog box, but because I hit ESC multiple times, then it'd also close the panes I had open in the main window. A compromise here might be to make the "Close Window" action not close open window panes, and maybe add a "Close Window Pane" action if people want to maintain that functionality.

@astrelsky
Copy link
Contributor

Pressing enter to start analysis when the analysis option window pops up, like it used to. Instead of the "new" behavior of moving to the next analyzer. Shouldn't have to pick up the mouse to move it and click on the 'Analyze' button, especially when the button is outlined to imply hitting enter would click it.

I brought this up here because I think it might be the table consuming the action when it shouldn't be?

@dragonmacher
Copy link
Collaborator

@astrelsky This sounds like a regression

@ghidra007 ghidra007 added Status: Internal This is being tracked internally by the Ghidra team and removed Status: Prioritize This is currently being prioritized labels Nov 8, 2024
ryanmkurtz added a commit that referenced this issue Nov 14, 2024
'origin/GP-5117-dragonmacher-provider-window-open-close' (#7136)
ryanmkurtz added a commit that referenced this issue Nov 20, 2024
'origin/GP-5114-dragonmacher-escape-action--SQUASHED' (#7136)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Internal This is being tracked internally by the Ghidra team
Projects
None yet
Development

No branches or pull requests

4 participants