forked from mirrors/gecko-dev
The patch comes from https://gitlab.com/redhat/centos-stream/rpms/firefox/-/merge_requests/94 Firefox isn't currently handling window focusing right on X11... There's a few problems: If no startup id is provided, it tries to get user time from g_get_monotonic_time when there's no guarantee that timestamp is synchronized or even in a compatible unit. This merge request addressed that by dropping the code that uses g_get_monotonic_time entirely, and instead adding a heuristic to synthesize a startup id based on the time of the last user interaction on the display. This makes an assumption that firefox was started as a result of user interaction, which might not always hold true, but it's more likely than not, and is basically the same assumption firefox is already making by trying to use a timestamp of "now" (g_get_monotonic_time) when focusing the window. If a startup id is provided, it fails to tell gtk to use it when focusing the window because it calls gtk_window_present_with_time with some other random timestamp instead of passing GDK_CURRENT_TIME (which is the magic value that means "use startup id for timestamp"). This commit tries to detect when a startup id is available, and the display is X11, and if so use a timestamp of GDK_CURRENT_TIME. Differential Revision: https://phabricator.services.mozilla.com/D217174 |
||
|---|---|---|
| .. | ||
| moz.build | ||
| nsDBusRemoteClient.cpp | ||
| nsDBusRemoteClient.h | ||
| nsDBusRemoteServer.cpp | ||
| nsDBusRemoteServer.h | ||
| nsGTKRemoteServer.cpp | ||
| nsGTKRemoteServer.h | ||
| nsMacRemoteClient.h | ||
| nsMacRemoteClient.mm | ||
| nsMacRemoteServer.h | ||
| nsMacRemoteServer.mm | ||
| nsRemoteClient.h | ||
| nsRemoteServer.h | ||
| nsRemoteService.cpp | ||
| nsRemoteService.h | ||
| nsUnixRemoteServer.cpp | ||
| nsUnixRemoteServer.h | ||
| nsWinRemoteClient.cpp | ||
| nsWinRemoteClient.h | ||
| nsWinRemoteServer.cpp | ||
| nsWinRemoteServer.h | ||
| nsXRemoteClient.cpp | ||
| nsXRemoteClient.h | ||
| nsXRemoteServer.cpp | ||
| nsXRemoteServer.h | ||
| RemoteUtils.cpp | ||
| RemoteUtils.h | ||
| WinRemoteMessage.cpp | ||
| WinRemoteMessage.h | ||