Commit Graph

3319 Commits

Author SHA1 Message Date
Javier Jardón
81d1e2ca76 [gdk] Remove deprecated GdkVisual stuff 2010-05-03 01:51:20 +02:00
Javier Jardón
ce340e3b62 [gdk] Remove deprecated gdktypes stuff. 2010-05-03 01:51:20 +02:00
Javier Jardón
4a70b282de [gdk] Remove deprecated GdkSelection stuff. 2010-05-03 01:51:20 +02:00
Michael Natterer
5e29973773 Remove all traces of GDK_PIXBUF/GTK_DISABLE_SINGLE_INCLUDES
...and disallow inclusion of individual files unconditionally.
2010-05-03 01:51:18 +02:00
Javier Jardón
3d3fb6edc6 Remove deprecated code from GdkPango 2010-05-03 01:48:45 +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
Javier Jardón
e53a1ad236 Remove deprecated code from GdkCursor 2010-05-03 01:45:00 +02:00
Javier Jardón
134690ed8f Remove deprecated code from GdkGc 2010-05-03 01:45:00 +02:00
Javier Jardón
b9b8efc528 Remove deprecated code from GdkPixmap 2010-05-03 01:45:00 +02:00
Javier Jardón
92e5d321d6 Remove deprecated code from GdkPixbuf 2010-05-03 01:45:00 +02:00
Florian Scandella
53fae3247c Add heuristic for primary monitor
Use the first monitor returned by RANDR as primary, if primary
is not set and no LVDS is found.

https://bugzilla.gnome.org/show_bug.cgi?id=615128
2010-04-23 23:42:02 +02:00
Matthias Clasen
78e68d4548 Update the gdk_event_free docs
Bug 616118
2010-04-22 14:13:35 -04:00
Claudio Saavedra
51a1af7aa4 Use the proper screen in _gdk_windowing_get_shape_for_mask()
Bug 615853 - BadMatch when pressing keyboard volume keys while pointer in
             secondary X screen

_gdk_windowing_get_shape_for_mask() is using the default screen, not taking
into account that its GdkBitmap could have been created for a different one,
causing BadMatch errors.
2010-04-19 18:51:27 +03:00
Javier Jardón
791962e06d Include <X11/Xutil.h> in gdkdnd-x11.c
Otherwise, inclusion of shape.h triggers an unknown type error
for Region, and compile fails, at least in Solaris.

Reported by Philip Brown here:
https://bugzilla.gnome.org/show_bug.cgi?id=615028
2010-04-18 19:54:22 +02:00
Michael Natterer
9cac8f23d5 gdk: remove convert_coords_to_child()
and use the new public gdk_window_coords_from_parent().
2010-04-15 13:16:17 +02:00
Michael Natterer
878cde53d0 gdk: use gdk_window_is_offscreen() instead of checking manually 2010-04-15 13:08:47 +02:00
Michael Natterer
5a52d2a2f0 gdk: add API to convert coords between parent and child windows
which also works for offscreen windows and their embedder.
Also add gdk_window_get_effective_parent() and
gdk_window_get_effective_toplevel() which are offscreen aware.
2010-04-15 12:59:44 +02:00
Tor Lillqvist
e544602065 Add Visual Studio 2008 project files
Similar setup as in GLib and Pango. Also here we use a build/win32/vs9
subfolder, even if there is nothing else in build or build/win32.
2010-04-12 12:45:40 +03:00
Johan Bilien
d36b281a58 Fixed annotation of gdk_screen_get_rgb_colormap and similar
These return an object with no extra references, need to be transfer
none.
2010-04-09 13:53:19 -04:00
Javier Jardón
eb7121c4e6 [directfb] Fix compile error on DirectFB backend.
Add a stub for gdk_keymap_add_virtual_modifiers()

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=613988
2010-04-09 18:15:55 +02:00
Matthias Clasen
b4adea7477 Fix a silly mistake in primary_monitor handling
It doesn't make sense to determine an index into an array, if
you are going to sort the array afterwards...pointed out in
bug 615128 by Florian Scandella.
2010-04-09 09:05:38 -04:00
Matthias Clasen
0efb24f589 Yet another fix for shape handling
This should fix problems with awn and notify-osd.
2010-04-06 20:33:19 -04:00
Adel Gadllah
20dacce4d8 [GdkScreenX11] Fix check in gdk_screen_get_primary_monitor
Fix bug in last commit.
2010-04-06 02:41:55 +02:00
Adel Gadllah
5651cbc4b4 [GdkScreenX11] Add heuristic for pre XRandR 1.3 drivers
Currently gdk_screen_get_primary_monitor just returns the first monitor,
in this case but both the panel and now gnome-shell use an additional
heuristic to prefer LVDS as primary if present.

