X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkwindow.c;h=99bab056658c3ea5bcecfee84dbb48b1a11b09d6;hb=2cfc56ced81d801669deb3a429a00e25769e5a70;hp=e0c21a923e55c5717aafffb1596f6633ccb17c44;hpb=97ba4b1b8eb82563f13762a4bd8cfe9beb8a121c;p=~andy%2Fgtk diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index e0c21a923..99bab0566 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -118,8 +118,6 @@ struct _GtkWindowPrivate GdkModifierType mnemonic_modifier; GdkWindowTypeHint gdk_type_hint; - gdouble opacity; - GdkWindow *grip_window; gchar *startup_id; @@ -166,7 +164,6 @@ struct _GtkWindowPrivate guint mnemonics_visible_set : 1; guint focus_visible : 1; guint modal : 1; - guint opacity_set : 1; guint position : 3; guint reset_type_hint : 1; guint resizable : 1; @@ -228,7 +225,6 @@ enum { PROP_GRAVITY, PROP_TRANSIENT_FOR, PROP_ATTACHED_TO, - PROP_OPACITY, PROP_HAS_RESIZE_GRIP, PROP_RESIZE_GRIP_VISIBLE, PROP_APPLICATION, @@ -426,9 +422,11 @@ static GtkKeyHash *gtk_window_get_key_hash (GtkWindow *window); static void gtk_window_free_key_hash (GtkWindow *window); static void gtk_window_on_composited_changed (GdkScreen *screen, GtkWindow *window); +#ifdef GDK_WINDOWING_X11 static void gtk_window_on_theme_variant_changed (GtkSettings *settings, GParamSpec *pspec, GtkWindow *window); +#endif static void gtk_window_set_theme_variant (GtkWindow *window); static GSList *toplevel_list = NULL; @@ -983,24 +981,6 @@ gtk_window_class_init (GtkWindowClass *klass) GTK_TYPE_WIDGET, GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - /** - * GtkWindow:opacity: - * - * The requested opacity of the window. See gtk_window_set_opacity() for - * more details about window opacity. - * - * Since: 2.12 - */ - g_object_class_install_property (gobject_class, - PROP_OPACITY, - g_param_spec_double ("opacity", - P_("Opacity for Window"), - P_("The opacity of the window, from 0 to 1"), - 0.0, - 1.0, - 1.0, - GTK_PARAM_READWRITE)); - /* Style properties. */ gtk_widget_class_install_style_property (widget_class, @@ -1178,7 +1158,6 @@ gtk_window_init (GtkWindow *window) priv->focus_on_map = TRUE; priv->deletable = TRUE; priv->type_hint = GDK_WINDOW_TYPE_HINT_NORMAL; - priv->opacity = 1.0; priv->startup_id = NULL; priv->initial_timestamp = GDK_CURRENT_TIME; priv->has_resize_grip = TRUE; @@ -1300,9 +1279,6 @@ gtk_window_set_property (GObject *object, case PROP_ATTACHED_TO: gtk_window_set_attached_to (window, g_value_get_object (value)); break; - case PROP_OPACITY: - gtk_window_set_opacity (window, g_value_get_double (value)); - break; case PROP_HAS_RESIZE_GRIP: gtk_window_set_has_resize_grip (window, g_value_get_boolean (value)); break; @@ -1424,9 +1400,6 @@ gtk_window_get_property (GObject *object, case PROP_ATTACHED_TO: g_value_set_object (value, gtk_window_get_attached_to (window)); break; - case PROP_OPACITY: - g_value_set_double (value, gtk_window_get_opacity (window)); - break; case PROP_HAS_RESIZE_GRIP: g_value_set_boolean (value, priv->has_resize_grip); break; @@ -2707,28 +2680,13 @@ gtk_window_get_attached_to (GtkWindow *window) * shown causes it to flicker once on Windows. * * Since: 2.12 + * Deprecated: 3.8: Use gtk_widget_set_opacity instead. **/ void gtk_window_set_opacity (GtkWindow *window, gdouble opacity) { - GtkWindowPrivate *priv; - - g_return_if_fail (GTK_IS_WINDOW (window)); - - priv = window->priv; - - if (opacity < 0.0) - opacity = 0.0; - else if (opacity > 1.0) - opacity = 1.0; - - priv->opacity_set = TRUE; - priv->opacity = opacity; - - if (gtk_widget_get_realized (GTK_WIDGET (window))) - gdk_window_set_opacity (gtk_widget_get_window (GTK_WIDGET (window)), - priv->opacity); + gtk_widget_set_opacity (GTK_WIDGET (window), opacity); } /** @@ -2741,13 +2699,14 @@ gtk_window_set_opacity (GtkWindow *window, * Return value: the requested opacity for this window. * * Since: 2.12 + * Deprecated: 3.8: Use gtk_widget_get_opacity instead. **/ gdouble gtk_window_get_opacity (GtkWindow *window) { g_return_val_if_fail (GTK_IS_WINDOW (window), 0.0); - return window->priv->opacity; + return gtk_widget_get_opacity (GTK_WIDGET (window)); } /** @@ -5203,11 +5162,10 @@ gtk_window_realize (GtkWidget *widget) gdk_window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gtk_widget_set_window (widget, gdk_window); - gdk_window_set_user_data (gdk_window, widget); + gtk_widget_register_window (widget, gdk_window); gtk_style_context_set_background (gtk_widget_get_style_context (widget), gdk_window); - gdk_window_enable_synchronized_configure (gdk_window); return; } @@ -5281,12 +5239,7 @@ gtk_window_realize (GtkWidget *widget) gdk_window = gdk_window_new (parent_window, &attributes, attributes_mask); gtk_widget_set_window (widget, gdk_window); - if (priv->opacity_set) - gdk_window_set_opacity (gdk_window, priv->opacity); - - gdk_window_enable_synchronized_configure (gdk_window); - - gdk_window_set_user_data (gdk_window, window); + gtk_widget_register_window (widget, gdk_window); context = gtk_widget_get_style_context (widget); gtk_style_context_set_background (context, gdk_window); @@ -5626,7 +5579,6 @@ gtk_window_configure_event (GtkWidget *widget, if (GTK_WIDGET_CLASS (gtk_window_parent_class)->configure_event) return GTK_WIDGET_CLASS (gtk_window_parent_class)->configure_event (widget, event); - gdk_window_configure_finished (gtk_widget_get_window (widget)); return FALSE; } @@ -5660,7 +5612,6 @@ gtk_window_configure_event (GtkWidget *widget, (allocation.width == event->width && allocation.height == event->height)) { - gdk_window_configure_finished (gtk_widget_get_window (widget)); return TRUE; } @@ -5768,7 +5719,7 @@ resize_grip_create_window (GtkWindow *window) attributes_mask); gdk_window_set_background_rgba (priv->grip_window, &transparent); - gdk_window_set_user_data (priv->grip_window, widget); + gtk_widget_register_window (widget, priv->grip_window); gdk_window_raise (priv->grip_window); @@ -5781,7 +5732,7 @@ resize_grip_destroy_window (GtkWindow *window) { GtkWindowPrivate *priv = window->priv; - gdk_window_set_user_data (priv->grip_window, NULL); + gtk_widget_unregister_window (GTK_WIDGET (window), priv->grip_window); gdk_window_destroy (priv->grip_window); priv->grip_window = NULL; update_grip_visibility (window); @@ -6625,7 +6576,7 @@ gtk_window_compute_configure_request_size (GtkWindow *window, info->resize_height > 0 ? height : NULL); } - /* Don't ever request zero width or height, its not supported by + /* Don't ever request zero width or height, it's not supported by gdk. The size allocation code will round it to 1 anyway but if we do it then the value returned from this function will is not comparable to the size allocation read from the GtkWindow. */ @@ -7171,7 +7122,8 @@ gtk_window_move_resize (GtkWindow *window) &new_geometry, new_flags); - gdk_window_get_position (gdk_window, &allocation.x, &allocation.y); + allocation.x = 0; + allocation.y = 0; allocation.width = gdk_window_get_width (gdk_window); allocation.height = gdk_window_get_height (gdk_window); @@ -7198,10 +7150,6 @@ gtk_window_move_resize (GtkWindow *window) set_grip_position (window); update_grip_visibility (window); - gdk_window_process_updates (gdk_window, TRUE); - - gdk_window_configure_finished (gdk_window); - /* If the configure request changed, it means that * we either: * 1) coincidentally changed hints or widget properties @@ -8390,6 +8338,7 @@ gtk_window_set_theme_variant (GtkWindow *window) #endif } +#ifdef GDK_WINDOWING_X11 static void gtk_window_on_theme_variant_changed (GtkSettings *settings, GParamSpec *pspec, @@ -8398,6 +8347,7 @@ gtk_window_on_theme_variant_changed (GtkSettings *settings, if (window->priv->type == GTK_WINDOW_TOPLEVEL) gtk_window_set_theme_variant (window); } +#endif static void gtk_window_on_composited_changed (GdkScreen *screen,