Commit Graph

911 Commits

Author SHA1 Message Date
Matthias Clasen
6eb2a3520c Implement atom-related vfuncs for quartz 2010-12-22 17:47:00 +01:00
Matthias Clasen
51f149df5e Implement get_keymap vfunc for quartz 2010-12-22 17:47:00 +01:00
Matthias Clasen
46352afa6f Implement create_window_impl vfunc for quartz 2010-12-22 17:47:00 +01:00
Matthias Clasen
57efe15bda Drop gdk_spawn functions
These have been removed since the implementation was just
a straight wrapper around g_spawn.
2010-12-22 17:47:00 +01:00
Matthias Clasen
9dbe3bd316 Drop unimplemented foreign window functions
These have been relegated to backend-specific
2010-12-22 17:47:00 +01:00
Matthias Clasen
b2ff02332f Implement event_data_{copy,free} for quartz 2010-12-22 17:47:00 +01:00
Matthias Clasen
4b92625fe0 Implement notify_startup_complete vfunc for quartz 2010-12-22 17:47:00 +01:00
Matthias Clasen
1a04631707 Implement get_next_serial for quartz 2010-12-22 17:47:00 +01:00
Matthias Clasen
dadbc63f1e gdk_display_warp_pointer is in the frontend now 2010-12-22 17:46:59 +01:00
Matthias Clasen
a1a0205dad Implment process_updates_recurse vfunc for quartz 2010-12-22 17:46:59 +01:00
Matthias Clasen
3232be603a Implement has_pending and queue_events vfuncs for quartz 2010-12-22 17:46:59 +01:00
Matthias Clasen
733c8fc8e7 Derive GdkDisplayManager for quartz 2010-12-22 17:46:59 +01:00
Matthias Clasen
8a9c604b8a Adapt quartz device code to new ways
We will need to rename the Core implementations in X11/Quartz
to not clash, later.
2010-12-22 17:46:59 +01:00
Matthias Clasen
e2fea748d6 Adapt quartz visual code to new ways
We may still need a subclass here later, not sure
2010-12-22 17:46:59 +01:00
Matthias Clasen
46e8aadaf8 Rename _gdk_dnd_init 2010-12-22 17:46:59 +01:00
Matthias Clasen
25271f5e9a Implement dnd vtables for quartz 2010-12-22 17:46:59 +01:00
Matthias Clasen
d2ce9ec3dc Convert a bunch of visual related calls to use the screen vtable, quartz 2010-12-22 17:46:59 +01:00
Matthias Clasen
41352f24d6 Convert all GdkScreen methods to vtable calls, quartz backend 2010-12-22 17:46:59 +01:00
Matthias Clasen
f43f259d49 Derive GdkKeymap for Quartz 2010-12-22 17:46:59 +01:00
Matthias Clasen
acd99409b8 Make display method vtable calls, quartz backend 2010-12-22 17:46:59 +01:00
Matthias Clasen
064bfceaad Convert all gdk_window methods to vtable calls in the quartz backend 2010-12-22 17:46:59 +01:00
Benjamin Otte
3036922b3d gdk: Create windows via _gdk_display_create_window()
THe use of this function will become visible in the next commits. But
wrapping g_object_new() is a generally a good idea anyway.
2010-12-21 12:07:08 -05:00
Benjamin Otte
4793bd3399 gdk: Move gdk_cursor_get_display() out of the backends
Now that we store the display inside the cursor, that change is obvious.
2010-12-21 12:07:05 -05:00
Matthias Clasen
58529e69ec Drop sm_client_id implementation for Quartz 2010-12-21 12:07:04 -05:00
Matthias Clasen
9a1cc81acb Add a vfunc to replace _gdk_windowing_window_destroy_foreign
All backends updated.
2010-12-21 12:06:57 -05:00
Matthias Clasen
1e694b4dd8 Add a vfunc for gdk_window_set_composited 2010-12-21 12:06:57 -05:00
Matthias Clasen
c53ec081ce Add vtables for DND
This commit hides GdkDragContext and GdkDragContextClass, adds
vfuncs for most drag context functionality, and turns the X11 DND
implementation into GdkDragContextX11. We also add vfuncs to
GdkDisplay for gdk_drag_get_protocol and to GdkWindow for
gdk_drag_begin, and implemenet them for X11.
Other backends need similar treatment and are broken now.
2010-12-21 12:06:56 -05:00
Matthias Clasen
06f75b3727 Make GdkAppLaunchContext display-dependent
Add a GdkDisplay::get_app_launch_context vfunc, and a
gdk_display_get_app_launch_context that for X11 returns a subclass.
For win32 and quartz, the implementations were trivial, so we
just return a new GdkAppLaunchContext without subclassing. Since
the type of the context now depends on the display,
gdk_app_launch_context_set_display is deprecated.
2010-12-21 12:06:55 -05:00
Matthias Clasen
de84a7b14f Move gdk_window_lookup to common code 2010-12-21 12:06:55 -05:00
Matthias Clasen
31cd046cd0 Move gdk_add_client_message_filter to common code 2010-12-21 12:06:55 -05:00
Matthias Clasen
8075cfd658 Move gdk_get_display to common code 2010-12-21 12:06:55 -05:00
Kristian Rietveld
fd6e57687d Port Quartz backend to latest rendering-cleanup changes 2010-12-06 14:15:47 +01:00
Benjamin Otte
d55073fde6 gdk: Remove depth argument from GdkWindowImpl->get_geometry() 2010-12-06 01:02:52 +01:00
Benjamin Otte
f9a9567731 gdk: Replace direct calls of _gdk_event_func with _gdk_event_emit()
For now that function just calls the event func.
2010-12-02 20:21:05 +01:00
Benjamin Otte
4d1604c77d gdk: Move window beeps into GdkWindowImpl
One less magic function. Also refactored it to make it easier to
implement. It now returns TRUE if it beeped and FALSE if it failed to do
so. A default implementation exists that just returns FALSE for all the
backends that can't beep windows (read: everything but X11 with XKB -
and why on earth do keyboard libs implement beeping?)
2010-12-02 20:21:05 +01:00
Benjamin Otte
1269f8424f gdk: Make get_shape and get_input_shape vfuncs
Trying to get rid of all the _gdk_windowing_something() functions that
we expect backends to magically know about and instead put them in a
proper interface (mostly GdkWindowImplClass).
2010-12-02 20:21:04 +01:00
Benjamin Otte
17a0a467a1 gdk: Pass the GdkWindow to resize_cairo_surface vfunc
So it's in sync with all the other vfuncs.
2010-12-02 20:21:04 +01:00
Benjamin Otte
370d272b13 gdk: Remove _gdk_window_impl_get_type() function
It was only used in the backends, and they can use the correct type
directly.
2010-12-02 20:21:03 +01:00
Benjamin Otte
62622a94ae gdk: Pass Drawable as argument
We're not passing a GdKWindow here, but the implementation.
2010-12-02 20:21:02 +01:00
John Ralls
c0aae6644a Replace references to sealed GdkDevice private variables with accessor calls in quartz. 2010-11-23 16:53:45 -08:00
William Jon McCann
323df2b280 Make gdk_event_apply_filters safe against changes in filter list
An event filter may add or remove filters itself.  This patch does
two things to address this case.  The first is to take a temporary
reference to the filter while it is being used.  The second is
to wait until after the filter function is run before determining
the next node in the list to process.  This guards against
changes to the next node.  It also does not run functions
that have been marked as removed.  Though I'm not sure if this
case can arise.

https://bugzilla.gnome.org/show_bug.cgi?id=635380
2010-11-22 13:16:24 -05:00
Michael Natterer
a1134e5622 gdk: change signature of gdk_device_get_history() back to what it used to be
"n_events" went back from guint to gint.
2010-10-19 13:30:42 +02:00
John Ralls
c3851df92d Replace GDK_Tab and GDK_ISO_Left_Tab with GDK_KEY equivalents
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=631475

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-10-06 01:20:29 +02:00
Kristian Rietveld
eca2af5230 Make set_cairo_surface_size a vfunc on GdkWindowImpl
Note the special implementation of this method on GdkOffscreenWindow
that makes sure its current surface is not destroyed.
2010-10-05 15:38:23 +02:00
Kristian Rietveld
8970b174dc quartz: Emulate root window as 1x1 bitmap
We subclass GdkWindowImplQuartz into a new GdkRootWindowImplQuartz,
and override the get_context method in order to do this cleanly.
Also made release_context a virtual method, since the root window has
to release its CGContextRef differently compared to normal windows.
2010-10-04 11:45:47 +02:00
Kristian Rietveld
1b9029fc64 Fix GDK build on Quartz 2010-09-30 09:01:11 +02:00
Benjamin Otte
f44f35548d quartz: Get rid of gdk_drawable_get_size() usage 2010-09-26 15:11:43 +02:00
Kristian Rietveld
0129b89153 quartz: Get size from wrapper, not drawable 2010-09-26 15:11:34 +02:00
Benjamin Otte
e624656c20 API: Remove GdkColormap 2010-09-26 15:11:34 +02:00
Benjamin Otte
cf4cb4f6d9 API: Remove colormap handling from GdkScreen
In particular, the following functions are gone:
- gdk_screen_get_default_colormap()
- gdk_screen_set_default_colormap()
- gdk_screen_get_system_colormap()
- gdk_screen_get_rgba_colormap()
2010-09-26 15:11:34 +02:00
Benjamin Otte
04d5c477aa API: Remove gdk_drawable_get_colormap()
And with it, remove any notion of colormaps from GdkWindow. In
particular, X11 windows will now not set attrs.colormap when calling
XCreateWindow.
2010-09-26 15:11:33 +02:00
Benjamin Otte
f08254074c API: Remove colormap member from GdkWindowAttr
Also remove all code that cares about differing colormaps for child
windows.
2010-09-26 15:11:33 +02:00
Benjamin Otte
eac72ec830 quartz: Compare visuals for RGBA, not colormaps 2010-09-26 15:11:33 +02:00
Benjamin Otte
b5097de481 gdk: gdk_drawable_get_display() => gdk_window_get_display() 2010-09-26 15:11:33 +02:00
Benjamin Otte
a6ef356107 API: Remove drawable getters for visual, screen and depth
Removed and replaced are:
gdk_drawable_get_visual() => gdk_window_get_visual()
gdk_drawable_get_screen() => gdk_window_get_screen()
gdk_drawable_get_depth()  => gdk_visual_get_depth
                                          (gdk_window_get_visual())
2010-09-26 15:11:33 +02:00
Benjamin Otte
ffed076891 quartz: Remove unused _gdk_quartz_colormap_get_cgcolor_from_pixel() 2010-09-26 15:11:33 +02:00
Benjamin Otte
a6e936788a gdk: gdk_drawable_get_screen/visual => gdk_window_get_screen/visual 2010-09-26 15:11:33 +02:00
Benjamin Otte
eee6c002d1 gdk: store the visual in the GdkWindowObject 2010-09-26 15:11:32 +02:00
Benjamin Otte
894d402c0f API: Remove gdk_drawable_set_colormap() 2010-09-26 15:11:32 +02:00
Benjamin Otte
f74f9b2766 gdk: Remove GdkPixmap
All iusers of it are gone, so it's now time to let go.
cairo_surface_t is a full replacement, combined with
gdk_window_create_similar_surface().
2010-09-26 15:11:30 +02:00
Kristian Rietveld
cadcd029a1 Include OS X system headers 2010-09-26 15:11:30 +02:00
Kristian Rietveld
18a4ed6fd0 quartz: Remove else-clause for pixmaps 2010-09-26 15:11:30 +02:00
Benjamin Otte
2bedd205c5 gdk: Remove gdk_windowing_create_cairo_surface()
Instead, actually use the create_cairo_surface vfunc on the
implementation drawable. D'oh.
2010-09-26 15:11:11 +02:00
Benjamin Otte
2c1633699f gdk: Rewrite background handling
Now the window background is a cairo_pattern_t. The backends will try to
set this as good as they can on the windowing system, but no guarantees
are made on wether the windowing system supports the pattern.

Also gets rid of GDK_NO_BG as undefined behavior is not a good idea to
support, and GDK_NO_BG effectively made the window's contents undefined.
It wasn't effectively used in GTK anyway.
2010-09-26 15:03:00 +02:00
Benjamin Otte
bfa6ad6e7c gdk: Remove _gdk_windowing_get_shape_for_mask()
It's unused. And there's a replacement available with
gdk_cairo_region_create_from_surface()
2010-09-26 15:02:59 +02:00
Benjamin Otte
6218c16ff8 API: Remove gdk_cursor_new_from_pixmap()
gdk_cursor_new_from_pixbuf() is the proper replacement.
2010-09-26 15:02:59 +02:00
Benjamin Otte
6ef27387e0 API: remove gdk_window_set_icon()
gdk_window_set_icon_list() now does everything gdk_window_set_icon()
used to do.
2010-09-26 15:02:59 +02:00
Javier Jardón
9c3d1080d6 Do not use deprecated gdk_display_get_core_pointer()
Use gdk_device_manager_get_client_pointer() instead
2010-09-22 03:42:15 +02:00
Havoc Pennington
b837ef5a6d Revamp and modernize X error traps
* add per-display gdk_x11_display_error_trap_push()
  (X11-specific because gdk_error_trap_push() probably
  should have been)
* make gdk_error_trap_push() handle only GDK displays
  not displays opened without a GDK wrapper
* make gdk_error_trap_pop() and gdk_x11_display_error_trap_pop()
  automatically sync only if needed, so manual gdk_flush() is not
  required
* add gdk_error_trap_pop_ignored() which just asynchronously
  ignores errors, so never needs to sync
* add G_GNUC_WARN_UNUSED_RESULT to plain pop(), because
  if you use plain pop() and don't need the return value,
  the async gdk_error_trap_pop_ignored() should be used
  instead. This results in lots of warnings to clean
  up in a later patch.

The main objective here was to avoid the need to sync just
to ignore an error. Now, syncing is automatic, and only
happens when we need to know the error code.

https://bugzilla.gnome.org/show_bug.cgi?id=629608
2010-09-18 18:19:27 -04:00
Kristian Rietveld
234d750bb3 Update Quartz backend for GDK key name changes 2010-09-13 16:26:02 +02:00
Javier Jardón
bd277fad50 Remove deprecated gdk_window_get_deskrelative_origin() and its implementations 2010-09-09 00:50:46 +02:00
Matthias Clasen
eb10e6b128 Remove the long deprecated GDK_WINDOW_DIALOG type.
This has been deprecated forever, and was just left in for
compatibility reasons.
2010-08-28 20:10:02 -04:00
Kristian Rietveld
14cc894dd7 quartz: gdk_window_get_frame_extents() needs to get effective toplevel 2010-08-15 17:34:44 +02:00
Kristian Rietveld
8b917eeaf6 quartz: make it compile 2010-08-12 10:57:59 +02:00
Kristian Rietveld
bde0f9a8f6 quartz: Misc. fixes for getting offscreen windows to work
Mainly fixes to properly differentiate between toplevel and offscreen
windows, since these sometimes need different treatment.  Furthermore,
usage of gdk_window_get_effective_foo() instead of gdk_window_get_foo()
where applicable.
2010-08-10 21:02:31 +02:00
Kristian Rietveld
d819bc4814 Invalidate cairo surface if resizing is not supported for target
While X11 surfaces can be resized, this is not the case for Quartz
surfaces.  Instead of resizing we will invalidate the surface instead.
By giving _gdk_windowing_set_cairo_surface_size() a boolean return
value, we can signal back whether or not resizing was possible.  If not
possible, we invalidate the surface.
2010-08-10 21:02:31 +02:00
Kristian Rietveld
9c6696dfcc quartz: Convert default background drawing to cairo
Includes some untested (read: uncompiled) simplifications from Benjamin
Otte.
2010-08-10 21:02:31 +02:00
Benjamin Otte
c9d08d02e5 gdk: Remove data consructors for GdkPixmap
That is all of the gdk_pixmap/bitmap_create_from_* constructors.
2010-08-10 21:02:31 +02:00
Benjamin Otte
d0d2a6f12c API: remove gdk_colormap_query_color 2010-08-10 21:02:30 +02:00
Kristian Rietveld
f7a8bac5e6 quartz: Make backend compile again 2010-08-10 21:02:29 +02:00
Kristian Rietveld
23c9cee274 quartz: Fix up _gdk_quartz_window_translate 2010-08-10 21:02:29 +02:00
Benjamin Otte
6a48a042c7 API: remove GdkGC
XXX: Some traces in the win32 code are left. I suppose they'd best be
replaced using Cairo.
2010-08-10 21:02:29 +02:00
Benjamin Otte
61d4a019f8 API: remove gdk_draw_drawable() 2010-08-10 21:02:29 +02:00
Benjamin Otte
0cef9c2bbe quartz: Do repeated fill with Cairo
Some things are so easy with Cairo...

