Commit Graph

11 Commits

Author SHA1 Message Date
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
Richard Hult
382ef872b4 Add GDK button mask for NS dragging events. (create_scroll_event): Remove
2006-08-15  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (get_event_mask_from_ns_event):
	Add GDK button mask for NS dragging events.
	(create_scroll_event): Remove obsolete comment.
	(_gdk_quartz_get_current_event_mask), (gdk_event_translate): Keep
	track of the latest event mask here...

	* gdk/quartz/gdkwindow-quartz.c:
	(_gdk_windowing_window_get_pointer): And use it here. Patch from
	Kristian Rietveld.
	(gdk_window_quartz_update_idle): Rename to make things clearer.
2006-08-15 20:13:13 +00:00
Richard Hult
571c460503 Always set success to TRUE. (gdk_color_change): Implement.
2006-07-29  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkcolor-quartz.c (gdk_colormap_alloc_colors): Always
	set success to TRUE.
	(gdk_color_change): Implement.

	* gdk/quartz/GdkQuartzWindow.c
	([GdkQuartzWindow -canBecomeKeyWindow]): Add comment.

	* gdk/quartz/gdkevents-quartz.c (gdk_screen_get_setting): Make the
	default font a bit smaller until we have made this get the system
	setting.

	* gdk/quartz/gdkwindow-quartz.c (gdk_window_set_type_hint): Enable
	shadows for the right window types.

	* gdk/quartz/gdkprivate-quartz.h:
	* gdk/quartz/gdkgc-quartz.c:
	* gdk/quartz/gdkdrawable-quartz.c:
	* gdk/quartz/gdkcolor-quartz.c: Expose the CGContext functions,
	update callers.

	* gdk/quartz/gdkmain-quartz.c: (_gdk_windowing_init): No need to
	get the current process ID, use the right constant instead.
2006-07-29 11:05:15 +00:00
Richard Hult
7a3c18ab7b Set the window level depending on the type hint.
2006-07-24  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c (gdk_window_set_type_hint): Set the
	window level depending on the type hint.

	* gdk/quartz/gdkevents-quartz.c (gdk_keyboard_grab,
	pointer_ungrab_internal): Only break the grab if the new window is
	a different one.
	(gdk_event_translate): Catch the case where the entire app loses
	focus and break any grabs. Only do implicit grabs when the event
	mask has both press and release.

	* gdk/quartz/gdkkeys-quartz.c (translate_keysym):
	* gdk/quartz/gdkselection-quartz.c:

        * gdk/quartz/GdkQuartzWindow.c
	([GdkQuartzWindow -windowDidResignKey:]): Use this to update the
	focus window instead of resignMain, fixes the case where other apps
	uses focus follows mouse (like the terminal can).
2006-07-24 10:46:21 +00:00
Richard Hult
cb5f9e62e9 Append the event to the queue instead of using gdk_event_put.
2006-07-20  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (generate_grab_broken_event):
	Append the event to the queue instead of using gdk_event_put.
	(_gdk_quartz_get_mouse_window, find_current_keyboard_window):
	Handle grabs.
	(get_event_mask_from_ns_event, create_focus_event)
	(convert_window_coordinates_to_root, find_window_for_event)
	(gdk_event_translate): Improve readability (style changes).
	(gdk_flush, gdk_display_sync, gdk_display_flush)
	(gdk_event_send_client_message_for_display),
	(gdk_screen_broadcast_client_message): Remove FIXMEs.
	(gdk_screen_get_setting): Reindent.
	Also move find_child_window_by_point to gdkwindow-quartz.c.

	* gdk/quartz/gdkwindow-quartz.c:
	(find_child_window_by_point_helper),
	(_gdk_quartz_find_child_window_by_point): Move here from
	gdkevents-quartz.c
	(_gdk_windowing_window_get_pointer): Handle destroyed windows and
	imlement the return value.
	(_gdk_windowing_window_at_pointer): Implement.
2006-07-20 08:06:54 +00:00
Richard Hult
d3973cb865 ]): Listen to windowDidResignMain notifications and properly update the
2006-07-19  Richard Hult  <richard@imendio.com>

	* gdk/quartz/GdkQuartzWindow.c
	([GdkQuartzWindow -windowDidResignMain:]):
	* gdk/quartz/gdkevents-quartz.c (_gdk_quartz_update_focus_window):
	Listen to windowDidResignMain notifications and properly update the
	focus window when windows are unfocused.
