[gtk+] TextHandle: Don't draw handles if not visible



commit ebb84e8d193723cfa6485ff91f50cdedbe947f0f
Author: Alexander Larsson <alexl redhat com>
Date:   Tue Feb 5 12:27:39 2013 +0100

    TextHandle: Don't draw handles if not visible
    
    When calling gtk_widget_draw() on the entry gtk_cairo_should_draw_window()
    will return TRUE for all windows. This is used when rendering a widget to
    somewhere other than the screen, and its now used for transparent widgets.
    This caused the texthandle to always draw itself and terminate the draw
    handler for the entry.
    
    Instead we now only draw the markers when really visible, plus we return
    FALSE to avoid stopping the entry drawing.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=687842

 gtk/gtktexthandle.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c
index 871b3ac..97449b4 100644
--- a/gtk/gtktexthandle.c
+++ b/gtk/gtktexthandle.c
@@ -212,6 +212,7 @@ gtk_text_handle_widget_draw (GtkWidget     *widget,
 {
   GtkTextHandlePrivate *priv;
   GtkTextHandlePosition pos;
+  HandleWindow *handle_window;
 
   priv = handle->priv;
 
@@ -225,8 +226,11 @@ gtk_text_handle_widget_draw (GtkWidget     *widget,
   else
     return FALSE;
 
-  _gtk_text_handle_draw (handle, cr, pos);
-  return TRUE;
+  handle_window = &priv->windows[pos];
+  if (gdk_window_is_visible (handle_window->window))
+    _gtk_text_handle_draw (handle, cr, pos);
+
+  return FALSE;
 }
 
 static gboolean


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