XXX: I did not compile this, this is just proof of concept.
2010-08-10 21:02:28 +02:00
Benjamin Otte
65ac54bb23 gdk: Make window moves a custom vfunc
The window move code needs special attention for multiple reasons:
- invalid areas for expose events need to be modified
- self-copy is not supported by Cairo
- in X11, copying from an overlapped Window might cause unexposed areas
  to be copied in, spo expose events for those need to be generated.

This was all special cased in various parts of the code. By making it an
explicit vfunc, we can work around it.
2010-08-10 21:02:28 +02:00
Benjamin Otte
600fbd3e74 API: remove gdk_draw_rectangle() 2010-08-10 21:02:28 +02:00
Benjamin Otte
9ee5176492 API: remove gdk_draw_point(s) 2010-08-10 21:02:27 +02:00
Benjamin Otte
a9e99e7f5b API: remove gdk_draw_{line,lines,segments}
Those were the 3 intermixed line drawing calls.
2010-08-10 21:02:27 +02:00
Benjamin Otte
e85dfc7cc4 API: remove gdk_draw_polygon() 2010-08-10 21:02:27 +02:00
Benjamin Otte
559ae63f01 API: remove gdk_draw_arc() 2010-08-10 21:02:27 +02:00
Benjamin Otte
14fe04ec89 API: remove GdkImage
It was unused and buggy.
2010-08-10 21:02:26 +02:00
Benjamin Otte
6f5084551a API: remove gdk_drawable_copy_to_image() 2010-08-10 21:02:26 +02:00
Benjamin Otte
b926ce719b API: remove gdk_draw_image() 2010-08-10 21:02:26 +02:00
Benjamin Otte
4f8dbd4a8d API: Remove gdk_draw_pixbuf() 2010-08-10 21:02:25 +02:00
William Jon McCann
0cfb94cdd4 [gdk] Add gdk_keymap_get_num_lock_state
https://bugzilla.gnome.org/show_bug.cgi?id=623239
2010-07-01 21:44:09 -04:00
Kristian Rietveld
be27fba3f3 Remove dummy for gdk_event_get_graphics_expose()
This was a deprecated function that has been removed.
2010-06-30 21:43:25 +02:00
Kristian Rietveld
1564d8922a Fix typos in Cairo region conversion so that Quartz actually compiles 2010-06-30 11:10:29 +02:00
Kristian Rietveld
53fbf2a30a Update Quartz DnD code to set device on DnD events 2010-06-30 10:56:44 +02:00
Kristian Rietveld
03a313d2a9 Implement gdk_drag_context_{get,set}_device in Quartz backend 2010-06-30 10:56:44 +02:00
Benjamin Otte
300e6b84cd s/GdkRegion/cairo_region_t/ in all of gtk
https://bugzilla.gnome.org/show_bug.cgi?id=613284
2010-06-29 16:06:38 +02:00
Benjamin Otte
3e96cfe8fc Deprecate the GdkRegion API
Includes fixing all callers to use the cairo region API instead. This is
usually just replacing the function names, the only difference is
gdk_region_get_rectangles() being replaced by
cairo_region_num_rectangles() and cairo_region_get_rectangle() which
required a bit more work.

https://bugzilla.gnome.org/show_bug.cgi?id=613284
2010-06-29 16:06:38 +02:00
Christian Dywan
655dcff096 Remove deprecated GdkFont
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=604196

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-06-28 23:38:03 +02:00
Javier Jardón
c1affa4f3c Remove deprecated code from X interaction 2010-06-28 23:38:03 +02:00
Javier Jardón
c3987f9ee2 [GdkGC] Remove deprecated GdkFont from GdkGCValues structure 2010-06-28 23:38:03 +02:00
Kristian Rietveld
7f2e4c38a9 Move Leopard-specific type definitions to gdkquartz.h
Update includes subsequently where it matters.  Fixes build on Mac OS
X 10.4.

(cherry picked from commit e634f3fbe0)
2010-06-27 11:00:42 +02:00
Kristian Rietveld
64f11c366a Refactor to use API that's available in OS X 10.4 as well
(cherry picked from commit 3770d914ec)
2010-06-27 11:00:31 +02:00
John Ralls
98d47b57bf Bug 622333 - Crash in gdk_window_impl_quartz_begin_paint_region
(cherry picked from commit 093a867e51)
2010-06-27 11:00:20 +02:00
Kristian Rietveld
019ccc686d Flip clip mask image when setting clip mask on GC
(cherry picked from commit 9f5f47f8be)
2010-06-27 11:00:09 +02:00
Kristian Rietveld
88cae1769b Rework color translation to support gray scale and bitmaps
(cherry picked from commit 49f72c1fb4)
2010-06-27 10:59:46 +02:00
Kristian Rietveld
18b233fe2a Add gray visual, implement "get_best" functions
(cherry picked from commit 42d07ad6ce)
2010-06-27 10:59:11 +02:00
Matthias Clasen
8a590711da Remove stray references to gtk-2.0 2010-06-26 21:40:55 -04:00
John Ralls
d722adb76a [quartz] Delete the typedef of GdkDevicePrivate
It's in gdkdevice.h now.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=622765

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-06-26 00:23:32 +02:00
Carlos Garnacho
6cde835acd GdkDeviceManager: Add gdk_device_manager_get_client_pointer().
This function makes a better replacement for
gdk_display_get_core_pointer(), wherever it might yet be needed, for
XI2 resorts to XIGetClientPointer(), for the others return the only
core pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=621685
2010-06-24 02:30:53 +02:00
Javier Jardón
3c8a54b2f7 Remove GdkWChar deprecated code 2010-06-20 00:22:26 +02:00
Javier Jardón
ca046f0cfb Remove deprecated gdk_text_* and gdk_string_* functions
Remove gdk_string_extents(), gdk_text_extents(),
gdk_text_extents_wc(), gdk_string_width(), gdk_text_width(),
gdk_text_width_wc(), gdk_string_measure(), gdk_text_measure(),
gdk_string_height(), gdk_text_height()
2010-06-20 00:22:26 +02:00
Javier Jardón
4cf4470fcd Remove deprecated GdkDrawable functions
Remove gdk_drawable_get_data(), gdk_drawable_set_data(),
gdk_drawable_ref(), gdk_drawable_unref(),
gdk_draw_string(), gdk_draw_text(), gdk_draw_text_wc()
2010-06-19 21:39:22 +02:00
Javier Jardón
71c501d895 Use a GPid on gdk_spawn_on_screen[_with_pipes] instead a gint
Reported by Nick Schermer in bug
https://bugzilla.gnome.org/show_bug.cgi?id=602289
2010-06-10 03:52:35 +02:00
Javier Jardón
2ace397eb5 Remove deprecatedd code from GdkColor
https://bugzilla.gnome.org/show_bug.cgi?id=619649
2010-06-07 00:35:40 +02:00
Colin Walters
95bc0f5405 Use g_source_set_name for all custom GSources in GTK+
Naming the sources allows easier debugging with e.g. SystemTap
probes.

https://bugzilla.gnome.org/show_bug.cgi?id=620511
2010-06-03 21:49:22 -04:00
Javier Jardón
019563c322 Remove gdk_*et_use_xshm() deprecated functions 2010-05-26 05:18:05 +02:00
Matthias Clasen
bd4609b140 Merge the xi2-for-master branch 2010-05-25 18:38:44 -04:00
Matthias Clasen
50a72eda2d Seal gdk
Add G_SEAL annotation for struct members, and add accessors for
the (useful) fields. Patch based on work by Garrett Regier,
see bug #592580.
2010-05-25 12:01:04 -04:00
Javier Jardón
618d15e991 Remove deprecated gdk_window_get_toplevels() function 2010-05-14 18:18:10 +02:00
Paul Davis
aea9f1b6cf Remove arbitrary limit on number of redraw rectangles
The aim of this limit was to not degrade performance too much, however,
it actually did degrade performance to a large extent.
2010-05-12 12:11:40 +02:00
Javier Jardón
2b64a7fd54 Remove some deprecated stuff from GdkWindow
Also, substitute the deprecated functions with the correct ones
2010-05-12 04:29:55 +02:00
Javier Jardón
8424256a39 [gdk] Remove gdki18n.h completely 2010-05-03 01:51:21 +02:00
Javier Jardón
906a510007 Remove deprecated code from GdkImage 2010-05-03 01:48:45 +02:00
Javier Jardón
7894951cee Remove deprecated code from GdkEvent 2010-05-03 01:48:45 +02:00
Javier Jardón
8c46ef830b Remove deprecated code from GdkDnd 2010-05-03 01:45:00 +02:00
Matthias Clasen
13d69e552d Fix a compatibility problem
It turns out that my attempt at handling Super, Hyper and Meta better
is causing problems, mostly because Alt and Meta are commonly colocated
in the modmap, and apps do a check for the Alt modifier regularly.

See e.g bug 607697.
2010-02-12 18:55:42 -05:00
Kristian Rietveld
66207cf13e Improve enter/motion notify semantics
On X11 we receive enter notify and motion notify events for a window
regardless of its focus state.  On Mac OS X this is not the case.  This
commit improves the semantics to overcome this difference.  It improves
on my earlier patch that sent a motion notify event when a window became
main.

Instead of sending a motion notify when a window becomes main, we now
send one when a window becomes key, which comes closest to a window
getting focus in X11.  This motion notify is needed because Mac OS X does
not send motion events when an application is inactive (none of its
windows have focus), these events are sent in X11.  This dummy motion
notify event (with current coordinates of the mouse cursor) allows an
application to get its prelight and other state right when it gets focus
and thus user attention.

Another change is to send an enter notify event when updating the
tracking rectangle of a GdkQuartView and the mouse cursor is currently in
this rectangle.  This rectangle is at least updated on window creation.
This enter notify event is important for the case where a new window
appears right below the mouse cursor.  The window has to receive an enter
notify event for the subsequent events to be processed correctly.  Mac
OS X does not send one in this case, so we generate it ourselves.

Both of these synthesized events have to go through
_gdk_windowing_got_event() for updating statekeeping, etc.
append_event() has a boolean flag now to make this convenient.
2010-01-30 20:36:28 +01:00
Kristian Rietveld
0912a113dd Release view after setting it as contentView
Fixes GdkQuartzView being leaked.
2009-12-30 14:14:21 +01:00
Kristian Rietveld
255c2739e2 Fix memleak in get_nsscreen_for_point()
One codepath did not go through GDK_QUARTZ_RELEASE_POOL, refactored
the code to fix this.
2009-12-30 14:12:42 +01:00
Kristian Rietveld
3887838244 Fix memory leak in GdkQuartzView
Should remove the tracking rect in dealloc.
2009-12-30 14:11:14 +01:00
Kristian Rietveld
ee62948b83 Use CGFLOAT_DEFINED, don't rely on NSINTEGER_DEFINED for this 2009-12-28 23:01:42 +01:00
Kristian Rietveld
e22de4a88e Add gdk_keymap_map_virtual_modifiers() to Quartz backend 2009-12-28 21:18:57 +01:00
Kristian Rietveld
c8fef502e2 Start using CGFloat
Fixes a bunch of compiler warnings.  Since CGFloat does not exist on
Tiger and earlier, we have added a typedef likewise as was done for
NSInteger.
2009-12-28 21:18:57 +01:00
Kristian Rietveld
f3a5bf48d4 Fix compile warning in gdk_cursor_new_from_pixmap 2009-12-28 21:18:57 +01:00
Kristian Rietveld
dd415881be initWithContentRect: has a NSUInteger parameter now
The typedef in place for Tiger and earlier systems should change this
to unsigned int without problems.
2009-12-28 21:18:56 +01:00
Kristian Rietveld
b2b70e5a8d Start using NSInteger and NSUInteger
These have been introduced in Leopard and default to int and unsigned int.
In 64-bit Snow Leopard they are long and unsigned long.  This caused issues
with the getRectsBeingDrawn message which needs a pointer to a NSInteger
(long on 64-bit!) but we passed in an integer.  Surprisingly this problem
was visible when compiling with -O0 (segfault), but *not* when compiling
with -O1.  Other messages were NSInteger is now needed have also been
adapted.

Since NSInteger and NSUInteger are not available on Tiger, a define
has been added to add typedefs for these when they have not been defined
by the system headers.
2009-12-27 19:28:56 +01:00
Matthias Clasen
182108c68e Implement gdk_screen_get_primary_monitor in all GDK backends
The implementations are all trivial, just returning 0. At least
for Quartz, we could probably do better than that. Bug 604459.
2009-12-13 20:40:02 -05:00
Kristian Rietveld
cffddd2adc Document how Cocoa coordinate and monitor layout transforms to GDK work 2009-11-15 15:29:45 +01:00
Nicola Fontana
1e1131c959 Do not use static GTypeInfo and GInterfaceInfo
Either g_type_register_static_simple (used by G_DEFINE_TYPE_EXTENDED)
and G_IMPLEMENT_INTERFACE use automatic variables for GTypeInfo and
GInterfaceInfo structs, while tutorials and source code often use
static variables. This commit consistently adopts the former method.

https://bugzilla.gnome.org/show_bug.cgi?id=600158
2009-11-06 01:21:09 +01:00
Kristian Rietveld
a338c7e929 Update copyright 2009-10-26 09:57:11 +01:00
Kristian Rietveld
fa8fa48ef1 Update position of toplevels after display reconfiguration
We have to do this, especially after the screen containing the menubar
has changed.  Such more larger changes in monitor geometry will cause
changes to how monitors are laid out in the root window.  The position
coordinates of the windows will have to be updated to reflect their
position in the new layout.
2009-10-26 09:52:54 +01:00
Kristian Rietveld
a4d932cc64 Fixup get_nsscreen_for_x() 2009-10-26 09:52:54 +01:00
Kristian Rietveld
221883dd31 Remove unused variable (fix compiler warning) 2009-10-26 09:52:54 +01:00
Kristian Rietveld
93530675de Update size of root window after display reconfiguration 2009-10-26 09:52:54 +01:00
Kristian Rietveld
959a9437e6 Support arbitrary screen layouts
The Quartz port now supports arbitrary multiple monitor layouts instead
of only monitors are were laid out horizontally.  This builds on the
reworked coordinate translation done in a previous commit.
2009-10-26 09:52:54 +01:00
Kristian Rietveld
8846012c6d Rework coordinate transformation to be based on root window
The root window contains all the monitors attached to a Mac.  The
coordinate transformation now both translates the x and y coordinate,
translating it from the Cocoa monitor coordinate space to the GDK
coordinate space.  How monitors are laid out in the root window differs
between Cocoa and GDK, which is why it is important to translate based
on the root window to get multi monitor setups to work properly.

We have replaced the old y coordinate transformation function with
new functions that translate both the x and y coordinate.

When creating new toplevels, we have to determine the Cocoa screen on
which the toplevel should appear and translate the coordinates according
to that screen.

