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
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user