Commit Graph

2519 Commits

Author SHA1 Message Date
Alexander Larsson
47acf79494 Actually report x/y_root against the root window 2009-04-02 10:14:06 +02:00
Alexander Larsson
2e3661e453 Avoid crash by not passing in NULL mask pointer to _gdk_windowing_get_pointer 2009-04-02 10:14:05 +02:00
Alexander Larsson
3a6d68e836 Add g_warning to not yet supported code 2009-04-02 10:14:05 +02:00
Alexander Larsson
aee3c571b0 Ensure we have native window before reparenting to toplevel 2009-04-02 10:14:05 +02:00
Alexander Larsson
2b9dc3338a Fix up keyboard grab handling 2009-04-02 10:14:05 +02:00
Alexander Larsson
d47ee4d797 Grab pointer on toplevel window, not on nearest native, so that we always get all events on toplevel 2009-04-02 10:14:05 +02:00
Alexander Larsson
f39bdc7e0f Make sure we change the event mask on native window if they change between toplevel and child 2009-04-02 10:14:05 +02:00
Alexander Larsson
07f76be87a Change assert to warning with some information 2009-04-02 10:14:05 +02:00
Alexander Larsson
6b1d7fd53d Make synchronized_configure work for child windows (used by in-process plugs) and ensures a native window exist 2009-04-02 10:14:05 +02:00
Alexander Larsson
346acdca54 Never set shapes on foreign windows 2009-04-02 10:14:05 +02:00
Alexander Larsson
ec4f8baa08 For foreign parents, use the real parent not the root (which is what we list as parent in the APIs) 2009-04-02 10:14:05 +02:00
Alexander Larsson
d326a638fb Really create a native window when getting xid 2009-04-02 10:14:04 +02:00
Alexander Larsson
32cd341f60 Export gdk_window_set_has_native 2009-04-02 10:14:04 +02:00
Alexander Larsson
8fc7a9547c Create native window when requesting xid 2009-04-02 10:14:04 +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
Alexander Larsson
e2a2ba9d98 Revert patch that conflicts with client-side-windows work
Revert commit f4090b5c84, as that
conflicts with the client-side-windows work. Furthermore, that
change is already applied as part of the client-side-windows work.
2009-04-02 10:06:01 +02:00
Behdad Esfahbod
d21f55fe9a Bug 437533 – Implement draw_shape PangoRenderer method
2009-03-27  Behdad Esfahbod  <behdad@gnome.org>

        Bug 437533 – Implement draw_shape PangoRenderer method

        * gdk/gdkpango.c (gdk_pango_renderer_draw_shape),
        (gdk_pango_renderer_class_init): Implement draw_shape

        * demos/gtk-demo/rotated_text.c (fancy_shape_renderer),
        (create_fancy_attr_list_for_layout), (rotated_text_expose_event),
        (do_rotated_text):
        1) Port to pangocairo
        2) Also show a rotated label
        3) Install a custom shape renderer on both.  The second one goes
        through gdkpango and hence tests the patch above.  It's working.


svn path=/trunk/; revision=22592
2009-03-27 16:54:10 +00:00
Sven Neumann
7cfac711e2 compile fix for build with DIRECT_ENABLE_DEBUG.
2009-03-25  Sven Neumann  <sven@gimp.org>

	* gdk/directfb/gdkwindow-directfb.c
	(gdk_window_directfb_process_all_updates): compile fix for build
	with DIRECT_ENABLE_DEBUG.


svn path=/trunk/; revision=22583
2009-03-25 00:07:12 +00:00
Matthias Clasen
7dfb01937d Fix get_nearest_monitor
svn path=/trunk/; revision=22582
2009-03-24 05:57:53 +00:00
Tor Lillqvist
c3879d400c Bug 575700 - Crash when moving a GtkWindow
2009-03-17  Tor Lillqvist  <tml@novell.com>

	Bug 575700 - Crash when moving a GtkWindow

	* gdk/win32/gdkevents-win32.c (gdk_event_translate): Fix
	embarrassing crasher bug introduced on 2009-03-11. A variable was
	assigned a value only inside a GDK_NOTE but still used outside
	that.