This change also fixes event handling in case there is a monitor left
of the screen containing the menu bar.  In such a case all coordinates
on the left monitor are negative.  Event handling broke, because of
_gdk_quartz_window_find_child() checking bounds.  Now that coordinates
are always properly translated to GDK coordinate space, in which negative
coordinates do never occur, the checks here will work properly.
2009-10-26 09:52:54 +01:00
Kristian Rietveld
d26dd103b2 Be consistent with X11: emit monitors-changed first, then size-changed 2009-10-26 09:52:53 +01:00
Kristian Rietveld
e36872da38 Use screen when emitting signal, not _gdk_screen 2009-10-26 09:52:53 +01:00
Kristian Rietveld
63e2f54516 Emit monitors-changed signal when appropriate 2009-10-26 09:52:53 +01:00
Kristian Rietveld
12dc617dc2 Move screen resolution setup to GdkScreenQuartz initializer 2009-10-26 09:52:53 +01:00
Kristian Rietveld
d47772f002 Create a proper subclass of GdkScreen: GdkScreenQuartz 2009-10-26 09:52:52 +01:00
Kristian Rietveld
73b55ae8f5 Register and handle a display reconfiguration callback
Using this we can update our internal monitor/screen layout state
and emit the GdkScreen::size-changed signal.  Work has not
completely finished on this yet, see bug 596238.
2009-10-26 09:52:52 +01:00
Kristian Rietveld
ce3c861c2a Setup monitor rects during screen initialization and re-use data 2009-10-26 09:52:52 +01:00
Kristian Rietveld
ca20b04b58 Move screen initialization to gdkscreen-quartz.c 2009-10-26 09:52:52 +01:00
Kristian Rietveld
42ac226877 Bug 598881 - Unimplemented GdkWindowImplIface methods crash gimp on OSX
Add dummy for _gdk_input_window_crossing ().  Set both input_window_destroy
and input_window_crossing pointers in the Impl struct.

Reported by John Ralls.
2009-10-23 13:53:57 +02:00
Kristian Rietveld
a4145bfeef Bug 588449 - DnD doesn't work on GDK/Quartz
Patch from Paul Davis.  This gets the basics of drag and drop properly
working on Mac OS X.
2009-09-30 15:07:37 +02:00
Alexander Larsson
5ebb32d1ff Extend _gdk_windowing_window_at_pointer to be able to get toplevels only
This has two advantages:
1) In many backends, this is faster as we can terminate the window
hierarchy traversal earlier
2) When used in gdkdisplay.c::get_current_toplevel() to get the
current toplevel that has the pointer we now correctly return
a toplevel with the pointer in it where the pointer is inside
some foreign subwindow of a toplevel window.

The second advantage fixes some bugs in client side event generation
when the pointer is inside such a foreign child window.
2009-09-28 15:21:54 +02:00
Kristian Rietveld
f2d9f5a9e6 Remove unused variable 2009-09-27 13:44:10 +02:00
Kristian Rietveld
2f782de1b7 Bug 596012 - popup menu position is horribly off on gdk quartz with ...
Based on first patches by Christian Hergert.  Change
screen_get_monitor_geometry() so that it translates the layout of the screens
from Cocoa layout to GDK layout.  In Cocoa, the screen locations
are specified in Cocoa geometry, as well as that GDK uses a different way
to place individual monitors in the root window.  For now only monitors
that are laid out horizontally are supported (see the FIXMEs in the source),
in bug 596238 we will track future work to get things fully right.

Modify _gdk_quartz_window_get_inverted_screen_y() to take the differences
in screen layout between Cocoa and GDK into account.  Also this function
is subject to future work.
2009-09-27 13:44:10 +02:00
Christian Hergert
17130a8ec9 Bug 517394 - Native resize grip steals button release ...
Explicitly handle resizing by leaving all events in the lower right 15x15
corner to Cocoa, if the window shows a resizing indicator.  Some
applications may have widgets allocated in this area.  Generally, these
widgets are likely larger than 15x15 so they can still be hit.  Often
scroll bars are found in this area and these can also be manipulated by
other means.  Since this is the only way of resizing windows on Mac OS X,
it is too important to keep it broken.
2009-09-25 21:52:13 +02:00
Kristian Rietveld
785e55f87d Bug 596250 - Gdkcursor-quartz.c doesn't implement GDK_BLANK_CURSOR
Support GDK_BLANK_CURSOR.  Patch by John Ralls.
2009-09-25 18:51:55 +02:00
Kristian Rietveld
cdec2caaf3 Send a motion-notify when a (new) main window became active
This motion-notify even will make sure that things like highlights are
set up correctly now that the window has become active.
2009-09-25 18:51:54 +02:00
Kristian Rietveld
3043155796 Bug 550939 - GtkFileChooser listbox does not refresh selection
Make the quartz backend support the new queued translations.  We do this
by keeping our own copy of the region that has been set to need display.
Using this region we can intersect by the given area, translate this and also
set needs display for the resulting area.
2009-09-21 20:41:35 +02:00
Kristian Rietveld
d797dcc4dd Assign the size of the screen to the root window
On startup, the root window got assigned the size of the main screen.
But, the GdkScreen has the width of all screens/monitors connected to the
machine.  Change this so that in _gdk_windowing_window_init, we assign
the width/height of all monitors to the root window width, height.
Should fix bug 594738.
2009-09-16 08:48:49 +02:00
Kristian Rietveld
cf80feb3dd Do not test the event mask of implicit grabs
The quartz backend simulates the semantics of XGrabPointer, as a part of
this it checks the event mask of the grab.  However, implicit grabs on X
do not go through XGrabPointer and thus the quartz backend should not check
the event mask for these.  This fixes various "the UI got stuck" cases.
2009-09-16 08:48:49 +02:00
Alexander Larsson
d67a7eda16 Add gdk_window_restack
This lets you restack a window above or below a specified sibling.
At least eclipse wants this functionallity.
2009-09-02 23:38:55 +02:00
Alexander Larsson
939e55223c Ensure that queue_translation is paired with the right X operation
The X11 queue_translation operation uses NextRequest to get the serial
of the XCopyArea operation where the translation should end. However,
if the gc passed to gdk_draw_drawable has a non-flushed clip region
(which it commonly has now for the window clipping) then the next
operation will be the GC flush, not the XCopyArea.

To handle this right we now pass in the GC to be used to
queue_translation and ensure that it is flushed before calling
NextRequest().
2009-08-13 14:46:02 +02:00
Matthias Clasen
b514c6ac22 Fix a logic error in gdk_window_set_title on OS X
Also fix a similar error in gdk_window_set_transient_for.
This fixes bug 589738
2009-08-07 00:13:44 -04:00
Matthias Clasen
5002976fab Fix a logic error in gdk_window_set_title on OS X
This fixes bug 589738
2009-08-07 00:10:43 -04:00
Kristian Rietveld
8c8e1daefa Add stubs for missing GDK windowing functions to Quartz backend
This seems to more or less fix the build.  On Tiger there are still issues
with libresolv missing on the link line, I will figure out what's up with
that soonish.
2009-07-31 21:22:54 +02:00
Alexander Larsson
aa8693f2cb Track viewable for GdkWindow 2009-07-18 23:11:54 +02:00
Alexander Larsson
2e3866b5b2 Make GdkDrawable draw_drawable backwards compat
Turns out pygtk build broke due to the argument addition to draw_drawable.
So, we now add a new vfunc for the new draw_drawable and are thus
backwards compat.
2009-07-01 19:50:49 +02:00
Alexander Larsson
038398d493 Move new draw_drawable argument to end to make it more backwards compat 2009-07-01 16:13:31 +02:00
Richard Hult
52ca2f29cc Update _gdk_windowing_pointer_grab 2009-06-20 11:50:10 +02:00
Richard Hult
56efcf62c4 Remove duplicate definition of GdkInputWindow 2009-06-20 11:50:10 +02:00
Richard Hult
f26fe5bb49 Update gdk_window_quartz_show, ..._get_origin, ..._get_pointer 2009-06-20 11:50:03 +02:00
Richard Hult
eb70b75118 Rename gdk_window_beep to _gdk_windowing_window_beep 2009-06-20 11:28:57 +02:00
Alexander Larsson
0b586a5ad7 Add support for client side graphics exposures in gdk_draw_drawable 2009-05-27 17:10:32 +02:00
Alexander Larsson
7698daf97a Merge branch 'master' into client-side-windows
Conflicts:
	gdk/x11/gdkwindow-x11.c
2009-05-25 14:30:01 +02:00
Behdad Esfahbod
a398c840be Add git.mk to generate .gitignore files
Add four new doc templates that were not in repository.
2009-05-04 14:29:21 -04:00
Richard Hult
730a44a516 Tweak the click-through handling so active apps get it (but not inactive ones) 2009-04-02 10:16:30 +02:00
Richard Hult
255756cfc8 Improve explicit drawing and flushing (fixes GtkRuler)
Use the same code path to get a CGContext for both gdk_draw_* and
gdk_cairo_create and make sure we unlockFocus in both cases. This
fixes the broken rendering in GtkRuler. Also use an average of flush
intervals when checking whether we can flush or not, since otherwise
we get too sensitive and block almost all explicit flushes that are
caused by mouse movements for example.
2009-04-02 10:16:30 +02:00
Richard Hult
97996ff00c Only add up native subwindow offsets for gdk_window_quartz_get_origin 2009-04-02 10:16:29 +02:00
Richard Hult
0092c1ebf0 Limit manual flushing so we don't get hit by quartz' fps limiting 2009-04-02 10:16:29 +02:00
Richard Hult
9af5f2b495 Disable/enable screen updates around process_all_updates to speed up rendering 2009-04-02 10:16:29 +02:00
Richard Hult
53b3343d1b Get the right event window for non-grabbed windows too 2009-04-02 10:16:29 +02:00
Richard Hult
6af4450641 Try to reduce risk of triggering the "beam sync" penalty in quartz 2009-04-02 10:16:29 +02:00
Richard Hult
f51a3f5e33 Make owner_events grabs work again, use the pointer window, not the event window 2009-04-02 10:15:32 +02:00
Richard Hult
6d1a8853c4 Don't ignore all events when inactive, only clicks 2009-04-02 10:15:32 +02:00
Richard Hult
41d40786b1 Relax the check for ignoring events above the content view 2009-04-02 10:15:32 +02:00
Richard Hult
651335bc7e Remove workaround for missing enter events on newly popped up windows
The reason for the issue was that we got entered/exited events for the
title bar buttons. Now we properly ignore those instead.
2009-04-02 10:15:32 +02:00
Richard Hult
aeeb54ddf0 Remove re-declared variable 2009-04-02 10:15:32 +02:00
Richard Hult
64195589dc Remove unused code and fix some indentation 2009-04-02 10:15:32 +02:00
Richard Hult
6d01d16d48 Button press and release can share the same fill_button_event call 2009-04-02 10:15:32 +02:00
Richard Hult
77ee2feda2 Remove tracking of "current mouse window", this is handled in the common code now 2009-04-02 10:15:32 +02:00
Richard Hult
3c7a37d10d Remove old cursor setting and make it work with client-side windows 2009-04-02 10:15:32 +02:00
Richard Hult
e6f2a809b2 Update for latest changes in the common code for grab tracking 2009-04-02 10:15:32 +02:00
Richard Hult
f455b478e7 Ignore all events if the app is not active 2009-04-02 10:15:31 +02:00
Richard Hult
2c043566fc When breaking grabs on deactivation, the unset should be implicit 2009-04-02 10:15:31 +02:00
Richard Hult
30f83d8398 Use _gdk_display_unset_has_*_grab in break_all_grabs() 2009-04-02 10:15:31 +02:00
Richard Hult
65aef2099a Use cooca to convert coordinats from event window to grab window instead of homegrown code 2009-04-02 10:15:31 +02:00
Richard Hult
a180f7588f Replace quartz specific keyboard grab code with common code 2009-04-02 10:15:31 +02:00
Richard Hult
f06d432ebe Cast to avoid warning 2009-04-02 10:15:31 +02:00
Richard Hult
06e583e536 Remove unused variable 2009-04-02 10:15:31 +02:00
Richard Hult
152614966f Use the common pointer grab code instead of tracking it ourselves 2009-04-02 10:15:31 +02:00
Richard Hult
55c71f18a4 Use isKeyWindow instead of isMainWindow for the non-click-through check 2009-04-02 10:15:31 +02:00
Richard Hult
e8d6ac71b7 Apply non-click-through policy on unfocused windows even if the app is active 2009-04-02 10:15:31 +02:00
Richard Hult
c36625879b Fix coords returned by _gdk_windowing_window_get_pointer, fixes scribble demo 2009-04-02 10:15:31 +02:00
Richard Hult
ccd982f8bd Remove unused remainders from the old implicit grab code 2009-04-02 10:15:31 +02:00
Richard Hult
79d9a8f960 Get implicit grabs working 2009-04-02 10:15:31 +02:00
Richard Hult
3d72fe16c0 Leave AppKit events unhandled 2009-04-02 10:15:30 +02:00
Richard Hult
0fc2c36ee7 Use event_type we already have instead of regetting it 2009-04-02 10:15:30 +02:00
Richard Hult
7abde8388f Get the correct root coordinates for events 2009-04-02 10:15:30 +02:00
Richard Hult
24aa1620bf Update for changes in the paintable interface
Get rid of invalidate_maybe_recurse and process_updates. Implement
_gdk_windowing_{before,after}_process_all_updates(), and keep track of
when we're inside process_all_updates in the common code so we know
when to flush windows. Implement
_gdk_windowing_window_process_updates_recurse by means of
setNeedsDisplayInRect: displayIfNeeded. Use the added window argument
in begin_paint_region to get the right window (the paintable is always
the impl window now).
2009-04-02 10:15:27 +02:00
Richard Hult
65b5644cda Call _gdk_window_process_updates_recurse() in drawRect instead of creating our own expose events 2009-04-02 10:15:27 +02:00
Richard Hult
95cbc754d4 Setup ->impl_window on the root window 2009-04-02 10:15:27 +02:00
Richard Hult
9e0899bd2f Add gdk_windowing_window_get_next_serial 2009-04-02 10:15:27 +02:00
Richard Hult
19951c064e Remove gdk_keyboard_grab_info_libgtk_only which moved to the common code 2009-04-02 10:15:26 +02:00
Richard Hult
defc779df5 Add serial argument to _gdk_windowing_got_event 2009-04-02 10:15:26 +02:00
Richard Hult
89f1cb5178 First cut at getting events working 2009-04-02 10:15:25 +02:00
Richard Hult
08bc1864cc Attempt to implement draw_drawable with src = dest = window 2009-04-02 10:15:25 +02:00
Richard Hult
2ea8ea2f0d Remove unused function _gdk_quartz_window_scroll 2009-04-02 10:15:24 +02:00
Richard Hult
80c8976c28 Fix typos that broke loading without lazy symbol lookup 2009-04-02 10:15:24 +02:00
Richard Hult
7ab3435a58 Remove autoreleasepool in drawRect, not necessary 2009-04-02 10:15:24 +02:00
Richard Hult
f12a992be2 Only setup tracking rect for toplevels, we only want enter/leave for those 2009-04-02 10:15:24 +02:00
Richard Hult
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
Richard Hult
edb35763a2 Get rid of all the synthesized crossing events except for ANCESTOR one on the toplevel 2009-04-02 10:15:24 +02:00
Richard Hult
330e790fb2 Rename _gdk_quartz_events_send_map_events to ..._event 2009-04-02 10:15:24 +02:00
Richard Hult
32555badb5 Clean up some whitespace 2009-04-02 10:15:24 +02:00
Richard Hult
54e6878001 Add fill_crossing_event to be used soon 2009-04-02 10:15:24 +02:00
Richard Hult
c3637ab20f Only send map events for toplevels 2009-04-02 10:15:24 +02:00
Richard Hult
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
Richard Hult
da8666d745 Clean up the scroll support a little 2009-04-02 10:15:24 +02:00
Richard Hult
25b311bac3 Make the various fill_*_event functions consistent 2009-04-02 10:15:24 +02:00
Richard Hult
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
Richard Hult
036e045d53 Update the window size after getting windowDidResize 2009-04-02 10:15:23 +02:00
Richard Hult
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
Richard Hult
257dea55a7 Handle NULL event mask in _gdk_windowing_window_at_pointer 2009-04-02 10:15:23 +02:00
Richard Hult
19b1f6a93a Fix bug from first patch round, get private from window, not from impl 2009-04-02 10:15:23 +02:00
Richard Hult
e9d3f22ac8 Offset subviews with the parent's abs coordinate 2009-04-02 10:15:23 +02:00
Richard Hult
546a1e4cd6 Change window check to quartz window check in gdkinput 2009-04-02 10:15:23 +02:00
Richard Hult
5eacab593b Setup iface for queue_translation/antiexpose 2009-04-02 10:15:23 +02:00
Richard Hult
0e1f51ecd1 Add quartz window check macro 2009-04-02 10:15:23 +02:00
Richard Hult
a362be9979 Add stubs for queue_translation/antiexpose 2009-04-02 10:15:23 +02:00
Richard Hult
cb8a3386c7 Implement _gdk_windowing_create_cairo_surface 2009-04-02 10:15:23 +02:00
Richard Hult
f080825430 Remove gdk_display_pointer_is_grabbed and gdk_pointer_grab_info_libgtk_only 2009-04-02 10:15:23 +02:00
Richard Hult
47ed2c553d Remove gdk_window_set_child_input_shapes 2009-04-02 10:15:23 +02:00
Richard Hult
cede19dc65 Update more toplevel checks and update set_background and back_pixmap 2009-04-02 10:15:23 +02:00
Richard Hult
68640f9e99 Add mask argument to _gdk_windowing_window_at_pointer, and update more checks 2009-04-02 10:15:22 +02:00
Richard Hult
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
Richard Hult
3f7e3a22f5 Update gdk_window_quartz_set_background and gdk_window_quartz_set_back_pixmap 2009-04-02 10:15:22 +02:00
Richard Hult
4cf7fe5832 Add more toplevel window checks 2009-04-02 10:15:22 +02:00
Richard Hult
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
Richard Hult
27a80094bc Update gdk_window_set_type_hint and gdk_window_get_type_hint 2009-04-02 10:15:22 +02:00
Richard Hult
ff86156762 Update gdk_window_focus 2009-04-02 10:15:22 +02:00
Richard Hult
1e5a22dabe Remove gdk_window_quartz_clear_area 2009-04-02 10:15:22 +02:00
Richard Hult
f5806eac0c Update gdk_window_quartz_reparent 2009-04-02 10:15:22 +02:00
Richard Hult
2517076f76 Update gtk_window_quartz_hide 2009-04-02 10:15:22 +02:00
Richard Hult
afdb3f2ee8 Update signature for gdk_window_quartz_show and adapt the implementation 2009-04-02 10:15:22 +02:00
Richard Hult
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
Richard Hult
b20991af9b Update _gdk_window_impl_new and add private variables where we changed impl to private 2009-04-02 10:15:22 +02:00
Richard Hult
b1b358c820 Remove width/height from GdkWindowImplQuartz and use those in GdkWindowObject 2009-04-02 10:15:22 +02:00
Richard Hult
774cebae69 Remove get_size and get_visible region 2009-04-02 10:15:21 +02:00
Richard Hult
1ee805f7be Don't init size in gdk_window_impl_quartz_init 2009-04-02 10:15:21 +02:00
Richard Hult
57214245da Include check for offscreen windows in WINDOW_IS_TOPLEVEL 2009-04-02 10:15:21 +02:00
Richard Hult
ff9822a833 Add reset_origin argument to _gdk_windowing_gc_set_clip_region 2009-04-02 10:15:21 +02:00
Alexander Larsson
eabac453e6 Initial client-side-windows work
The history before this was kind of twisted as several different
approaches were tested, so that was all squashed into this initial
commit to hide the uninteresting changes and files that were later
removed.
2009-04-02 10:14:01 +02:00
Richard Hult
14f26357e1 Bug 566628 – gdk_display_close always asserts on win32 and quartz
2009-01-26  Richard Hult  <richard@imendio.com>

	Bug 566628 – gdk_display_close always asserts on win32 and quartz

	* gdk/quartz/gdkdisplay-quartz.c
	(_gdk_windowing_set_default_display): Copy fix for bug #566628
	from the win32 backend: Allow also a NULL parameter in the
	g_assert().

