Bug 1414272 - Implement SetNonClientMargins() for Gtk+, r?jhorak draft
authorMartin Stransky <stransky@redhat.com>
Fri, 03 Nov 2017 15:38:29 +0100
changeset 692745 846a28b3a477ce1f743c9bb64db4e24c207f3044
parent 692089 40a14ca1cf04499f398e4cb8ba359b39eae4e216
child 738841 43646e96ca2ee8e07aaa7793745e6a29650bbea2
push id87592
push userstransky@redhat.com
push dateFri, 03 Nov 2017 14:38:55 +0000
reviewersjhorak
bugs1414272
milestone58.0a1
Bug 1414272 - Implement SetNonClientMargins() for Gtk+, r?jhorak Original patch author is Andrew Comminos [:acomminos] <andrew@comminos.com> MozReview-Commit-ID: Jnqz35iNsQb
widget/gtk/nsWindow.cpp
widget/gtk/nsWindow.h
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -6615,16 +6615,23 @@ nsWindow::ClearCachedResources()
     for (GList* list = children; list; list = list->next) {
         nsWindow* window = get_window_for_gdk_window(GDK_WINDOW(list->data));
         if (window) {
             window->ClearCachedResources();
         }
     }
 }
 
+nsresult
+nsWindow::SetNonClientMargins(LayoutDeviceIntMargin &aMargins)
+{
+  SetDrawsInTitlebar(aMargins.top == 0);
+  return NS_OK;
+}
+
 void
 nsWindow::SetDrawsInTitlebar(bool aState)
 {
   if (!mIsCSDAvailable || aState == mIsCSDEnabled)
       return;
 
   if (mShell) {
       gint wmd = aState ? GDK_DECOR_BORDER : ConvertBorderStyles(mBorderStyle);
--- a/widget/gtk/nsWindow.h
+++ b/widget/gtk/nsWindow.h
@@ -346,16 +346,17 @@ public:
                                                 nsIObserver* aObserver) override;
 #endif
 
 #ifdef MOZ_X11
     Display* XDisplay() { return mXDisplay; }
 #endif
     virtual void GetCompositorWidgetInitData(mozilla::widget::CompositorWidgetInitData* aInitData) override;
 
+    virtual nsresult SetNonClientMargins(LayoutDeviceIntMargin& aMargins) override;
     void SetDrawsInTitlebar(bool aState) override;
 
     // HiDPI scale conversion
     gint GdkScaleFactor();
 
     // To GDK
     gint DevicePixelsToGdkCoordRoundUp(int pixels);
     gint DevicePixelsToGdkCoordRoundDown(int pixels);