[gtk+/wip/otte/gtk4: 102/127] GtkTextHandle: Use min-width/min-height



commit e92c5791d8c7ad931ce83a45b27551c0677e9973
Author: Timm Bäder <mail baedert org>
Date:   Tue Oct 4 21:13:29 2016 +0200

    GtkTextHandle: Use min-width/min-height
    
    instead of GtkWidget's text-handle-width/text-handle-height style
    properties

 gtk/gtktexthandle.c |   37 ++++++++++++++++++++-----------------
 1 files changed, 20 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c
index cc98d22..4e9e359 100644
--- a/gtk/gtktexthandle.c
+++ b/gtk/gtktexthandle.c
@@ -76,24 +76,27 @@ static void _gtk_text_handle_update (GtkTextHandle         *handle,
                                      GtkTextHandlePosition  pos);
 
 static void
-_gtk_text_handle_get_size (GtkTextHandle *handle,
-                           gint          *width,
-                           gint          *height)
+_gtk_text_handle_get_size (GtkTextHandle         *handle,
+                           GtkTextHandlePosition  pos,
+                           gint                  *width,
+                           gint                  *height)
 {
-  GtkTextHandlePrivate *priv;
-  gint w, h;
+  GtkTextHandlePrivate *priv = handle->priv;
+  GtkWidget *widget = priv->windows[pos].widget;
+  GtkStyleContext *context;
 
-  priv = handle->priv;
+  context = gtk_widget_get_style_context (widget);
+
+  gtk_style_context_get (context,
+                         gtk_style_context_get_state (context),
+                         "min-width",
+                         width, NULL);
 
-  gtk_widget_style_get (priv->parent,
-                        "text-handle-width", &w,
-                        "text-handle-height", &h,
-                        NULL);
-  if (width)
-    *width = w;
 
-  if (height)
-    *height = h;
+  gtk_style_context_get (context,
+                         gtk_style_context_get_state (context),
+                         "min-height",
+                         height, NULL);
 }
 
 static void
@@ -110,7 +113,7 @@ _gtk_text_handle_draw (GtkTextHandle         *handle,
   handle_window = &priv->windows[pos];
 
   context = gtk_widget_get_style_context (handle_window->widget);
-  _gtk_text_handle_get_size (handle, &width, &height);
+  _gtk_text_handle_get_size (handle, pos, &width, &height);
 
   cairo_save (cr);
   cairo_translate (cr, handle_window->border.left, handle_window->border.top);
@@ -232,7 +235,7 @@ gtk_text_handle_widget_event (GtkWidget     *widget,
 
       window = gtk_widget_get_parent (priv->windows[pos].widget);
       gtk_widget_get_allocation (priv->windows[pos].widget, &allocation);
-      _gtk_text_handle_get_size (handle, &handle_width, &handle_height);
+      _gtk_text_handle_get_size (handle, pos, &handle_width, &handle_height);
 
       _gtk_window_get_popover_position (GTK_WINDOW (window),
                                         priv->windows[pos].widget,
@@ -383,7 +386,7 @@ _gtk_text_handle_update (GtkTextHandle         *handle,
       gint w, h;
 
       _gtk_text_handle_ensure_widget (handle, pos);
-      _gtk_text_handle_get_size (handle, &width, &height);
+      _gtk_text_handle_get_size (handle, pos, &width, &height);
 
       border->top = height;
       border->bottom = height;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]