]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkwindow.c
entry: Use GtkSelectionWindow for touch text selection
[~andy/gtk] / gtk / gtkwindow.c
index 098488667fb2a8b172ccd753520a239feadbab4c..99bab056658c3ea5bcecfee84dbb48b1a11b09d6 100644 (file)
@@ -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. */
@@ -7199,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
@@ -8391,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,
@@ -8399,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,