Move this heuristic to gdk_screen_get_primary_monitor to avoid duplicating
it all over the place.

The fallback heuristic is also used when no primary output is set.

https://bugzilla.gnome.org/show_bug.cgi?id=614894
2010-04-06 02:36:53 +02:00
Hiroyuki Ikezoe
ffbd007c50 [directfb] Fix compile error on DirectFB backend.
Add a stub for gdk_keymap_map_virtual_modifiers.
2010-03-25 16:39:41 +01:00
Matthias Clasen
3ed737e5fc Another small doc cleanup 2010-03-22 23:15:52 -04:00
Matthias Clasen
f5c6712002 Minor doc cleanup 2010-03-22 23:10:38 -04:00
Damien Lespiau
0a0e0a868a introspection: Fix parallel builds
One needs to add an explicit dependency between the gir files and the
.la libtool wrapper as this dependency is not added automatically by
Makefile.introspection. Not adding these breaks parallel builds as make
does not wait for the .la to be generated before launching g-ir-scanner.
2010-03-22 12:53:18 -04:00
Matthias Clasen
996541d096 Don't crash in DND when the X server doesn't support SHAPE
Reported in bug 612768
2010-03-16 12:35:13 -04:00
Colin Walters
55feb804f0 [startup notification] Set APPLICATION_ID
http://lists.freedesktop.org/archives/xdg/2010-February/011321.html

In addition to ICON, BINARY_NAME etc., it's very helpful if launcher
programs include the name of the .desktop file they're launching.
This is APPLICATION_ID.

https://bugzilla.gnome.org/show_bug.cgi?id=611118
2010-03-14 15:13:26 -04:00
Matthias Clasen
f73f9d802c Fix gdk_window_set_icon_name
A typo kept this from working on toplevel windows.
Reported in bug 612346.
2010-03-12 15:59:59 -05:00
Matthias Clasen
9c8dbc292f Minor doc clarification for gdk_drag_begin
Mention that targets is a list of atoms. Bug 611317.
2010-03-08 21:01:30 -05:00
Matthias Clasen
28760d992b Init gdk in the same order as other backends
Patch by Andre Draszik, bug 609172
2010-02-23 13:07:23 -05:00
Matthias Clasen
7f483dbd7b Fix a memory leak in gdk_display_open in the directfb backend
Patch by Andre Draszik, bug 609172
2010-02-23 13:06:44 -05:00
Matthias Clasen
2dc9298b41 Simplify the DirectFBInit call
Patch by Andre Draszik, bug 609172
2010-02-23 13:06:03 -05:00
Matthias Clasen
3d66034d7d Catch directfb errors in gdk_colormap_new
Patch by Andre Draszik, bug 609172.
2010-02-23 13:05:24 -05:00
Matthias Clasen
e06edf375a Fix a crash at startup in the directfb backend
Patch by André Draszik, bug 600789
2010-02-23 12:54:00 -05:00
Matthias Clasen
cb184bed8c Fix gdk_windowing_window_at_pointer in the directfb backend
Patch by Hiroyuki Ikezoe, see bug 604799.
2010-02-23 12:51:45 -05:00
Matthias Clasen
325cbef27e Protect against X errors when clearing the DND cache
This was reported as a problem in bug 609952.
2010-02-23 12:51:44 -05:00
Matthias Clasen
42e90521a9 Only look at x11 backend for gtk-doc comments for now
See followup discussion in bug 610701
2010-02-23 10:24:55 -05:00
Matthias Clasen
bcee7bda64 Add some missing introspection annotations 2010-02-22 23:47:24 -05:00
Johan Dahlin
f0ce4dcaa5 [build] Include all target source files
Include all target source files when buildin the gir

