Draw native GTK window navigation buttons on Linux |
|||||||||||||
Issue descriptionNow that we've switched to the GTK3 theme, we can utilize foreign drawing to paint the minimize, maximize/restore, and close buttons.
,
Aug 14 2017
,
Aug 16 2017
X-reffing video for CL: https://chromium-review.googlesource.com/c/604288
,
Aug 21 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5c3130adf12999016a56c4f1ee3973386b1f9ed3 commit 5c3130adf12999016a56c4f1ee3973386b1f9ed3 Author: Tom Anderson <thomasanderson@chromium.org> Date: Mon Aug 21 19:49:17 2017 Draw native GTK window nativation buttons on Linux This CL is the initial implementation of GTK-rendered close, minimize, and maximize buttons. A demo can be seen at [1]. The implementation is not ready to be released yet (still need to handle different scale factors and button drawing for "backdrop" windows), so the feature is guarded by a flag for now. [1] https://bugs.chromium.org/p/chromium/issues/detail?id=753067#c3 BUG= 753067 R=sky@chromium.org,pkasting@chromium.org Change-Id: Iadb5c96052f100097a10a5161aa3d9d44d89c901 Reviewed-on: https://chromium-review.googlesource.com/604288 Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Elliot Glaysher <erg@chromium.org> Cr-Commit-Position: refs/heads/master@{#496031} [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/about_flags.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/flag_descriptions.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/flag_descriptions.h [add] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/frame_button_display_types.h [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/libgtkui/BUILD.gn [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/libgtkui/gtk_ui.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/libgtkui/gtk_ui.h [add] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc [add] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.h [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_x11.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_x11.h [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/browser_non_client_frame_view.h [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/opaque_browser_frame_view.h [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_delegate.h [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_unittest.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/common/BUILD.gn [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/common/chrome_features.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/common/chrome_features.h [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/chrome/common/features.gni [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/tools/metrics/histograms/enums.xml [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/ui/views/BUILD.gn [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/ui/views/linux_ui/linux_ui.h [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc [modify] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h [add] https://crrev.com/5c3130adf12999016a56c4f1ee3973386b1f9ed3/ui/views/window/nav_button_provider.h
,
Aug 21 2017
You should respect the side of a window where buttons are displayed as well.
,
Aug 22 2017
X-reffing video for CL https://chromium-review.googlesource.com/625240
,
Aug 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/19eeb40db05f8d69285a05482fea11e04ab3c190 commit 19eeb40db05f8d69285a05482fea11e04ab3c190 Author: Tom Anderson <thomasanderson@chromium.org> Date: Tue Aug 22 17:33:38 2017 Support arbitrary scale factors on GTK-rendered frame buttons Please see the demo: https://bugs.chromium.org/p/chromium/issues/detail?id=753067#c7 Note that the Chrome scale behavior differs slightly from the GTK behavior: GTK does not support fractional scale factors, but Chrome does. As such, GTK never renders a frame button with eg. 1.5x scale. However, since all parts of the Chrome UI (including the tabstrip background) scale this way, we render the frame buttons at 1.5x scale anyway. BUG= 753067 R=erg@chromium.org Change-Id: Ief59d3626878d7a7da6f01b7aac2ca8dac802ab2 Reviewed-on: https://chromium-review.googlesource.com/625240 Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#496350} [modify] https://crrev.com/19eeb40db05f8d69285a05482fea11e04ab3c190/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc
,
Aug 22 2017
X-reffing video for CL: https://chromium-review.googlesource.com/c/chromium/src/+/626856
,
Aug 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/27713d2c21f3edf4a51c815735c1dd5f6f516a25 commit 27713d2c21f3edf4a51c815735c1dd5f6f516a25 Author: Tom Anderson <thomasanderson@chromium.org> Date: Tue Aug 22 23:10:06 2017 Support inactive-styled GTK frame buttons Please see the demo: https://bugs.chromium.org/p/chromium/issues/detail?id=753067#c9 BUG= 753067 R=erg@chromium.org,sky@chromium.org Change-Id: Idfc5d9a37f73b22c35339140ad858f4615849556 Reviewed-on: https://chromium-review.googlesource.com/626856 Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#496492} [modify] https://crrev.com/27713d2c21f3edf4a51c815735c1dd5f6f516a25/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc [modify] https://crrev.com/27713d2c21f3edf4a51c815735c1dd5f6f516a25/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.h [modify] https://crrev.com/27713d2c21f3edf4a51c815735c1dd5f6f516a25/chrome/browser/ui/views/frame/browser_non_client_frame_view.h [modify] https://crrev.com/27713d2c21f3edf4a51c815735c1dd5f6f516a25/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc [modify] https://crrev.com/27713d2c21f3edf4a51c815735c1dd5f6f516a25/chrome/browser/ui/views/frame/opaque_browser_frame_view.h [modify] https://crrev.com/27713d2c21f3edf4a51c815735c1dd5f6f516a25/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_unittest.cc [modify] https://crrev.com/27713d2c21f3edf4a51c815735c1dd5f6f516a25/ui/views/window/nav_button_provider.h
,
Aug 25 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/845a562adecfbcf06ee7ac2686ec84830815d377 commit 845a562adecfbcf06ee7ac2686ec84830815d377 Author: Tom Anderson <thomasanderson@chromium.org> Date: Fri Aug 25 00:45:32 2017 Gtk: Consider image sizing in frame button size calculation This CL completes a TODO in nav_button_provider_gtk3.cc and in the process fixes button sizing on some themes. BUG= 753067 R=erg@chromium.org Change-Id: I52c3b51e02dbdcdb11695d3d9c96c493f06fd8d1 Reviewed-on: https://chromium-review.googlesource.com/634191 Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#497270} [modify] https://crrev.com/845a562adecfbcf06ee7ac2686ec84830815d377/chrome/browser/ui/libgtkui/native_theme_gtk3.cc [modify] https://crrev.com/845a562adecfbcf06ee7ac2686ec84830815d377/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc
,
Aug 29 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9fff344076c8ae00884c22ac8e5093c47d3b9fba commit 9fff344076c8ae00884c22ac8e5093c47d3b9fba Author: Tom Anderson <thomasanderson@chromium.org> Date: Tue Aug 29 01:48:47 2017 Enable GTK native nav button drawing and layout on GTK3.14+ BUG= 753067 , 21438 R=erg@chromium.org Change-Id: I383b1e623b067033a0376d86cd7a758aba23d25b Reviewed-on: https://chromium-review.googlesource.com/636039 Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#497981} [modify] https://crrev.com/9fff344076c8ae00884c22ac8e5093c47d3b9fba/chrome/browser/ui/libgtkui/gtk_ui.cc [modify] https://crrev.com/9fff344076c8ae00884c22ac8e5093c47d3b9fba/chrome/common/chrome_features.cc
,
Sep 8 2017
Which version of Chromium will have this feature enabled by default? How can I enable this for now?
,
Sep 8 2017
BTW consider add a margin-top/padding-top to the titlebar/tabs-bar(?) as you did it for macOS version.
,
Sep 8 2017
c#14: Version 62 or later. You can try it now with the google-chrome-unstable package c#15: You mean change chrome in maximized mode to have spacing above the tabs? That is unlikely to happen anytime soon
,
Sep 8 2017
#C15 Ok, I understand. Thank you for response.
,
Sep 9 2017
There is a bug in implementation. I have installed google-chrome-unstable and if window is maximized the buttons don't display. I have set the buttons on the left side of the window.
,
Sep 9 2017
c#18 Does that happen in the stable channel as well? If so, that's bug 594490
,
Sep 9 2017
c#19 No. This is happen only in unstable channel.
,
Sep 9 2017
Which theme and Gtk version are you using?
,
Sep 9 2017
I am on Elementary OS Loki. Theme is Elementary I guess and gtk version is 3.18.9
,
Sep 15 2017
Does this issue only happen intermittently? I was only able to get it to reproduce once, and I found that these steps consistently do it for me: 1. Have 2 monitors and 2 windows open, with a maximized chrome window on the left and an unmaximized one on the right 2. Fullscreen a video from the left window 3. Maximize the right window 4. Unfullscreen the video
,
Sep 18 2017
Nope, it happens constantly to me. Every time I maximized the window buttons are disappeared.
,
Sep 18 2017
Did you try use other than ambiance gtk3 theme and then maximize the window?
,
Sep 18 2017
c#26 I tested with Ambiance, Adwaita, and a handful of other themes. I'm trying out Elementary OS now
,
Sep 18 2017
Just tested and the issue is the same as bug 594490
,
Sep 19 2017
But elementary doesn't use libunity.
,
Sep 19 2017
Besides the issue occurs only in unstable channel of chrome. With stable version 61 everything is ok.
,
Sep 19 2017
c#29 Yes it does. I tested manually removing libunity9 and it fixed the buttons in maximized mode. Buttons in stable were fine, however. Not sure why it became broken, but I tested disabling native title buttons and I still experienced the issue. It's probably just a coincidence that it broke further at the same time as the switch to native title buttons.
,
Oct 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0ec5859e81c4f7e8620483f800f055cc254e41ec commit 0ec5859e81c4f7e8620483f800f055cc254e41ec Author: Tom Anderson <thomasanderson@chromium.org> Date: Tue Oct 03 17:08:15 2017 Remove native window nav button feature flag BUG= 753067 R=sky@chromium.org CC=erg@chromium.org Change-Id: I360e5260e155e55513c2f7b3e1572d665a17423a Reviewed-on: https://chromium-review.googlesource.com/693375 Reviewed-by: Scott Violet <sky@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#506080} [modify] https://crrev.com/0ec5859e81c4f7e8620483f800f055cc254e41ec/chrome/browser/about_flags.cc [modify] https://crrev.com/0ec5859e81c4f7e8620483f800f055cc254e41ec/chrome/browser/flag_descriptions.cc [modify] https://crrev.com/0ec5859e81c4f7e8620483f800f055cc254e41ec/chrome/browser/flag_descriptions.h [modify] https://crrev.com/0ec5859e81c4f7e8620483f800f055cc254e41ec/chrome/browser/ui/libgtkui/gtk_ui.cc [modify] https://crrev.com/0ec5859e81c4f7e8620483f800f055cc254e41ec/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc [modify] https://crrev.com/0ec5859e81c4f7e8620483f800f055cc254e41ec/chrome/common/chrome_features.cc [modify] https://crrev.com/0ec5859e81c4f7e8620483f800f055cc254e41ec/chrome/common/chrome_features.h
,
Oct 8 2017
It does work on Elementary, You need to enable "system-titlebar-and-borders".
,
Oct 9 2017
c#35 Take a look at the essence of this problem, please. I have noticed one more issue. In maximized mode, Chromium does not care about buttons height and width that are defined by the gtk theme. Test please your solution with default GNOME gtk theme - Adwaita. Hover effect shows that buttons are much smaller than in other apps.
,
Oct 9 2017
Do you mean like the video in c#3? It scales down the buttons because there's not enough room for them to fit on the reduced tabstrip. If you mean that the buttons should make the tabstrip larger, I don't think we'll do that. I'd prefer to downsize the buttons than upsize the tabstrip.
,
Oct 9 2017
It would be nice to have a little padding/margin before buttons.
,
Oct 9 2017
c#39. Not sure how I'd get that to work on all themes. See the video in c#9. All we're doing is matching the theme, so that's how it's supposed to look. If you want to override it, you can add a user theme override like this:
headerbar.titlebar {
padding-left: 10px;
padding-right: 10px;
}
,
Oct 9 2017
(I guess you meant ".header-bar.titlebar") Yeah, it helped.. but.. What about nautilus/font viewer/and every other app that uses headerbar? Is it the only way to make buttons equally spaced between window border and the first tab?
,
Oct 9 2017
Yeah it's .header-bar on <Gtk3.20 and plain header-bar on >Gtk3.20. You can choose Chrome specifically by adding the ".chromium" style class, so that it's ".header-bar.titlebar.chromium"
,
Oct 10 2017
It appears the window controls don't scale correctly on Wayland (at 200% scaling, they're completely unusable) Using Ubuntu 17.10 on a late 2015 macbook pro (Screen res is 2880x1800) Attached a screenshot of chrome with default screen settings for my setup (Stock install)
,
Oct 12 2017
Please do NOT remove native feature as i native buttons are much better for certain people.
,
Oct 19 2017
c#43: Thanks, able to repro. Hopefully we'll have a fix soon
,
Oct 19 2017
X-reffing video for CL https://chromium-review.googlesource.com/c/chromium/src/+/703482
,
Oct 20 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d69c71cf006a5baffc13c2da27b6a8fdc506ed47 commit d69c71cf006a5baffc13c2da27b6a8fdc506ed47 Author: Tom Anderson <thomasanderson@chromium.org> Date: Fri Oct 20 18:21:54 2017 Gtk3: Fix frame button scaling on HIDPI This CL fixes frame buttons being too small when GDK_SCALE=2, as seen in [1]. [1] https://bugs.chromium.org/p/chromium/issues/detail?id=753067#c43 BUG= 753067 R=erg@chromium.org Change-Id: I835668b779ab10ab3da971960794093f37813141 Reviewed-on: https://chromium-review.googlesource.com/729568 Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#510498} [modify] https://crrev.com/d69c71cf006a5baffc13c2da27b6a8fdc506ed47/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc
,
Oct 21 2017
Will it be possible to remove that "border" around the chromium window with CSD activated?
,
Oct 21 2017
c#48 Yes it's possible. It might take us a while to get to it, though
,
Oct 23 2017
Requesting merge to stable and beta for the cl from c#47. This is to fix the bug from c#43. The CL is small and should be relatively safe.
,
Oct 23 2017
This bug requires manual review: Request affecting a post-stable build Please contact the milestone owner if you have questions. Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 24 2017
My recommendation is to wait until M63. This looks like a new feature that we should go through full Dev/Beta testing. Rejecting for M62 merge.
,
Oct 24 2017
Your change meets the bar and is auto-approved for M63. Please go ahead and merge the CL to branch 3239 manually. Please contact milestone owner if you have questions. Owners: cmasso@(Android), cmasso@(iOS), gkihumba@(ChromeOS), govind@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 24 2017
Please merge you change to M63 branch 3239 by 4:00 PM PT, tomorrow (Wednesday). Thank you.
,
Oct 24 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2f7b4698eb1b8e09365bae8e6bfc9ea039853e20 commit 2f7b4698eb1b8e09365bae8e6bfc9ea039853e20 Author: Tom Anderson <thomasanderson@chromium.org> Date: Tue Oct 24 23:23:40 2017 [Merge to M63] Gtk3: Fix frame button scaling on HIDPI > This CL fixes frame buttons being too small when GDK_SCALE=2, as seen > in [1]. > > [1] https://bugs.chromium.org/p/chromium/issues/detail?id=753067#c43 > > BUG= 753067 > R=erg@chromium.org > > Change-Id: I835668b779ab10ab3da971960794093f37813141 > Reviewed-on: https://chromium-review.googlesource.com/729568 > Reviewed-by: Elliot Glaysher <erg@chromium.org> > Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> > Cr-Commit-Position: refs/heads/master@{#510498} BUG= 753067 TBR=erg@chromium.org NOTRY=true NOPRESUBMIT=true NOTREECHECKS=true Change-Id: Ia68e0ebbb9f4456852098a42f7fd007d6ac96296 Reviewed-on: https://chromium-review.googlesource.com/736810 Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/branch-heads/3239@{#199} Cr-Branched-From: adb61db19020ed8ecee5e91b1a0ea4c924ae2988-refs/heads/master@{#508578} [modify] https://crrev.com/2f7b4698eb1b8e09365bae8e6bfc9ea039853e20/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc
,
Oct 25 2017
I have this problem as well on ArchLinux, kernel version 4.13.8-1-ARCH, and Chromium 62.0.3202.62
,
Oct 25 2017
c#56: Which gtk theme are you using?
,
Oct 25 2017
The GTK theme I'm using is OSX-Arc-Shadow: https://github.com/LinxGem33/OSX-Arc-Shadow
,
Oct 26 2017
I have the same issue as c#56. When the window is maximized, 1 of the 3 buttons doesn't look the way it should. Not all GTK themes are affected (works well with Ambiance), but I can reproduce the issue with multiple themes that aren't (to my knowledge) forks of one another.
,
Oct 29 2017
#c58 If it can be of any use, in c#56 the GUI you can see in the pictures it's Cinnamon.
,
Nov 2 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5a331d04305b0f804b1f9b356d935a73c5e905aa commit 5a331d04305b0f804b1f9b356d935a73c5e905aa Author: Tom Anderson <thomasanderson@chromium.org> Date: Thu Nov 02 00:28:54 2017 Draw profile chooser button with GTK when possible This is the initial implementation of drawing a native GTK button as the profile chooser button on Linux. There are still some tasks left (like fixing HIDPI rendering), so the feature is guarded behind an --enable-native-avatar-button flag. Demo: https://bugs.chromium.org/p/chromium/issues/detail?id=753067#c46 BUG= 753067 Change-Id: Iff57d293a04bf2259aa0bb77161b51fec6370289 Reviewed-on: https://chromium-review.googlesource.com/703482 Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#513338} [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/BUILD.gn [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/libgtkui/BUILD.gn [add] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/libgtkui/DEPS [add] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/libgtkui/gtk3_background_painter.cc [add] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/libgtkui/gtk3_background_painter.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/libgtkui/gtk_ui.cc [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/libgtkui/gtk_ui.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/libgtkui/native_theme_gtk3.cc [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/BUILD.gn [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/avatar_button_manager.cc [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/avatar_button_manager.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc [add] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc [add] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.h [add] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.cc [add] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h [add] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout_unittest.cc [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/opaque_browser_frame_view.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_delegate.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_unittest.cc [rename] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/nav_button_provider.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/profiles/avatar_button.cc [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/browser/ui/views/profiles/avatar_button.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/common/BUILD.gn [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/common/chrome_switches.cc [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/common/chrome_switches.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/common/features.gni [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/chrome/test/BUILD.gn [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/ui/gfx/geometry/insets_f.h [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/ui/views/BUILD.gn [add] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/ui/views/features.gni [modify] https://crrev.com/5a331d04305b0f804b1f9b356d935a73c5e905aa/ui/views/linux_ui/linux_ui.h
,
Nov 2 2017
re: c#48 and c#49... should the clunky 90's style window border be the subject of its own bug report in the hope it doesn't get forgotten and eventually gets gotten around to? :-) I'm otherwise liking the GTK+ (non-system-titlebar) theme support and for me the only other issue is the fuzzy scaled-up icons in HiDPI modes, which is already being dealt with. But I for one find the chunky old-fashioned border, which has nothing to do with the GTK+ theme in force (no other windows have it) to be far more distracting. It's not there when the window is maximised. Can it just not be there when it isn't too? :-)
,
Nov 2 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/269e6117fb60f90ea9292f9c5bacea5e775e7f5e commit 269e6117fb60f90ea9292f9c5bacea5e775e7f5e Author: Tom Anderson <thomasanderson@chromium.org> Date: Thu Nov 02 19:29:07 2017 Draw avatar button correctly in HiDpi case BUG= 753067 R=erg@chromium.org Change-Id: I2442df80c37cfd96ac60e4bf17731b6d3a5c5b9d Reviewed-on: https://chromium-review.googlesource.com/751770 Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#513581} [modify] https://crrev.com/269e6117fb60f90ea9292f9c5bacea5e775e7f5e/chrome/browser/ui/libgtkui/gtk3_background_painter.cc
,
Nov 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/237be1e74cd01009d94c6fc445e6aae6030269a6 commit 237be1e74cd01009d94c6fc445e6aae6030269a6 Author: Tom Anderson <thomasanderson@chromium.org> Date: Fri Nov 03 03:11:21 2017 Gtk: Ensure AvatarButton has pressed state when menu is showing When using the GTK theme with --enable-native-avatar-button, it's required that the avatar button have the pressed state when the profile chooser menu is showing so that it looks pressed. Previously, the pressed state was handled by manually setting the ink drop animation state. Now, AvatarButton is made a sublcass of MenuButton and reuses code from there to handle ink drop animation, and ensuring the state becomes pressed. Also, this incidentally fixes a bug where the ink drop would get stuck when right clicking on the avatar button. BUG= 753067 R=msw@chromium.org CC=sky@chromium.org Change-Id: I6aafb5499e230859ea1ebe1c5ca6e2375ea63994 Reviewed-on: https://chromium-review.googlesource.com/744967 Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#513662} [modify] https://crrev.com/237be1e74cd01009d94c6fc445e6aae6030269a6/chrome/browser/ui/views/frame/avatar_button_manager.cc [modify] https://crrev.com/237be1e74cd01009d94c6fc445e6aae6030269a6/chrome/browser/ui/views/frame/avatar_button_manager.h [modify] https://crrev.com/237be1e74cd01009d94c6fc445e6aae6030269a6/chrome/browser/ui/views/profiles/avatar_button.cc [modify] https://crrev.com/237be1e74cd01009d94c6fc445e6aae6030269a6/chrome/browser/ui/views/profiles/avatar_button.h
,
Nov 3 2017
c#56 and c#59: The issue is now being tracked on bug 779848 . c#62: Yes, please file a bug and assign it to me. (If don't have permissions to assign it, please post the bug # here and I'll take it)
,
Nov 4 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/30935ba0185d4592e0cf92bddf7171a733086258 commit 30935ba0185d4592e0cf92bddf7171a733086258 Author: Tom Anderson <thomasanderson@chromium.org> Date: Fri Nov 03 23:03:02 2017 Don't add extra spacing for avatar button when it's the leading button Image diffs: https://bugs.chromium.org/p/chromium/issues/detail?id=21438#c48 BUG= 753067 R=sky@chromium.org CC=erg@chromium.org Change-Id: Id03073feab4217bb82c055834ecce7737495ae9b Reviewed-on: https://chromium-review.googlesource.com/752023 Reviewed-by: Scott Violet <sky@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#513934} [modify] https://crrev.com/30935ba0185d4592e0cf92bddf7171a733086258/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.cc [modify] https://crrev.com/30935ba0185d4592e0cf92bddf7171a733086258/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc [modify] https://crrev.com/30935ba0185d4592e0cf92bddf7171a733086258/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h
,
Nov 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d702c6218a77f480d78bb0fbab5ad9de25599686 commit d702c6218a77f480d78bb0fbab5ad9de25599686 Author: Tom Anderson <thomasanderson@chromium.org> Date: Mon Nov 06 23:37:40 2017 Gtk3: Fix restore button rendering improperly on some themes Restore buttons are styled with the ".maxmize" style class, not ".restore". BUG= 753067 , 779848 R=erg@chromium.org Change-Id: Ifcd9f034bddf92285a34be9f1f3d5ea197ee4532 Reviewed-on: https://chromium-review.googlesource.com/755475 Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Elliot Glaysher <erg@chromium.org> Cr-Commit-Position: refs/heads/master@{#514293} [modify] https://crrev.com/d702c6218a77f480d78bb0fbab5ad9de25599686/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc
,
Nov 6 2017
Requesting merge to M63 for the bugfix in c#67. It's only a 3 line diff and should be very safe.
,
Nov 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/59d7b6cdbb06f93d45d4db9e0ecc2fd8fcdf8ee1 commit 59d7b6cdbb06f93d45d4db9e0ecc2fd8fcdf8ee1 Author: Tom Anderson <thomasanderson@chromium.org> Date: Tue Nov 07 01:21:15 2017 Gtk3: Fix rounding of negative values when laying out frame buttons GTK themes use negative values to do more special layout of frame buttons. Rounding was broken in this case because all values were assumed to be positive, and rounding was done like (int)(x + 0.5f). This CL changes these to std::round(x). BUG= 753067 R=erg@chromium.org Change-Id: Ib07e03b6dc21d79afec59f08b997d7753fec0178 Reviewed-on: https://chromium-review.googlesource.com/755974 Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#514330} [modify] https://crrev.com/59d7b6cdbb06f93d45d4db9e0ecc2fd8fcdf8ee1/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc
,
Nov 7 2017
Approving merge for the bugfix in c#67 to M63 branch 3239 per comment #68. Please merge ASAP so we can take it in for this week beta release. Thank you.
,
Nov 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f17ee5c3c4e5cd9a4e6f5f6b7d748780d3030d22 commit f17ee5c3c4e5cd9a4e6f5f6b7d748780d3030d22 Author: Tom Anderson <thomasanderson@chromium.org> Date: Tue Nov 07 19:05:49 2017 [Merge to M63] Gtk3: Fix restore button rendering improperly on some themes > Restore buttons are styled with the ".maxmize" style class, not > ".restore". > > BUG= 753067 , 779848 > R=erg@chromium.org > > Change-Id: Ifcd9f034bddf92285a34be9f1f3d5ea197ee4532 > Reviewed-on: https://chromium-review.googlesource.com/755475 > Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> > Reviewed-by: Elliot Glaysher <erg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#514293} BUG= 753067 , 779848 TBR=erg@chromium.org NOTRY=true NOPRESUBMIT=true NOTREECHECKS=true Change-Id: I80d3e4bad4cb7b367eb4bbaab3219d8cee9cff5c Reviewed-on: https://chromium-review.googlesource.com/757500 Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/branch-heads/3239@{#410} Cr-Branched-From: adb61db19020ed8ecee5e91b1a0ea4c924ae2988-refs/heads/master@{#508578} [modify] https://crrev.com/f17ee5c3c4e5cd9a4e6f5f6b7d748780d3030d22/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc
,
Nov 7 2017
Steps to repro/verify the issue from the merge in c#71 for verification team: 1. Run Ubuntu 16.04 LTS or later 2. Install breeze gtk theme: "sudo apt-get install gtk3-engines-breeze" 3. Run chrome with "GTK_THEME=Breeze google-chrome-beta" 4. Maximize the window. On the failing version, the maximize button should be a square. On the fixed version, it should be an up arrow that looks like "^".
,
Nov 9 2017
Thanks for the steps provided, followed the steps as mentioned in the above comment. 1) On Ubuntu 16.04 LTS installed breeze gtk3 theme 2) Launched chrome with "GTK_THEME=Breeze google-chrome-beta" 3) Theme was applied as on the Chrome window launched, the maximize button was displayed as an up arrow which looked like "^" 4) Now Maximized the window, but Square button was displayed A screen cast of the following is attached. Tried on chrome version 63.0.3239.40 Beta and 64.0.3262.0 Canary Builds. Note on Stable build# 62.0.3202.89 also observed the same behavior @thomasanderson: Request you to please check and let us know if we have missed out any thing here. Based on your comments I can verify the issue 779848 as well. Thanks a lot in advance.!
,
Nov 9 2017
Oh yeah, you also need to *not* be using the Unity desktop environment in order to repro. But you can still see the issue on Unity if you launch with "XDG_CURRENT_DESKTOP= GTK_THEME=Breeze google-chrome-beta". There will be duplicated min/max/close buttons, but at least you'll be able to see the repro.
,
Nov 9 2017
@ thomasanderso: Thanks for the steps provided, I can see the difference when compared with Stable and Beta (Screen shots attached). On Stable#62.0.3202.89 we see a square for Maximize button instead of "^" and on Beta# 63.0.3239.40 we See the "^" icon. Fix is working as intended. tagging with TE-verified labels. Thanks.!
,
Nov 9 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b58b96c061f7788d3d7a16c9931998ebcf0d6915 commit b58b96c061f7788d3d7a16c9931998ebcf0d6915 Author: Tom Anderson <thomasanderson@chromium.org> Date: Thu Nov 09 20:58:46 2017 Gtk3: Use Chrome's border width instead of GTK's for frame button layout Previously, a GtkHeaderBar's border was used for laying out frame buttons in the tabstrip. However, we never draw a GTK border -- instead, Chrome draws its own 2dp border on all edges. This could lead to button placement being off by 1dp when the gtk border was only 1dp or 0dp wide. Also, small changes in layout code: * Apply the "image-button" class to the avatar button. * Make avatar button layout code more consistent with other buttons. BUG= 753067 R=erg@chromium.org,sky@chromium.org Change-Id: I017c4e77892a8a244fb0772ff5432e9b8ef012bf Reviewed-on: https://chromium-review.googlesource.com/759430 Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Elliot Glaysher <erg@chromium.org> Cr-Commit-Position: refs/heads/master@{#515283} [modify] https://crrev.com/b58b96c061f7788d3d7a16c9931998ebcf0d6915/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc [modify] https://crrev.com/b58b96c061f7788d3d7a16c9931998ebcf0d6915/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc [modify] https://crrev.com/b58b96c061f7788d3d7a16c9931998ebcf0d6915/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.cc [modify] https://crrev.com/b58b96c061f7788d3d7a16c9931998ebcf0d6915/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h [modify] https://crrev.com/b58b96c061f7788d3d7a16c9931998ebcf0d6915/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout_unittest.cc [modify] https://crrev.com/b58b96c061f7788d3d7a16c9931998ebcf0d6915/chrome/browser/ui/views/frame/opaque_browser_frame_view.h
,
Nov 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c730e92fdb63b63bf0e6df85d67b414fd1d243b6 commit c730e92fdb63b63bf0e6df85d67b414fd1d243b6 Author: Tom Anderson <thomasanderson@chromium.org> Date: Fri Nov 10 00:45:51 2017 Enable native GTK avatar button drawing on Linux BUG= 753067 R=erg@chromium.org CC=sky@chromium.org Change-Id: I6496f0e7ff269de9f6518c89f8ff03cba0f3cf7e Reviewed-on: https://chromium-review.googlesource.com/762377 Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#515377} [modify] https://crrev.com/c730e92fdb63b63bf0e6df85d67b414fd1d243b6/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc [modify] https://crrev.com/c730e92fdb63b63bf0e6df85d67b414fd1d243b6/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.cc [modify] https://crrev.com/c730e92fdb63b63bf0e6df85d67b414fd1d243b6/chrome/common/chrome_switches.cc [modify] https://crrev.com/c730e92fdb63b63bf0e6df85d67b414fd1d243b6/chrome/common/chrome_switches.h
,
Nov 10 2017
|
|||||||||||||
►
Sign in to add a comment |
|||||||||||||
Comment 1 by thomasanderson@chromium.org
, Aug 7 2017