Open Bug 1606791 Opened 4 years ago Updated 2 years ago

System titlebar visible for maximized windows on DeepIn desktop with CSD enabled

Categories

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

63 Branch
defect

Tracking

()

People

(Reporter: ke5trel, Assigned: stransky)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(3 files)

STR:

  1. Boot into DeepIn 15.11 from ISO using "DeepIn failsafe" option.
  2. Run Nightly and Customize > Uncheck Title Bar.
  3. Maximize window.

System titlebar still shown.

Regression range:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b75561ff5ffec3164338952adfe58620e5e3bc1d&tochange=ff62eab1d2ed5abce22e2922bc0103b0a3df9000

Possibly regressed by Bug 1462227.

Partial fix:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=5204f04bcde3e143029d9b9d0dfb9469ed71972&tochange=7d768598fee79819797f560acc4cff7f5b0a18a8

Partially fixed by Bug 1529713.

After Bug 1529713 the titlebar is correctly hidden for unmaximized windows but it is still shown for maximized windows. A new regression also appears; window edges do not have borders or resize controls. This only occurs with DeepIn's "Window Effect" mode (transparency effects etc.) which is default enabled, otherwise the system titlebar is always visible like before along with working window borders.

Priority: -- → P3

In Bug 1462227 Deepin are still using their deepin-wm as their default WM. Since DDE now moved to its KWin variant as their default WM, CSD_SUPPORT_SYSTEM is no longer suitable for DDE and it should change to CSD_SUPPORT_CLIENT.

I did tested after change it to client by using MOZ_GTK_TITLEBAR_DECORATION environment variable to client, it works both under the legacy deepin-wm and also works fine with their kwin variant. I still cannot make firefox's bootstrap.py works so I cannot test if change the code can works but possible fix here:

https://hg.mozilla.org/mozilla-central/file/FIREFOX_NIGHTLY_72_END/widget/gtk/nsWindow.cpp#l7230

// Deepin Desktop Enviroment
} else if (strstr(currentDesktop, "Deepin") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_SYSTEM; 
+            sCSDSupportLevel = CSD_SUPPORT_CLIENT; 

BTW, IMO I do think that part of logic (GetSystemCSDSupportLevel()) in nsWindow.cpp may need to change to detect which WM the current user are using, which can be much reliable than detecting which DE the user are using.

The problem still persists in Firefox 83!

Is there someone from Mozilla to contact? 20 browser versions have passed and no fixes have reached users.

I'll look at it when Bug 1681356 lands.

Assignee: nobody → stransky

I'm confused here. The latest Firefox uses sCSDSupportLevel = CSD_SUPPORT_CLIENT, is that correct or not?

Flags: needinfo?(wzc782970009)

(In reply to Martin Stránský [:stransky] from comment #6)

I'm confused here. The latest Firefox uses sCSDSupportLevel = CSD_SUPPORT_CLIENT, is that correct or not?

Since the state I mentioned above is 11 months ago, I'm not sure if it's still valid. I no longer use DDE/Deepin so sorry I'm not able to test it.

If DDE keeps using KWin as it did 11 months ago, CSD_SUPPORT_CLIENT is correct, but I'm also not sure if that will works if WM compositing (DDE calls it "OS effects") is turned off.

Flags: needinfo?(wzc782970009)

This problem also occurs with Ubuntu Kylin; I believe that they also use KWin.

I contacted one of the deepin developers to clarify these doubts; I hope he comes in here and responds. In any case, I questioned him privately.

If Kwin is used it should behave the same way as in KDE/Plasma. Last time I checked it the titlebar works OK there with CSD_SUPPORT_CLIENT which is default on KDE and also on Deepin. But I test the latest KDE releases (5.18 I think) as it comes with Gtk/CSD fixes and Firefox works there correctly.

Has Regression Range: --- → yes
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: