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 399253 - MS-Windows Theme Bottom Tab placement rendering glitches
MS-Windows Theme Bottom Tab placement rendering glitches
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Backend: Win32
2.10.x
Other All
: Normal normal
: ---
Assigned To: gtk-win32 maintainers
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2007-01-22 04:39 UTC by Daniel Atallah
Modified: 2007-04-19 14:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Screenshot showing glitches in bottom tab rendering (56.02 KB, image/jpeg)
2007-01-22 04:40 UTC, Daniel Atallah
  Details
Fix (1.98 KB, patch)
2007-04-01 16:19 UTC, Cody Russell
none Details | Review
Updated patch (1.73 KB, patch)
2007-04-01 16:34 UTC, Cody Russell
committed Details | Review

Description Daniel Atallah 2007-01-22 04:39:15 UTC
Please describe the problem:
On GTK+ 2.10.8 on Windows with the MS-Windows them, when using tabs placed at the bottom of the notebook, there are glitches in the rendering (pieces from other parts of the screen are rendered over parts of the tab).

This is particularly noticeable when using a single tab that spans the window width.

The following appears in the console when the glitching happens:

Gdk: gdk_drawable_copy_to_image: assertion `src_x >= 0' failed

Gdk: gdk_drawable_copy_to_image: assertion `src_x >= 0' failed


I'll post a screenshot.


Steps to reproduce:



Actual results:


Expected results:


Does this happen every time?


Other information:
Comment 1 Daniel Atallah 2007-01-22 04:40:36 UTC
Created attachment 80857 [details]
Screenshot showing glitches in bottom tab rendering
Comment 2 Daniel Atallah 2007-02-02 06:25:08 UTC
This seems to only happen when gtk_notebook_set_tab_label_packing() is set to have the tabs fill the allocated area.
Comment 3 Joe Dery 2007-02-21 20:11:22 UTC
Confirming this bug, occurs for me in GAIM beta 6 which comes packaged with GTK 2.7.10 rev a.

Repost of my bug at gaim.sf.net

https://sourceforge.net/tracker/?func=detail&atid=680472&aid=1665516&group_id=235
Summary: Beta6: Tab redraw error after mouse-over (flipped)

Initial Comment:
Message window tab re drawing error
When I mouse over the X used to close a tab, and then move the mouse away again, the X is overlaid with an upside down version of the buddy icon.

Better show a picture of this:
http://img267.imageshack.us/img267/5641/beta6misdrawnug8.jpg
Comment 4 Arnaud Charlet 2007-03-28 08:02:49 UTC
Confirmed also here, that's an annoying display glitch.
To reproduce it with testgtk:

- click on 'notebook' button
- click on the 'rotate' button to put the tabs at the bottom
- then move the main testgtk window (with all buttons) over the notebook tabs:
  you'll see these display glitches

I do not get Gtk+ warnings though, with Gtk+ 2.10.11

Any hint on where to look for fixing this ? Thanks in advance,

Arno
Comment 5 Cody Russell 2007-04-01 16:19:17 UTC
Created attachment 85664 [details] [review]
Fix

I believe this should fix it.  Can you test this and let me know if there are any problems?
Comment 6 Cody Russell 2007-04-01 16:34:16 UTC
Created attachment 85665 [details] [review]
Updated patch

Fixed a leak from the previous patch.  Should be good now.
Comment 7 Arnaud Charlet 2007-04-01 16:48:28 UTC
Confirmed, the patch fixes things for me as well.

Arno
Comment 8 Cody Russell 2007-04-01 18:55:28 UTC
Fixed in HEAD and in 2-10.  Can someone close this bug?
Comment 9 Arnaud Charlet 2007-04-19 10:31:33 UTC
There's still a memory leak in the case of e.g. Windows Classic style,
fixed by the following patch:

<<
--- msw_style.c.old
+++ msw_style.c
@@ -2541,6 +2548,9 @@ draw_extension (GtkStyle * style,
                    HDC dc;
                    gint32 aPosition;

+                  if (real_gap_side == GTK_POS_BOTTOM)
+                      g_object_unref (pixmap);
+
                    dc = get_window_dc(style, window, state_type, x, y, width, height, &rect);

                    if (real_gap_side == GTK_POS_TOP)
>>

Could someone apply it ?

Arno
Comment 10 Daniel Atallah 2007-04-19 14:29:27 UTC
The fix for comment #9, and an additional fix for the LEFT/RIGHT tabs is in Bug #403470.