Bug 441899

Summary: Pop-up palette doesn't dismiss itself at right click
Product: [Applications] krita Reporter: Yu-Hsuan Lai <raincolee>
Component: UsabilityAssignee: Eoin O'Neill <eoinoneill1991>
Status: RESOLVED FIXED    
Severity: normal CC: emmetoneill.pdx, tomtomtomreportingin
Priority: NOR Keywords: regression, release_blocker
Version: 5.0.0-beta1   
Target Milestone: ---   
Platform: Compiled Sources   
OS: All   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Yu-Hsuan Lai 2021-09-02 08:09:11 UTC
SUMMARY
I need to press RMB *twice* to dismiss pop-up palette. The first click seems to do nothing.

STEPS TO REPRODUCE
1. Click RMB to activate pop-up palette
2. Click RMB again

OBSERVED RESULT
Nothing happens. Pop-up palette is still shown
(if I click RMB again, then it's dismissed)


EXPECTED RESULT
Pop-up palette is dismissed


SOFTWARE/OS VERSIONS
Krita

 Version: 5.0.0-beta1
 Languages: en_US, en
 Hidpi: true

Qt

  Version (compiled): 5.12.11
  Version (loaded): 5.12.11

OS Information

  Build ABI: x86_64-little_endian-llp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: winnt
  Kernel Version: 10.0.22000
  Pretty Productname: Windows 10 (10.0)
  Product Type: windows
  Product Version: 10

ADDITIONAL INFORMATION
Not sure if it's a bug, but I've never seen any other apps work like this so I just assume it is.
Comment 1 tomtomtomreportingin 2021-09-04 17:56:07 UTC
Can confirm. 

There is differing behavior depending on the form of the color selector like in https://bugs.kde.org/show_bug.cgi?id=441154 . Behavior also differs between mouse and stylus. With triangle selector and a stylus, right-click inside the color selector area will never dismiss the pop-up palette, thus making it regressive from 4.4.7. With wide gamut selector and a stylus, it will take two clicks. With either selector and a mouse, it takes just one right-click.

In 4.4.7, the pop-up palette takes two clicks to dismiss only when in the brush presets area, which I'm not sure is intended, but the selector area takes one right-click regardless of mouse or stylus.
Comment 2 Emmet O'Neill 2021-09-15 23:58:20 UTC
Taking this one and also marking as a release blocker.
Comment 3 Emmet O'Neill 2021-09-21 22:14:45 UTC
Git commit b117b85f378f09027385f209a9333a43d3538dcc by Emmet O'Neill.
Committed on 21/09/2021 at 22:11.
Pushed by emmetoneill into branch 'master'.

Popup Palette: Fixed a regression with right clicks.

Some recent changes to the popup palette code caused a magic number
value used by the timer within the right click eater event filter to no
longer work correctly. This patch should fix that.

M  +1    -2    libs/ui/KisMouseClickEater.cpp
M  +37   -0    libs/ui/KisPopupWidgetInterface.h
M  +0    -1    libs/ui/KisView.cpp
M  +0    -2    libs/ui/canvas/kis_canvas2.cpp
M  +0    -1    libs/ui/input/KisPopupWidgetAction.cpp
M  +29   -21   libs/ui/input/kis_input_manager.cpp
M  +1    -0    libs/ui/input/kis_input_manager.h
M  +32   -24   libs/ui/kis_popup_palette.cpp
M  +6    -2    libs/ui/kis_popup_palette.h

https://invent.kde.org/graphics/krita/commit/b117b85f378f09027385f209a9333a43d3538dcc
Comment 4 Emmet O'Neill 2021-09-22 01:25:56 UTC
Git commit fe4204f9b3c35631f9ae15278d96254e0d7b795c by Emmet O'Neill.
Committed on 22/09/2021 at 00:43.
Pushed by emmetoneill into branch 'krita/5.0'.

Popup Palette: Fixed a regression with right clicks.

Some recent changes to the popup palette code caused a magic number
value used by the timer within the right click eater event filter to no
longer work correctly. This patch should fix that.

(cherry picked from commit b117b85f378f09027385f209a9333a43d3538dcc)

M  +1    -2    libs/ui/KisMouseClickEater.cpp
M  +37   -0    libs/ui/KisPopupWidgetInterface.h
M  +0    -1    libs/ui/KisView.cpp
M  +0    -2    libs/ui/canvas/kis_canvas2.cpp
M  +0    -1    libs/ui/input/KisPopupWidgetAction.cpp
M  +29   -21   libs/ui/input/kis_input_manager.cpp
M  +1    -0    libs/ui/input/kis_input_manager.h
M  +32   -24   libs/ui/kis_popup_palette.cpp
M  +6    -2    libs/ui/kis_popup_palette.h

https://invent.kde.org/graphics/krita/commit/fe4204f9b3c35631f9ae15278d96254e0d7b795c
Comment 5 tomtomtomreportingin 2021-10-14 06:37:36 UTC
I'm sorry, but while the issue of right-clicking never closing the triangle selector has been solved, the issue described by Yu-Hsuan Lai still occurs. The pop-up palette takes two right-clicks to dismiss across both selectors with a stylus. In Krita 4, it only took one right-click.
Comment 6 tomtomtomreportingin 2021-10-18 06:23:20 UTC
For some reason the issue only occurs in the appimages. It only takes one right-click to close the pop-up palette when using a locally compiled build of master.
Comment 7 Eoin O'Neill 2021-10-20 21:04:48 UTC
Git commit d746ef259027927352fc4765b61ce3799b933f4c by Eoin O'Neill.
Committed on 20/10/2021 at 20:58.
Pushed by eoinoneill into branch 'master'.

Refine tablet right click popup palette behavior.

Should be consistent now between AppImage and non-appimage
build environments (different QT versions?). Originally,
all tablet events were causing the time filter to get
stuck, which would ensure that users had 1 right click
event ignored. Also, event filter was inappropriately
installed twice despite only needing it installed
once due to refactor of popup palette design.

This should streamline the right click event eating
for the popup palette as a whole. If there's a regression
on windows (I'll have to check tomorrow!) then I'll have to
revert and try again.

M  +4    -3    libs/ui/KisMouseClickEater.cpp
M  +0    -1    libs/ui/KisMouseClickEater.h
M  +1    -2    libs/ui/kis_popup_palette.cpp

https://invent.kde.org/graphics/krita/commit/d746ef259027927352fc4765b61ce3799b933f4c
Comment 8 Eoin O'Neill 2021-10-26 20:39:08 UTC
Git commit 2e80b63ddf8d2e800cab45891c204ec4fac5f552 by Eoin O'Neill.
Committed on 26/10/2021 at 20:38.
Pushed by eoinoneill into branch 'krita/5.0'.

Refine tablet right click popup palette behavior.

Should be consistent now between AppImage and non-appimage
build environments (different QT versions?). Originally,
all tablet events were causing the time filter to get
stuck, which would ensure that users had 1 right click
event ignored. Also, event filter was inappropriately
installed twice despite only needing it installed
once due to refactor of popup palette design.

This should streamline the right click event eating
for the popup palette as a whole. If there's a regression
on windows (I'll have to check tomorrow!) then I'll have to
revert and try again.
(cherry picked from commit d746ef259027927352fc4765b61ce3799b933f4c)

M  +4    -3    libs/ui/KisMouseClickEater.cpp
M  +0    -1    libs/ui/KisMouseClickEater.h
M  +1    -2    libs/ui/kis_popup_palette.cpp

https://invent.kde.org/graphics/krita/commit/2e80b63ddf8d2e800cab45891c204ec4fac5f552