svn path=/trunk/; revision=22223
2009-01-26 20:31:18 +00:00
Richard Hult
b81b90949b Bug 550942 – [patch] Rework of gdkeventloop-quartz.c
2008-11-12  Richard Hult  <richard@imendio.com>

	Bug 550942 – [patch] Rework of gdkeventloop-quartz.c

	* gdk/gdk.c:
	* gdk/gdkinternals.h: Add eventloop debug facility.
	* gdk/quartz/gdkeventloop-quartz.c: Big rework of the quartz
	mainloop integration, patch from Owen Taylor. See bug #550942 for
	the details.

svn path=/trunk/; revision=21783
2008-11-12 13:30:22 +00:00
Richard Hult
2c3590b47e Bug 558586 – handling of keyboard under darwin (quartz)
2008-11-12  Richard Hult  <richard@imendio.com>

	Bug 558586 – handling of keyboard under darwin (quartz)

	* gdk/quartz/gdkkeys-quartz.c: Follow up on this bug, only use the
	new API when building on 64-bit, since there are still old non-xml
	layouts used out there we don't want to break them. (For 64-bit
	those layouts doesn't work so we don't have a choice there.)

svn path=/trunk/; revision=21782
2008-11-12 12:56:17 +00:00
Richard Hult
a4088461ae Bug 558586 – handling of keyboard under darwin (quartz)
2008-11-06  Richard Hult  <richard@imendio.com>

	Bug 558586 – handling of keyboard under darwin (quartz)

	* gdk/quartz/gdkkeys-quartz.c: (maybe_update_keymap): Patch from
	Arnaud Charlet to replace use of deprecated keyboard layout API
	with the new TIS API available in 10.5. The old code is still used
	when building for 10.4.

svn path=/trunk/; revision=21763
2008-11-06 15:35:56 +00:00
Richard Hult
31357d3cc7 Revert (at least for now) the alt/cmd switching since it breaks the
2008-11-05  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c:
	(get_keyboard_modifiers_from_ns_event), (create_key_event): Revert
	(at least for now) the alt/cmd switching since it breaks the
	"alt-gr" functionality of alt which makes it impossible to input
	lots of characters.

svn path=/trunk/; revision=21761
2008-11-05 19:12:48 +00:00
Richard Hult
a641e8fb92 Set the fill color outside the loop.
2008-11-05  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_impl_quartz_begin_paint_region): Set the fill color
	outside the loop.

svn path=/trunk/; revision=21759
2008-11-05 10:26:47 +00:00
Richard Hult
d2ed4085c0 Bug 557894 – Wrong return value for gdk_pointer_grab_info_libgtk_only()
2008-10-27  Richard Hult  <richard@imendio.com>

	Bug 557894 – Wrong return value for
	gdk_pointer_grab_info_libgtk_only()

	* gdk/quartz/gdkevents-quartz.c:
	(gdk_pointer_grab_info_libgtk_only): Return TRUE when there is a
	pointer grab. Patch by Owen Taylor.

svn path=/trunk/; revision=21722
2008-10-27 14:54:57 +00:00
Richard Hult
4dbea21c81 Add empty stub to fix linking.
2008-10-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkkeys-quartz.c: (gdk_keymap_get_caps_lock_state)
	Add empty stub to fix linking.

svn path=/trunk/; revision=21629
2008-10-10 13:38:05 +00:00
Richard Hult
db0ad1ff52 Bug 550342 – Splash screens have a caption
2008-10-09  Richard Hult  <richard@imendio.com>

	Bug 550342 – Splash screens have a caption

	* gdk/quartz/gdkwindow-quartz.c: (_gdk_window_new),
	(gdk_window_set_decorations): Patch from Marianne Gagnon to make
	splash windows borderless.

svn path=/trunk/; revision=21617
2008-10-09 11:27:31 +00:00
Richard Hult
31d013d4bf Some aftermath of the fix of bug #543868. Clip and flip to the source, not
2008-08-15  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkdrawable-quartz.c (gdk_quartz_draw_drawable): Some
	aftermath of the fix of bug #543868. Clip and flip to the source,
	not the destination. Don't save/restore the gstate, it's already
	done when getting/releasing the context.

svn path=/trunk/; revision=21136
2008-08-15 20:27:22 +00:00
Richard Hult
cc127bf0a9 Bug 535573 – Deadlock in gdkeventloop-quartz.c:poll_func()
2008-08-07  Richard Hult  <richard@imendio.com>

	Bug 535573 – Deadlock in gdkeventloop-quartz.c:poll_func()

	* gdk/quartz/gdkeventloop-quartz.c: (gdk_event_prepare),
	(select_thread_func), (poll_func): Patch by Yevgen Muntyan, fixes
	deadlock and missing events.

svn path=/trunk/; revision=21030
2008-08-07 08:18:32 +00:00
Richard Hult
e7d1152a8e Implement those, fixes loading python bindings.
2008-08-07  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkscreen-quartz.c: (gdk_screen_get_monitor_plug_name)
	(gdk_screen_get_monitor_height_mm, gdk_screen_get_monitor_width_mm):
	Implement those, fixes loading python bindings.

svn path=/trunk/; revision=21029
2008-08-07 08:14:12 +00:00
Sven Herzberg
bd86f2e8fb reviewed by: Richard Hult
2008-07-20  Sven Herzberg  <sven@imendio.com>

	reviewed by: Richard Hult

	Fixes #543868: GdkPixmap is upside down on quartz

	* gdk/quartz/gdkdrawable-quartz.c (gdk_quartz_draw_drawable): flip the
	coordinate space from GTK+ orientation to CoreGraphics orientation
	before calling CoreGraphics code
	* gdk/quartz/gdkgc-quartz.c (gdk_quartz_draw_tiled_pattern): drop the
	coordinate space flipping (we always get it right, now)
	* gdk/quartz/gdkpixmap-quartz.c
	(gdk_pixmap_impl_quartz_get_context): flip the coordinate space when
	creating the CGContextRef


svn path=/trunk/; revision=20870
2008-07-20 19:22:37 +00:00
Sven Herzberg
61ca4f71a0 reviewed by: Richard Hult
2008-07-20  Sven Herzberg  <sven@imendio.com>

	reviewed by: Richard Hult

	Extracted the CGContextRef creation into a virtual function of
	GdkDrawableImplQuartz; implement get_context() for GdkPixmap and
	GdkWindow

	* gdk/quartz/gdkdrawable-quartz.c
	(gdk_quartz_drawable_get_context): dropped the different
	implementations; forward to the virtual function now
	* gdk/quartz/gdkdrawable-quartz.h: added the virtual function
	* gdk/quartz/gdkpixmap-quartz.c
	(gdk_pixmap_impl_quartz_get_context),
	(gdk_pixmap_impl_quartz_class_init): implemented get_context()
	* gdk/quartz/gdkwindow-quartz.c
	(gdk_window_impl_quartz_get_context),
	(gdk_window_impl_quartz_class_init): implemented get_context()


svn path=/trunk/; revision=20869
2008-07-20 16:14:35 +00:00
Richard Hult
119f3cf183 Some aftermath from the window impl cleanups:
2008-07-01  Richard Hult  <richard@imendio.com>

	Some aftermath from the window impl cleanups:

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_merge_child_input_shapes): Rename and export again.
	(gdk_window_quartz_get_offsets): Make static.

svn path=/trunk/; revision=20723
2008-07-01 18:27:43 +00:00
Kristian Rietveld
cf3542155f adapt to use GdkWindowImpl interface.
2008-06-27  Kristian Rietveld  <kris@imendio.com>

	* gdk/quartz/gdkgeometry-quartz.c:
	* gdk/quartz/gdkwindow-quartz.c:
	* gdk/quartz/gdkprivate-quartz.h: adapt to use GdkWindowImpl
	interface.


svn path=/trunk/; revision=20697
2008-06-27 17:06:06 +00:00
Johan Dahlin
d97cdbdf53 Include "config.h" instead of <config.h> Command used: find -name
2008-06-21  Johan Dahlin  <jdahlin@async.com.br>

    * *.[ch]: Include "config.h" instead of <config.h>
    Command used:
    find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
    Rubberstamped by Mitch and Tim


svn path=/trunk/; revision=20669
2008-06-22 14:28:52 +00:00
Richard Hult
f3a6fecb67 Try setting the default font, might need to tweak this.
2008-05-26  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (gdk_screen_get_setting): Try
	setting the default font, might need to tweak this.

svn path=/trunk/; revision=20181
2008-05-26 18:51:35 +00:00
Richard Hult
902ac34a1d Renamed to adapt to the offscreen rendering changes, fixes build.
2008-05-21  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(_gdk_window_new), (_gdk_window_reparent): Renamed to adapt to the
	offscreen rendering changes, fixes build.

svn path=/trunk/; revision=20125
2008-05-21 20:48:21 +00:00
Richard Hult
d06472f3c2 Use SetSystemUIMode instead of hiding and showing the menubar.
2008-05-19  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_hide),
	(gdk_window_fullscreen), (gdk_window_unfullscreen): Use
	SetSystemUIMode instead of hiding and showing the menubar.

svn path=/trunk/; revision=20114
2008-05-19 20:56:51 +00:00
Richard Hult
618b23a408 Use gdk_threads_add_idle instead of g_idle_add. Add a temporary check if
2008-05-17  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_impl_quartz_invalidate_maybe_recurse):
	(gdk_window_quartz_update_idle): Use gdk_threads_add_idle instead
	of g_idle_add. Add a temporary check if the window is already in
	the updates list, since update_area currently doesn't always match
	the backend's state, see bug #530801.

svn path=/trunk/; revision=20108
2008-05-17 07:26:41 +00:00
Richard Hult
16a4b0a6f7 Forgotten in previous commit.
svn path=/trunk/; revision=20101
2008-05-12 11:34:23 +00:00
Richard Hult
801f7bb44a Remove special casing of menu key events as it's no longer necessary;
2008-05-12  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c:
	* gdk/quartz/gdkquartz.h: Remove special casing of menu key events
	as it's no longer necessary; instead the added quartz API to get
	the nsevent from an event should be used. Also move the global
	filter up so it's done before the check for window-less events.

svn path=/trunk/; revision=20100
2008-05-12 11:23:28 +00:00
Richard Hult
9a6c6fcf93 Move the currently invalidated region. Fixes bug #532048, patch by Yevgen
2008-05-08  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkgeometry-quartz.c (gdk_window_scroll): Move the
	currently invalidated region. Fixes bug #532048, patch by Yevgen
	Muntyan.

svn path=/trunk/; revision=20087
2008-05-08 17:51:03 +00:00
Richard Hult
8ff76c14cd Only set the fake fd's revents, not the first one. Fixes bug #531056,
2008-05-08  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkeventloop-quartz.c (poll_func): Only set the fake
	fd's revents, not the first one. Fixes bug #531056, spotted by
	Yevgen Muntyan.

svn path=/trunk/; revision=20086
2008-05-08 17:23:08 +00:00
Michael Natterer
f3cd3f7cf5 gdk/gdkinternals.h gdk/gdkevents.c gdk/directfb/gdkevents-directfb.c
2008-05-07  Michael Natterer  <mitch@imendio.com>

	* gdk/gdkinternals.h
	* gdk/gdkevents.c
	* gdk/directfb/gdkevents-directfb.c
	* gdk/quartz/gdkevents-quartz.c
	* gdk/win32/gdkevents-win32.c
	* gdk/x11/gdkevents-x11.c (_gdk_windowing_event_data_copy):
	order parameters src,dest and make src const.


svn path=/trunk/; revision=20079
2008-05-06 22:35:13 +00:00
Richard Hult
4ee2d1b6ba Add private backend data to events, and handle it when copying/freeing
2008-05-06  Richard Hult  <richard@imendio.com>

	* gdk/gdkevents.c: (gdk_event_copy), (gdk_event_free):
	* gdk/gdkinternals.h: Add private backend data to events, and
	handle it when copying/freeing events. Currently only needed in
	the quartz backend.

	* gdk/directfb/gdkevents-directfb.c:
	* gdk/quartz/gdkevents-quartz.c:
	* gdk/win32/gdkevents-win32.c:
	* gdk/x11/gdkevents-x11.c: (_gdk_windowing_event_data_copy)
	(_gdk_windowing_event_data_free): Add stubs for X11, win32 and
	directfb. Implement for quartz. Part of fixing bug #473822.