https://bugzilla.gnome.org/show_bug.cgi?id=610701
2010-02-22 17:26:24 -03:00
Matthias Clasen
c85e7ec6d8 Add a missing introspection annotation for gdk_screen_get_default_colormap 2010-02-22 14:15:45 -05:00
Johan Dahlin
fe85272112 [annotations] Add allow-none
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API

https://bugzilla.gnome.org/show_bug.cgi?id=610474
2010-02-19 17:57:51 -02:00
Javier Jardón
41ef40bec0 [gdk/x11] Change the name of the functions in the header file
_gdk_keymap_add_virtual_modifiers() changed to
_gdk_keymap_add_virtual_modifiers_compat() in
commit 13d69e552d
This patch change the header name too.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=610063
2010-02-16 20:59:22 +01: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
Alejandro Piñeiro
bc39d88b44 Solve a wrong reference on gdk_keymap_translate_keyboard_state
Solves https://bugzilla.gnome.org/show_bug.cgi?id=608345
2010-02-09 11:52:49 +01:00
André Draszik
12edc32d95 gdk/directfb: cursor size is artificially limited
Cursor sizes in DirectFB can be large (4095x4095), limit to 128x128
though, because the x11 backend has this limit, too - for max.
compatibility.

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

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-02-07 20:12:43 +01:00
André Draszik
7f8b96d9bc gdk/directfb: convert gdkgc-directfb to using G_DEFINE_TYPE
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=609199

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-02-07 20:10:53 +01:00
André Draszik
e1a83243e4 gdk/directfb: gdkdnd-directfb's private data is used uninitialized
Use G_TYPE_INSTANCE_GET_PRIVATE() instead

In the process, convert to using G_DEFINE_TYPE, too.

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

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-02-07 20:08:52 +01:00
André Draszik
bc36a15446 gdk/directfb: convert gdkcolor-directfb to using G_DEFINE_TYPE
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=609191

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-02-07 20:06:52 +01:00
André Draszik
e71d3c459a gdk/directfb: fix _gdk_windowing_pointer_grab()
Fix for bgo #609188

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-02-07 20:01:05 +01:00
Matthias Clasen
69aa7a6392 Make DND work better with shaped windows
If mouse clicks go through, drag-and-drop should too...
Fixes bug 608615.
2010-02-04 19:18:22 -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
Matthias Clasen
f286c6281a Minor doc fix 2010-01-25 22:32:00 -05:00
Alexander Larsson
3c618f2f1f Avoid integer overflow in gdk_rectangle_intersect
If e.g. the right edge of the leftmost rectangle is near MIN_INT, and
the left edge of the rightmost rectangle is large then subtracting these
can lead to an integer overflow, making the resultant "width" falsely
positive, thus returning a very wide result instead of the expected
no-intersection result.

We avoid the overflow by not doing the subtraction unless we know the
result will be positive. There are still risks for overflow if x + width
or y + width is larger than MAXINT, but we won't ever overflow for valid
rects now.

This may fix #607687
2010-01-22 09:41:17 +01:00
Alexander Larsson
3d9d002bed When native window requests button presses request other button related events
We need to do this because otherwise the implicit button grab for this
(native) window will not deliver the button events not selected for
by this window. This is a problem because non-native child windows may
select using a wider event mask, and we can't emulate these events if we
don't get the native events.

Fixes bug #607508
2010-01-20 15:37:16 +01:00
Alexander Larsson
e31a6d1fea Drop outstanding cairo surfaces when window is made native
Any old cairo_surface referencing the old impl window will be wrong
when we make a window native, so drop it.