svn path=/trunk/; revision=22568
2009-03-17 18:26:28 +00:00
Tor Lillqvist
e029e0014d Bug 573067 - Intra-app dnd of text behavior on Windows is wrong
2009-03-11  Tor Lillqvist  <tml@iki.fi>

	Bug 573067 - Intra-app dnd of text behavior on Windows is wrong

	* gdk/win32/gdkdnd-win32.c (local_send_motion) (gdk_drag_motion):
	The default action should be move, not copy. Tweak how the
	GdkDragAction fields in GdkDragContexts are changed. Seems to help
	the problem.

	Add more debugging printout for --gdk-debug=dnd to many functions.

	* gdk/win32/gdkmain-win32.c
	* gdk/win32/gdkprivate-win32.h: (_gdk_win32_drag_protocol_to_string)
	(_gdk_win32_drag_action_to_string): New functions for use in
	debugging printouts.


svn path=/trunk/; revision=22522
2009-03-11 14:09:13 +00:00
Tor Lillqvist
e51f525a76 Use G_DEFINE_TYPE. Some debugging printout changes. Hacking on the
2009-03-11  Tor Lillqvist  <tml@iki.fi>

	* gdk/win32/gdkdnd-win32.c: Use G_DEFINE_TYPE. Some debugging
	printout changes. Hacking on the OLE2_DND code, which still
	doesn't work, though, and is not normally compiled.


svn path=/trunk/; revision=22517
2009-03-11 13:37:26 +00:00
Tor Lillqvist
93bb740db3 Bug 570896 - gdkevents-win32.c(2947) : error C4053: one void operand for
2009-03-11  Tor Lillqvist  <tml@iki.fi>

	Bug 570896 - gdkevents-win32.c(2947) : error C4053: one void
	operand for '?:'

	* gdk/win32/gdkevents-win32.c (gdk_event_translate): Fix
	compilation error with MSVC. While at it add clarifying comments
	and fix a typo in the debugging output.


svn path=/trunk/; revision=22515
2009-03-11 12:50:51 +00:00
Tor Lillqvist
703a18c25f Bug 574794 - Can not resize shaped windows on Windows
2009-03-11  Tor Lillqvist  <tml@iki.fi>

	Bug 574794 - Can not resize shaped windows on Windows

	* gdk/win32/gdkevents-win32.c (gdk_event_translate): On handling
	WM_WINDOWPOSCHANGED, don't do anything if the position and size
	hasn't changed. I am not exactly sure I understand why this helps
	this particular bug.


svn path=/trunk/; revision=22511
2009-03-11 12:04:22 +00:00
Alexander Larsson
f4090b5c84 Bug 573087 – gdkwindow.c: {x,y}_offset used uninitialized
2009-03-02  Alexander Larsson  <alexl@redhat.com>

	Bug 573087 – gdkwindow.c: {x,y}_offset used uninitialized

	* gdk/gdkwindow.c (gdk_window_clear_backing_rect_redirect):
	Don't use uninitialized vars.
	Fix offsets for redirected pixmap, draw to pixmap not window.



svn path=/trunk/; revision=22441
2009-03-02 15:09:27 +00:00
Matthias Clasen
996a68c491 Fix the sorting of GDK_KP_Equal
svn path=/trunk/; revision=22436
2009-03-02 03:12:09 +00:00
Matthias Clasen
fd20c54e35 Revert an accidental commit
svn path=/trunk/; revision=22421
2009-02-28 05:28:47 +00:00
Matthias Clasen
d0e7f5889e Bug 573069 – Gdk-CRITICAL warnings with Gtk 2.14 when dragging
GtkNotebook tabs

        * gtk/gtkwidget.c (_gtk_widget_synthesize_crossing): Be a little
        more careful when navigating up the parent chain.

        * gdk/gdkwindow.c (_gdk_window_destroy_hierarchy): Reset the
        pointer window thats stored on the screen when it is destroyed.


svn path=/trunk/; revision=22420
2009-02-28 05:24:07 +00:00
Matthias Clasen
fcdd092ae6 Another attempt at getting Xrandr screen size changes right. Actually
* gdk/x11/gdkevents-x11.c:
        * gdk/x11/gdkscreen-x11.[hc]: Another attempt at getting Xrandr
        screen size changes right. Actually handle XRRScreenChangeNotify
        events, and ignore root ConfigureNotify events if we are using
        Xrandr. Only emit size-changed signals if the screen size changed,
        and only emit monitor-changed signals if the monitors changed.