svn path=/trunk/; revision=20078
2008-05-06 21:00:06 +00:00
Richard Hult
b136668cb2 Initalize framework if there is one.
2008-05-05  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkmain-quartz.c (_gdk_windowing_init): Initalize
	framework if there is one.

svn path=/trunk/; revision=20075
2008-05-05 18:14:27 +00:00
Richard Hult
91e82e7e9e Check if gdk_unicode_to_keyval() worked before using the result. Makes
2008-05-04  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkkeys-quartz.c (maybe_update_keymap): Check if
	gdk_unicode_to_keyval() worked before using the result. Makes
	function keys work, bug #530156. Also add F16 to the function key
	map.

svn path=/trunk/; revision=20071
2008-05-04 15:15:00 +00:00
Richard Hult
378511618d Remove stray semicolon after if statement. Fixes bug #530963, patch from
2008-05-04  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkkeys-quartz.c (maybe_update_keymap): Remove stray
	semicolon after if statement. Fixes bug #530963, patch from Yevgen
	Muntyan.

svn path=/trunk/; revision=20069
2008-05-04 15:07:18 +00:00
Richard Hult
c33a6699ae Simplify check for zero sized expose area.
2008-04-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c: Simplify check for zero sized expose
	area.

svn path=/trunk/; revision=20056
2008-04-30 17:50:14 +00:00
Richard Hult
ca9a6075e6 Don't send nsevents with the gdk lock held, fixes deadlock when doing
2008-04-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (_gdk_events_queue): Don't send
	nsevents with the gdk lock held, fixes deadlock when doing manual
	window resizing with threading enabled.

svn path=/trunk/; revision=20055
2008-04-30 17:46:00 +00:00
Richard Hult
49f341f12c Map Alt to Alt and Cmd to Meta. This is not only more logical but also
2008-04-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c:
	(get_keyboard_modifiers_from_ns_event), (create_key_event): Map
	Alt to Alt and Cmd to Meta. This is not only more logical but also
	makes it easier to have Mac-like behavior.

svn path=/trunk/; revision=20054
2008-04-30 17:42:27 +00:00
Richard Hult
a63c87c5da Defer the generated event to the mainloop and don't generate one at all if
2008-03-28  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (gdk_event_translate),
	(_gdk_quartz_events_trigger_crossing_events): Defer the generated
	event to the mainloop and don't generate one at all if the
	toplevel didn't change. Use the actual window and not the toplevel
	as event window. These changes make the generated crossing events
	match the X11 behavior and fixes issues with e.g. tooltips,
	comboboxes and menus.

	* gdk/quartz/GdkQuartzView.c: Don't update the tracking rect if
	the view has no window, it will be updated as soon as it's put
	inside a window.

	* gdk/quartz/gdkwindow-quartz.c:
	(_gdk_quartz_window_debug_highlight): Make it possible to track
	multiple windows with debug highlighting.
	(show_window_internal): Remove workaround for tooltips and popups
	that is no longer needed with the above changes.

svn path=/trunk/; revision=19951
2008-03-31 13:15:15 +00:00
Richard Hult
9d8b846e80 Bail out early if we can't find a matching window.
2008-03-25  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c:
	(_gdk_quartz_events_trigger_crossing_events): Bail out early if we
	can't find a matching window.

	* gdk/quartz/gdkwindow-quartz.c: (show_window_internal): Add a
	comment, and only trigger an event for non-temp windows, fixes
	problems for tooltips caused by the workarounds for the
	problematic tracking rect API.

svn path=/trunk/; revision=19934
2008-03-25 13:49:03 +00:00
Richard Hult
7279939331 Plug a leak and add a check that we have a toplevel before accessing it.
2008-03-25  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_quartz_process_all_updates): Plug a leak and add a
	check that we have a toplevel before accessing it.

svn path=/trunk/; revision=19933
2008-03-25 13:35:20 +00:00
Richard Hult
1438c5623b Patch from Paul Davis, only flush the toplevel once per update.
2008-03-14  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_quartz_process_all_updates): Patch from Paul Davis,
	only flush the toplevel once per update.

svn path=/trunk/; revision=19871
2008-03-14 10:20:55 +00:00
Richard Hult
62f084869d Implement gdk_window_reparent.
2008-03-11  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: Implement gdk_window_reparent.

svn path=/trunk/; revision=19746
2008-03-11 10:14:47 +00:00
Richard Hult
f14bf84699 Fix performance regression for borderless transparent windows with shadow.
2008-02-27  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c:
	* gdk/quartz/GdkQuartzView.h:
	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_set_decorations):
	Fix performance regression for borderless transparent windows
	with shadow.

svn path=/trunk/; revision=19666
2008-02-27 10:49:22 +00:00
Richard Hult
837aec97bb Fix build on tiger.
2008-02-25  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c
	(_gdk_quartz_events_trigger_crossing_events): Fix build on tiger.

svn path=/trunk/; revision=19644
2008-02-25 12:45:56 +00:00
Richard Hult
6dc6aaeaf1 Prevent hidden windows from being shown without gdk's control when
2008-02-24  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c: Prevent hidden windows from being
	shown without gdk's control when clicking the dock icon.

svn path=/trunk/; revision=19638
2008-02-24 17:51:22 +00:00
Richard Hult
4dbd9d23d7 Use the subtype field for the custom event that is used to wake up the
2008-02-24  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkprivate-quartz.h:
	* gdk/quartz/gdkeventloop-quartz.c: (got_fd_activity), (poll_func):
	Use the subtype field for the custom event that is used to wake up
	the mainloop so we can have other custom event types.

	* gdk/quartz/gdkevents-quartz.c:
	(_gdk_quartz_events_trigger_crossing_events):
	* gdk/quartz/gdkwindow-quartz.c: (show_window_internal): Create
	crossing events after showing a window if necessary, to work
	around problems with the tracking rect API.

