diff options
| -rw-r--r-- | src/core/frame.c | 8 | ||||
| -rw-r--r-- | src/include/common.h | 5 | ||||
| -rw-r--r-- | src/ui/frames.c | 10 | ||||
| -rw-r--r-- | src/ui/theme.c | 10 | 
4 files changed, 29 insertions, 4 deletions
| diff --git a/src/core/frame.c b/src/core/frame.c index a2da9cb9..d4e09fbf 100644 --- a/src/core/frame.c +++ b/src/core/frame.c @@ -306,10 +306,10 @@ meta_frame_get_flags (MetaFrame *frame)  void  meta_frame_borders_clear (MetaFrameBorders *self)  { -  self->visible.top = 0; -  self->visible.bottom = 0; -  self->visible.left = 0; -  self->visible.right = 0; +  self->visible.top = self->invisible.top = self->total.top = 0; +  self->visible.bottom = self->invisible.bottom = self->total.bottom = 0; +  self->visible.left = self->invisible.left = self->total.left = 0; +  self->visible.right = self->invisible.right = self->total.right = 0;  }  void diff --git a/src/include/common.h b/src/include/common.h index 18a4e12b..85e4f630 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -308,6 +308,11 @@ struct _MetaFrameBorders     * and an outer portion that is invisible but responds to events.     */    GtkBorder visible; +  GtkBorder invisible; + +  /* For convenience, we have a "total" border which is equal to the sum +   * of the two borders above. */ +  GtkBorder total;  };  /* sets all dimensions to zero */ diff --git a/src/ui/frames.c b/src/ui/frames.c index fff3b684..5908d991 100644 --- a/src/ui/frames.c +++ b/src/ui/frames.c @@ -799,6 +799,16 @@ meta_ui_frame_get_borders (MetaFrames       *frames,    borders->visible.bottom *= scale;    borders->visible.left *= scale;    borders->visible.right *= scale; + +  borders->invisible.top *= scale; +  borders->invisible.bottom *= scale; +  borders->invisible.left *= scale; +  borders->invisible.right *= scale; + +  borders->total.top *= scale; +  borders->total.bottom *= scale; +  borders->total.left *= scale; +  borders->total.right *= scale;  }  void diff --git a/src/ui/theme.c b/src/ui/theme.c index 66cd4be8..b08b3903 100644 --- a/src/ui/theme.c +++ b/src/ui/theme.c @@ -433,6 +433,16 @@ meta_frame_layout_get_borders (const MetaFrameLayout *layout,        meta_frame_borders_clear (borders);        return;      } + +  borders->invisible.left = layout->invisible_border.left; +  borders->invisible.right = layout->invisible_border.right; +  borders->invisible.bottom = layout->invisible_border.bottom; +  borders->invisible.top = layout->invisible_border.top; + +  borders->total.left = borders->invisible.left + borders->visible.left; +  borders->total.right = borders->invisible.right + borders->visible.right; +  borders->total.bottom = borders->invisible.bottom + borders->visible.bottom; +  borders->total.top = borders->invisible.top + borders->visible.top;  }  static MetaButtonType | 