svn path=/trunk/; revision=22398
2009-02-24 05:09:13 +00:00
Ray Strode
e822462333 After using randr to get a list of monitors, sort the list such that the
2009-02-19  Ray Strode  <rstrode@redhat.com>

	* gdk/x11/gdkscreen-x11.c
	(monitor_compare_function), (init_randr13):
	After using randr to get a list of monitors,
	sort the list such that the biggest output
	of "cloned" outputs comes first in the list.
	This helps apps that don't generally handle
	overlapping outputs to work better in randr
	clone mode.

svn path=/trunk/; revision=22386
2009-02-20 04:42:33 +00:00
Sven Neumann
92c30df34d looks like being called with negative width and height should be
2009-02-19  Sven Neumann  <sven@gimp.org>

	* gdk/directfb/gdkwindow-directfb.c
	(gdk_directfb_window_move_resize): looks like being called with
	negative width and height should be interpreted as a move. Fixes
	scrolling and makes popups work to some extent.

	(_gdk_directfb_move_resize_child): formatting.


svn path=/trunk/; revision=22384
2009-02-19 22:31:04 +00:00
Sven Neumann
69fe31489c move the call to _gdk_windowing_window_init() up a little. Fixes a crash
2009-02-19  Sven Neumann  <sven@gimp.org>

	* gdk/directfb/gdkdisplay-directfb.c (gdk_display_open): move 
the
	call to _gdk_windowing_window_init() up a little. Fixes a crash
	when running on pseudo-color visuals. Thanks to Masse Nicolas 
for
	pointing this out.


svn path=/trunk/; revision=22382
2009-02-19 21:39:43 +00:00
Sven Neumann
03796c0a90 initialize private->impl. Thanks to Masse Nicolas for pointing this out.
2009-02-19  Sven Neumann  <sven@gimp.org>

	* gdk/directfb/gdkwindow-directfb.c
	(gdk_window_foreign_new_for_display, gdk_directfb_window_new):
	initialize private->impl. Thanks to Masse Nicolas for pointing
	this out.


svn path=/trunk/; revision=22380
2009-02-19 21:30:49 +00:00
Matthias Clasen
0bd95af21a Be more robust against X breakage
svn path=/trunk/; revision=22378
2009-02-19 19:13:10 +00:00
Matthias Clasen
f517b9d5fc some xrandr fixes
svn path=/trunk/; revision=22370
2009-02-18 23:12:26 +00:00
Sven Neumann
a292a2c70f Bug 533456 – Memory leak when window is destroyed
2009-02-18  Sven Neumann  <sven@gimp.org>

	Bug 533456 – Memory leak when window is destroyed

	* gdk/directfb/gdkdirectfb.h
	* gdk/directfb/gdkprivate-directfb.h
	* gdk/directfb/gdkcursor-directfb.c
	* gdk/directfb/gdkevents-directfb.c
	* gdk/directfb/gdkwindow-directfb.c: removed all #ifdef checks 
for
	DIRECTFB_MAJOR_VERSION >= 1. We depend on DirectFB >= 1.0.0 now.
	Fixes a potential build issue that would lead to a memory leak 
as
	described in bug #533456.


svn path=/trunk/; revision=22367
2009-02-18 20:43:31 +00:00
Sven Neumann
be7349f519 Bug 513422 – Unknown meaning of translatable messages
2009-02-18  Sven Neumann  <sven@gimp.org>

	Bug 513422 – Unknown meaning of translatable messages

	* gdk/directfb/gdkdisplay-directfb.c: removed broken and 
commented
	code and the translatable messages that belonged to it.


svn path=/trunk/; revision=22365
2009-02-18 18:14:17 +00:00
Sven Neumann
926acf9173 Bug 560671 – the client_message API doesn't work in DirectFB
2009-02-18  Sven Neumann  <sven@gimp.org>

	Bug 560671 – the client_message API doesn't work in DirectFB

	* gdk/directfb/gdkevents-directfb.c: applied a slightly cleaned 
up
	patch from Steve Lhomme that adds this functionality using
	DirectFB's DFBUserEvent.


