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

Focus - Click on select/option html menu not scroll in Web browser dock. #388

Open
stebulba opened this issue May 9, 2022 · 5 comments
Open

Comments

@stebulba
Copy link

stebulba commented May 9, 2022

Operating System Info

Other

Other OS

Ubuntu 16.04 flatpack

OBS Studio Version

27.2.4

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/WfTUsdJaHUJGR-h3

OBS Studio Crash Log URL

No response

Expected Behavior

Every thing look working on web browser dock. Javascript look good. The focus is missing to open a select menu.

Current Behavior

If the mouse focus is not the web browser dock, when you click on a menu, the menu popup and loose the focus and close the select.

Steps to Reproduce

  1. Add a webpage in dock who include a option menu : https://www.w3schools.com/howto/howto_custom_select.asp
  2. Get the mouse focus anywhere outside the dock.
  3. Try to click on the select menu from the web browser deck.
  4. If work, try it just after restarting obs.

Anything else we should know?

No response

@gxalpha
Copy link
Member

gxalpha commented May 9, 2022

Is this a duplicate of #148? It's not.

@RytoEX RytoEX transferred this issue from obsproject/obs-studio Jan 11, 2023
@RytoEX
Copy link
Member

RytoEX commented Jan 11, 2023

I can confirm this on Windows 10 with OBS Studio 29.

image
image

@WizardCM
Copy link
Member

I personally expect this is not something we can fix, as the menus in docks are controlled almost exclusively by CEF.

However, it's entirely possible that Qt is passing the wrong data to CEF, or our CEF implementation is reading outdated positional data, resulting in this bug. Additionally (likely related?) normal browsers will close any open select menus when the window is being repositioned; this does not happen with our implementation as CEF doesn't have a proper "unfocus" function we can call.

Long story short, the first time you open a Select menu after a dock or its parent window's position has changed, the menu will be in the wrong spot. Every subsequent open works fine.

I will do some digging later to determine if it's our code or not.

@WizardCM
Copy link
Member

WizardCM commented Jan 16, 2023

I decided to test on Linux today, and at least on GNOME, this issue does not occur. I expect it's Windows only, but have not yet verified it does not occur on macOS.

Edit: Verified it's fine on macOS too. Windows only confirmed.

@WizardCM
Copy link
Member

I did some additional debugging today, and have learned nothing useful. Both the coordinates of the CefHost window and the widget in QCefBrowserClient correctly update their coordinates immediately, as expected. I have no idea why those coordinates aren't being passed to the Select menu.

void QCefBrowserClient::OnGotFocus(CefRefPtr<CefBrowser> browser)
{
	QPoint myPos = widget->mapToGlobal(widget->pos());

	RECT rect;
	GetWindowRect(browser->GetHost()->GetWindowHandle(), &rect);
	
	blog(LOG_WARNING, "Refocused, %ix%i // %ix%i", myPos.x(), myPos.y(),
	     rect.left, rect.top);

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants