Index: chrome/browser/ui/libgtkui/gtk_ui.h |
diff --git a/chrome/browser/ui/libgtkui/gtk_ui.h b/chrome/browser/ui/libgtkui/gtk_ui.h |
index 627aab50a982d29a5d4841a2184dda3eba0764e7..aa622adfb9ab085f7c77935bc72b55b597ff4c6d 100644 |
--- a/chrome/browser/ui/libgtkui/gtk_ui.h |
+++ b/chrome/browser/ui/libgtkui/gtk_ui.h |
@@ -18,12 +18,14 @@ |
#include "ui/views/linux_ui/linux_ui.h" |
#include "ui/views/window/frame_buttons.h" |
+typedef struct _GParamSpec GParamSpec; |
typedef struct _GtkStyle GtkStyle; |
typedef struct _GtkWidget GtkWidget; |
namespace libgtkui { |
class Gtk2KeyBindingsHandler; |
class GConfListener; |
+class DeviceScaleFactorObserver; |
// Interface to GTK2 desktop features. |
// |
@@ -97,6 +99,10 @@ class GtkUi : public views::LinuxUI { |
bool UnityIsRunning() override; |
NonClientMiddleClickAction GetNonClientMiddleClickAction() override; |
void NotifyWindowManagerStartupComplete() override; |
+ void AddDeviceScaleFactorObserver( |
+ views::DeviceScaleFactorObserver* observer) override; |
+ void RemoveDeviceScaleFactorObserver( |
+ views::DeviceScaleFactorObserver* observer) override; |
// ui::TextEditKeybindingDelegate: |
bool MatchEvent(const ui::Event& event, |
@@ -110,6 +116,12 @@ class GtkUi : public views::LinuxUI { |
typedef std::map<int, SkColor> ColorMap; |
typedef std::map<int, color_utils::HSL> TintMap; |
+ CHROMEG_CALLBACK_1(GtkUi, |
+ void, |
+ OnDeviceScaleFactorMaybeChanged, |
+ void*, |
+ GParamSpec*); |
+ |
// This method returns the colors webkit will use for the scrollbars. When no |
// colors are specified by the GTK+ theme, this function averages of the |
// thumb part and of the track colors. |
@@ -129,9 +141,12 @@ class GtkUi : public views::LinuxUI { |
bool GetChromeStyleColor(const char* sytle_property, |
SkColor* ret_color) const; |
+ float GetRawDeviceScaleFactor(); |
+ |
ui::NativeTheme* native_theme_; |
- // A GtkWindow object with the class "ChromeGtkFrame". |
+ // On Gtk2, A GtkWindow object with the class "ChromeGtkFrame". On |
+ // Gtk3, a regular GtkWindow. |
GtkWidget* fake_window_; |
// Colors calculated by LoadGtkValues() that are given to the |
@@ -171,7 +186,12 @@ class GtkUi : public views::LinuxUI { |
std::unique_ptr<Gtk2KeyBindingsHandler> key_bindings_handler_; |
// Objects to notify when the window frame button order changes. |
- base::ObserverList<views::WindowButtonOrderObserver> observer_list_; |
+ base::ObserverList<views::WindowButtonOrderObserver> |
+ window_button_order_observer_list_; |
+ |
+ // Objects to notify when the device scale factor changes. |
+ base::ObserverList<views::DeviceScaleFactorObserver> |
+ device_scale_factor_observer_list_; |
// Whether we should lower the window on a middle click to the non client |
// area. |