svn path=/trunk/; revision=19637
2008-02-24 17:45:29 +00:00
Richard Hult
fbe4c4f8b6 Set the right window level and shadow after recreating the window.
2008-02-20  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_set_decorations): Set
	the right window level and shadow after recreating the window.

	* gdk/quartz/GdkQuartzView.c: (drawRect): Invalidate the shadow if
	necessary after drawing (bug #517338).

svn path=/trunk/; revision=19622
2008-02-20 20:10:30 +00:00
Richard Hult
66fc6a5fb2 Update the position after showing the window since the window manager
2008-02-17  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c: (showAndMakeKey): Update the
	position after showing the window since the window manager might
	not place it where we requested in the first places.

svn path=/trunk/; revision=19605
2008-02-17 10:11:11 +00:00
Richard Hult
8a37bb9364 Clear the toplevel ordering list in all places where the order is
2008-02-17  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (show_window_internal),
	(_gdk_quartz_window_detach_from_parent),
	(_gdk_quartz_window_attach_to_parent), (gdk_window_focus): Clear
	the toplevel ordering list in all places where the order is
	potentially changed. Fixes mouse focus issues for windows with
	a transient parent set.

svn path=/trunk/; revision=19604
2008-02-17 10:01:52 +00:00
Richard Hult
c17e6f1fa2 Highlight the mouse window when event debugging is enabled.
2008-02-17  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c
	(_gdk_quartz_events_update_mouse_window): Highlight the mouse
	window when event debugging is enabled.

svn path=/trunk/; revision=19603
2008-02-17 09:54:57 +00:00
Richard Hult
ccc8afdbf2 Add state to the scroll event (bug #516757, Paul Davis).
2008-02-16  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (create_scroll_event): Add state
	to the scroll event (bug #516757, Paul Davis).

svn path=/trunk/; revision=19598
2008-02-16 09:49:52 +00:00
Richard Hult
2dd5dd6340 Add debugging code to highlight a gdkwindow.
2008-02-16  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkprivate-quartz.h:
	* gdk/quartz/gdkwindow-quartz.c: Add debugging code to highlight a
	gdkwindow.

svn path=/trunk/; revision=19587
2008-02-16 00:27:29 +00:00
Richard Hult
db38664512 Adapt to the change to use frame instead of bounds when resizing windows.
2008-02-15  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c: Adapt to the change to use frame
	instead of bounds when resizing windows.

svn path=/trunk/; revision=19580
2008-02-15 19:06:49 +00:00
Richard Hult
aa8b00a923 Using makeKeyWindow unfortunately doesn't work in all cases, we must use
2008-02-14  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_focus): Using
	makeKeyWindow unfortunately doesn't work in all cases, we must use
	makeKeyAndOrderFront.

svn path=/trunk/; revision=19568
2008-02-14 21:48:41 +00:00
Richard Hult
b9d88ac6e5 Make sure we leave fullscreen mode if the window is hidden.
2008-02-14  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (get_fullscreen_geometry),
	(gdk_window_hide), (gdk_window_fullscreen),
	(gdk_window_unfullscreen): Make sure we leave fullscreen mode if
	the window is hidden.

svn path=/trunk/; revision=19567
2008-02-14 21:41:59 +00:00
Richard Hult
59687608aa Set frame, not bounds when resizing to be consistent and to avoid
2008-02-14  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c: Set frame, not bounds when
	resizing to be consistent and to avoid introducing an internal
	transform in the view.

svn path=/trunk/; revision=19566
2008-02-14 21:34:54 +00:00
Richard Hult
5737e8f78f Coding style fix.
2008-02-14  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkdisplay-quartz.c: (gdk_display_open): Coding style
	fix.

svn path=/trunk/; revision=19565
2008-02-14 15:51:13 +00:00
Richard Hult
8e66480c6c Fix the return value (return number of colors that failed), and handle
2008-02-13  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkcolor-quartz.c: (gdk_colormap_alloc_colors): Fix
	the return value (return number of colors that failed), and handle
	RGBA colormap.
	(gdk_colormap_free_colors): Fix typo in comment.

svn path=/trunk/; revision=19557
2008-02-13 14:20:51 +00:00
Richard Hult
d6098bb41a Ignore the delta from the NSEvent for now, generating multiple scroll
2008-02-08  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (gdk_event_translate): Ignore the
	delta from the NSEvent for now, generating multiple scroll events
	results in a lot of events getting queued up and things get really
	slow.

svn path=/trunk/; revision=19499
2008-02-08 19:08:40 +00:00
Richard Hult
0ca4891ee0 Another attempt at fixing focus issues with undecorated windows. Revert
2008-01-31  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c: Another attempt at fixing focus
	issues with undecorated windows. Revert the change done on
	2008-01-25 and fix it by using the view's bounds instead. The
	bounds will always be up to date when setting up the tracking
	rect, so this should be more robust.

svn path=/trunk/; revision=19445
2008-01-31 14:05:47 +00:00
Richard Hult
7b8050aff2 Don't recreate a tracking rect if it didn't change, fixes focus event
2008-01-25  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c: Don't recreate a tracking rect if it
	didn't change, fixes focus event issues for undecorated windows.

svn path=/trunk/; revision=19402
2008-01-25 13:19:02 +00:00
Richard Hult
41e1be54e8 Fix compile warnings (add missing const and remove unused variables).
2008-01-25  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: Fix compile warnings (add missing
	const and remove unused variables).

svn path=/trunk/; revision=19401
2008-01-25 13:13:05 +00:00
Michael Natterer
8243e3d415 gdk/gdkdisplay.h gdk/gdkdrawable.h gdk/gdkevents.h gdk/gdkpango.h
2008-01-15  Michael Natterer  <mitch@imendio.com>

	* gdk/gdkdisplay.h
	* gdk/gdkdrawable.h
	* gdk/gdkevents.h
	* gdk/gdkpango.h
	* gdk/gdkregion.h
	* gdk/gdkrgb.h
	* gdk/gdkwindow.h: made more struct pointer and array parameters
	const. GDK should now be constified as far as possible without
	breaking source compatibility. Includes some minor cleanup like
	indentation and s/nfoo/n_foo/ (bug #508544).

	* gdk/gdkdisplay.c
	* gdk/gdkdraw.c
	* gdk/gdkevents.c
	* gdk/gdkpango.c
	* gdk/gdkregion-generic.c
	* gdk/gdkrgb.c
	* gdk/directfb/gdkdisplay-directfb.c
	* gdk/directfb/gdkwindow-directfb.c
	* gdk/quartz/gdkdisplay-quartz.c
	* gdk/quartz/gdkwindow-quartz.c
	* gdk/win32/gdkdisplay-win32.c
	* gdk/win32/gdkwindow-win32.c
	* gdk/x11/gdkdisplay-x11.c
	* gdk/x11/gdkwindow-x11.c: changed accordingly.


svn path=/trunk/; revision=19372
2008-01-15 15:32:37 +00:00
Michael Natterer
92f86e0496 gdk/gdk.h gdk/gdkcairo.h gdk/gdkcolor.h gdk/gdkgc.h gdk/gdkinternals.h
2008-01-14  Michael Natterer  <mitch@imendio.com>

	* gdk/gdk.h
	* gdk/gdkcairo.h
	* gdk/gdkcolor.h
	* gdk/gdkgc.h
	* gdk/gdkinternals.h
	* gdk/gdkregion.h
	* gdk/gdkwindow.h: made GdkRectangle*, GdkRegion* and GdkColor*
	parameters const.

	* gdk/gdkcairo.c
	* gdk/gdkgc.c
	* gdk/gdkwindow.c
	* gdk/gdkrectangle.c
	* gdk/gdkpolyreg-generic.c
	* gdk/gdkregion-generic.c
	* gdk/directfb/gdkcolor-directfb.c
	* gdk/directfb/gdkgc-directfb.c
	* gdk/directfb/gdkgeometry-directfb.c
	* gdk/directfb/gdkwindow-directfb.c
	* gdk/quartz/gdkcolor-quartz.c
	* gdk/quartz/gdkgc-quartz.c
	* gdk/quartz/gdkgeometry-quartz.c
	* gdk/quartz/gdkwindow-quartz.c
	* gdk/win32/gdkcolor-win32.c
	* gdk/win32/gdkgc-win32.c
	* gdk/win32/gdkgeometry-win32.c
	* gdk/win32/gdkprivate-win32.h
	* gdk/win32/gdkwindow-win32.c
	* gdk/x11/gdkcolor-x11.c
	* gdk/x11/gdkgc-x11.c
	* gdk/x11/gdkgeometry-x11.c
	* gdk/x11/gdkmain-x11.c
	* gdk/x11/gdkprivate-x11.h
	* gdk/x11/gdkwindow-x11.c: changed accordingly.

	* gdk/gdkpolyreg-generic.c: uncruftify to have proper function
	headers.


svn path=/trunk/; revision=19365
2008-01-14 14:02:12 +00:00
Richard Hult
adad4cf884 Move the tracking rect workaround from here...
2008-01-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (show_window_internal),
	(gdk_window_hide), (move_resize_window_internal): Move the
	tracking rect workaround from here...

	* gdk/quartz/GdkQuartzWindow.c:
	* gdk/quartz/GdkQuartzWindow.h: ...to here, and ignore window
	movements during showing/hiding operations. Fixes bug #508516.

svn path=/trunk/; revision=19342
2008-01-10 19:35:53 +00:00
Richard Hult
a28c785bcd Plug leak of destroyed subviews, fixes bug #504753.
2007-12-21  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_destroy):
	Plug leak of destroyed subviews, fixes bug #504753.

svn path=/trunk/; revision=19218
2007-12-21 20:21:05 +00:00
Richard Hult
14ae647a37 Make manual resizing smoother by processing events after changing the
2007-12-20  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c:
	* gdk/quartz/GdkQuartzWindow.h: Make manual resizing smoother by
	processing events after changing the size.

svn path=/trunk/; revision=19206
2007-12-20 13:25:37 +00:00
Michael Natterer
64c73a61b7 Remove all .cvsignore files.
svn path=/trunk/; revision=19169
2007-12-13 11:18:45 +00:00
Matthias Clasen
1397a9fd7d Implement GAppLaunchContext in gdk, providing startup notification.
2007-12-12  Matthias Clasen  <mclasen@redhat.com>

        * gdk/gdkapplaunchcontext.[hc]: Implement GAppLaunchContext
        in gdk, providing startup notification.  (#503203)

        * gdk/x11/gdkapplaunchcontext-x11.c:
        * gdk/win32/gdkapplaunchcontext-win32.c:
        * gdk/quartz/gdkapplaunchcontext-quartz.c:
        * gdk/directfb/gdkapplaunchcontext-directfb.c: Backend-specific
        parts. All but X11 are just empty stubs for now.

        * gdk/gdk.symbols:
        * gdk/gdkinternals.h:
        * gdk/Makefile.am:
        * gdk/x11/Makefile.am:
        * gdk/win32/Makefile.am:
        * gdk/quartz/Makefile.am:
        * gdk/directfb/Makefile.am: Necessary glue.



svn path=/trunk/; revision=19165
2007-12-13 05:16:33 +00:00
Richard Hult
8082fbc437 Install backend specific header (bug #405915). Also add a getter for the
2007-12-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/Makefile.am:
	* gdk/quartz/gdkquartz.h:
	* gdk/quartz/gdkwindow-quartz.c: Install backend specific
	header (bug #405915). Also add a getter for the toplevel nswindow.

svn path=/trunk/; revision=19151
2007-12-10 20:44:23 +00:00
Richard Hult
d7f3ab0569 Replace the autorelease pools used for each drawing context and in
2007-12-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkdrawable-quartz.c:
	(gdk_quartz_drawable_get_context),
	(gdk_quartz_drawable_release_context):
	* gdk/quartz/gdkeventloop-quartz.c: (gdk_event_prepare),
	(gdk_event_check), (gdk_event_dispatch), (poll_func):
	* gdk/quartz/gdkwindow-quartz.h: Replace the autorelease pools
	used for each drawing context and in prepare, dispatch and poll
	with one that exists across each main loop iteration. Fixes leaks
	on leopard and protects against future leaks introduce when the
	underlying system changes again (bug #492977).

svn path=/trunk/; revision=19149
2007-12-10 20:22:08 +00:00
Richard Hult
f4baa51f49 Fix the check for no changes to position and size.
2007-12-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (move_resize_window_internal):
	Fix the check for no changes to position and size.

svn path=/trunk/; revision=19147
2007-12-10 19:49:52 +00:00
Richard Hult
7639a61116 Ignore drawRect calls with zero sized areas at (0, 0), patch from Paul
2007-12-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c: Ignore drawRect calls with zero
	sized areas at (0, 0), patch from Paul Davis.

svn path=/trunk/; revision=19145
2007-12-10 19:38:47 +00:00
Richard Hult
fd8c2c01a9 Fix a bug where we could end up trying to handle the same event more than
2007-12-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkprivate-quartz.h: 
	* gdk/quartz/gdkeventloop-quartz.c:
	(_gdk_quartz_event_loop_get_pending),
	(_gdk_quartz_event_loop_check_pending),
	(_gdk_quartz_event_loop_release_event), (gdk_event_prepare),
	(gdk_event_check), (gdk_event_dispatch):
	* gdk/quartz/gdkevents-quartz.c: (gdk_events_pending)
	(_gdk_events_queue): Fix a bug where we could end up trying to
	handle the same event more than once. Based on patch from Paul
	Davis.

svn path=/trunk/; revision=19143
2007-12-10 19:00:23 +00:00
Richard Hult
fd069852e0 Fix warning when switching spaces in leopard.
2007-12-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c:
	(synthesize_crossing_events_for_ns_event): Fix warning when
	switching spaces in leopard.

svn path=/trunk/; revision=19119
2007-12-06 12:39:01 +00:00
Richard Hult
4a82f84a28 Fully initialize the root window, fixes bug #501583.
2007-12-04  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_init):
	Fully initialize the root window, fixes bug #501583.

svn path=/trunk/; revision=19109
2007-12-04 19:08:11 +00:00
Richard Hult
4a1478d6d7 Don't crash when a parent relative bg pixmap is set, and no parent has a
2007-12-03  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_impl_quartz_begin_paint_region): Don't crash when a
	parent relative bg pixmap is set, and no parent has a bg
	pixmap. Fixes bug #500804.

svn path=/trunk/; revision=19100
2007-12-03 19:34:30 +00:00
15:39:40 Tim Janik
2dc08ada49 call g_test_init() from gtk_test_init().
2007-11-22 15:39:40  Tim Janik  <timj@imendio.com>

        * gtk/gtktestutils.c: call g_test_init() from gtk_test_init().

        * gtk/tests/testing.c: use g_test_add_func() to register tests and use
	g_test_run() to run the tests to integrate with the testing framework.

        * gtk/tests/Makefile.am: removed exemplary testing rules.

        * Makefile.am, gtk/tests/Makefile.am, gtk/Makefile.am:
        * gtk/xdgmime/Makefile.am, gtk/theme-bits/Makefile.am:
        * tests/Makefile.am, docs/reference/gdk-pixbuf/Makefile.am:
        * docs/reference/gdk/Makefile.am, docs/reference/gtk/Makefile.am:
        * docs/reference/Makefile.am, docs/tools/Makefile.am:
        * docs/tutorial/Makefile.am, docs/faq/Makefile.am, docs/Makefile.am:
        * gdk-pixbuf/pixops/Makefile.am, gdk-pixbuf/Makefile.am:
        * demos/gtk-demo/Makefile.am, demos/Makefile.am:
        * modules/input/Makefile.am, modules/printbackends/file/Makefile.am:
        * modules/printbackends/test/Makefile.am, modules/printbackends/Makefile.am:
        * modules/printbackends/cups/Makefile.am, modules/printbackends/lpr/Makefile.am:
        * modules/engines/ms-windows/Theme/gtk-2.0/Makefile.am:
        * modules/engines/ms-windows/Theme/Makefile.am:
        * modules/engines/ms-windows/Makefile.am:
        * modules/engines/Makefile.am,  modules/engines/pixbuf/Makefile.am:
        * modules/Makefile.am, m4macros/Makefile.am, perf/Makefile.am:
        * contrib/Makefile.am, contrib/gdk-pixbuf-xlib/Makefile.am:
        * gdk/directfb/Makefile.am, gdk/linux-fb/Makefile.am:
        * gdk/quartz/Makefile.am, gdk/win32/rc/Makefile.am:
        * gdk/win32/Makefile.am, gdk/x11/Makefile.am, gdk/Makefile.am:
	include $(top_srcdir)/Makefile.decl, adapted EXTRA_DIST assignments.



svn path=/trunk/; revision=19033
2007-11-22 14:38:26 +00:00
Richard Hult
0d81a39f5b * gdk/quartz/gdktestutils-quartz.c: Add stubs for the testing functions to
2007-11-21  Richard Hult  <richard@imendio.com>

	* gdk/quartz/Makefile.am: * gdk/quartz/gdktestutils-quartz.c: Add
	stubs for the testing functions to fix the build.

svn path=/trunk/; revision=19023
2007-11-21 11:29:03 +00:00
Sven Herzberg
50f412114b Reviewed by Richard:
2007-11-12  Sven Herzberg  <herzi@imendio.com>

	Reviewed by Richard:

	* gdk/quartz/gdkquartz.h: include <gdk/gdkprivate.h> with angle
	brackets and not with quotation marks


svn path=/trunk/; revision=18987
2007-11-13 21:05:09 +00:00
Richard Hult
821432ac4e Make shift tab work with unicode layouts (e.g. all Leopard layouts), fixes
2007-11-04  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkkeys-quartz.c: (maybe_update_keymap): Make shift
	tab work with unicode layouts (e.g. all Leopard layouts), fixes
	bug #493404.

svn path=/trunk/; revision=18967
2007-11-04 18:11:22 +00:00
Richard Hult
e518a8d6e8 Make the grab breaking on window move work on Leopard (as well as Tiger)
2007-11-03  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c:
	* gdk/quartz/GdkQuartzWindow.h: Make the grab breaking on window
	move work on Leopard (as well as Tiger) by ignoring which mouse
	button is pressed.

svn path=/trunk/; revision=18964
2007-11-03 09:52:34 +00:00
Richard Hult
01ce77f540 Calculate the frame rect correctly when resizing toplevels, fixes bug
2007-11-03  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (move_resize_window_internal):
	Calculate the frame rect correctly when resizing toplevels, fixes
	bug #492209.

svn path=/trunk/; revision=18963
2007-11-03 09:45:25 +00:00
Richard Hult
5cb6747339 Redo the fix for bug #492117, by adding a getter for the private drag
2007-11-01  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c:
	* gdk/quartz/GdkQuartzWindow.h:
	* gdk/quartz/gdkdnd-quartz.c:
	* gdk/quartz/gdkquartz.h:
	* gtk/gtkdnd-quartz.c: Redo the fix for bug #492117, by adding a
	getter for the private drag context info so we don't need to
	expose so much in the public quartz header file.

svn path=/trunk/; revision=18959
2007-11-01 08:45:30 +00:00
Richard Hult
c6c14a3abd Fix build, bug #492117.
2007-11-01  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.h: Fix build, bug #492117.

svn path=/trunk/; revision=18958
2007-11-01 07:29:55 +00:00
Richard Hult
568228dec3 Implement manual resize and move.
2007-10-31  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c:
	* gdk/quartz/GdkQuartzWindow.h:
	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_begin_resize_drag),
	(gdk_window_begin_move_drag): Implement manual resize and move.

svn path=/trunk/; revision=18955
2007-10-31 11:01:56 +00:00
Richard Hult
75aabd416d Setup autorelease pool, plugs occasional leak on leopard.
2007-10-31  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_impl_quartz_process_updates): Setup autorelease pool,
	plugs occasional leak on leopard.

svn path=/trunk/; revision=18954
2007-10-31 10:14:53 +00:00
Richard Hult
89230024e6 Fix build warning (trackingRect should be 0, not nil).
2007-10-31  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c: Fix build warning (trackingRect should be
	0, not nil).

svn path=/trunk/; revision=18953
2007-10-31 10:07:47 +00:00
Richard Hult
1907d27d8c Use an autorelease pool.
2007-10-24  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (update_toplevel_order): Use an
	autorelease pool.

svn path=/trunk/; revision=18946
2007-10-24 12:56:28 +00:00
Richard Hult
c42c7be050 Maintain a list for the stacking order of windows. Implement lower and
2007-10-23  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_raise, gdk_window_lower, gdk_window_new,
	_gdk_windowing_window_destroy): Maintain a list for the stacking
	order of windows. Implement lower and raise for child windows. The
	list for toplevels is created on demand, and cleared when a window
	gets or resigns main status and when new windows are created.
	(find_child_window_helper): Use the sorted list to go through
	windows from top to bottom. Take any titlebar in consideration for
	toplevels, to stop events from sometimes punching through (bugs
	#473813 and #489370).

svn path=/trunk/; revision=18940
2007-10-23 13:06:31 +00:00
Richard Hult
aec8b14fc8 Implement, patch from Paul Davis.
2007-10-08  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_focus): Implement,
	patch from Paul Davis.

svn path=/trunk/; revision=18897
2007-10-08 17:50:26 +00:00
Richard Hult
ba05b36563 Ignore if there are no changes, fixes bug #467269. Patch from Jonathan
2007-10-08  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (move_resize_window_internal):
	Ignore if there are no changes, fixes bug #467269. Patch from
	Jonathan Dempsey.

svn path=/trunk/; revision=18896
2007-10-08 17:37:44 +00:00
Richard Hult
7d9ac29c93 Patch from Paul Davis to implement this in terms of scrollRect, fixes bug
2007-10-08  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (move_resize_window_internal):
	Patch from Paul Davis to implement this in terms of scrollRect,
	fixes bug #478377.

svn path=/trunk/; revision=18895
2007-10-08 17:30:02 +00:00
Richard Hult
7d66affd26 Don't do anything while in fullscreen mode. (gdk_window_set_decorations):
2007-10-02  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_move),
	(gdk_window_resize): Don't do anything while in fullscreen mode.
	(gdk_window_set_decorations): Update the size of the window after
	showing/hiding the title bar so the size of the content area
	doesn't change.
	(gdk_window_get_decorations): NSBorderlessWindowMask is 0, so
	don't try to check it as a bit being set.
	(gdk_window_fullscreen), (gdk_window_unfullscreen): Implement.

svn path=/trunk/; revision=18875
2007-10-02 17:51:06 +00:00
Richard Hult
8b6f388cbc Patch from William Pitcock: Ungrab windows if necessary when they are
2007-09-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c (_gdk_windowing_window_destroy):
	Patch from William Pitcock: Ungrab windows if necessary when they
	are destroyed, fixes bug #473441.

svn path=/trunk/; revision=18727
2007-09-06 08:16:40 +00:00
Richard Hult
3b2e8eacf1 Implement those. Based on patch from Stefan Gehn, bug #459459.
2007-08-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_set_decorations,
	gdk_window_get_decorations): Implement those. Based on patch from
	Stefan Gehn, bug #459459.

svn path=/trunk/; revision=18704
2007-08-30 09:01:12 +00:00
Richard Hult
ecfa539307 Patch from Stefan Gehn to implement those, bug #459667.
2007-08-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_set_keep_above,
	gdk_window_set_keep_below): Patch from Stefan Gehn to implement
	those, bug #459667.

svn path=/trunk/; revision=18703
2007-08-30 08:21:32 +00:00
Richard Hult
af1b34d494 Patch from Stefan Gehn to implement copying from a pixmap, bug #348493.
2007-08-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkimage-quartz.c: (_gdk_quartz_image_copy_to_image):
	Patch from Stefan Gehn to implement copying from a pixmap, bug
	#348493.

svn path=/trunk/; revision=18702
2007-08-30 07:57:25 +00:00
Richard Hult
b0b47c9b49 Implement, fixes bug #405868. Based on patch from metz81@web.de.
2007-07-31  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_get_geometry):
	Implement, fixes bug #405868. Based on patch from metz81@web.de.

svn path=/trunk/; revision=18560
2007-07-31 19:25:28 +00:00
Richard Hult
032b0aab6b Ref the cursor in the cached case.
2007-07-18  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkcursor-quartz.c (gdk_cursor_new_for_display): Ref
	the cursor in the cached case.

svn path=/trunk/; revision=18490
2007-07-18 09:52:25 +00:00
Richard Hult
eb52c4f1f8 Plug leak.
2007-07-14  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c:
	(_gdk_quartz_events_update_cursor): Plug leak.

svn path=/trunk/; revision=18468
2007-07-14 12:14:36 +00:00
Richard Hult
ed82448b9a Move from here... ...to here. (_gdk_windowing_window_destroy): Update the
2007-07-13  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkprivate-quartz.h:
	* gdk/quartz/gdkevents-quartz.c: (gdk_window_is_ancestor): Move
	from here...
	* gdk/quartz/gdkwindow-quartz.c: (_gdk_quartz_window_is_ancestor):
	...to here.
	(_gdk_windowing_window_destroy): Update the mouse window if the
	destroyed window is an ancestor of the current one, not only if
	they are the same.
	(gdk_window_hide): Update the mouse window here too.

svn path=/trunk/; revision=18467
2007-07-13 19:09:10 +00:00
Richard Hult
7f66d205e8 Add stubs.
2007-07-13  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkcolor-quartz.c: (gdk_colors_alloc),
	(gdk_colors_free): Add stubs.

svn path=/trunk/; revision=18466
2007-07-13 19:02:07 +00:00
Richard Hult
2048ec5925 Add hack to workaround the broken tracking rect implementation in quartz,
2007-07-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_new),
	(show_window_internal), (gdk_window_show), (gdk_window_hide): Add
	hack to workaround the broken tracking rect implementation in
	quartz, that doesn't seem to produce events if the window shows up
	under the mouse.

svn path=/trunk/; revision=18440
2007-07-10 19:18:59 +00:00
Richard Hult
8b9cbdb2b6 ]) ([GdkQuartzWindow -windowDidBecomeMain:]): Keep a stack of main windows
2007-07-07  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c ([GdkQuartzWindow -windowDidResignMain:]) 
	([GdkQuartzWindow -windowDidBecomeMain:]): 
	* gdk/quartz/gdkwindow-quartz.c (_gdk_quartz_window_did_resign_main)
	(_gdk_quartz_window_did_become_main, gdk_window_hide)
	(_gdk_windowing_window_destroy): Keep a stack of main windows and
	select the most recent one when hiding/closing the current one.

