Commit Graph

164 Commits

Author SHA1 Message Date
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