Benjamin Otte
7125712299
calendar: Get rid of gdk_drawable_get_size() usage
2010-09-26 15:11:44 +02:00
Benjamin Otte
5f57cede3c
widget: Check the widget has an allocation in gtk_widget_draw()
...
Following the mailing list discussion, require that the widget does not
have a pending size_allocate when calling the draw function.
http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00214.html
and the associated thread explain this in more detail.
2010-09-26 15:11:43 +02:00
Benjamin Otte
b89920e203
API: Add gtk_widget_draw()
...
And here's the final patch that all the previous patches were about.
2010-09-26 15:11:43 +02:00
Benjamin Otte
1142c8bf18
API: gtk_cell_renderer_render_cairo() => gtk_cell_renderer_render()
2010-09-26 15:11:43 +02:00
Benjamin Otte
ec6e97be4d
API: Remove gtk_cell_renderer_render()
...
The next commit will rename gtk_cell_renderer_render_cairo() to
gtk_cell_renderer_render() again
2010-09-26 15:11:43 +02:00
Benjamin Otte
67284a57de
API: Get rid of gtk_draw_insertion_cursor()
...
and rename gtk_cairo_draw_insertion_cursor() to
gtk_draw_insertion_cursor().
2010-09-26 15:11:43 +02:00
Benjamin Otte
1d3f6b30b0
API: Rename gtk_cairo_paint_*() to gtk_paint_*()
...
Large patch, but just renaming.
Indentation should still mostly be correct because I took care of
keeping the indentation for this function name.
2010-09-26 15:11:42 +02:00
Benjamin Otte
70e6aba0d0
API: style: Remove old drawing functions
2010-09-26 15:11:42 +02:00
Benjamin Otte
326f887ae7
API: widget: Remove the expose event
...
gtk_widget_send_expose() now calls the draw function.
2010-09-26 15:11:42 +02:00
Benjamin Otte
9aa4f417d0
API: Remove gtk_container_propagate_expose()
...
Also, move the documentation to its replacement
gtk_widget_propagate_draw().
2010-09-26 15:11:42 +02:00
Benjamin Otte
7947b3faf8
container: Implement gtk_container_propagate_draw() without fallbacks
...
No more fallbacks to gtk_container_propagate_expose().
2010-09-26 15:11:42 +02:00
Benjamin Otte
45744d9a5f
Change semantics of the draw signal
...
Previously, we tried to move the context's origin to the widget's top
left location, no matter what window the paint was happening on. Now we
only do that for child windows of the widget's window and leave the
context untouched for windows that the widget has created outside its
own hierarchy. In those casses, we also don't clip the context to
the widget's allocation.
Includes fixes to GtkHandlebox for this effect and fixes all known
issues with it.
These semantics assume that gtk_widget_draw() should only draw the parts
of a widget that are inside child windows and not draw stuff that is
located in completely different GdkWindows. In the handlebox case, it
means that it should only draw the handle when it is attached, but not
when it isn't. We'll likely need a special draw function for the
detached handlebox if we want to draw it.
2010-09-26 15:11:42 +02:00
Benjamin Otte
0acec382c8
widget: Clip drawing to the widget's allocation.
...
I've seen (and written) quite some widgets (and theme engines) that use
cairo_paint() to draw the background. So avoiding overdraw makes sense.
Also move all that setup into a _gtk_widget_draw_internal() function
that will be used by all functions that can be used by other functions
that draw widgets.
2010-09-26 15:11:42 +02:00
Benjamin Otte
0c285bad75
iconfactory: Initialize varibale to NULL in failure path
...
Otherwise we use random memory and that is not good.
2010-09-26 15:11:42 +02:00
Benjamin Otte
8929321cba
image: Add a default case to switch statement to avoid gcc warnings
2010-09-26 15:11:42 +02:00
Benjamin Otte
3f10e45ea1
printunixdialog: Connect to draw vfunc
2010-09-26 15:11:40 +02:00
Benjamin Otte
d207fd05e5
printunixdialog: Connect to draw signal for collate callback
2010-09-26 15:11:40 +02:00
Benjamin Otte
b0f078ba43
dnd-quartz: Connect to draw func for dnd hilight
2010-09-26 15:11:40 +02:00
Benjamin Otte
729f80b554
dnd: Connect to raw func for drag hilight
2010-09-26 15:11:40 +02:00
Benjamin Otte
830cda9e32
colorsel: Connect to draw signal
2010-09-26 15:11:40 +02:00
Benjamin Otte
b717f1b265
filechooserentry: Connect to draw event
2010-09-26 15:11:40 +02:00
Benjamin Otte
8f2fdec7d6
colorbutton: Connect to draw event
2010-09-26 15:11:40 +02:00
Benjamin Otte
5f771c8a9f
notebook: Connect to draw signal
2010-09-26 15:11:40 +02:00
Benjamin Otte
c54968e964
tooltip: Connect to draw signal
2010-09-26 15:11:40 +02:00
Benjamin Otte
bec11c352d
toolitemgroup: Connect to draw signal
2010-09-26 15:11:40 +02:00
Benjamin Otte
a4bbe4da10
assistant: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
b0c5302115
trayicon: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
1b9f793311
window: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
15f48a818d
window: Remove hack to set background
...
I can't see this having any effect in current code, but who knows...
2010-09-26 15:11:39 +02:00
Benjamin Otte
67299ed106
expander: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
e63d6dd379
frame: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
fac27827c4
frame: Remove unneeded is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
ff97485695
API: checkbutton: Port to draw vfunc
...
Requires changing the API of the draw_indicator vfunc.
2010-09-26 15:11:39 +02:00
Benjamin Otte
be8a398bb5
radiobutton: Remove redundant is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
70bdbb3f4c
checkbutton: Remove redundant is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
66bd7c1578
checkbutton: Remove excessive is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
6a0c31143f
handlebox: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
2e53b58b01
handlebox: Simplify painting code
2010-09-26 15:11:39 +02:00
Benjamin Otte
08d05f954d
handlebox: Don't draw outside of expose events
...
We do a queue_draw() via queue_resize() here, so everything's fine.
2010-09-26 15:11:39 +02:00
Benjamin Otte
748d3d612d
button: Port to draw vfunc
...
Also port togglebutton, they use the same paint function.
2010-09-26 15:11:39 +02:00
Benjamin Otte
e0be884297
button: Remove is_drawable() check
...
It's already done in the expose function
2010-09-26 15:11:39 +02:00
Benjamin Otte
ee15f5aab1
tearoffmenuitem: remove is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
c9c9d2ac15
API: checkmenuitem: Port to draw vfunc
...
Requires changing the draw_indicator vfunc to take a cairo_t.
2010-09-26 15:11:39 +02:00
Benjamin Otte
79477e097d
tearoffmenuitem: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
557b9d0b26
tearoffmenuitem: Don't clear the window, it should be clear already
2010-09-26 15:11:38 +02:00
Benjamin Otte
d992df0a47
tearoffmenuitem: Merge paint() into expose()
2010-09-26 15:11:38 +02:00
Benjamin Otte
6f6c81e527
menuitem: Remove is_drawable() check
2010-09-26 15:11:38 +02:00
Benjamin Otte
475f96216d
menuitem: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
e6d1c8aeab
menuitem: Move paint function into expose function
2010-09-26 15:11:38 +02:00
Benjamin Otte
1f640d127e
combobox: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
fe4c61b1ec
eventbox: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
d17ba1d30a
eventbox: Merge paint function into expose function
2010-09-26 15:11:38 +02:00
Benjamin Otte
ce2d6cc015
scrolledwindow: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
5eabd8c6fa
scrolledwindow: Move paint function into expose handler
...
Also remove the is_drawable() check. It will not be needed once we have
the draw vfunc.
2010-09-26 15:11:38 +02:00
Benjamin Otte
8af968946f
viewport: No need to check if the widget is drawable anymore
2010-09-26 15:11:38 +02:00
Benjamin Otte
bf8df2daea
viewport: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
4a23b12911
viewport: Pass sizes explicitly to paint functions
2010-09-26 15:11:38 +02:00
Benjamin Otte
e087fe7e99
viewport: Merge gtk_viewport_paint() into expose function
2010-09-26 15:11:38 +02:00
Benjamin Otte
01a1e16dcf
viewport: Don't paint stuff in realize handler
2010-09-26 15:11:38 +02:00
Benjamin Otte
f383e1f183
notebook: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
21099d31ed
notebook: The drawable check is not necessary
...
Large patch, but that's only indentation.
2010-09-26 15:11:38 +02:00
Benjamin Otte
fadf269a36
notebook: Draw tabs and arrows with Cairo
...
Includes a fix to only draw the current page once during a drag
operation.
2010-09-26 15:11:38 +02:00
Benjamin Otte
ad030e1696
notebook: Simplify draw_tab function a bit
...
Don't keep lots of local variables that are only used once.
2010-09-26 15:11:38 +02:00
Benjamin Otte
806bcb10ff
notebook: remove check for is_drawable
...
When we reach that code, the widget will always be drawable
2010-09-26 15:11:37 +02:00
Benjamin Otte
c46ce97145
notebook: Reorder expose function in preparation of draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
f94ff0b3b9
notebook: Use a for loop when iterating over a list
2010-09-26 15:11:37 +02:00
Benjamin Otte
468e453a31
notebook: Draw focus when drawing tab
...
Instead of using a special function, draw the focus of a tab when the
tab actually is painted. Simplifies the code quite a bit.
2010-09-26 15:11:37 +02:00
Benjamin Otte
a5e487846a
notebook: Remove useless optimization
...
It will become especially useless once we draw with Cairo exclusively.
2010-09-26 15:11:37 +02:00
Benjamin Otte
1c94efc921
paned: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
f2d7e6c8d4
infobar: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
299d533376
statusbar: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
782af63273
layout: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
8fc35150a2
iconview: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
c8b16f66b6
iconview: Check if the cr is clipped instead of using region
2010-09-26 15:11:37 +02:00
Benjamin Otte
ab781bd89b
iconview: Simplify rubberband drawing
2010-09-26 15:11:37 +02:00
Benjamin Otte
0d6461714b
menu: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
240ca0bb21
menubar: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
00375c7692
textview: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
9daab81ab5
separatortoolitem: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
818005f3fe
toolbar: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
9a8c9d6579
toolbar: Don't propagate events to placeholders
...
In particular don't when that's done using uninitialized memory
2010-09-26 15:11:36 +02:00
Benjamin Otte
a18ec3485c
toolpalette: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
f525837e39
treeview: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
327a04807e
treeview: Update rubberbanding code to Cairo
2010-09-26 15:11:36 +02:00
Benjamin Otte
bf3b4438bb
treeview: Do not put different windows in else if branches anymore
2010-09-26 15:11:36 +02:00
Benjamin Otte
f679516ce1
treeview: Use Cairo for all bin window drawing
2010-09-26 15:11:36 +02:00
Benjamin Otte
62f5fdc856
treeview: Invalidate on expander changes, don't just repaint
...
Repaints are supposed to be initiated by GDK, not by random repaints.
2010-09-26 15:11:36 +02:00
Benjamin Otte
bc1cd6c5cb
treeview: Draw empty tree view with Cairo
2010-09-26 15:11:36 +02:00
Benjamin Otte
0cbe62f943
API: Add gtk_container_propagate_draw()
...
Equivalent to gtk_container_propagate_expose(), just for the draw event.
Also port GtkContainer to the draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
90379ed68a
widget: Store the expose event in the cairo_t, not just the window
...
This way we can grab it for propagating expose events. Not sure if we
need to do this once we're all Cairo, but for now we do.
2010-09-26 15:11:36 +02:00
Benjamin Otte
fb4ba51d44
accellabel: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
4aefc82496
label: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
2e75cecd49
scale: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
e605272436
range: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
745f110814
range: Make drawing use a single cairo context
2010-09-26 15:11:36 +02:00
Benjamin Otte
1d5796c95b
arrow: Port to draw vfunc
2010-09-26 15:11:35 +02:00
Benjamin Otte
9233a08991
calendar: Port to draw vfunc
2010-09-26 15:11:35 +02:00
Benjamin Otte
725749cd14
calendar: Fix drawing order for windows
2010-09-26 15:11:35 +02:00
Benjamin Otte
02572cdf7e
calendar: Create one cairo_t per expose event and pass it around
2010-09-26 15:11:35 +02:00
Benjamin Otte
ed996bcd68
cellview: Port to draw vfunc
2010-09-26 15:11:35 +02:00