2006-07-19 17:06:40 +00:00
Richard Hult
d473868ace Fill in string, length and is_modifier for key events. Map some more keys
2006-07-17  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (create_key_event):
	* gdk/quartz/gdkkeys-quartz.c: (_gdk_quartz_key_event_type),
	(_gdk_quartz_key_is_modifier):
	* gdk/quartz/gdkprivate-quartz.h: Fill in string, length and
	is_modifier for key events. Map some more keys into gdk keyvals.
2006-07-17 18:39:43 +00:00
Richard Hult
2fbe2ebc9a Generate a grab broken event when appropriate. Fixes bug #346603, patch
2006-07-07  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: Generate a grab broken event when
	appropriate. Fixes bug #346603, patch from Dave Vasilevsky.

	* gdk/quartz/gdkevents-quartz.c:
	* gdk/quartz/gdkkeys-quartz.c:
	* gdk/quartz/gdkprivate-quartz.c: Another patch from Dave Vasilevsky,
	fixes bug #346605. Makes modifier key events being sent properly.
2006-07-07 20:19:22 +00:00
Anders Carlsson
6b1510bf23 Add the GDK part of the DND implementation.
2006-03-21  Anders Carlsson  <andersca@imendio.com>

        * gdk/quartz/GdkQuartzWindow.c:
        (drag_operation_to_drag_action):
        (drag_action_to_drag_operation):
        (update_context_from_dragging_info):
        (-[GdkQuartzWindow draggingEntered:]):
        (-[GdkQuartzWindow draggingEnded:]):
        (-[GdkQuartzWindow draggingExited:]):
        (-[GdkQuartzWindow draggingUpdated:]):
        (-[GdkQuartzWindow performDragOperation:]):
        (-[GdkQuartzWindow wantsPeriodicDraggingUpdates]):
        (-[GdkQuartzWindow draggedImage:endedAt:operation:]):
        * gdk/quartz/gdkdnd-quartz.c:
        (gdk_drag_context_finalize):
        (gdk_drag_context_init):
        (gdk_drag_context_class_init):
        (gdk_drag_begin):
        (gdk_drag_status):
        Add the GDK part of the DND implementation.

        * gdk/quartz/Makefile.am:
        Add some missing headers.

        * gdk/quartz/gdkdrawable-quartz.h:
        * gdk/quartz/gdkprivate-quartz.h:
        * gdk/quartz/gdkquartz.h:
        * gdk/quartz/gdkwindow-quartz.c:
        (gdk_quartz_window_get_nsview):
        New function, for use by the GTK part of the DND implementation
2006-03-21 08:02:17 +00:00
Anders Carlsson
4afc4d61c6 Implement keyboard grabs.
2006-01-16  Anders Carlsson  <andersca@mac.com>

        * gdk/quartz/gdkdisplay-quartz.c:
        * gdk/quartz/gdkevents-quartz.c:
        (gdk_keyboard_grab):
        (gdk_display_keyboard_ungrab):
        (gdk_keyboard_grab_info_libgtk_only):
        (find_window_for_event):
        Implement keyboard grabs.

        (_gdk_quartz_send_map_events):
        * gdk/quartz/gdkmain-quartz.c:
        * gdk/quartz/gdkprivate-quartz.h:
        New function that synthesizes map events.

        * gdk/quartz/gdkwindow-quartz.c:
        (_gdk_windowing_window_init):
        The root window is always visible.

        (all_parents_shown):
        (show_window_internal):
        Send map events.

        (gdk_window_hide):
        Ungrab keyboard and pointer
2006-01-16 10:52:40 +00:00
Anders Carlsson
1097260aa7 Add quartz backend.
2005-11-21  Anders Carlsson  <andersca@imendio.com>

        * configure.in:
        * gtk/Makefile.am:
        * gdk/Makefile.am:
	* gdk/quartz/*:
	Add quartz backend.

        * docs/tools/Makefile.am:
	Only build docshooter when the X11 backend is used.

        * gtk/gtkplug-stub.c:
	Include gtkplug.h here.

        * gtk/gtksocket-stub.c:
	Include gtksocket.h here.
2005-11-22 10:03:32 +00:00