This fixes bug #599511
2010-01-19 16:40:59 +01:00
Alexander Larsson
46d25437a1 Move common gdkwindow.c code into function gdk_window_drop_cairo_surface
This code is duplicated in several places, and more to come, so put
it all in one place.
2010-01-19 16:40:55 +01:00
Alexander Larsson
841fa47715 Track direct window cairo access and avoid tricks when used
When a cairo surface is requested for direct window access (i.e. not
when double-buffering) we can't really track when the actual drawing happens
as cairo drawing is not virtualized. This means we can't properly flush
any outstanding window moves or implicit paints.

This actually causes problems with e.g. abiword (bug #606009) where they
draw without double-buffering. If you press down it scrolls the window
and then draws the caret, but the caret drawing does not flush the
outstanding move from the scroll, so the caret gets drawn on the wrong
screen.

We fix this by never allowing either implicit paints or outstanding window
moves on impl-windows where any windows related to it has an outstanding
direct cairo surface. Luckily this is not very common so in practice this
doesn't matter much.
2010-01-19 15:01:03 +01:00
Alexander Larsson
f96e51db46 Avoid drawing implicit paints to destroyed windows
It may happen that a window gets destroyed during painting, if so
we should not draw the implicit paint double-buffered pixmap to it
as that will cause a BadDrawable X error.

This fixes bug 600865
2010-01-15 16:08:18 +01:00
Matthias Clasen
d32b061895 Plug a pixmap leak
We were getting our refcounts tangled up when setting drawable clips on
GCs with CSW, leading to a pretty bad pixmap leak. See bug 606143.
2010-01-11 10:23:57 -05:00
Javier Jardón
ccf17a828b [docs] Add missing "Deprecated: 2.x" to the api doc comments 2010-01-11 06:25:59 +01:00
Javier Jardón
bef70bc5bf [docs] Add documentation for GdkWindow 'cursor' property
Reported by Rafal Luzynski here:
https://bugzilla.gnome.org/show_bug.cgi?id=604821
2010-01-03 21:14:06 +01:00
Hiroyuki Ikezoe
23042427f5 Use CAIRO_VERSION instead of CAIRO_VERSION_CODE
Cairo does not have CAIRO_VERSION_CODE macro.
Fix for bug #605472.
2010-01-03 18:22:55 +09:00
Johan Dahlin
cdb13d233e Make sure Gdk-2.0.gir is installed
Fixes a variable name typo
2009-12-31 01:48:50 +01:00
Johan Dahlin
c212f680a4 Avoid warnings when introspetion is not available
-include is the same as include but will never warn if the
file is not available
2009-12-31 01:47:24 +01:00
Johan Dahlin
5955cfe37f Fix build with system install of introspection
Or redo it properly and remove previous hack by Matthias.
2009-12-31 01:19:38 +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
Tor Lillqvist
8daf770a73 Add gdk_keymap_map_virtual_modifiers() implementation 2009-12-21 22:43:44 +02:00
Matthias Clasen
d2ce67734a Fix a think in the CSW input extension handling
This was causing stack overflow due to an obvious infinite recursion.
See e.g. RH #548849.
2009-12-21 15:27:46 -05:00
Matthias Clasen
03b179c5e8 Try harder to handle accelerators involving virtual modifiers
This patch changes GDK to add all matching virtual modifiers in
the state field of the key event. The corresponding GTK+ change makes
use of a new GdkKeymap function to map virtual modifiers back to
real modifiers and detect conflicts while doing so.

This should fix bug 603190 and bug 427409.
2009-12-21 11:15:28 -05:00
Matthias Clasen
9d999fb89f Properly free damage events
This was reported in bug 605008
2009-12-20 03:11:04 -05:00
Matthias Clasen
aadb190b77 Fix a thinko in computing damage for segments
The code was not taking the endpoint of the first segment into account.
This was reported in bug 604747.
2009-12-18 19:17:04 -05:00
Matthias Clasen
7a9a3077e4 Ensure native windows in gdk_property_change
Using X properties on non-toplevel windows is somewhat exotic,
but some people seem to do it, so better to keep it working.
See bug 604787.
2009-12-18 18:43:32 -05:00
Alexander Larsson
7e9d89b555 Actually send exposes from gdk_window_clear_area_e 2009-12-18 15:35:04 +01:00
Javier Jardón
674dd557e8 Add 'Since: 2.18' tag
Add missing 'Since:' tag in gdk_window_get_root_coords() and
gdk_window_is_destroyed()

Reported by Rafal Luzynski in
https://bugzilla.gnome.org/show_bug.cgi?id=604821
2009-12-18 10:53:01 +01:00
Tor Lillqvist
435606a5bf Make the OLE2 DND code selectable at run-time instead of compile-time
(It still doesn't work, though.)
2009-12-17 01:51:51 +02:00
Johan Dahlin
eadc7885da Use Makefile.introspection
Use the new fancy rules from the Makefile.introspection, it makes
the rules prettier and avoids quite a bit of duplication
2009-12-16 17:22:02 -02:00
Johan Dahlin
248d4b1622 Make sure dist check works with introspection
We need to prepend the srcdir to all variables
passed into the scanner as it runs with srcdir != builddir during
distcheck.
2009-12-16 17:22:02 -02:00
Johan Dahlin
09362d6e34 Re-add accidentially removed gtkintl header 2009-12-16 17:22:02 -02:00
Johan Dahlin
80c7937d60 Separate private from public gdk headers
We don't want to parse the private gdk headers when
creating the GIR.
2009-12-16 17:22:01 -02:00
Colin Walters
18dc96caf8 Merge in Gdk-custom.c introspection annotations
The Gdk-custom.c file in gir-repository contained a number of
introspection annotations.  Merge those into the GDK source files.

Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.

https://bugzilla.gnome.org/show_bug.cgi?id=592279
2009-12-16 17:22:01 -02:00
Colin Walters
78758d43ea Build introspection data for gdk-pixbuf, gdk, and gtk
Generate .gir and .typelib files for gdk-pixbuf, gdk, and gtk.

https://bugzilla.gnome.org/show_bug.cgi?id=592279
2009-12-16 17:22:00 -02:00
Tor Lillqvist
6e73be9d6c Add copyright note and comment for merged old code 2009-12-16 13:47:57 +02:00
Tor Lillqvist
eb21a7df29 Work on OLE2-based generic DND
Intermediate commit of work in progress on integrating the old code
for OLE2-based generic drag and drop from Arhaeopteryx Software, from
a long time ago in the GTK+ 1.3 timeframe. Does still not work and is
as before not compiled in unless OLE2_DND is defined in
gdkdnd-win32.c. (Thus, for inter-process DND, still only WM_DROPFILES
style dropping of files on GTK+ apps works.)

Related slight refactoring of other code that shouldn't change how it
works. Add more global variables for run-time constants (once
initialized) representing well-known GdkAtoms and registered Windows
clipboard formats, as they with the generic DND code will be needed in
several source files. Some improved debugging output.
2009-12-16 13:10:21 +02:00
Tor Lillqvist
c196ac2b63 Make more GdkAtom variables visible in all gdk/win32 files
Make the GdkAtoms for the image formats extern and usable from all
gdk/win32 files.
2009-12-16 13:10:20 +02:00
Tor Lillqvist
c1ddd8f9bc Make the gdk/win32 event debug printing function non-static
Make print_event() extern and rename it to _gdk_win32_print_event() so
it can be used from all gdk/win32 source files.
2009-12-16 13:10:19 +02:00
Tor Lillqvist
1bf9a2fa41 Remove unused functions and variables 2009-12-16 13:10:18 +02: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
Cody Russell
53ab5c0b63 Add gdk_screen_get_primary_monitor to gdk.symbols 2009-12-09 23:20:30 -06:00
Cody Russell
662e69ad3e Add gdk_screen_get_primary_monitor(). This fixes bug #601712 2009-12-08 11:27:02 -06:00
Matthias Clasen
0748cf563d Never do implicit paints for foreign windows
They don't need double buffer combination since they have no
client-side children, and creating pixmaps for them is risky
since they could disappear at any time.

May fix bug 598476 and 603652.
2009-12-08 10:09:04 -05:00
Matthias Clasen
105b007545 Set colormap of offscreen pixmaps
This fixes problems in clutter-gtk. See bug 603619.
2009-12-08 09:58:23 -05:00
Alexander Larsson
22d1d0d507 Fix up last commit 2009-12-08 12:28:44 +01:00
Alexander Larsson
159214173d Handle input extension events when making a window native
It may happen when turning a client side window into a native window
that the window, or some of its children with the same native parent
have extension events enabled, and thus have an input window enabled
for the native parent which needs to change as the window is made
native.

We fix this by temporarily disabling extension events on all the affected
windows while we create the native window, and then reenable them afterwards.

This fixes: https://bugzilla.redhat.com/show_bug.cgi?id=544624
2009-12-08 12:22:59 +01:00
Alexander Larsson
98a9c5c69a Fix damage report for lines drawn on offscreen windows
All kinds of lines (lines, segments, arcs, etc) need to take into
account the line properties (width, miter limit, joins, caps, etc)
to get proper damage extents.

This is not really possible to do, but we can make it likely to work
with some ad-hoc estimates.

Fixes bug 603904.
2009-12-07 10:49:57 +01:00
Alexander Larsson
48fc0f36c2 Fix mouse pointer handling on multiple screens
The fix in 786b589d95 for the
"Cannot click buttons more than once without moving the mouse cursor"
did not correctly handle setups with multiple screens in one display.

We need to handle the case where the first XQueryPointer returns
a different root window than the default one.

This fixes bug 597386 (agaion)
2009-12-07 10:49:57 +01:00
Alexander Larsson
b509f28559 Don't filter out BUTTON_MOTION event masks
We don't really need to filter these out, it was just a leftover
safety check to not override the GDK_POINTER_MOTION_MASK.

Furthermore when we changed behaviour to not always select for native
pointer motion it is actually wrong. We'll still get normal motion
events for the toplevel which we will emulate as button motion on the
child, but the button motion mask will not be inherited by implicit
grabs which makes us not get any motion events during grabs.

This fixes bug 601473
2009-12-02 11:19:21 +01:00
Javier Jardón
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
Matthias Clasen
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
Matthias Clasen
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
Matthias Clasen
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
Matthias Clasen
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
Kristian Rietveld
cffddd2adc Document how Cocoa coordinate and monitor layout transforms to GDK work 2009-11-15 15:29:45 +01:00
Tor Lillqvist
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
Kjartan Maraas
d03b53800e Fix typo 2009-11-11 21:39:32 +01:00
Javier Jardón
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
Javier Jardón
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
Javier Jardón
7d1c8fa644 [gdk/x11/gdkdnd-x11] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:41:02 +01:00
Javier Jardón
0d55c6ede1 [gdk/gdkimage] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:37:56 +01:00
Javier Jardón
7bc07ffe86 [gdk/gdkgc] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:30:31 +01:00
Javier Jardón
925fa99393 [gdk/gdkdraw] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:26:27 +01:00
Javier Jardón
64d054264e [gdk/gdkcolors] Add missing "Deprecated: 2.x" to the api doc comments. 2009-11-06 03:16:34 +01:00
Javier Jardón
8082aad271 Use "Deprecated:" gtk-doc symbol corrently
Also, added some suggestion about replacements for deprecated functions
2009-11-06 03:03:40 +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
Alexander Larsson
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
Alexander Larsson
9ae0d9a44f Document clears_as_native and make the name more descriptive 2009-11-05 12:52:12 +01:00
Alexander Larsson
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
Alexander Larsson
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
Alexander Larsson
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
Alexander Larsson
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
Javier Jardón
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
Javier Jardón
d76287c94b Fix warning: cast to gchar* 2009-10-30 04:04:28 +01:00
Javier Jardón
c368c6e425 Use G_STRLOC instead __LINE__ 2009-10-26 18:19:48 +01:00
Javier Jardón
a667ee8e5e Use G_STRFUNC instead __FUNCTION__ 2009-10-26 18:17:23 +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
aa25e4a51c Update documentation for ::monitors-changed to mention OS X support 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