After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 688962 - Widget with window and not double-buffered don't refresh correctly
Widget with window and not double-buffered don't refresh correctly
Product: gtk+
Classification: Platform
Component: Backend: Win32
Other Windows
: Normal normal
: ---
Assigned To: gtk-win32 maintainers
Depends on:
Reported: 2012-11-24 00:10 UTC by Marc-Andre Lureau
Modified: 2018-02-10 04:39 UTC
See Also:
GNOME target: ---
GNOME version: ---

Description Marc-Andre Lureau 2012-11-24 00:10:35 UTC
The widgets with a window and not double-buffered are not correctly getting redrawn when the widget is slight off-screen on the left side of the screen.

The bug can be reproduced with the drawingarea demo slightly modified:

diff --git a/demos/gtk-demo/drawingarea.c b/demos/gtk-demo/drawingarea.c
index 5aed1ef..07cf57b 100644
--- a/demos/gtk-demo/drawingarea.c
+++ b/demos/gtk-demo/drawingarea.c
@@ -274,6 +274,8 @@ do_drawingarea (GtkWidget *do_widget)
       gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
       da = gtk_drawing_area_new ();
+gtk_widget_set_double_buffered(da, FALSE);
+gtk_widget_set_has_window(da, TRUE);
       /* set a minimum size */
       gtk_widget_set_size_request (da, 100, 100);
Move the drawingarea demo window on the left side of the screen, so that some part is off (like 30% of the window width), and try to draw on the whole area, some area won't be refreshed.
Comment 1 Alexander Larsson 2012-11-26 15:28:02 UTC
Reassigning to win32 component.
Comment 2 Matthias Clasen 2018-02-10 04:39:20 UTC
We're moving to gitlab! As part of this move, we are closing bugs that haven't seen activity in more than 5 years. If this issue is still imporant to you and
still relevant with GTK+ 3.22 or master, please consider creating a gitlab issue
for it.