svn path=/trunk/; revision=18396
2007-07-07 16:19:40 +00:00
Richard Hult
5a4ed10fae Fix (de)miniaturizing transient windows, by (un)setting the parent before
2007-07-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkprivate-quartz.h:
	* gdk/quartz/gdkwindow-quartz.c:
	* gdk/quartz/GdkQuartzWindow.c: Fix (de)miniaturizing transient
	windows, by (un)setting the parent before and after miniaturizing.

svn path=/trunk/; revision=18388
2007-07-06 19:49:42 +00:00
Richard Hult
9ba84faa5a Add stub.
2007-07-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkkeys-quartz.c (gdk_keymap_have_bidi_layouts): Add
	stub.

svn path=/trunk/; revision=18387
2007-07-06 18:46:39 +00:00
Richard Hult
a07742849e Keep track of button state and include it in key events. Needed for gimp's
2007-07-03  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: Keep track of button state and
	include it in key events. Needed for gimp's selection tools and
	fixes bug #453411.

svn path=/trunk/; revision=18369
2007-07-03 20:31:59 +00:00
Richard Hult
eb3dcdf094 Include modifier state in key release events. Fixes bug #453413.
2007-07-03  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (create_key_event): Include
	modifier state in key release events. Fixes bug #453413.

svn path=/trunk/; revision=18367
2007-07-03 18:49:09 +00:00
Richard Hult
460833b2bc Continue the event handling cleanup:
2007-06-30  Richard Hult  <richard@imendio.com>

	Continue the event handling cleanup:

	* gdk/quartz/gdkevents-quartz.c: (synthesize_crossing_events):
	Don't do anything if the old and new windows are the same,
	simplifies the callers.
	(find_mouse_window_for_ns_event): Always return a window (root
	instead of NULL). Remove unneccessary check for the current mouse
	window being NULL, that was a workaround for a now fixed
	bug. Convert to root coordinates if we don't find a window.
	(synthesize_crossing_events_for_ns_event): Simplify and add
	comment.

svn path=/trunk/; revision=18316
2007-06-30 21:50:06 +00:00
Richard Hult
ee283b058a Simplify (get the origin directly from the window).
2007-06-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c:
	(synthesize_crossing_events_for_ns_event): Simplify (get the
	origin directly from the window).

svn path=/trunk/; revision=18315
2007-06-30 19:55:20 +00:00
Richard Hult
a598c633b5 No need to special case the root window now that it has the right size.
2007-06-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (create_crossing_event),
	(synthesize_crossing_events), (find_mouse_window_for_ns_event),
	(synthesize_crossing_events_for_ns_event): No need to special case
	the root window now that it has the right size.

svn path=/trunk/; revision=18314
2007-06-30 19:50:31 +00:00
Richard Hult
95f61d98f3 Improve comments in those files. Add a debugging helper to print out
2007-06-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	* gdk/quartz/gdkevents-quartz.c: Improve comments in those
	files. Add a debugging helper to print out information about a
	window.

svn path=/trunk/; revision=18313
2007-06-30 19:39:45 +00:00
Richard Hult
d793d416da Make this work properly for the root window.
2007-06-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_get_origin): Make
	this work properly for the root window.

svn path=/trunk/; revision=18311
2007-06-30 09:12:56 +00:00
Richard Hult
8fd51a225e Improve the tracking rect updating: - No need to override setFrame. - Use
2007-06-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c: Improve the tracking rect updating:
	- No need to override setFrame.
	- Use our own size instead of the bounds from for the view as it's
	not always updated before the tracking rect.
	- Only reset the tracking rect if the new window is nil).
	
	* gdk/quartz/GdkQuartzWindow.c: Update the bounds of the content
	view when the window size changes.

svn path=/trunk/; revision=18309
2007-06-30 08:56:50 +00:00
Richard Hult
9d66399094 Don't steal menu events while the keyboard is grabbed.
2007-06-25  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (gdk_event_translate): Don't steal
	menu events while the keyboard is grabbed.

svn path=/trunk/; revision=18231
2007-06-25 19:54:04 +00:00
Richard Hult
b4e0b5339b Fallback to X cursors for the ones that OS X doesn't provide. Fixes bug
2007-06-25  Richard Hult  <richard@imendio.com>

	* gdk/quartz/Makefile.am:
	* gdk/quartz/xcursors.h:
	* gdk/quartz/gdkcursor-quartz.c: Fallback to X cursors for the
	ones that OS X doesn't provide. Fixes bug #327912.

svn path=/trunk/; revision=18229
2007-06-25 19:43:22 +00:00
Johan Dahlin
f43329fcd6 Fix a typo in a comment
* gdk/quartz/GdkQuartzView.c ([GdkQuartzView -updateTrackingRect]): Fix a typo
    in a comment


svn path=/trunk/; revision=18199
2007-06-19 22:42:51 +00:00
Richard Hult
0932e4be38 Don't create or update the tracking rect in the window, move it to the
2007-06-20  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c (gdk_window_new): 
	* gdk/quartz/GdkQuartzWindow.c (windowDidResize): Don't create or
	update the tracking rect in the window, move it to the view where
	it belongs.

	* gdk/quartz/GdkQuartzView.c (updateTrackingRect)
	(viewDidMoveToWindow, viewWillMoveToWindow)
	(setFrame, setBounds): Create and update the tracking rect here.

svn path=/trunk/; revision=18197
2007-06-19 22:09:56 +00:00
Richard Hult
decff53495 Forward Mac OS menu shortcut events to the right menu.
2007-06-17  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (gdk_event_translate): Forward
	Mac OS menu shortcut events to the right menu.

svn path=/trunk/; revision=18178
2007-06-17 20:36:26 +00:00
Richard Hult
33ec37ee9e More refactoring of the event handling: Extract synthesizing of crossing
2007-06-17  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (gdk_event_translate)
	(synthesize_crossing_events_for_ns_event)
	(find_window_for_ns_event): More refactoring of the event
	handling: Extract synthesizing of crossing events from
	find_window_for_ns_event so that it doesn't have any side effects,
	and call the new function from gdk_event_translate instead.

svn path=/trunk/; revision=18176
2007-06-17 18:41:36 +00:00
Richard Hult
cd03a9e977 Remove pointless logging for unhandled events. Activate the application on
2007-06-16  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (find_window_for_ns_event),
	(gdk_event_translate): Remove pointless logging for unhandled events.
	Activate the application on non-left clicks, since that is only done
	for left clicks and we depend on it to get events routed properly for
	context menus and other popup windows.

svn path=/trunk/; revision=18175
2007-06-17 14:29:21 +00:00
Richard Hult
e206f6dd3a Ignore events and break any grabs while the window is being dragged.
2007-06-16  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (gdk_event_translate): Ignore
	events and break any grabs while the window is being dragged.

svn path=/trunk/; revision=18165
2007-06-16 21:39:42 +00:00
Richard Hult
526fecc2f9 Defer setting the parent until the window is shown, otherwise it gets
2007-06-16  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_set_transient_for):
	Defer setting the parent until the window is shown, otherwise it
	gets unconditionally shown here.

svn path=/trunk/; revision=18164
2007-06-16 21:21:52 +00:00
Richard Hult
2902d87a22 Move the checks for no window or a non-GDK window from here...
2007-06-16  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (find_mouse_window_for_ns_event):
	Move the checks for no window or a non-GDK window from here...
	(gdk_event_translate): ...to here. Reorder the code so that we
	detect the cases where we need to break grabs before bailing
	out.

svn path=/trunk/; revision=18161
2007-06-16 16:16:43 +00:00
Richard Hult
4fd1fb4d9b Break out into a separate function.
2007-06-16  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (gdk_event_translate) 
	(break_all_grabs): Break out into a separate function.

svn path=/trunk/; revision=18160
2007-06-16 15:43:23 +00:00
Richard Hult
48a45ff672 Implement, to be used to detect if the window is currently being moved
2007-06-16  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c: (isInMove): Implement, to be used
	to detect if the window is currently being moved with the mouse.

svn path=/trunk/; revision=18159
2007-06-16 15:41:27 +00:00
Richard Hult
f55096fc74 Don't set parent/child relationship for tooltip windows since that moves
2007-06-16  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c (gdk_window_set_transient_for):
	Don't set parent/child relationship for tooltip windows since that
	moves the parent window to the front, due to the tooltip having a
	high window level.

svn path=/trunk/; revision=18158
2007-06-16 15:38:33 +00:00
Michael Natterer
f7ba83c613 fix angles by flipping the coordinate system back to its original y
2007-06-10  Michael Natterer  <mitch@imendio.com>

	* gdk/quartz/gdkdrawable-quartz.c (gdk_quartz_draw_arc): fix
	angles by flipping the coordinate system back to its original y
	direction. The implementtion is still broken for ellipses, will
	have to simulate them using bezier curves.


svn path=/trunk/; revision=18095
2007-06-10 16:29:31 +00:00
Michael Natterer
6c3637ea3e add utility function gdk_quartz_fix_cap_not_last_line() which fixes the
2007-06-08  Michael Natterer  <mitch@imendio.com>

	* gdk/quartz/gdkdrawable-quartz.c: add utility function
	gdk_quartz_fix_cap_not_last_line() which fixes the coordinates for
	GDK_CAP_NOT_LAST lines at least for horizontal and vertical lines.

	(gdk_quartz_draw_segments)
	(gdk_quartz_draw_lines): use it here.


svn path=/trunk/; revision=18080
2007-06-07 22:26:27 +00:00
Michael Natterer
dde0d5ffa5 add gdk_gc_quartz_init() and set some values to the defaults used by X11.
2007-06-07  Michael Natterer  <mitch@imendio.com>

	* gdk/quartz/gdkgc-quartz.c: add gdk_gc_quartz_init() and set
	some values to the defaults used by X11.

	(gdk_quartz_gc_set_values): really set cap_style when
	GDK_GC_CAP_STYLE is in the mask, not line_style.


svn path=/trunk/; revision=18079
2007-06-07 21:22:15 +00:00
Michael Natterer
88a05af64f use the same code for GDK_XOR as for GDK_INVERT. Xor with an arbitrary
2007-06-07  Michael Natterer  <mitch@imendio.com>

	* gdk/quartz/gdkgc-quartz.c (_gdk_quartz_gc_update_cg_context):
	use the same code for GDK_XOR as for GDK_INVERT. Xor with an
	arbitrary color is impossible to implement with quartz.


svn path=/trunk/; revision=18077
2007-06-07 18:25:15 +00:00
Richard Hult
ec32b2aaa3 Rework how we get the event window: don't get the window from the NSEvent,
2007-06-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (find_mouse_window_for_ns_event)
	(find_window_for_ns_event): Rework how we get the event window:
	don't get the window from the NSEvent, always use the mouse window
	instead. Fix mouse window tracking by only using MouseExited for
	non-gdk windows, and to always use the NSEvent window to get the
	right gdk window in MouseEntered. Add comments to the code. Fixes bug
	#350460.

svn path=/trunk/; revision=18065
2007-06-06 18:42:07 +00:00
Richard Hult
ed8d0fc691 Don't do anything if the two windows are the same.
2007-06-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (get_converted_window_coordinates):
	Don't do anything if the two windows are the same.
	(find_window_for_ns_event): Translate coordinates to be relative
	the grab window when appropriate.

svn path=/trunk/; revision=18064
2007-06-06 16:23:50 +00:00
Richard Hult
726c23e20f Ignore if the old and new windows are the same.
2007-06-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c
	(_gdk_quartz_events_update_mouse_window): Ignore if the old and new
	windows are the same.

svn path=/trunk/; revision=18049
2007-06-06 09:06:59 +00:00
Richard Hult
fb6a0314fd Update comment to be more clear and print a warning if we try to create a
2007-06-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (synthesize_crossing_events):
	Update comment to be more clear and print a warning if we try to
	create a crossing event without knowing what the current mouse
	window is, to help track down focus bugs.

	* gdk/quartz/gdkevents-quartz.c
	(_gdk_quartz_events_update_focus_window): Fix indentation.

svn path=/trunk/; revision=18047
2007-06-06 08:29:20 +00:00
Richard Hult
949a86729d Don't let temp windows become key window.
2007-06-05  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c: Don't let temp windows become key
	window.

svn path=/trunk/; revision=18046
2007-06-06 08:21:14 +00:00
Richard Hult
3337ee8fa2 Don't try to make temp windows key windows, fixes problem introduced
2007-06-04  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(show_window_internal): Don't try to make temp windows key
	windows, fixes problem introduced below.

svn path=/trunk/; revision=18040
2007-06-04 21:25:42 +00:00
Richard Hult
72469142a0 * gdk/quartz/gdkwindow-quartz.c: Implement simple versions of
2007-06-04  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c: * gdk/quartz/gdkwindow-quartz.c:
	Implement simple versions of gdk_window_set_accept_focus and
	gdk_window_set_focus_on_map.

svn path=/trunk/; revision=18038
2007-06-04 20:45:30 +00:00
Richard Hult
60be3caaaa Implement.
2007-06-04  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_raise),
	(gdk_window_raise): Implement.

svn path=/trunk/; revision=18037
2007-06-04 20:08:31 +00:00
Richard Hult
05e560661f Implement gdk_window_set_transient_for.
2007-06-04  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	* gdk/quartz/gdkwindow-quartz.h: Implement 
	gdk_window_set_transient_for.

svn path=/trunk/; revision=18036
2007-06-04 20:02:58 +00:00
Richard Hult
9daa2554b5 Set the key modifier state.
2007-06-03  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (create_crossing_event): Set the key
	modifier state.

svn path=/trunk/; revision=18017
2007-06-03 18:51:16 +00:00
Richard Hult
975e7683b8 Make pointer grab emulation work a bit better:
2007-06-03  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: Make pointer grab emulation work a bit
	better:
	(gdk_display_pointer_is_grabbed): Do what the docs say and don't
	consider implicit grabs here.
	(gdk_pointer_grab): Overriding a grab by the same app should always be
	succesful.
	(gdk_event_translate): Implicit grabs should not be owner events.

svn path=/trunk/; revision=18016
2007-06-03 18:48:47 +00:00
Richard Hult
1c413a691c Fix the coordinates in crossing events so they are relative to the right
2007-06-01  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c:
	(get_converted_window_coordinates), (create_crossing_event): Fix the
	coordinates in crossing events so they are relative to the right
	window.

svn path=/trunk/; revision=18007
2007-06-01 21:46:45 +00:00
Richard Hult
be540c29ac Make function naming consistent for the various functions that retrieve
2007-06-01  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.[ch]: Make function naming
	consistent for the various functions that retrieve data from an
	event.

	* gdk/quartz/gdkprivate-quartz.h: 
	* gdk/quartz/gdkwindow-quartz.[ch]: Remove the now unused
	_gdk_quartz_window_find_child_by_point() function.

