Bug 157891 - Initial focus of Paste Special dialog is inconvenient (win and gen VCL)
Summary: Initial focus of Paste Special dialog is inconvenient (win and gen VCL)
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
7.3.0.0 alpha0+
Hardware: All All
: medium minor
Assignee: Caolán McNamara
URL:
Whiteboard: target:24.2.0
Keywords: accessibility, bibisected, bisected, regression
Depends on:
Blocks: Paste-Special
  Show dependency treegraph
 
Reported: 2023-10-23 03:05 UTC by Christian
Modified: 2024-04-19 13:41 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christian 2023-10-23 03:05:17 UTC
Description:
When the "Paste Special" dialog is opened, the focus is on the first preset button "Only Values". This behavior differs from previous versions without presets, and it is inconvenient for keyboard users because if you open the dialog and then just press Return, it applies the preset instead of the visible and selected options.

I'd prefer when the initial focus was set on the OK button.

Steps to Reproduce:
1. Open dialog "Paste Special"
2. Press Return


Actual Results:
The preset "Only Values" is applied.

Expected Results:
The visible / selected options are applied.


Reproducible: Always


User Profile Reset: No

Additional Info:
[Information automatically included from LibreOffice]
Locale: de
Module: SpreadsheetDocument
[Information guessed from browser]
OS: Windows (All)
OS is 64bit: no
Comment 1 Stéphane Guillou (stragu) 2023-10-23 08:31:29 UTC
Thank you Christian.

Can't reproduce with the gtk3 VCL plugin, but I can with the gen VCL plugin:

Version: 7.5.7.1 (X86_64) / LibreOffice Community
Build ID: 47eb0cf7efbacdee9b19ae25d6752381ede23126
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: x11
Locale: en-AU (en_AU.UTF-8); UI: en-US
Calc: threaded

Still the case in recent trunk build:

Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: fd69b546ad36452560cb11ccb28e78632d65f045
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: x11
Locale: en-AU (en_AU.UTF-8); UI: en-US
Calc: threaded

Bibisected with linux-64-7.3 repo to first bad commit d79e3aae8afc059ddbb172622f047f83f7518535 which points to core commit:

commit c613eae96815e41a00b8dd63e4422c85ed849b71
author	Caolán McNamara Tue Jun 15 10:01:29 2021 +0100
committer	Caolán McNamara Tue Jun 15 15:04:11 2021 +0200
rework paste special a little
to avoid GtkButtonBox, it appears a little cramped under gtk
otherwise
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117243

Caolán, can you please have a look?
To me, it makes sense to keep the previous behaviour to be able to press Enter to straight away reuse the last settings, to have the same behaviour as pressing OK directly – consistently in all VCL plugins.
Comment 2 Commit Notification 2023-10-27 20:14:15 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/9775af227eded1ccdfa5750689533b429558cf3a

Resolves: tdf#157891 arrange so 'ok' in paste special is default action

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 3 Caolán McNamara 2023-11-02 20:35:01 UTC
I think what happened there was that the widget which gets the default focus is determined by what appears to be the "first" one.

And the "value" button was a little lower than the "all" checkbox from the vcl widget perspective so the "all checkbox" used to be the implicit default. Pressing return on that routes to the ok button because of the "has default" handler for the widget.

While after, the "value" button is a little higher, and gets focus as the first widget, pressing return on that sensibly activates it, because it is a button where that makes sense.

So, lets set the "all" checkbox explicitly as the widget to have the initial focus, all platforms then agree on where focus starts, and return will activate the default "ok" button.
Comment 4 Christian 2023-11-03 04:56:11 UTC
Test feedback: the problem is fixed in 24.2.0.0.alpha0 from 2023-11-02_05.22.25.