Commit Graph

3110 Commits

Author SHA1 Message Date
ee2c797e70 [gdk/directfb] Made dfb_events_dispatch() thread save
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=591438
2009-11-30 06:02:49 +01:00
36ca3fd5e9 Add a missing include
memset() is used in gdk/x11/gdkinput-xfree.c but string.h is not included.
Patch by Vincent Untz, bug 597026.
2009-11-27 20:59:42 -05:00
43a07af9b1 Be a bit more forgiving about invalid monitor number
By moving the g_return_if_fail() checks into individual monitor functions.
See bug 561130.
2009-11-27 18:39:15 -05:00
5bfab2b9d4 Short-circuit get_frame_extents for override-redirect windows
There's no reason to do our expensive round-trips for an override-redirect
window; just use local information. See bug 581145. Patch by Owen Taylor.
2009-11-27 18:19:20 -05:00
d4b92737ab Make level3 keys work again
We were not paying attention to consumed modifiers when adding
virtual modifiers. This fixes RH bug 537567.
2009-11-25 01:02:40 -05:00
cffddd2adc Document how Cocoa coordinate and monitor layout transforms to GDK work 2009-11-15 15:29:45 +01:00
7fda8e6378 Awful hack for problem in dnd of images from Firefox on Windows
Bypassed with #if 0 because it is an awful hack and not really
acceptable from a privacy point of view for instance. It prevents
Firefox from deleting temporary files containing images being dragged,
so they stay on disk. Bug #561973.
2009-11-15 00:37:17 +02:00
d03b53800e Fix typo 2009-11-11 21:39:32 +01:00
ecc3065f76 Only use gdk_input_select_events() if XINPUT_NONE is defined
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=601337
2009-11-11 17:42:20 +01:00
cd2ff792ca [gdk] Added GDK_GPOINTER_TO_NATIVE_WINDOW() macro
GdkNativeWindow cast is needed in 64-bit Windows so gpointer data
is converted to a (64-bit) native window handle.
GPOINTER_TO_UINT() is used in other platforms.
2009-11-10 20:15:37 +01:00
7d1c8fa644 [gdk/x11/gdkdnd-x11] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:41:02 +01:00
0d55c6ede1 [gdk/gdkimage] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:37:56 +01:00
7bc07ffe86 [gdk/gdkgc] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:30:31 +01:00
925fa99393 [gdk/gdkdraw] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:26:27 +01:00
64d054264e [gdk/gdkcolors] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:16:34 +01:00
8082aad271 Use "Deprecated:" gtk-doc symbol corrently
Also, added some suggestion about replacements for deprecated functions
2009-11-06 03:03:40 +01:00
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
9e51c10edc Don't unnecessarily clear windows with no exposure mask set
When we just invalidate some area from the app we don't need to clear
windows with no exposure mask, because that wouldn't have happened pre-csw
anyway. Additionally we can avoid such clearing for native windows in cases
where the xserver already did the clearing like on exposes or when resizing
toplevels.

This means we don't fully redraw a GtkSocket when it resizes, thus
avoiding flicker in gnome-mplayer as reported in this bug:
https://bugzilla.gnome.org/show_bug.cgi?id=598050
2009-11-05 12:52:12 +01:00
9ae0d9a44f Document clears_as_native and make the name more descriptive 2009-11-05 12:52:12 +01:00
39993f147f Add supports_native_bg to GdkWindowImpl
Backends that support native window background setting (and that clears
new window areas to this color/pixmap) should set this to true.

Currently only X11 supports this.
2009-11-05 12:52:12 +01:00
4cd5c98942 Don't unnecessarily expose areas copied by native windowing system
When moving or scrolling a window with native children, there is no
need to expose the areas that are copied by the windowing system
as part of moving/resizing the native windows anyway.
2009-11-05 12:52:12 +01:00
a299797883 Only send exposes on unmap if window really was unmapped
Exposing when you hide a hidden window is just a waste of time.
2009-11-05 12:52:12 +01:00
8c1ea38d84 Flush outstanding stuff when clearing directly on a window
Clearing will directly modify the contents of the window, so we need
to flush any outstanding moves or double-buffering.
2009-11-05 12:52:11 +01:00
3dbfc08a7a Fix some compilation warnings
Fixed the prototypes of MyEnhancedXkbTranslateKeyCode() and
translate_keysym() to take a gint* because those functions treat
these arguments as an int, so we get around the need to cast.
2009-10-30 18:33:16 +01:00
d76287c94b Fix warning: cast to gchar* 2009-10-30 04:04:28 +01:00
c368c6e425 Use G_STRLOC instead __LINE__ 2009-10-26 18:19:48 +01:00
a667ee8e5e Use G_STRFUNC instead __FUNCTION__ 2009-10-26 18:17:23 +01:00
a338c7e929 Update copyright 2009-10-26 09:57:11 +01:00
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
a4d932cc64 Fixup get_nsscreen_for_x() 2009-10-26 09:52:54 +01:00
221883dd31 Remove unused variable (fix compiler warning) 2009-10-26 09:52:54 +01:00
93530675de Update size of root window after display reconfiguration 2009-10-26 09:52:54 +01:00
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
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
d26dd103b2 Be consistent with X11: emit monitors-changed first, then size-changed 2009-10-26 09:52:53 +01:00
aa25e4a51c Update documentation for ::monitors-changed to mention OS X support 2009-10-26 09:52:53 +01:00
e36872da38 Use screen when emitting signal, not _gdk_screen 2009-10-26 09:52:53 +01:00
63e2f54516 Emit monitors-changed signal when appropriate 2009-10-26 09:52:53 +01:00
12dc617dc2 Move screen resolution setup to GdkScreenQuartz initializer 2009-10-26 09:52:53 +01:00
d47772f002 Create a proper subclass of GdkScreen: GdkScreenQuartz 2009-10-26 09:52:52 +01:00
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
ce3c861c2a Setup monitor rects during screen initialization and re-use data 2009-10-26 09:52:52 +01:00
ca20b04b58 Move screen initialization to gdkscreen-quartz.c 2009-10-26 09:52:52 +01:00
04d7d81056 Fix for position bug
https://bugzilla.gnome.org/show_bug.cgi?id=590800
2009-10-24 17:20:50 +02:00
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
861c34b01e Use correct type text/uri-list for the dropped files selection
Fixes bug #599321.
2009-10-23 13:40:27 +03:00
98ea183c13 Use G_STRLOC instead __FILE__ and __LINE__
Patch from bug #599225
2009-10-21 21:48:00 +03:00
d3155bb1ea Remove some unnused variables 2009-10-20 20:37:46 +02:00
ab13c00a38 Use correct size for root window with multiple monitors
The root window width and height have already been correctly
initialised in _gdk_root_window_size_init() to cover all monitors, so
don't incorrectly re-initialise using GetSystemMetrics(SM_C[XY]SCREEN)
which only gives the size of the primary monitor anyway. (See MSDN.)

This fixes at least gdk_screen_get_{width,height}() which indirectly
affects at least the positioning of combo box pop-up menus on multiple
monitors.
2009-10-18 14:35:17 +03:00
0698ddd421 Delete a couple of leftover commented-out lines 2009-10-18 14:19:55 +03:00