svn path=/trunk/; revision=18006
2007-06-01 21:03:34 +00:00
Matthias Clasen
885ba04648 Add support for composited child windows. (#412882, Ryan Lortie)
2007-06-01  Matthias Clasen  <mclasen@redhat.com>

        Add support for composited child windows.  (#412882, Ryan Lortie)

        * gdk/gdk.symbols:
        * gdk/gdkdisplay.h:
        * gdk/gdkinternals.h:
        * gdk/gdkwindow.[hc]: Add gdk_display_supports_composite() and
        gdk_window_set_composited().

        * gdk/x11/gdkevents-x11.c:
        * gdk/x11/gdkdisplay-x11.[hc]:
        * gdk/x11/gdkwindow-x11.[hc]: X11 implementation.

        * gdk/win32/gdkdisplay-win32.c:
        * gdk/win32/gdkwindow-win32.c: Dummy win32 implementration.

        * gdk/quartz/gdkdisplay-quartz.c:
        * gdk/quartz/gdkwindow-quartz.c: Dummy Quartz implementation.

        * gdk/directfb/gdkdisplay-directfb.c:
        * gdk/directfb/gdkwindow-directfb.c: Dummy DirectFB implementation.

        * tests/testgtk.c: Add a "composited window" test.


svn path=/trunk/; revision=18004
2007-06-01 12:16:12 +00:00
Richard Hult
71cf54aef3 Add this function, bug #438440.
2007-05-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkselection-quartz.c (gdk_free_text_list): Add this
	function, bug #438440.

svn path=/trunk/; revision=17991
2007-05-30 17:20:26 +00:00
Richard Hult
f2f1be4e4f Break out code that was repeated into separate functions and call them
2007-05-28  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (get_child_coordinates_from_ancestor)
	(get_ancestor_coordinates_from_child): Break out code that was
	repeated into separate functions and call them instead.
	(find_window_for_mouse_nsevent): Break out this from
	find_window_for_nsevent to make the code clearer.
	(find_window_for_nsevent): Use the above and fix the returned
	coordinates in the process so that they are always relative the
	found window, both for the normal case and during grabs. Still
	needs fixing for the case where we get nsevents for a window other
	than than grab window during grabs.

svn path=/trunk/; revision=17971
2007-05-28 21:11:55 +00:00
Richard Hult
d36c24a8b9 Fix typo, we need both press and release in the mask to trigger implicit
2007-05-28  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (gdk_event_translate): Fix typo,
 	we need both press and release in the mask to trigger implicit
	grabs.

svn path=/trunk/; revision=17970
2007-05-28 20:55:26 +00:00
Richard Hult
93948cdb4a Reset all the grab state, to help debugging. (gdk_event_translate): Use
2007-05-28  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c (pointer_ungrab_internal): Reset
	all the grab state, to help debugging.
	(gdk_event_translate): Use pointer_ungrab_internal instead of
	duplicating the code here.

svn path=/trunk/; revision=17969
2007-05-28 20:51:11 +00:00
Richard Hult
6ecae9e5eb Refactored version of _gdk_quartz_window_find_child_by_point, that doesn't
2007-05-28  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkprivate-quartz.h:
	* gdk/quartz/gdkwindow-quartz.c (find_child_window_helper)
	(_gdk_quartz_window_find_child): Refactored version of
	_gdk_quartz_window_find_child_by_point, that doesn't return any
	coordinates as the users of this function already have the
	coordinates and need to translate them differently.
	(_gdk_windowing_window_get_pointer): Fixup coordinate translation.
	(_gdk_windowing_window_at_pointer): Likewise.

svn path=/trunk/; revision=17968
2007-05-28 20:42:51 +00:00
Richard Hult
52709dff9a Don't traverse beyond the toplevel of the passed in window.
2007-05-28  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c
	(find_window_interested_in_event_mask): Don't traverse beyond the
	toplevel of the passed in window.

svn path=/trunk/; revision=17967
2007-05-28 20:24:59 +00:00
Richard Hult
63228c672f Set a size for the root window.
2007-05-28  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_init): Set
	a size for the root window.

svn path=/trunk/; revision=17966
2007-05-28 20:22:26 +00:00
Richard Hult
0057d19453 Add comments about what various coordinates are relative to.
2007-05-28  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: Add comments about what various
	coordinates are relative to.

svn path=/trunk/; revision=17965
2007-05-28 20:20:46 +00:00
Richard Hult
caab6d9737 Implement copying from a window, part of bug #348493.
2007-05-25  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkimage-quartz.c: (_gdk_quartz_image_copy_to_image):
	Implement copying from a window, part of bug #348493.

svn path=/trunk/; revision=17917
2007-05-25 19:47:23 +00:00
Richard Hult
e8071ea7c9 Set the resolution.
2007-05-21  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkdisplay-quartz.c: (gdk_display_open): Set the
	resolution.
	
	* gdk/quartz/gdkscreen-quartz.c: Use the autorelease pool macros.

svn path=/trunk/; revision=17887
2007-05-21 19:40:43 +00:00
Richard Hult
d9dedc36ec Fix bugs #428733 and #433301. Turns out the lockFocus logic was flawed,
007-05-05  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkdrawable-quartz.c:
	(gdk_quartz_drawable_get_context),
	(gdk_quartz_drawable_release_context): Fix bugs #428733 and #433301.
	Turns out the lockFocus logic was flawed, now we only lock/unlock 
	when called outside a real expose event and never flush manually.

svn path=/trunk/; revision=17798
2007-05-05 10:19:39 +00:00
Richard Hult
34c0f15bdf Implement.
2007-04-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (gdk_window_set_opacity):
	Implement.

svn path=/trunk/; revision=17743
2007-04-30 17:42:49 +00:00
Ronald Bultje
92563b7d22 fix two more potential races that could happen when an application is
2007-04-28  Ronald Bultje  <rbultje@ronald.bitfreak.net>

        * gdk/quartz/gdkeventloop-quartz.c: (select_thread_func),
        (poll_func): fix two more potential races that could happen when
        an application is polling in the mainloop and a separate thread
        tries to wake it up using g_idle_add(). Fixes #425271 comment 5.


svn path=/trunk/; revision=17680
2007-04-28 18:14:19 +00:00
Cody Russell
273c94e194 Win32 drop shadow goodness
svn path=/trunk/; revision=17643
2007-04-25 23:44:54 +00:00
Richard Hult
c8d89a96a2 Refactor the process updates functions to share code between them. Also
2007-04-18  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_quartz_process_updates_internal),
	(gdk_window_quartz_process_all_updates),
	(gdk_window_impl_quartz_process_updates): Refactor the process 
	updates functions to share code between them. Also fixes bug 
	#427660 by not updating larger regions than necessary.

svn path=/trunk/; revision=17610
2007-04-18 20:09:55 +00:00
Ronald Bultje
7c0f9e4d9d Protect the polling thread setup and shutdown function by mutexes and read
* gdk/quartz/gdkeventloop-quartz.c: Protect the polling thread
          setup and shutdown function by mutexes and read the wakeup
          pipe unconditionally and unblocking. This should make the main
          loop always be woken up when using g_idle_add() from another
          thread in the Quartz backend (#425271).


svn path=/trunk/; revision=17595
2007-04-11 11:08:22 +00:00
Richard Hult
9e2114e629 Clean up namespaces to make the code more maintainable.
2007-04-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/: Clean up namespaces to make the code more
	maintainable.

	* gdk/quartz/gdkdrawable-quartz.c:
	* gdk/quartz/gdkgc-quartz.c: Fix bug #418384, alignment of tiled
	images, by setting the pattern phase for the CG pattern.

svn path=/trunk/; revision=17584
2007-04-06 21:12:48 +00:00
Richard Hult
47b6f2c2eb Add stubs for gdk_notify_startup_complete_with_id and
2007-03-15  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkmain-quartz.c: Add stubs for
	gdk_notify_startup_complete_with_id and gdk_window_set_startup_id
	here too.

svn path=/trunk/; revision=17521
2007-03-15 18:06:58 +00:00
Richard Hult
d7a33adeda Update for the new quartz cairo surface API (#410442). Don't lock focus
2007-03-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkdrawable-quartz.c:
	(gdk_quartz_drawable_get_context): Update for the new quartz cairo 
	surface API (#410442). Don't lock focus unless called outside of an 
	expose event.
	(gdk_quartz_drawable_release_context): Only flush the CG context and 
	unlock focus if called outside of expose.
	(gdk_quartz_ref_cairo_surface): Reuse the surface during its lifetime.
	(_gdk_quartz_drawable_finish): New function, used to free the cached
	cairo surface.

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_impl_quartz_begin_paint_region): A few small style changes.
	(gdk_window_quartz_process_all_updates): Move the autorelease pool
	allocation and freeing outside the loop.
	(_gdk_windowing_window_destroy): Finish the drawable.
	(move_resize_window_internal): Small cleanup and remove comment.
	(_gdk_window_impl_quartz_get_type): No need to make the type info
	static.

	* gdk/quartz/gdkpixmap-quartz.c: Finish the drawable.

svn path=/trunk/; revision=17463
2007-03-10 21:58:49 +00:00
Richard Hult
9493e135c7 Add missing function signature to fix a build warning.
2007-03-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkprivate-quartz.h: Add missing function signature to fix
	a build warning.

svn path=/trunk/; revision=17462
2007-03-10 21:35:20 +00:00
Richard Hult
feabd0d76d Plug a leak.
2007-03-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkdisplay-quartz.c: (gdk_display_get_name): Plug a leak.

svn path=/trunk/; revision=17461
2007-03-10 21:04:05 +00:00
Richard Hult
5b14b85c3a Remove unneccesary exposure mask check.
2007-03-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c: Remove unneccesary exposure mask check.

svn path=/trunk/; revision=17460
2007-03-10 20:57:13 +00:00
Richard Hult
5c477d1f12 Don't set the font name here, leave that to themes, fixes #387508.
2007-03-10  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (gdk_screen_get_setting): Don't set
	the font name here, leave that to themes, fixes #387508.

svn path=/trunk/; revision=17459
2007-03-10 20:50:58 +00:00
Matthias Clasen
82ce59cd0f Remove unnecessary NULL checks before g_free(). (#369666, Morten Welinder,
2007-03-09  Matthias Clasen <mclasen@redhat.com>

        * Everywhere: Remove unnecessary NULL checks before
        g_free().  (#369666, Morten Welinder, Djihed Afifi)

        * configure.in: Check for ftw.h



svn path=/trunk/; revision=17444
2007-03-09 21:57:37 +00:00
Richard Hult
e344a52104 Setup release pools to plug two leaks, patch from Erik van Pienbroek,
2007-02-18  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_quartz_process_all_updates),
	(_gdk_windowing_window_destroy): Setup release pools to plug two leaks,
	patch from Erik van Pienbroek, fixes bug #396649.

svn path=/trunk/; revision=17325
2007-02-18 11:04:06 +00:00
Richard Hult
fe5f64ecbc Add stub for gdk_display_add_client_message_filter, patch from Taybin
2007-02-18  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: Add stub for 
	gdk_display_add_client_message_filter, patch from Taybin Rutkin. Fixes
	bug #405870.

	* gdk/quartz/gdkprivate-quartz.h: Add prototypes to fix build warnings.

svn path=/trunk/; revision=17324
2007-02-18 10:56:13 +00:00
Richard Hult
a862e9f6b9 Import AppKit.h instead of Quartz.h. Don't use userSpaceScaleFactor for
2007-02-18  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.h:
	* gdk/quartz/GdkQuartzWindow.h:
	* gdk/quartz/gdkquartz.h: Import AppKit.h instead of Quartz.h.
	* gdk/quartz/gdkscreen-quartz.c: (get_mm_from_pixels): Don't use 
	userSpaceScaleFactor for 10.3. Those changes bring us closer to working
	on panther, patch from Mathias Hasselmann.
	
	* gdk/quartz/gdkeventloop-quartz.c: Add includes to fix build warnings.

svn path=/trunk/; revision=17323
2007-02-18 10:26:49 +00:00
Mikael Hallendal
693c3c2649 Factored out the event loop integration into gdkeventloop-quartz.c.
2006-12-28  Mikael Hallendal  <micke@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: Factored out the event loop
	integration into gdkeventloop-quartz.c.

	* gdk/quartz/Makefile.am: Added gdkeventloop-quartz.c

	* gdk/quartz/gdkeventloop-quartz.c: New file containing the event loop
	integration.
2006-12-28 09:04:48 +00:00
Mikael Hallendal
7c92045621 Splitted out the GdkPixbuf to NSImage routine so that it can be used from
2006-12-19  Mikael Hallendal  <micke@imendio.com>

	* gdk/quartz/gdkcursor-quartz.c: Splitted out the GdkPixbuf to NSImage
	routine so that it can be used from libgtk as well (needed for
	upcoming GtkStatusIcon support in the Quartz port).
	* gdk/quartz/gdkevents-quartz.c: Don't assume that all NSWindows are
	created from GDK, this is not true for the status icon.
	* gdk/quartz/gdkprivate-quartz.h:
	* gdk/quartz/gdkquartz.h: Added
	gdk_quartz_pixbuf_to_ns_image_libgtk_only so that it is available to
	the status icon code.
2006-12-19 15:53:44 +00:00
Michael Natterer
2f50232a42 Implement lots of value setters for GdkGC, based on a heavily modified
2006-09-21  Michael Natterer  <mitch@imendio.com>

       Implement lots of value setters for GdkGC, based on a heavily
       modified patch from Thomas Broyer (bug #328853):

	* gdk/quartz/gdkcolor-quartz.c: removed functions which set colors
	on the CGContext. Instead, added gdk_quartz_get_rgba_from_pixel()
	which simply returns RGBA values from a GdkColor's pixel value.
	See gdk_quartz_update_context_from_gc() below.

	* gdk/quartz/gdkprivate-quartz.h (struct GdkGCQuartz): added lots
	of members for the newly suppored GC values. Added enum
	GdkQuartzContextValuesMask which is used for setting up the
	CGContext for filling and/or stroking.

	* gdk/quartz/gdkgc-quartz.c (gdk_quartz_gc_get_values)
	(gdk_quartz_gc_set_values)
	(_gdk_windowing_gc_copy): support a lot more GC values.

	(gdk_quartz_update_context_from_gc): added
	GdkQuartzContextValuesMask parameter and set filling/stroking
	parameters accordingly. This function also gained full control
	over the FG and BG colors (they can't be set separately any more).

	The stipple mask part of the patch doesn't work but seems to take
	the right approach and doesn't make things worse, so I applied it.

	Did *not* apply the clipping part of the patch since I don't
	understand it (I don't understand the version in CVS either, but
	it at least works :-)

	* gdk/quartz/gdkdrawable-quartz.c: pass the right masks to
	gdk_quartz_update_context_from_gc() and removed separate color
	setting calls. Some minor fixes.

	* gdk/quartz/gdkwindow-quartz.c
	(gdk_window_impl_quartz_begin_paint_region): set the CGContext's
	fill color manually. We don't have/need a GC here.
2006-09-21 17:05:33 +00:00
Michael Natterer
c148c41bab fix cast: it's drawable_impl->wrapper that is the GdkWindow, not the
2006-09-21  Michael Natterer  <mitch@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c
	(gdk_window_impl_quartz_begin_paint_region): fix cast: it's
	drawable_impl->wrapper that is the GdkWindow, not the
	drawable_impl itself.
2006-09-21 11:19:25 +00:00
Michael David Emmel
48d1be65e3 /tmp/cvsX7MHVx 2006-09-14 02:56:20 +00:00
Richard Hult
7724832996 Special-case shift-tab and map it to GDK_ISO_Left_Tab, fixes bug #350806.
2006-09-06  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkkeys-quartz.c: (maybe_update_keymap): Special-case
	shift-tab and map it to GDK_ISO_Left_Tab, fixes bug #350806.
2006-09-06 17:29:28 +00:00
Richard Hult
611f5526e9 Don't do anything if exposure isn't in the event mask, plug a leak, and
2006-09-03  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzView.c (drawRect): Don't do anything if
	exposure isn't in the event mask, plug a leak, and check that the
	window isn't destroyed.
	(isOpaque): Check that the window isn't destroyed, fixes bug
	#353028.
2006-09-03 10:46:32 +00:00
Richard Hult
5467cb3cdc Fix build.
2006-08-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c (gdk_window_beep): Fix build.
2006-08-30 18:18:09 +00:00
Matthias Clasen
6760faeb4b Add a function to beep on a window. For X11, implement this with XkbBell.
2006-08-29  Matthias Clasen  <mclasen@redhat.com>

	* gdk/gdkwindow.h:
	* gdk/gdk.symbols:
	* gdk/directfb/gdkwindow-directfb.c (gdk_window_beep):
	* gdk/win32/gdkwindow-win32.c (gdk_window_beep):
	* gdk/quartz/gdkwindow-quartz.c (gdk_window_beep):
	* gdk/x11/gdkwindow-x11.c (gdk_window_beep): Add a function
	to beep on a window. For X11, implement this with
	XkbBell.  (#353455, Mariano Suárez-Alvarez)
2006-08-30 03:30:43 +00:00
Michael Natterer
4773f80c48 return the hostname instead of NULL.
2006-08-24  Michael Natterer  <mitch@imendio.com>

	* gdk/quartz/gdkdisplay-quartz.c (gdk_display_get_name): return
	the hostname instead of NULL.
2006-08-24 19:41:40 +00:00