[gtk+/client-side-decorations: 78/92] Don't draw the window frame when the window is maximized.
- From: Cody Russell <bratsche src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/client-side-decorations: 78/92] Don't draw the window frame when the window is maximized.
- Date: Fri, 16 Apr 2010 19:33:39 +0000 (UTC)
commit 1ec3e7d9bacfdae643d4fd7e7e51e7a7df277580
Author: Cody Russell <bratsche gnome org>
Date: Wed Nov 25 16:17:40 2009 -0600
Don't draw the window frame when the window is maximized.
gtk/gtkwindow.c | 91 ++++++++++++++++++++++++++++---------------------------
1 files changed, 46 insertions(+), 45 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 764b33a..031a7ee 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -351,6 +351,7 @@ static void gtk_window_set_label_widget (GtkWindow *window,
GtkWidget *label);
static gboolean is_client_side_decorated (GtkWindow *window);
+static gint get_decoration_frame_width (GtkWindow *window);
static gboolean gtk_window_popup_menu (GtkWidget *widget);
static void gtk_window_do_popup (GtkWindow *window,
GdkEventButton *event);
@@ -4668,12 +4669,7 @@ gtk_window_move (GtkWindow *window,
info = gtk_window_get_geometry_info (window, TRUE);
- if (is_client_side_decorated (window) && priv->client_side_decorations & GDK_DECOR_BORDER)
- {
- gtk_widget_style_get (widget,
- "decoration-border-width", &frame_width,
- NULL);
- }
+ frame_width = get_decoration_frame_width (window);
if (gtk_widget_get_mapped (widget))
{
@@ -5233,6 +5229,35 @@ gtk_window_unmap (GtkWidget *widget)
priv->below_initially = (state & GDK_WINDOW_STATE_BELOW) != 0;
}
+static gint
+get_decoration_frame_width (GtkWindow *window)
+{
+ gint frame_width = 0;
+ GdkWindowState state;
+ GtkWidget *widget;
+
+ widget = GTK_WIDGET (window);
+
+ if (widget->window)
+ {
+ GtkWindowPrivate *priv;
+
+ state = gdk_window_get_state (widget->window);
+ priv = GTK_WINDOW_GET_PRIVATE (window);
+
+ if (!(state & GDK_WINDOW_STATE_MAXIMIZED) &&
+ is_client_side_decorated (window) &&
+ priv->client_side_decorations & GDK_DECOR_BORDER)
+ {
+ gtk_widget_style_get (widget,
+ "decoration-border-width", &frame_width,
+ NULL);
+ }
+ }
+
+ return frame_width;
+}
+
static gboolean
is_client_side_decorated (GtkWindow *window)
{
@@ -5493,8 +5518,9 @@ gtk_window_size_request (GtkWidget *widget,
if (priv->client_side_decorations & GDK_DECOR_BORDER)
{
+ frame_width = get_decoration_frame_width (window);
+
gtk_widget_style_get (widget,
- "decoration-border-width", &frame_width,
"decoration-extents", &extents,
NULL);
}
@@ -5563,13 +5589,7 @@ get_available_size_for_label (GtkWindow *window)
priv = GTK_WINDOW_GET_PRIVATE (window);
available_size = widget->allocation.width;
-
- if (priv->client_side_decorations & GDK_DECOR_BORDER)
- {
- gtk_widget_style_get (widget,
- "decoration-border-width", &border_width,
- NULL);
- }
+ border_width = get_decoration_frame_width (window);
available_size -= border_width * 2;
@@ -5603,6 +5623,7 @@ gtk_window_size_allocate (GtkWidget *widget,
gint left_width = 0;
GdkRectangle rect;
gboolean client_decorated;
+ gboolean maximized = FALSE;
window = GTK_WINDOW (widget);
container = GTK_CONTAINER (widget);
@@ -5613,12 +5634,7 @@ gtk_window_size_allocate (GtkWidget *widget,
deco_allocation.width = deco_allocation.height = 0;
- if (priv->client_side_decorations & GDK_DECOR_BORDER)
- {
- gtk_widget_style_get (widget,
- "decoration-border-width", &frame_width,
- NULL);
- }
+ frame_width = get_decoration_frame_width (window);
if (client_decorated && priv->icon_event_box && gtk_widget_get_visible (priv->icon_event_box))
{
@@ -5909,11 +5925,12 @@ get_region_type (GtkWindow *window, gint x, gint y)
{
GtkWidget *widget = GTK_WIDGET (window);
gint title_height = get_title_height (window);
- gint frame_width;
- gint resize_handle;
+ gint frame_width = 0;
+ gint resize_handle = 0;
+
+ frame_width = get_decoration_frame_width (window);
gtk_widget_style_get (widget,
- "decoration-border-width", &frame_width,
"decoration-resize-handle", &resize_handle,
NULL);
@@ -5968,14 +5985,12 @@ get_active_region_type (GtkWindow *window, gint x, gint y)
GtkWidget *widget = GTK_WIDGET (window);
GtkWindowRegion region;
gboolean resize_h, resize_v;
- gint frame_width;
+ gint frame_width = 0;
gint state;
region = get_region_type (window, x, y);
- gtk_widget_style_get (widget,
- "decoration-border-width", &frame_width,
- NULL);
+ frame_width = get_decoration_frame_width (window);
state = gdk_window_get_state (widget->window);
if (!window->allow_grow || (state & GDK_WINDOW_STATE_MAXIMIZED))
@@ -7288,13 +7303,8 @@ gtk_window_move_resize (GtkWindow *window)
configure_request_size_changed = FALSE;
configure_request_pos_changed = FALSE;
- if (is_client_side_decorated (window) && priv->client_side_decorations & GDK_DECOR_BORDER)
- {
- gtk_widget_style_get (widget,
- "decoration-border-width", &frame_width,
- NULL);
- }
-
+ frame_width = get_decoration_frame_width (window);
+
gtk_window_compute_configure_request (window, &new_request,
&new_geometry, &new_flags);
@@ -7537,14 +7547,7 @@ gtk_window_move_resize (GtkWindow *window)
widget->allocation.height != new_request.height))
{
- gint frame_width = 0;
-
- if (priv->client_side_decorations & GDK_DECOR_BORDER)
- {
- gtk_widget_style_get (widget,
- "decoration-border-width", &frame_width,
- NULL);
- }
+ gint frame_width = get_decoration_frame_width (window);
/* We are in one of the following situations:
* A. configure_request_size_changed
@@ -7880,9 +7883,7 @@ gtk_window_paint (GtkWidget *widget,
{
gint frame_width, title_height;
- gtk_widget_style_get (widget,
- "decoration-border-width", &frame_width,
- NULL);
+ frame_width = get_decoration_frame_width (GTK_WINDOW (widget));
title_height = get_title_height (GTK_WINDOW (widget));
gtk_paint_box (widget->style, widget->window, GTK_STATE_NORMAL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]