Commit Graph

2812 Commits

Author SHA1 Message Date
cb05af0a61 Implement GDK_POINTER_MOTION_HINT_MASK support 2009-04-02 10:15:25 +02:00
d267452bb7 New flicker flicker fixing approach
There was a performance problem with the old flicker fixing
approach. For moved windows we copied the window data to the double
buffer pixmap and then back to the window with the rest of the
expose data. In some cases the copy from window data to pixmap was
very slow because the pixmap was allocated in system memory and
the window in video memory.

The new approach is to delay all window moves and then replay them
after the expose has drawn to the double buffer pixmap but before
drawing it to the window. Furthermore, we remove all exposed areas
from the destination of the delayed moves so we won't copy something
just to then immediately draw over it.

This makes scrolling in firefox fast, and it makes tests/flicker not
show any (detectable) flicker.
2009-04-02 10:15:25 +02:00
3155fdcd41 gdk_window_process_updates_internal only needs to flush outstanding moves 2009-04-02 10:15:25 +02:00
4455db353f Split out the flushing of outstanding moves
Some places need to only flush the outstanding moves, split
this into gdk_window_flush_outstanding_move
2009-04-02 10:15:25 +02:00
a9fd3ae249 Flush any outstanding stuff in the window in non-buffered get_internal_paint_info case
We return the raw window drawable, so its likely the app will do some
weird stuff to it, like draw using non-gdk operations. We don't want
the app to see any half-drawn state, so flush everything.

This fixes a scroll issue in firefox at least.
2009-04-02 10:15:25 +02:00
815f0d7605 Clip exposed area to the visible region.
This avoids extra work, and it means we won't allocate large pixmaps
for double buffering.
2009-04-02 10:15:25 +02:00
7da48afcaa Don't allow native window > 65535 pixels 2009-04-02 10:15:25 +02:00
89f1cb5178 First cut at getting events working 2009-04-02 10:15:25 +02:00
08bc1864cc Attempt to implement draw_drawable with src = dest = window 2009-04-02 10:15:25 +02:00
2ea8ea2f0d Remove unused function _gdk_quartz_window_scroll 2009-04-02 10:15:24 +02:00
80c8976c28 Fix typos that broke loading without lazy symbol lookup 2009-04-02 10:15:24 +02:00
7ab3435a58 Remove autoreleasepool in drawRect, not necessary 2009-04-02 10:15:24 +02:00
f12a992be2 Only setup tracking rect for toplevels, we only want enter/leave for those 2009-04-02 10:15:24 +02:00
348abef6f2 Don't use drawable_get,release_context in _gdk_windowing_create_cairo_surface
This fixes a mismatch in save/release gstate for the CGContext. If
this function is ever used for pixmaps, we need to add support for
that, probably will have to do so soon.
2009-04-02 10:15:24 +02:00
edb35763a2 Get rid of all the synthesized crossing events except for ANCESTOR one on the toplevel 2009-04-02 10:15:24 +02:00
330e790fb2 Rename _gdk_quartz_events_send_map_events to ..._event 2009-04-02 10:15:24 +02:00
32555badb5 Clean up some whitespace 2009-04-02 10:15:24 +02:00
54e6878001 Add fill_crossing_event to be used soon 2009-04-02 10:15:24 +02:00
c3637ab20f Only send map events for toplevels 2009-04-02 10:15:24 +02:00
8e8aa53298 Add enter/leave notify to get_event_mask_from_ns_event now that those are handled like other events 2009-04-02 10:15:24 +02:00
da8666d745 Clean up the scroll support a little 2009-04-02 10:15:24 +02:00
25b311bac3 Make the various fill_*_event functions consistent 2009-04-02 10:15:24 +02:00
4c01ca7ddd Rework the event translation to look more like X11
Put the event in the queue with a pending flag, remove again if not
handled.
2009-04-02 10:15:24 +02:00
036e045d53 Update the window size after getting windowDidResize 2009-04-02 10:15:23 +02:00
e7eb75c0ca Remove the old workarond for broken tracking rects
The one that puts windows outside the screen and moves them in when
showing. It might not be needed anymore and the workaround doesn't
work with the client-side window branch anyway because the window is
already mapped when we get showed for some reason.
2009-04-02 10:15:23 +02:00
257dea55a7 Handle NULL event mask in _gdk_windowing_window_at_pointer 2009-04-02 10:15:23 +02:00
19b1f6a93a Fix bug from first patch round, get private from window, not from impl 2009-04-02 10:15:23 +02:00
e9d3f22ac8 Offset subviews with the parent's abs coordinate 2009-04-02 10:15:23 +02:00
546a1e4cd6 Change window check to quartz window check in gdkinput 2009-04-02 10:15:23 +02:00
5eacab593b Setup iface for queue_translation/antiexpose 2009-04-02 10:15:23 +02:00
0e1f51ecd1 Add quartz window check macro 2009-04-02 10:15:23 +02:00
a362be9979 Add stubs for queue_translation/antiexpose 2009-04-02 10:15:23 +02:00
cb8a3386c7 Implement _gdk_windowing_create_cairo_surface 2009-04-02 10:15:23 +02:00
f080825430 Remove gdk_display_pointer_is_grabbed and gdk_pointer_grab_info_libgtk_only 2009-04-02 10:15:23 +02:00
47ed2c553d Remove gdk_window_set_child_input_shapes 2009-04-02 10:15:23 +02:00
cede19dc65 Update more toplevel checks and update set_background and back_pixmap 2009-04-02 10:15:23 +02:00
68640f9e99 Add mask argument to _gdk_windowing_window_at_pointer, and update more checks 2009-04-02 10:15:22 +02:00
068b6f88e0 Update gdk_window_get_deskrelative_origin, gdk_window_get_root_origin, gdk_window_get_frame_extents 2009-04-02 10:15:22 +02:00
3f7e3a22f5 Update gdk_window_quartz_set_background and gdk_window_quartz_set_back_pixmap 2009-04-02 10:15:22 +02:00
4cf7fe5832 Add more toplevel window checks 2009-04-02 10:15:22 +02:00
93d1d51e3b Update set_urgency_hint/geometry_hints/modal_hint/set_skip_taskbar_hint/set_skip_pager_hint 2009-04-02 10:15:22 +02:00
27a80094bc Update gdk_window_set_type_hint and gdk_window_get_type_hint 2009-04-02 10:15:22 +02:00
ff86156762 Update gdk_window_focus 2009-04-02 10:15:22 +02:00
1e5a22dabe Remove gdk_window_quartz_clear_area 2009-04-02 10:15:22 +02:00
f5806eac0c Update gdk_window_quartz_reparent 2009-04-02 10:15:22 +02:00
2517076f76 Update gtk_window_quartz_hide 2009-04-02 10:15:22 +02:00
afdb3f2ee8 Update signature for gdk_window_quartz_show and adapt the implementation 2009-04-02 10:15:22 +02:00
650223ca3b Rename _gdk_windowing_window_destroy to _gdk_quartz_window_destroy and add to the impl iface 2009-04-02 10:15:22 +02:00
b20991af9b Update _gdk_window_impl_new and add private variables where we changed impl to private 2009-04-02 10:15:22 +02:00
b1b358c820 Remove width/height from GdkWindowImplQuartz and use those in GdkWindowObject 2009-04-02 10:15:22 +02:00