svn path=/trunk/; revision=22363
2009-02-18 18:03:51 +00:00
Sven Neumann
8b1a4f86ca Bug 543710 – Dead keys do not work anymore with DirectFB
2009-02-18  Sven Neumann  <sven@gimp.org>

	Bug 543710 – Dead keys do not work anymore with DirectFB

	* gdk/directfb/gdkkeys-directfb.c (gdk_directfb_translate_key):
	applied patch from Josselin Mouette that removes special 
handling
	of dead keys as that is done by DirectFB for a long time 
already.


svn path=/trunk/; revision=22361
2009-02-18 17:43:13 +00:00
Sven Neumann
c53101ad95 Bug 554407 – directfb backend does not implement GdkWindowImpl
2009-02-18  Sven Neumann  <sven@gimp.org>

	Bug 554407 – directfb backend does not implement GdkWindowImpl

	* gdk/directfb/gdkgeometry-directfb.c
	* gdk/directfb/gdkprivate-directfb.h
	* gdk/directfb/gdkwindow-directfb.c: fix the build of the 
DirectFB
	backend and resurrect basic functionality. Based on a patch from
	the Ubuntu bug-tracker and work by Masse Nicolas.


svn path=/trunk/; revision=22357
2009-02-18 17:17:33 +00:00
Matthias Clasen
a0f8f37c37 2.15.4
svn path=/trunk/; revision=22350
2009-02-17 22:25:41 +00:00
Sven Neumann
d35689a978 gdk/gdk.symbols implement gdk_keymap_get_caps_lock_state(). No
2009-02-16  Sven Neumann  <sven@gimp.org>

	* gdk/gdk.symbols
	* gdk/directfb/gdkkeys-directfb.c: implement
	gdk_keymap_get_caps_lock_state(). No "state-changed" signal yet.


svn path=/trunk/; revision=22341
2009-02-16 20:58:16 +00:00
Tor Lillqvist
b62e3113e6 Bug 571873 - Compile error with gdk/win32/gdkselection-win32.c
2009-02-16  Tor Lillqvist  <tml@novell.com>

	Bug 571873 - Compile error with gdk/win32/gdkselection-win32.c

	* gdk/win32/gdkselection-win32.c (gdk_selection_convert): Cast
	gpointer to char * before pointer arithmetic to avoid compilation
	error with MSVC.

	(_gdk_selection_property_delete): Remove unused variable.


svn path=/trunk/; revision=22337
2009-02-15 22:51:56 +00:00
Matthias Clasen
e86a6ddd60 Register randr events
svn path=/trunk/; revision=22328
2009-02-13 22:15:23 +00:00
Matthias Clasen
2e67143e3b Check for Xrandr 1.3
* configure.in: Check for Xrandr 1.3

        * gdk/x11/gdkdisplay-x11.[ch]: Rename have_randr12 to have_randr13
        and set if if we have randr 1.3

        * gdk/x11/gdkscreen-x11.c: Go back to using randr for monitor
        information, if we have XRRGetScreenResourcesCurrent.


svn path=/trunk/; revision=22327
2009-02-13 18:12:57 +00:00
Cody Russell
f1ed4f7347 Add potentially missing #defines for XBUTTON1, etc. Fixes the build that
2009-02-09  Cody Russell  <bratsche@gnome.org>

        * gdk/win32/gdkwin32.h:	Add potentially	missing	#defines for
        XBUTTON1, etc.  Fixes the build that was broken in r21746.


svn path=/trunk/; revision=22297
2009-02-09 13:16:14 +00:00
Tor Lillqvist
3f4c73d0d5 Bug 559408 - Transparency lost when images are copied between GTK+ and the
2009-01-29  Tor Lillqvist  <tml@novell.com>

	Bug 559408 - Transparency lost when images are copied between GTK+
	and the clipboard on Windows

	The code in gdkselection-win32.c is simplified quite a lot. When
	an image is stored on the clipboard from GTK+, only the "PNG" and
	CF_DIB formats are advertised. PNG is our preferred format because
	it can losslessly represent any image that gdk-pixbuf can handle,
	even with alpha, unambiguously. CF_DIB is also advertised because
	of its ubiquitous support in Windows software.

	Delayed rendering is used as before, so for other data than text
	nothing is actually stored on the clipboard until some app asks
	for it.

	It's pointless to advertise images formats like "image/png" or
	"image/x-MS-bmp" that no other Windows application is going to
	look for anyway. Likewise it's pointless to store text under
	formats like "text/plain" or "UTF8_STRING". Just store
	CF_UNICODETEXT. CF_TEXT will be available as a synthesized format
	anyways.

	Office 2007 offers and asks for images in PNG format using the
	registered clipboard format name "PNG", so we do likewise. If the
	"PNG" format is available that is preferred when copying to GTK+
	from the clipboard.

	Unfortunately Word 2007 still uses CF_DIB without handling
	alpha. But PowerPoint 2007 uses PNG if available and handles alpha
	correctly. Both Word and Powerpoint offer PNG with alpha nicely.

	Firefox and IE7 offer images that contain alpha as 32-bit version
	3 BI_RGB DIBs with the undocumented "extra" bytes actually being
	alpha. Also, alpha is premultiplied into the RGB bytes, presumably
	because that is how AlphaBlend() wants such DIBs. That is also
	taken care of. At least for Firefox it easy to be sure that a
	CF_DIB on the clipboard is from Firefox.

	Also some general stylistic cleanup, comment improvements, and
	improvements of debugging printout especially in the clipboard
	handling. Those are not detailled below.

	* gdk/win32/gdkprivate-win32.h
	* gdk/win32/gdkglobals-win32.c
	* gdk/win32/gdkgmain-win32.c: Move some globals that were used
	only in gdkselection-win32.c to be local to that file.

	* gdk/win32/gdkproperty-win32.c (gdk_property_change): Don't
	bother checking if text to be placed on the clipboard consists of
	only ASCII.

	* gdk/win32/gdkselection-win32.c: Add static variables for a list
	of GdkPixbuf-supported formats, well-known registered clipboard
	formats for images, and for GdkAtoms for well-known image and text
	formats.

	(_gdk_win32_selection_init): Initialize above static variables.

	(selection_property_store) (gdk_selection_property_get)
	(_gdk_selection_property_delete): Don't use a FIFO of GdkSelProps
	for a window after all, it breaks testtext. See bug #163844.

	(gdk_selection_convert): When converting to the TARGETS format,
	i.e. when the caller wants to know what clipboard formats are
	available, if PNG is available we report just that and skip
	CF_DIB, JPEG and GIF even if advertised.

	If CF_UNICODETEXT is available, report only UTF8_STRING.

	When converting to the UTF8_STRING format, i.e. when the caller
	wants text from the clipboard, try just CF_UNICODETEXT. There is
	no point in trying CF_TEXT as Windows will synthesize
	CF_UNICODETEXT from CF_TEXT anyway, if some app has stored just
	CF_TEXT.

	When converting to the image/bmp format, i.e. when the caller
	wants an CF_DIB image from the clipboard, we check if the DIB is a
	version 3 32-bit BI_RGB one that is likely to actually contain
	alpha in the "extra" bytes. Such a DIB is likely to have
	premultiplied alpha even, at least in the case of Firefox 3 and
	IE7. We then edit the DIB in-place into a version 5 one in
	BI_BITFIELDS format and undo the alpha premultiplication.

	In any case, prepend a BMP file header before letting go of the
	data which will be fed to the gdk-pixbuf bmp loader by upper
	levels.

	(gdk_win32_selection_add_targets): If some kind of pixmap image
	format is being added, actually advertise just PNG and
	CF_DIB. Note that alpha won't be stored on the clipboard through
	CF_DIB. This is because gdk-pixbuf's bmp loader doesn't save
	alpha. Furthermore, few if any non-GTK+ Windows apps seem to
	understand a version 5 DIB with proper alpha anyway.

	(_gdk_win32_selection_convert_to_dib): Simplified muchly.



svn path=/trunk/; revision=22255
2009-01-30 01:16:47 +00:00
Claudio Saavedra
6f468ac715 Bug 569435 – make maintainer-clean removes non-generated sources
2009-01-29  Claudio Saavedra  <csaavedra@igalia.com>

	Bug 569435 – make maintainer-clean removes non-generated sources

	* gdk/Makefile.am: Do not remove gdkprivate.h and gdkwindowimpl.h
	during make maintainer-clean, as these files are not generated.


svn path=/trunk/; revision=22248
2009-01-29 07:35:33 +00: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
Matthias Clasen
a576e0c9fa Don't update blank cursors
svn path=/trunk/; revision=22208
2009-01-24 21:29:36 +00:00