Closed Bug 1651463 Opened 4 years ago Closed 11 months ago

Firefox with client-side decorations restores its previous position incorrectly

Categories

(Core :: Widget: Gtk, defect, P3)

78 Branch
defect

Tracking

()

RESOLVED FIXED
115 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox113 --- wontfix
firefox114 --- wontfix
firefox115 --- fixed

People

(Reporter: zzag, Assigned: emilio)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Steps to reproduce:

In order to reproduce this bug, you need to run kwin as the window manager, I'm not sure whether this issue can be seen with other window managers, e.g. Mutter.

  • Use X11
  • Check "Restore previous session" in about:preferences
  • Close and open Firefox several times in a row

Actual results:

Every time step 3 is repeated, Firefox gets slightly shifted.

Firefox sends a ConfigureRequest to the window manager to restore its previous position. However, the position specified in the ConfigureRequest doesn't correspond to the last window position, it's actually "last window position - csd borders".

It seems like switching to gdk_window_move() in NativeMove() and NativeMoveResize() fixes the problem.

Expected results:

Firefox is placed at its previous location.

  • It seems like switching to gdk_window_move() in NativeMove() and NativeMoveResize() fixes the problem.
  • It seems like switching from gtk_window_move() to gdk_window_move() in NativeMove() and NativeMoveResize() fixes the problem.
Blocks: gtktitlebar
Priority: -- → P3

Does it initially appear in the wrong position, or does it appear in the correct position and jump a few seconds later?

The behavior with a jump using XFCE is bug 1471094.

Confirming.

Severity: -- → S3
Status: UNCONFIRMED → NEW
Ever confirmed: true

Putting bug 1812289 as the regressor because CSD is now the default on kwin too.

Keywords: regression
Regressed by: 1812289

Set release status flags based on info from the regressing bug 1812289

:emilio, since you are the author of the regressor, bug 1812289, could you take a look?

For more information, please visit BugBot documentation.

Flags: needinfo?(emilio)

gtk_window_move undoes that...

Assignee: nobody → emilio
Status: NEW → ASSIGNED
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fb8fcd48aeb3
Add CSD offset in MoveResize as needed. r=stransky
Status: ASSIGNED → RESOLVED
Closed: 11 months ago
Resolution: --- → FIXED
Target Milestone: --- → 115 Branch
Regressions: 1834042

The patch landed in nightly and beta is affected.
:emilio, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.Also, don't forget to request an uplift for the patches in the regression caused by this fix.
  • If no, please set status-firefox114 to wontfix.

For more information, please visit BugBot documentation.

Flags: needinfo?(emilio)
Flags: needinfo?(emilio)
QA Whiteboard: [qa-115b-p2]
Regressions: 1844674
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: